Uploaded image for project: 'OpenJPA'
  1. OpenJPA
  2. OPENJPA-1613

Exception thrown when enhancing a (property access) class that has an abstract @MappedSuperclass with no annotated properties

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.0.0-beta2, 2.0.0-beta3
    • 2.1.0
    • kernel
    • None

    Description

      If you have a class (using property access) that has an abstract @MappedSuperclass that happens to have no annotated methods, you get the following exception when enhancing:

      org.apache.openjpa.util.MetaDataException: "implicit property access" for class "org.apache.openjpa.persistence.simple.SubclassPerson" is not consistent with "implicit field access" used by its persistent superclass "org.apache.openjpa.persistence.simple.AbstractSuperclass". All persistent classes in an inheritance hierarchy must use a single implicit field or property based access style or explicitly declare an access style.

      Presumably the enhancer is deciding incorrectly that the superclass is using field access. A workaround is to annotate the superclass with @Access(AccessType.PROPERTY) so the enhancer doesn't make this assumption, but that is not JPA 1.0 backwards compatible.

      This did not occur in any of the OpenJPA 1.* versions

      Attachments

        1. OPENJPA-1613-failing-code-changes.diff
          6 kB
          Donald Woods
        2. OPENJPA-1613-tests.diff
          9 kB
          Donald Woods
        3. abstract-subclass.patch
          6 kB
          Simon Droscher

        Activity

          People

            techhusky Jeremy Bauer
            sdroscher Simon Droscher
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: