I've run into the same exception condition before.  Can you narrow down which
method the FieldMolder is trying to invoke?

Mike Colbert



--- Reza Shahbazi <[EMAIL PROTECTED]> wrote:
> 
> 
> Hi All
> 
> Problem: in JDO Inheritence
> It works fine if I want to make my objects prisistent, as described in 
> tips-tricks.html.
> But when I try to load my master object (or instance of it) it doesn't 
> properly load the dependent objects;
> 
> Here is example:
> I have four objects
> 
> 1-Animal.java
>        2-Dog.java (extends Animal)
>        3-Cat.java  (extends Animal)
> 
> 4- Owner.java   
>         Animal  _animal; //instance varible
> 
> Dog _dog= new Dog(...);
> Owner _owner = new Owner(..);
> _owener.setAnimal(_dog);
> 
> db.begin
> db.create(_dog);
> db.create(_owner);
> db.commit;
> It works fine,  I have on record in Animal table and with same 
> Identifier (primary key)
> in dog table  (extra info are stored in dog table)
> 
> 
> When I try ot load it
> Owner _owner = (Owner)db.load(Owner.class,new Integer(1));
> _owner.getAnimal() has the value of the Animal NOT Dog!!!!!
> 
> I my real application I got :
> java.lang.IllegalArgumentException: object is not an instance of 
> declaring class
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>     at 
>
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>     at java.lang.reflect.Method.invoke(Method.java:324)
>     at org.exolab.castor.persist.FieldMolder.getValue(FieldMolder.java:253)
>     at 
>
org.exolab.castor.persist.ClassMolder.getActualIdentity(ClassMolder.java:2607)
>     at 
>
org.exolab.castor.persist.ClassMolder.getActualIdentity(ClassMolder.java:2593)
>     at 
> org.exolab.castor.persist.ClassMolder.getIdentity(ClassMolder.java:2581)
>     at 
>
org.exolab.castor.persist.ClassMolder.getRemovedIdsList(ClassMolder.java:1684)
>     at org.exolab.castor.persist.ClassMolder.preStore(ClassMolder.java:1291)
>     at org.exolab.castor.persist.LockEngine.preStore(LockEngine.java:723)
>     at 
>
org.exolab.castor.persist.TransactionContext.prepare(TransactionContext.java:1409)
>     at 
> org.exolab.castor.jdo.engine.DatabaseImpl.commit(DatabaseImpl.java:507)
>     at com.symax.dms.testDB.create(testDB.java:247)
>     at com.symax.dms.testDB.main(testDB.java:65)
> 
> 
> Thanks
> Reza
> 
> ----------------------------------------------------------- 
> If you wish to unsubscribe from this mailing, send mail to
> [EMAIL PROTECTED] with a subject of:
>       unsubscribe castor-dev
> 


__________________________________________________
Do you Yahoo!?
New DSL Internet Access from SBC & Yahoo!
http://sbc.yahoo.com

----------------------------------------------------------- 
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
        unsubscribe castor-dev

Reply via email to