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

Bidirectional OneToOne relation incorrectly set in loadEagerJoin

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.2.0, 1.2.1, 1.3.0, 2.0.0-M1, 2.0.0-M2
    • Fix Version/s: 1.2.1, 1.3.0, 2.0.0-M2
    • Component/s: None
    • Labels:
      None

      Description

      A test scenario uncovers a bug in eager loading bidirectional OneToOne relation.

      OneOneParent has a bidirectional OneToOne relation with OneOneChild as annotated as following:

      @Entity
      public class OneOneParent {
      ...
      @OneToOne(mappedBy="parent")
      private OneOneChild child;
      }

      @Entity
      public class OneOneChild {
      ...
      @OneToOne
      private OneOneParent parent;
      }

      Testcase:

      String query = "select c FROM OneOneChild c";
      Query q = em.createQuery(query);
      List list = q.getResultList();

      for (int i = 0; i < list.size(); i++)

      { OneOneChild c = (OneOneChild) list.get(i); assertEquals(c, c.getParent().getChild()); }

      We expect c equals c.getParent().getChild(), but instead got assertion failure.

      It seems to be a bug introduced in performance improvement work (the related issues: OPENJPA-292 & OPENJPA-744).

      1. OPENJPA-925-branches12x.patch
        10 kB
        Donald Woods
      2. OPENJPA-925-branches12x.patch
        10 kB
        Donald Woods

        Issue Links

          Activity

          Hide
          drwoods Donald Woods added a comment -

          Catalina, this looks like like it resolved my testcase for OPENJPA-919, so can we get this back ported to the 1.2.x branch?
          I'll create a patch and attach it, as I need to apply this to my local 1.2.x code and rerun the failing EJB TCK testcases for Geronimo to verify that this did fix our problems.

          Show
          drwoods Donald Woods added a comment - Catalina, this looks like like it resolved my testcase for OPENJPA-919 , so can we get this back ported to the 1.2.x branch? I'll create a patch and attach it, as I need to apply this to my local 1.2.x code and rerun the failing EJB TCK testcases for Geronimo to verify that this did fix our problems.
          Hide
          drwoods Donald Woods added a comment -

          Changes back ported from trunk to branches/1.2.x. This resolved the junit testcase attached in OPENJPA-919, but still need to run the EJB TCK on Geronimo before I can say its completely resolved.

          Show
          drwoods Donald Woods added a comment - Changes back ported from trunk to branches/1.2.x. This resolved the junit testcase attached in OPENJPA-919 , but still need to run the EJB TCK on Geronimo before I can say its completely resolved.
          Hide
          drwoods Donald Woods added a comment -

          Catalina, please apply this fix to the 1.2.x branch, as it fixed the EJB TCK failures we were seeing in Geronimo 2.1.4 with OpenEJB 3.0.1. Thanks.

          Show
          drwoods Donald Woods added a comment - Catalina, please apply this fix to the 1.2.x branch, as it fixed the EJB TCK failures we were seeing in Geronimo 2.1.4 with OpenEJB 3.0.1. Thanks.
          Hide
          drwoods Donald Woods added a comment -

          Updated patch for branches/1.2.x which includes the latest updates made to trunk in r745597.

          Show
          drwoods Donald Woods added a comment - Updated patch for branches/1.2.x which includes the latest updates made to trunk in r745597.
          Hide
          fancy Catalina Wei added a comment -

          fix checked in under trunk revision r745408, and 1.3.x at r745409.

          Show
          fancy Catalina Wei added a comment - fix checked in under trunk revision r745408, and 1.3.x at r745409.
          Hide
          drwoods Donald Woods added a comment -

          This also needs to be applied against the 1.2.x branch to resolve a EJB TCK issue found by Geronimo.

          Show
          drwoods Donald Woods added a comment - This also needs to be applied against the 1.2.x branch to resolve a EJB TCK issue found by Geronimo.
          Hide
          drwoods Donald Woods added a comment -

          Also applied to branches/1.2.x by Mike, so marking as resolved. thanks.

          Show
          drwoods Donald Woods added a comment - Also applied to branches/1.2.x by Mike, so marking as resolved. thanks.

            People

            • Assignee:
              mikedd Michael Dick
              Reporter:
              fancy Catalina Wei
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development