ClassCastException at DataCacheStoreManager.loadAll
---------------------------------------------------

                 Key: OPENJPA-1407
                 URL: https://issues.apache.org/jira/browse/OPENJPA-1407
             Project: OpenJPA
          Issue Type: Bug
          Components: datacache
    Affects Versions: 2.0.0-M3
            Reporter: Ravi P Palacherla
            Assignee: Ravi P Palacherla
             Fix For: 2.0.0-M3


the following exception stack trace is seen in kodo :

    [java] Caused by: java.lang.ClassCastException: com.sample.TestTableId
     [java]  at 
org.apache.openjpa.datacache.DataCacheStoreManager.loadAll(DataCacheStoreManager.java:461)
     [java]  at 
org.apache.openjpa.kernel.DelegatingStoreManager.loadAll(DelegatingStoreManager.java:121)
     [java]  at 
org.apache.openjpa.kernel.BrokerImpl.findAll(BrokerImpl.java:984)
     [java]  at 
org.apache.openjpa.kernel.BrokerImpl.findAll(BrokerImpl.java:1027)
     [java]  at 
org.apache.openjpa.kernel.BrokerImpl.findAll(BrokerImpl.java:913)
     [java]  at 
org.apache.openjpa.kernel.AbstractPCData.toRelationFields(AbstractPCData.java:217)
     [java]  at 
org.apache.openjpa.kernel.AbstractPCData.toNestedFields(AbstractPCData.java:184)
     [java]  at 
org.apache.openjpa.kernel.AbstractPCData.toField(AbstractPCData.java:78)
     [java]  at 
org.apache.openjpa.kernel.PCDataImpl.loadField(PCDataImpl.java:197)
     [java]  at org.apache.openjpa.kernel.PCDataImpl.load(PCDataImpl.java:147)
     [java]  at 
org.apache.openjpa.datacache.DataCacheStoreManager.initialize(DataCacheStoreManager.java:343)
     [java]  at 
org.apache.openjpa.kernel.DelegatingStoreManager.initialize(DelegatingStoreManager.java:111)
     [java]  at 
org.apache.openjpa.kernel.ROPStoreManager.initialize(ROPStoreManager.java:57)
     [java]  at 
org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:894)
     [java]  at kodo.kernel.KodoBroker.initialize(KodoBroker.java:65)

Reason behind the above exception is because when application identity class is 
used;
In openJPA, ObjectId is generated by enhancer generated method 
pcnewObjectIdInstance and it returns wrapped identity class
 like as follows.
     public Object pcNewObjectIdInstance()
     {
          return new ObjectId(ApplicationIdentityIdClass.class, new AppId());
     }
 So, the change was not affected to OpenJPA code.
 However, in OpenJPA derived products like Kodo, pcNewObjectIdInstance returns 
raw application identity class instance.
 Due to this  "oidList.add((OpenJPAId) sm.getObjectId())" throws classcast 
exception. 


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to