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

ManagedCache conflict due adding an entity 2 times in the same query.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.0.1, 2.1.0, 2.2.0
    • 1.2.3, 2.0.2, 2.1.2, 2.2.0
    • kernel
    • None

    Description

      I have a complex query which creates the following error:

      <openjpa-2.2.0-tiss-2-rexported nonfatal user error> org.apache.openjpa.persistence.ArgumentException: Cannot load object with id "26301". Instance "at.ac.tuwien.tiss.curriculum.be.entities.DefaultCourse@6e267b76" with the same id already exists in the L1 cache. This can occur when you assign an existing id to a new instance, and before flushing attempt to load the existing instance for that id.
      FailedObject: at.ac.tuwien.tiss.curriculum.be.entities.DefaultCourse-26301
      at org.apache.openjpa.kernel.ManagedCache.add(ManagedCache.java:126)
      at org.apache.openjpa.kernel.BrokerImpl.setStateManager(BrokerImpl.java:4117)
      at org.apache.openjpa.kernel.StateManagerImpl.initialize(StateManagerImpl.java:391)
      at org.apache.openjpa.kernel.StateManagerImpl.initialize(StateManagerImpl.java:340)
      at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initializeState(JDBCStoreManager.java:378)

      It seems that this entity gets loaded from the db twice in the same query.

      While hitting the problem, the StateManagers have the following _flags:

      orig _flags= 602 = 0010 0101 1010 SAVE LOADED READ_LOCKED OID_ASSIGNED FLUSHED
      sm _flags= 16 = 0000 0001 0000 READ_LOCKED

      And it is really only 1 instance which makes this problem. If I set the 'orig' variable to null in the debugger, the test runs fine.

      Attachments

        1. OPENJPA-2107.patch
          1 kB
          Richard G. Curtis

        Issue Links

          Activity

            People

              jpaheath Heath Thomann
              struberg Mark Struberg
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: