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

JDK problems with defineClass and enum class types


    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.2.0
    • Fix Version/s: 1.2.1, 1.3.0
    • Component/s: kernel
    • Labels:


      This Issue was first presented on our dev mailing list:


      I have also shared some additional experiences with Abe to get his views, but haven't heard anything back yet. So, I will create this JIRA Issue and work it from there.

      The original problem was limited to the Sun JDK. But, in a soon-to-be-available update to the IBM JDK, the same problem surfaces. At least the same exception is presented. The actual call stack is different due to the different Sun and IBM packages, but it's a similar problem.

      Basically, we are having a problem with our TempClassLoader attempting to use the defineClass() method on the CascadeType enum class. Our javax.persistence.CascadeType version doesn't experience this problem because we use Class.forName() to load the javax classes. In this scenario, I have an alt.persistence.CascadeType that falls into our normal class definition processing and attempts to use defineClass(). This method invocation completes okay. But, later when our code attempts to access the metadata associated with this type, we get the ArrayStoreException from the JDK.

      I will post both a simple project that reproduces the problem as well as a "hack" patch that gets us around the problem. I also have a PMR opened against the IBM JDK to see if they can help resolve it.



        1. pmr.zip
          245 kB
          Kevin Sutter
        2. openjpa-646.patch
          2 kB
          Kevin Sutter

          Issue Links



              • Assignee:
                kwsutter Kevin Sutter
                kwsutter Kevin Sutter
              • Votes:
                0 Vote for this issue
                2 Start watching this issue


                • Created: