PCEnhancer incorrectly generates writes readExternal 
-----------------------------------------------------

                 Key: OPENJPA-1704
                 URL: https://issues.apache.org/jira/browse/OPENJPA-1704
             Project: OpenJPA
          Issue Type: Bug
          Components: kernel
    Affects Versions: 2.0.0, 1.2.2
            Reporter: Rick Curtis
            Assignee: Rick Curtis


OPENJPA-1400 introduced a bug that can be encountered when reading a streamed 
object under the following circumstances:
- Using a serializable DetachedStateManager  (<property 
name="openjpa.DetachState" value="fetch-groups(DetachedStateField=true)"/>) 
- The Entity needs to have a version field AND either:
  - If no inheritance, a 'proxyable' (ie: java.sql.Date, java.util.List) field 
with a name that is lexicographically after the version field.
  - If using inheritance, a 'proxyable' (ie: java.sql.Date, java.util.List) 
field in a child class.

The bug could manifest itself in a number of ways. Below is the one I was able 
to reproduce.
java.lang.IllegalArgumentException
        at 
org.apache.openjpa.persistence.inheritance.serializable.A.pcProvideField(A.java)
        at 
org.apache.openjpa.kernel.DetachedStateManager.proxyDetachedDeserialized(DetachedStateManager.java:438)
        at 
org.apache.openjpa.persistence.inheritance.serializable.A.readExternal(A.java)
        at 
java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
        at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
        at 
org.apache.openjpa.persistence.inheritance.serializable.TestSerialization.serializeObject(TestSerialization.java:105)
        at 
org.apache.openjpa.persistence.inheritance.serializable.TestSerialization.testRoundTrip(TestSerialization.java:48)
        ...

-- 
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