OpenJPA
  1. OpenJPA
  2. OPENJPA-2110

Abstract entity causes standard openjpa collection proxies to be injected even if custom collections are used.

    Details

      Description

      When using an abstract entity, all collections defined in this super class are incorrectly filled in with standard OpenJPA collection implementations. I'd like to have my own collection implementation inside my entities.

      E.g.: private Set<Item> items = new MyHashSet<Item>();
      should be a specialized collection proxy, but when an abstract entity comes in only the standard OpenJPA collection proxy is used.

      I proved this statement by creating two Eclipse sample projects which you can find in the attachments of this ticket. This problem occures in both of the newest version of OpenJPA.
      To execute the JUnit test go to src/openjpa/test/FailingTest.java and hit run. You will see an error displayed in the console. To get this test case green only openjpa.model.AbstractCategory has to be "unabstract". Just remove "abstract" in its class definition.

      I hope my informations help you to fix this issue in a reasonable time.

      1. openjpa.2.1.1.proxybug.zip
        6.19 MB
        Johannes Leimer
      2. openjpa.1.2.2.proxybug.zip
        4.97 MB
        Johannes Leimer

        Activity

        Hide
        Rick Curtis added a comment -

        ommitted testcase and code fix to trunk at revision 1324759.

        Show
        Rick Curtis added a comment - ommitted testcase and code fix to trunk at revision 1324759.
        Hide
        Rick Curtis added a comment -

        Johannes –

        Thanks for the complete testcase! Sorry about taking so long to fix this one.

        Thanks,
        Rick

        Show
        Rick Curtis added a comment - Johannes – Thanks for the complete testcase! Sorry about taking so long to fix this one. Thanks, Rick
        Hide
        Johannes Leimer added a comment -

        Great job Rick.
        Thank you for your time.

        I think it's good manner to provide a test case. TDD for the win
        Anyway, thank you for your acknowledgment.

        Kind Regards,
        Johannes

        Show
        Johannes Leimer added a comment - Great job Rick. Thank you for your time. I think it's good manner to provide a test case. TDD for the win Anyway, thank you for your acknowledgment. Kind Regards, Johannes
        Hide
        Johannes Leimer added a comment -

        verified test case

        Show
        Johannes Leimer added a comment - verified test case

          People

          • Assignee:
            Rick Curtis
            Reporter:
            Johannes Leimer
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development