WWW Crawlers gotcha down? De-mystifying the nebulous “OKAssertError (282610)” error and the dreaded Property Bag
Howdy all,
Jul 20, 2009 5:25:02 PM- *** Job Operation #1 failed: This crawl could not be launched because the location from which it was supposed to start, http://www.somecoolsite.com could not be found or was inaccessible. When the crawler attempted to visit this location it received the following message: Exception of type com.plumtree.openkernel.exceptions.OKAssertError was thrown.(282610)
19 7-24-2009 10:17:36.351 Warning Directory automation.xxx.xxx.wadm NodePullerWorker1 com.plumtree.server.impl.directory.providers.PTWebCrawlProvider
<?xml version=”1.0″ encoding=”ucs-2″?>
<PTBAG V=”1.1″ xml:space=”preserve”>
<S N=”PTC_WEB_LOGIN”></S><S N=”PTC_WEB_HDRS”></S>
<S N=”PTC_PBAGFORMAT”>1002</S>
<S N=”PTC_WEB_PR_LOGIN”></S>
<A N=”PTC_WEB_COOK”>
<I N=”DIMS”>1</I><I N=”MAX0″>2</I>
<A N=”0″>
<I N=”DIMS”>1</I><I N=”MAX0″>-1</I>
</A>
<A N=”1″>
<I N=”DIMS”>1</I><I N=”MAX0″>-1</I>
</A>
<A N=”2″>
<I N=”DIMS”>1</I>
<I N=”MAX0″>-1</I></A>
</A>
<S N=”PTC_WEB_PR_PASS”></S>
<S N=”PTC_WEB_PASS”></S>
<S N=”PTC_WEB_PDATA”></S>
<S N=”PTC_WEB_PURL”></S>
<I N=”PTC_WEB_BYPASS”>0</I>
<S N=”PTC_WEB_LURL”></S></PTBAG>,
com.plumtree.openfoundation.util.XPExceptionpSession == com.plumtree.server.impl.core.PTSession@196e136, pDocumentTypeMap == com.plumtree.server.impl.directory.PTDocumentTypeMap@9bad5a, lWebServiceID == 0)
com.plumtree.openfoundation.util.XPException.GetInstance(XPException.java:371)
com.plumtree.server.impl.directory.providers.PTWebCrawlProvi
der.Initialize(PTWebCrawlProvider.java:102)
com.plumtree.server.impl.directory.utils.PTProviderFactory.CreateInitializedCrawlProvider(PTProviderFactory.java:46)
… 7 more
Caused by: com.plumtree.openfoundation.util.XPException
com.plumtree.openfoundation.util.XPPropertyBag.ReadAsInt(XPPropertyBag.java:363)
com.plumtree.server.impl.directory.providers.PTWebCrawlProvider.Initialize(PTWebCrawlProvider.java:88)
… 8 more
Caused by: java.lang.ClassCastException
com.plumtree.openfoundation.util.XPPropertyBag.ReadAsInt(XPPropertyBag.java:356)
… 9 more
Well, well, well, what have we here? Looks like our good friend the stack trace. Now we have a real, low-level, clue to what’s going on. Specifically, the last line of the stack trace:
Caused by: java.lang.ClassCastException
com.plumtree.openfoundation.util.XPPropertyBag.ReadAsInt(XPPropertyBag.java:356)
select properties1, properties2 from ptobjectproperties where objectid=X and classid=y order by pagenumber
More generically, we can just look at all the data in the table in a relatively easy-to-follow-format by running:
select * from ptobjectproperties order by objectid, classid, pagenumber

My understanding was that property bags exist as an alternative to serializing an object. Because the WCI supports .NET and Java they went with XML to work with whatever library they use that is used across both platforms.
I agree with you though that I think if it was designed today, few people would design a database like that.