Hi, I am getting the following error when I try to remove objects from an ArrayList:
org.exolab.castor.jdo.TransactionAbortedException: Nested error: java.lang.IllegalStateException: Object deleted waiting for lock?????????: Object deleted waiting for lock????????? at org.castor.persist.AbstractTransactionContext.prepare(AbstractTransactionContext.java:1227) at org.exolab.castor.jdo.engine.LocalDatabaseImpl.commit(LocalDatabaseImpl.java:161) at com.codemagi.servlets.content.PageController.dispatchSetTeam(PageController.java:1026) One of my mapped objects, Section, contains an ArrayList of Users. When I try to remove Users from that list and commit, I get the error. Here is the code that causes the error to happen: Section section = (Section)db.load(Section.class, sectionId); Iterator i = removeIds.iterator(); while (i.hasNext()) { Integer memberId = convertInteger( (String)i.next() ); IUser memberToRemove = (IUser)db.load(USER_CLASS, memberId); section.removeUser(memberToRemove); //calls ArrayList.remove(Object) } db.commit(); If I log the contents of the List in section, I can see that the User objects are getting properly removed. The actual error occurs when db.commit() is called. What causes this error to be thrown? How does one properly remove objects from a list? Note that we don't actually want to delete the User, we just want to remove it from the Section. Here is the mapping for Section showing a many-many relationship to User (the database is MySQL): <class name="com.codemagi.servlets.content.model.Section" identity="id" key-generator="IDENTITY"> <description>section hierarchy for navigation and breadcrumbs</description> <map-to table="nav_section" /> <field name="id" type="integer"> <sql name="section_id" type="integer"/> </field> <field name="name" type="string"> <sql name="section_name" type="varchar"/> </field> <field name="teamMembers" type="org.openeco.login.model.User" collection="arraylist"> <sql name="user_id" many-table="nav_section_user_xref" many-key="section_id" /> </field> </class> Thanks, August PS: Check out OpenEco. It is a full web application framework that uses Castor JDO-XML as its core persistence layer: http://openeco.dev.java.net ____________________________________________________________________________________ Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email