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.