Anyway, I added a NP check and is committed into the cvs.
Thomas -----Original Message----- >From: Jan Kanzleiter [mailto:[EMAIL PROTECTED]] >Sent: Wednesday, December 05, 2001 9:34 AM >To: [EMAIL PROTECTED] >Subject: Re: [castor-dev] deleting objects with many-to-many-relation > >hi, > >ok, i found my problem: >the collections in the classes where the realted objects are stored have to >be initialised. > >sorry for all the mails. > >jan > >--On Mittwoch, 5. Dezember 2001 14:33 +0100 Jan Kanzleiter ><[EMAIL PROTECTED]> wrote: > >> hi again, >> >> --On Dienstag, 4. Dezember 2001 14:51 -0800 Thomas Yip <[EMAIL PROTECTED]> >> wrote: >>> Your version seems to be very old. Please update to the cvs version. >> i did this, but the error apears again: >> >> java.lang.NullPointerException >> at >> org.exolab.castor.persist.ClassMolder.markDelete(ClassMolder.java:2353) >> at org.exolab.castor.persist.LockEngine.markDelete(LockEngine.java:564) >> at >> org.exolab.castor.persist.TransactionContext.delete(TransactionContext.ja >> va :1132) >> at >> org.exolab.castor.jdo.engine.DatabaseImpl.remove(DatabaseImpl.java:380) >> at de.terminator.persistent.db.DbService.delete(DbService.java:185) at >> de.terminator.persistent.test.Test.test(Test.java:191) >> at de.terminator.persistent.test.Test.main(Test.java:52) >> >> on request i send you the mapping file and/or the sources. >> >> thanks >> jan >> >>> -----Original Message----- >>>> From: Jan Kanzleiter [mailto:[EMAIL PROTECTED]] >>>> Sent: Tuesday, December 04, 2001 8:04 AM >>>> To: [EMAIL PROTECTED] >>>> Subject: [castor-dev] deleting objects with many-to-many-relation >>>> >>>> hi, >>>> >>>> what have i done wrong? >>>> i created a mapping with many many-to-many relations. >>>> if i want to delete an object with many-to-many-relation i get the >>>> following exception: >>>> java.lang.NullPointerException >>>> at >>> org.exolab.castor.persist.ClassMolder.markDelete(ClassMolder.java:2400) >>>> at >>> org.exolab.castor.persist.LockEngine.markDelete(LockEngine.java:548) >>>> at >>>> org.exolab.castor.persist.TransactionContext.delete(TransactionContext.j >>>> ava :895) >>>> at >>> org.exolab.castor.jdo.engine.DatabaseImpl.remove(DatabaseImpl.java:379) >>>> at >>>> org.exolab.castor.jdo.engine.DatabaseImpl.deletePersistent(DatabaseImpl. >>>> jav a:390) >>>> at >>>> de.terminator.persistent.db.DbService.delete(DbService.java:208) >>>> at de.terminator.persistent.test.Test.test(Test.java:191) at >>>> de.terminator.persistent.test.Test.main(Test.java:52) >>>> >>>> thank you for helping me. >>>> jan >>>> >>>> >>>> my mapping.xml: >>>> >>>> <!DOCTYPE databases PUBLIC "-//EXOLAB/Castor Mapping DTD Version >>>> 1.0//EN" "http://castor.exolab.org/mapping.dtd"> >>>> <mapping> >>>> <class name="de.terminator.lg.LgTerminvorschlag" >>>> identity="terminid" key-generator="MAX"> >>>> <map-to table="termin" xml="terminvorschlag" /> >>>> <field name="terminid" type="java.lang.Integer" > >>>> <sql name="termin_id" type="integer"/> >>>> <xml name="termin_id" node="element"/> >>>> </field> >>>> <field name="besitzer" type="de.terminator.lg.LgPerson"> >>>> <sql name="mitglied_id" /> >>>> <xml name="besitzer" node="element" /> >>>> </field> >>>> <field name="ort" type="string" > >>>> <sql name="ort" type="char" dirty="check" /> >>>> <xml name="ort" node="element"/> >>>> </field> >>>> <field name="thema" type="string"> >>>> <sql name="thema" type="char" dirty="check" /> >>>> <xml name="thema" node="element"/> >>>> </field> >>>> <field name="zustand" type="integer" > >>>> <sql name="zustand" type="integer"/> >>>> <xml name="zustand" node="element"/> >>>> </field> >>>> <field name="zeitpunkt" type="date"> >>>> <sql name="zeitpunkt" type="date"/> >>>> <xml name="zeitpunkt" node="element" /> >>>> </field> >>>> <field name="laenge" type="integer" > >>>> <sql name="laenge" type="integer"/> >>>> <xml name="laenge" node="element"/> >>>> </field> >>>> >>>> <field name="mitglieder" type="de.terminator.lg.LgMitglied" >>>> lazy="true" required="false" >>>> collection="vector"> >>>> <sql name="mitglied_id" >>>> many-table="terminvorschlag_mitglied" many-key="termin_id" /> >>>> <xml name="mitglied_id" node="element" /> >>>> </field> >>>> >>>> <field name="termine" type="de.terminator.lg.LgTermin" lazy="true" >>>> required="false" >>>> collection="vector"> >>>> <sql many-key="to_parent_termin" /> >>>> <xml name="termine" node="element" /> >>>> </field> >>>> >>>> </class> >>>> >>>> <class name="de.terminator.lg.LgTermin" >>>> identity="terminid" key-generator="MAX"> >>>> <map-to table="termin" xml="termin" /> >>>> <field name="terminid" type="java.lang.Integer" > >>>> <sql name="termin_id" type="integer"/> >>>> <xml node="attribute"/> >>>> </field> >>>> <field name="besitzer" type="de.terminator.lg.LgPerson"> >>>> <sql name="mitglied_id" /> >>>> <xml name="besitzer" node="element" /> >>>> </field> >>>> <field name="zeitpunkt" type="date"> >>>> <sql name="zeitpunkt" type="date"/> >>>> <xml node="text" /> >>>> </field> >>>> <field name="laenge" type="integer" > >>>> <sql name="laenge" type="integer"/> >>>> <xml node="attribute"/> >>>> </field> >>>> >>>> <field name="parenttermin" type="de.terminator.lg.LgTerminvorschlag" >>>> required="true"> >>>> <sql name="to_parent_termin"/> >>>> <xml name="parenttermin" node="element" /> >>>> </field> >>>> >>>> </class> >>>> >>>> <class name="de.terminator.lg.LgMitglied" >>>> identity="mitgliedid" key-generator="MAX"> >>>> <map-to table="mitglied" xml="mitglied" /> >>>> <field name="mitgliedid" type="integer" > >>>> <sql name="mitglied_id" type="integer"/> >>>> <xml node="attribute"/> >>>> </field> >>>> <field name="name" type="string" > >>>> <sql name="name" type="char" dirty="check" /> >>>> <xml node="text"/> >>>> </field> >>>> <field name="nickname" type="string" > >>>> <sql name="nickname" type="char" dirty="check" /> >>>> <xml node="text"/> >>>> </field> >>>> <field name="publickey" type="string" > >>>> <sql name="publickey" type="char" dirty="check" /> >>>> <xml node="text"/> >>>> </field> >>>> <field name="secretkey" type="string" > >>>> <sql name="secretkey" type="char" dirty="check" /> >>>> <xml node="text"/> >>>> </field> >>>> >>>> <field name="gruppen" type="de.terminator.lg.LgGruppe" lazy="true" >>>> required="false" >>>> collection="vector"> >>>> <sql name="gruppe_id" >>>> many-table="mitglied_gruppe" many-key="mitglied_id" /> >>>> <xml name="mitglied_id" node="element" /> >>>> </field> >>>> <field name="terminvorschlaege" >>>> type="de.terminator.lg.LgTerminvorschlag" lazy="true" required="false" >>>> collection="vector"> >>>> <sql name="termin_id" >>>> many-table="terminvorschlag_mitglied" many-key="mitglied_id" >>>> /> <xml name="termin_id" node="element" /> >>>> </field> >>>> >>>> </class> >>>> >>>> <class name="de.terminator.lg.LgRaum" >>>> identity="mitgliedid" key-generator="MAX"> >>>> <map-to table="mitglied" xml="mitglied" /> >>>> <field name="mitgliedid" type="integer" > >>>> <sql name="mitglied_id" type="integer"/> >>>> <xml node="attribute"/> >>>> </field> >>>> <field name="name" type="string" > >>>> <sql name="name" type="char" dirty="check" /> >>>> <xml node="text"/> >>>> </field> >>>> <field name="nickname" type="string" > >>>> <sql name="nickname" type="char" dirty="check" /> >>>> <xml node="text"/> >>>> </field> >>>> <field name="fassungsvermoegen" type="integer" > >>>> <sql name="raum_fassungsvermoegen" type="integer" dirty="check" /> >>>> <xml node="attribute"/> >>>> </field> >>>> <field name="raumnummer" type="string" > >>>> <sql name="raum_nr" type="char" dirty="check" /> >>>> <xml node="text"/> >>>> </field> >>>> <field name="verfuegbar" type="integer" > >>>> <sql name="resource_verfuegbar" type="integer" dirty="check" /> >>>> <xml node="attribute"/> >>>> </field> >>>> <field name="beschreibung" type="string" > >>>> <sql name="resource_beschreibung" type="char" dirty="check" /> >>>> <xml node="text"/> >>>> </field> >>>> >>>> <field name="gruppen" type="de.terminator.lg.LgGruppe" lazy="true" >>>> required="false" >>>> collection="vector"> >>>> <sql name="gruppe_id" >>>> many-table="mitglied_gruppe" many-key="mitglied_id" /> >>>> <xml name="mitglied_id" node="element" /> >>>> </field> >>>> >>>> </class> >>>> >>>> <class name="de.terminator.lg.LgGeraet" >>>> identity="mitgliedid" key-generator="MAX"> >>>> <map-to table="mitglied" xml="mitglied" /> >>>> <field name="mitgliedid" type="integer" > >>>> <sql name="mitglied_id" type="integer"/> >>>> <xml node="attribute"/> >>>> </field> >>>> <field name="name" type="string" > >>>> <sql name="name" type="char" dirty="check" /> >>>> <xml node="text"/> >>>> </field> >>>> <field name="nickname" type="string" > >>>> <sql name="nickname" type="char" dirty="check" /> >>>> <xml node="text"/> >>>> </field> >>>> <field name="verfuegbar" type="integer" > >>>> <sql name="resource_verfuegbar" type="integer" dirty="check" /> >>>> <xml node="attribute"/> >>>> </field> >>>> <field name="beschreibung" type="string" > >>>> <sql name="resource_beschreibung" type="char" dirty="check" /> >>>> <xml node="text"/> >>>> </field> >>>> >>>> <field name="gruppen" type="de.terminator.lg.LgGruppe" lazy="true" >>>> required="false" >>>> collection="vector"> >>>> <sql name="gruppe_id" >>>> many-table="mitglied_gruppe" many-key="mitglied_id" /> >>>> <xml name="mitglied_id" node="element" /> >>>> </field> >>>> >>>> </class> >>>> >>>> <class name="de.terminator.lg.LgPerson" >>>> identity="mitgliedid" key-generator="MAX"> >>>> <map-to table="mitglied" xml="mitglied" /> >>>> <field name="mitgliedid" type="integer" > >>>> <sql name="mitglied_id" type="integer"/> >>>> <xml node="attribute"/> >>>> </field> >>>> <field name="name" type="string" > >>>> <sql name="name" type="char" dirty="check" /> >>>> <xml node="text"/> >>>> </field> >>>> <field name="nickname" type="string" > >>>> <sql name="nickname" type="char" dirty="check" /> >>>> <xml node="text"/> >>>> </field> >>>> >>>> <field name="gruppen" type="de.terminator.lg.LgGruppe" lazy="true" >>>> required="false" >>>> collection="vector"> >>>> <sql name="gruppe_id" >>>> many-table="mitglied_gruppe" many-key="mitglied_id" /> >>>> <xml name="mitglied_id" node="element" /> >>>> </field> >>>> >>>> <field name="rolle" type="integer" > >>>> <sql name="person_rolle" type="integer" dirty="check" /> >>>> <xml node="attribute"/> >>>> </field> >>>> <field name="adresse" type="string" > >>>> <sql name="person_adresse" type="char" dirty="check" /> >>>> <xml node="text"/> >>>> </field> >>>> </class> >>>> >>>> <class name="de.terminator.lg.LgGruppe" >>>> identity="gruppeid" key-generator="MAX"> >>>> <map-to table="gruppe" xml="gruppe" /> >>>> <field name="gruppeid" type="java.lang.Integer" > >>>> <sql name="gruppe_id" type="integer"/> >>>> <xml node="attribute"/> >>>> </field> >>>> <field name="name" type="string" > >>>> <sql name="name" type="char" dirty="check" /> >>>> <xml node="text"/> >>>> </field> >>>> >>>> <field name="mitglieder" type="de.terminator.lg.LgPerson" >>>> required="false" >>>> collection="vector"> >>>> <sql name="mitglied_id" >>>> many-table="mitglied_gruppe" many-key="gruppe_id" /> >>>> <xml name="mitglied_id" node="element" /> >>>> </field> >>>> >>>> </class> >>>> >>>> </mapping> >> >> ----------------------------------------------------------- If you wish >> to unsubscribe from this mailing, send mail to [EMAIL PROTECTED] with >> a subject of: >> unsubscribe castor-dev >> > >----------------------------------------------------------- >If you wish to unsubscribe from this mailing, send mail to >[EMAIL PROTECTED] with a subject of: > unsubscribe castor-dev > ----------------------------------------------------------- If you wish to unsubscribe from this mailing, send mail to [EMAIL PROTECTED] with a subject of: unsubscribe castor-dev