[ 
https://issues.apache.org/jira/browse/OPENJPA-536?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Amy Yang updated OPENJPA-536:
-----------------------------

    Description: 
There are 3 classes: Item, Artist and Person. Artist extends Person. 
Invoking JPAFacadeHelper.getMetaData(emf, Item.class) will cause 
OutOfMemoryError thrown by 
org.apache.openjpa.meta.MetaDataRepository.processBuffer().



  was:
Comparison of such classes will return a incorrect result: Item, Artist and 
Person. Artist extends Person. The comparator will report:
Item < Person
Person < Artist
Artist < Item
It will cause OutOfMemoryError thrown by 
org.apache.openjpa.meta.MetaDataRepository.processBuffer().

        Summary: getMetaData() causes OutOfMemoryError under some cases  (was: 
InheritanceComparator does not work under some cases)

It is because when constructing the TreeSet, the Item will be the root. The 
handling order will be Item, Person, Artist.
The the comparator will report Artist < Item and Person > Item. So the TreeSet 
will be 
    Item
  /         \
Artist   Person

Then when traversing the TreeSet and pop the first one, after Item is removed, 
the TreeSet will be 
    Person
   /
Artist
The comparator will report Person < Artist so the TreeSet is incorrect.

> getMetaData() causes OutOfMemoryError under some cases
> ------------------------------------------------------
>
>                 Key: OPENJPA-536
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-536
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jpa
>    Affects Versions: 1.0.2, 1.0.3
>         Environment: Sun JDK 5
>            Reporter: Amy Yang
>            Priority: Blocker
>
> There are 3 classes: Item, Artist and Person. Artist extends Person. 
> Invoking JPAFacadeHelper.getMetaData(emf, Item.class) will cause 
> OutOfMemoryError thrown by 
> org.apache.openjpa.meta.MetaDataRepository.processBuffer().

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to