Hello,

I've been a fan and successful user of Castor for 6+ years now.

I've just started working with the Polymorphism features recently - and
at first they worked wonderfully, but recently I started seeing the
following error when trying to load an object after writing to it a few
times. I saw a lot of talk about this problem in 2005 - but then all
went quiet on this issue. Has there been are any resolution as to why
these kinds of bugs pop up since the days of bugs CASTOR-1195 getting
solved?

Also, I cannot seem to recreate this bug in a deterministic fashion.

java.lang.ArrayIndexOutOfBoundsException: 7
        org.castor.persist.ProposedEntity.getField(ProposedEntity.java:103)
        
org.castor.persist.resolver.ManyRelationResolver.load(ManyRelationResolver.java:254)
        org.exolab.castor.persist.ClassMolder.load(ClassMolder.java:638)
        org.exolab.castor.persist.LockEngine.load(LockEngine.java:396)
        
org.castor.persist.AbstractTransactionContext.load(AbstractTransactionContext.java:568)
        
org.castor.persist.AbstractTransactionContext.load(AbstractTransactionContext.java:431)
        
org.castor.persist.resolver.ManyRelationResolver.load(ManyRelationResolver.java:272)
        org.exolab.castor.persist.ClassMolder.load(ClassMolder.java:638)
        org.exolab.castor.persist.LockEngine.load(LockEngine.java:396)
        
org.castor.persist.AbstractTransactionContext.load(AbstractTransactionContext.java:568)
        
org.castor.persist.AbstractTransactionContext.load(AbstractTransactionContext.java:431)
        
org.exolab.castor.jdo.engine.AbstractDatabaseImpl.load(AbstractDatabaseImpl.java:301)
        
org.exolab.castor.jdo.engine.AbstractDatabaseImpl.load(AbstractDatabaseImpl.java:272)
        
com.codemagi.servlets.NavigationController.dispatchCommand(NavigationController.java:108)
        
com.codemagi.servlets.NavigationController.service(NavigationController.java:56)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


And once I get this (polymorphism specific) bug on one object, the
entire engine starts to break down, and I get errors like this at login.

org.exolab.castor.jdo.TransactionAbortedException: Nested error:
org.exolab.castor.jdo.LockNotGrantedException:
persist.writeTimeoutcom.codemagi.login.model.User/<1(1)>/232 by
[EMAIL PROTECTED]:
persist.writeTimeoutcom.mycode.login.model.User/<1(1)>/232 by
[EMAIL PROTECTED]

My polymorphic mapping is relatively simple (MySQL).

*I have a core Node:*

<!-- Key generator for Node -->
  <key-generator name="IDENTITY" alias="NODE_SEQ"/>

  <!-- Mapping for Node -->
  <class name="com.mycode.servlets.model.Node" identity="id"
key-generator="NODE_SEQ" cache-type="none">

*That I can xref with any other node*

       <field name="children" type="com.mycode.servlets.model.Node"
collection="arraylist">
          <sql dirty="ignore" name="child_id"
many-table="node_node_xref" many-key="parent_id" />
          <bind-xml name="terms"/>
      </field>


*That all other objects inherit from*

<!-- Mapping for Person -->
  <class name="com.myclientscode.model.Person"
extends="com.mycode.servlets.model.Node" identity="id" cache-type="none">

Any help, advice or counsel on this matter would be greatly appreciated.

-- 
Best Regards,
Jim Manico
VP Software Engineering, Codemagi Inc.
GIAC GSEC Professional, Sun Certified Java Programmer
[EMAIL PROTECTED]
808.652.3805

Reply via email to