You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Kevin Sutter (JIRA)" <ji...@apache.org> on 2013/02/07 15:53:13 UTC

[jira] [Commented] (OPENJPA-2330) Stackoverflow due to endless recursive calls

    [ https://issues.apache.org/jira/browse/OPENJPA-2330?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13573553#comment-13573553 ] 

Kevin Sutter commented on OPENJPA-2330:
---------------------------------------

Hi,
Can you give some more details on your environment and the scenario that is causing this failure?  I can see where it looks like a potential issue with the PersistenceUtils, but what was the user scenario that got you into this mess?  We have some tests (junit, functional, cts) that utilize the PersistenceUtils.  We would need some more information, preferably a junit, in order to recreate the error.  Thanks!
                
> Stackoverflow due to endless recursive calls
> --------------------------------------------
>
>                 Key: OPENJPA-2330
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-2330
>             Project: OpenJPA
>          Issue Type: Bug
>    Affects Versions: 2.2.0, 2.2.1
>            Reporter: Guillaume Chauvet
>            Priority: Critical
>
> We wish to report another bug that generates a memory overflow resulting in an infinite recursive loop. Here are two stacktraces apparently from the same bug:
> First stacktrace sample :
> ================================================
> Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError
> 	at java.util.LinkedHashMap$KeyIterator.<init>(LinkedHashMap.java:383)
> 	at java.util.LinkedHashMap$KeyIterator.<init>(LinkedHashMap.java:383)
> 	at java.util.LinkedHashMap.newKeyIterator(LinkedHashMap.java:396)
> 	at java.util.HashMap$KeySet.iterator(HashMap.java:874)
> 	at java.util.HashSet.iterator(HashSet.java:153)
> 	at org.apache.openjpa.util.java$util$LinkedHashSet$proxy.iterator(Unknown Source)
> 	at java.util.AbstractCollection.toArray(AbstractCollection.java:120)
> 	at org.apache.openjpa.persistence.OpenJPAPersistenceUtil.isLoadedCollection(OpenJPAPersistenceUtil.java:240)
> 	at org.apache.openjpa.persistence.OpenJPAPersistenceUtil.isLoadedField(OpenJPAPersistenceUtil.java:212)
> 	at org.apache.openjpa.persistence.OpenJPAPersistenceUtil.isLoaded(OpenJPAPersistenceUtil.java:161)
> 	at org.apache.openjpa.persistence.OpenJPAPersistenceUtil.isLoadedArray(OpenJPAPersistenceUtil.java:265)
> 	at org.apache.openjpa.persistence.OpenJPAPersistenceUtil.isLoadedCollection(OpenJPAPersistenceUtil.java:242)
> 	at org.apache.openjpa.persistence.OpenJPAPersistenceUtil.isLoadedField(OpenJPAPersistenceUtil.java:212)
> 	at org.apache.openjpa.persistence.OpenJPAPersistenceUtil.isLoaded(OpenJPAPersistenceUtil.java:161)
> 	at org.apache.openjpa.persistence.OpenJPAPersistenceUtil.isLoadedField(OpenJPAPersistenceUtil.java:223)
> 	at org.apache.openjpa.persistence.OpenJPAPersistenceUtil.isLoaded(OpenJPAPersistenceUtil.java:161)
> 	at org.apache.openjpa.persistence.OpenJPAPersistenceUtil.isLoadedField(OpenJPAPersistenceUtil.java:223)
> 	at org.apache.openjpa.persistence.OpenJPAPersistenceUtil.isLoaded(OpenJPAPersistenceUtil.java:161)
> 	at org.apache.openjpa.persistence.OpenJPAPersistenceUtil.isLoadedArray(OpenJPAPersistenceUtil.java:265)
> 	at org.apache.openjpa.persistence.OpenJPAPersistenceUtil.isLoadedCollection(OpenJPAPersistenceUtil.java:242)
> 	at org.apache.openjpa.persistence.OpenJPAPersistenceUtil.isLoadedField(OpenJPAPersistenceUtil.java:212)
> 	at org.apache.openjpa.persistence.OpenJPAPersistenceUtil.isLoaded(OpenJPAPersistenceUtil.java:161)
> 	at org.apache.openjpa.persistence.OpenJPAPersistenceUtil.isLoadedField(OpenJPAPersistenceUtil.java:223)
> 	at org.apache.openjpa.persistence.OpenJPAPersistenceUtil.isLoaded(OpenJPAPersistenceUtil.java:161)
> [...]
> Second stacktrace sample :
> ================================================
> Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError
> 	at java.util.HashMap$EntrySet.size(HashMap.java:963)
> 	at org.apache.openjpa.util.ProxyMaps$ProxyEntrySetImpl.size(ProxyMaps.java:255)
> 	at java.util.AbstractCollection.toArray(AbstractCollection.java:119)
> 	at org.apache.openjpa.persistence.OpenJPAPersistenceUtil.isLoadedMap(OpenJPAPersistenceUtil.java:288)
> 	at org.apache.openjpa.persistence.OpenJPAPersistenceUtil.isLoadedField(OpenJPAPersistenceUtil.java:215)
> 	at org.apache.openjpa.persistence.OpenJPAPersistenceUtil.isLoaded(OpenJPAPersistenceUtil.java:161)
> 	at org.apache.openjpa.persistence.OpenJPAPersistenceUtil.isLoadedArray(OpenJPAPersistenceUtil.java:265)
> 	at org.apache.openjpa.persistence.OpenJPAPersistenceUtil.isLoadedCollection(OpenJPAPersistenceUtil.java:242)
> 	at org.apache.openjpa.persistence.OpenJPAPersistenceUtil.isLoadedField(OpenJPAPersistenceUtil.java:212)
> 	at org.apache.openjpa.persistence.OpenJPAPersistenceUtil.isLoaded(OpenJPAPersistenceUtil.java:161)
> 	at org.apache.openjpa.persistence.OpenJPAPersistenceUtil.isLoadedArray(OpenJPAPersistenceUtil.java:265)
> 	at org.apache.openjpa.persistence.OpenJPAPersistenceUtil.isLoadedCollection(OpenJPAPersistenceUtil.java:242)
> 	at org.apache.openjpa.persistence.OpenJPAPersistenceUtil.isLoadedField(OpenJPAPersistenceUtil.java:212)
> 	at org.apache.openjpa.persistence.OpenJPAPersistenceUtil.isLoaded(OpenJPAPersistenceUtil.java:161)
> 	at org.apache.openjpa.persistence.OpenJPAPersistenceUtil.isLoadedField(OpenJPAPersistenceUtil.java:223)
> 	at org.apache.openjpa.persistence.OpenJPAPersistenceUtil.isLoaded(OpenJPAPersistenceUtil.java:161)
> 	at org.apache.openjpa.persistence.OpenJPAPersistenceUtil.isLoadedField(OpenJPAPersistenceUtil.java:223)
> 	at org.apache.openjpa.persistence.OpenJPAPersistenceUtil.isLoaded(OpenJPAPersistenceUtil.java:161)
> [...]

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira