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

Reply via email to