[ 
https://issues.apache.org/jira/browse/OPENJPA-1901?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Dick updated OPENJPA-1901:
----------------------------------

    Due Date:     (was: 31/Dec/10)

> QueryCacheStoreQuery$CachedObjectId that is not Serializable
> ------------------------------------------------------------
>
>                 Key: OPENJPA-1901
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-1901
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: datacache
>    Affects Versions: 2.0.0, 2.0.1
>            Reporter: Kevin Sutter
>
> In OpenJPA 2.0, OpenJPA tries to put the query result from JOIN query into 
> query cache, in addition to put entities into data cache.
> However, the QueryResult containes Object[] of 
> org.apache.openjpa.datacache.QueryCacheStoreQuery$CachedObjectId that is not 
> Serializable and cause this issue.
> OpenJPA need to be fixed to make 
> org.apache.openjpa.datacache.QueryCacheStoreQuery$CachedObjectId serializable.
> Currently,  manually adding Serializable to the code works for measuring the 
> performance, but we need a more permanent fix.
> I also have a concern whether this type of fix has a ripple effect.  The 
> CachedObjectId can easily be fixed to be Serializable, but it looks like 
> other inner classes of QueryCacheStoreQuery are not Serializable either.  Do 
> these (and potentially other attributes) need to be Serializable as well?  Do 
> we need a Unit Test to verify this Serializable capability?
> Final portion of call stack when the Exception happens:
> Caused by: java.io.NotSerializableException: 
> org.apache.openjpa.datacache.QueryCacheStoreQuery$CachedObjectId
>       at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1113)
>       at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1343)
>       at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1107)
>       at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:325)
>       at java.util.ArrayList.writeObject(ArrayList.java:595)
>       at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:618)
>       at 
> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:972)
>       at 
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1431)
>       at 
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1382)
>       at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1111)
>       at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:325)

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to