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

Reply via email to