openjpa-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rick Curtis <curti...@gmail.com>
Subject Re: FieldMapping for entity incorrect, wrong field read from object
Date Wed, 25 Apr 2012 16:22:43 GMT
> Should a JIRA ticket be created for this.
Yes, please do. Thanks for taking the time to come up with a small UT.

Thanks,
Rick

On Wed, Apr 25, 2012 at 11:00 AM, Mike Goldner <mike.goldner@gmail.com>wrote:

> Rick,
>
> OK, so in the process of trying to create a stand-alone reproducible test
> of this problem I have figured out the issue.
>
> I was not including my @MappedSuperclass entity in the persistence.xml as
> a managed entity.  This seems to interfere/corrupt the internal OpenJPA
> field indexing.
>
> While it was an error on my part to omit the @MappedSuperclass from the
> persistence.xml, it is somewhat confusing because the documentation
> stresses that the class annotated with @MappedSuperClass is *not* an
> entity.
>
> Also, the way in which the error manifests is extremely subtle and
> confusing.  I'm assuming that the enhancer is responsible for this.  I'd
> expect is to behave differently in this situation.
>
> Should a JIRA ticket be created for this.
>
> I do have a pretty simple maven project with a reproducible test for this
> issue if you are interested.
>
> Thanks,
>
> Mike
>
> On 4/25/12 9:50 AM, "Rick Curtis" <curtisr7@gmail.com> wrote:
>
> >Mike -
> >
> >Can you post the Entities that you're having problems with?
> >
> >Thanks,
> >Rick
> >
> >On Tue, Apr 24, 2012 at 10:47 PM, Mike Goldner
> ><mike.goldner@gmail.com>wrote:
> >
> >> I have an entity that extends an abstract MappedSuperClass class.  The
> >> abstract class only declares an ID and Version field.
> >>
> >> When I attempt to persist the object, I get the following error:
> >>
> >> 2185 [main] DEBUG openjpa.Runtime  - An exception occurred while ending
> >>the
> >> transaction.  This exception will be re-thrown.
> >> java.lang.ClassCastException: java.util.ArrayList cannot be cast to
> >> java.lang.String
> >> at
> >>
> >>
> >>org.apache.openjpa.kernel.TransferFieldManager.fetchStringField(TransferF
> >>iel
> >> dManager.java:76)
> >>
> >> I'm not familiar with the OpenJPA codebase, but I made an attempt to see
> >> what was happening via the Eclipse debugger.
> >>
> >> It seems that while in the StateManagerImpl class there is a mismatch in
> >> field numbering used to retrieve fields from my entity.  In my case, I
> >>am
> >> expecting to fetch a String value for my field.  While in the
> >> "fetchString(int field)" method, I have a field number that corresponds
> >>to
> >> the field index of the _meta._allFields array.  However, when the code
> >> proceeds to the "fetchStringField(int field)" method, it seems to
> >>return a
> >> completely different field (an ArrayList, which explains the exception).
> >>
> >> While it may be coincidence, I notice that there is a _pc field that
> >> appears
> >> to have a representation of my entity fields that is sorted
> >>alphabetically
> >> and does not match the ordering of the _meta._allFields field.
> >>
> >> I am running OpenJPA 2.2.0 with Java 6 using Derby as the DB.  I am
> >> enhancing the classes at compile time using the openjpa-maven-plugin.
> >>
> >> Mike Goldner
> >>
> >>
> >>
> >
> >
> >--
> >*Rick Curtis*
>
>
>


-- 
*Rick Curtis*

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message