OpenJPA
  1. OpenJPA
  2. OPENJPA-1569

@Strategy triggers an InvalidStateException for fields which are declared as Java interfaces

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 1.2.2, 2.0.0-beta2
    • Fix Version/s: 1.2.3, 2.0.0
    • Component/s: kernel
    • Labels:
      None
    • Environment:
      MacOS X, Spring 3.0, Maven
    • Patch Info:
      Patch Available

      Description

      The @Strategy annotation works fine for classes but does not work if the field is a Java interface. Consider:

      @Persistent
      @Strategy("SimpleHandler")
      @Column(name="address_packed")
      private BaseAddress address;
      public BaseAddress getAddress()

      { return address; }

      public void setAddress(BaseAddress address)

      { this.address = address; }

      This works perfectly if BaseAddress is defined as a class but results in an InvalidStateException if it is an interface:

      <openjpa-2.0.0-beta2-rexported fatal user error> org.apache.openjpa.persistence.InvalidStateException: Encountered unmanaged object in persistent field "com.example.SimpleEntity.address" during flush. However, this field does not allow cascade persist. Set the cascade attribute for this field to CascadeType.PERSIST or CascadeType.ALL (JPA annotations) or "persist" or "all" (JPA orm.xml), or enable cascade-persist globally, or manually persist the related field value prior to flushing. You cannot flush unmanaged objects or graphs that have persistent associations to unmanaged objects.
      FailedObject: com.example.USAddress@4e0a39de
      at org.apache.openjpa.kernel.SingleFieldManager.preFlushPC(SingleFieldManager.java:767)
      at org.apache.openjpa.kernel.SingleFieldManager.preFlush(SingleFieldManager.java:614)
      at org.apache.openjpa.kernel.SingleFieldManager.preFlush(SingleFieldManager.java:575)
      at org.apache.openjpa.kernel.SingleFieldManager.preFlush(SingleFieldManager.java:491)
      at org.apache.openjpa.kernel.StateManagerImpl.preFlush(StateManagerImpl.java:2956)
      at org.apache.openjpa.kernel.PNewState.beforeFlush(PNewState.java:40)
      at org.apache.openjpa.kernel.StateManagerImpl.beforeFlush(StateManagerImpl.java:1048)
      at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2051)
      at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:2011)
      at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1782)
      at org.apache.openjpa.kernel.DelegatingBroker.flush(DelegatingBroker.java:1015)
      at org.apache.openjpa.persistence.EntityManagerImpl.flush(EntityManagerImpl.java:637)
      ... etc ...

      Here com.example.USAddress is a class which implements the BaseAddress interface.

      1. OPENJPA-1569-1.2.x.patch
        0.6 kB
        Heath Thomann
      2. patch.txt
        0.6 kB
        Jerry Carter

        Activity

        Jerry Carter created issue -
        Jerry Carter made changes -
        Field Original Value New Value
        Priority Major [ 3 ] Minor [ 4 ]
        Jerry Carter made changes -
        Attachment patch.txt [ 12439744 ]
        Donald Woods made changes -
        Assignee Donald Woods [ drwoods ]
        Donald Woods made changes -
        Patch Info [Patch Available]
        Component/s kernel [ 12311302 ]
        Donald Woods made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Fix Version/s 2.0.0 [ 12314019 ]
        Resolution Fixed [ 1 ]
        Donald Woods made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Heath Thomann made changes -
        Attachment OPENJPA-1569-1.2.x.patch [ 12466766 ]
        Rick Curtis made changes -
        Fix Version/s 1.2.2 [ 12313681 ]
        Affects Version/s 1.2.2 [ 12313681 ]
        Jeremy Bauer made changes -
        Resolution Fixed [ 1 ]
        Status Closed [ 6 ] Reopened [ 4 ]
        Jeremy Bauer made changes -
        Fix Version/s 1.2.3 [ 12314517 ]
        Fix Version/s 1.2.2 [ 12313681 ]
        Jeremy Bauer made changes -
        Status Reopened [ 4 ] Closed [ 6 ]
        Resolution Fixed [ 1 ]

          People

          • Assignee:
            Donald Woods
            Reporter:
            Jerry Carter
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development