[
https://issues.apache.org/jira/browse/OPENJPA-551?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
kobe valiant updated OPENJPA-551:
---------------------------------
Description:
There's StackOverflowError after EntityManager.persist many times, say about
1500 times
Here's part of stack trace:
Exception in thread "Timer-0" java.lang.StackOverflowError
at java.security.AccessController.doPrivileged(Native Method)
at
org.apache.openjpa.enhance.Reflection.getDeclaredField(Reflection.java:201)
at org.apache.openjpa.enhance.Reflection.findField(Reflection.java:180)
at
org.apache.openjpa.enhance.com$tailenet$songstat$domain$Record$pcsubclass.pcProvideField(Unknown
Source)
at
org.apache.openjpa.kernel.StateManagerImpl.provideField(StateManagerImpl.java:2978)
at
org.apache.openjpa.kernel.SaveFieldManager.isFieldEqual(SaveFieldManager.java:185)
at
org.apache.openjpa.kernel.StateManagerImpl.dirtyCheck(StateManagerImpl.java:807)
at
org.apache.openjpa.kernel.BrokerImpl$ManagedCache.dirtyCheck(BrokerImpl.java:4621)
at
org.apache.openjpa.kernel.BrokerImpl$ManagedCache.access$000(BrokerImpl.java:4361)
at
org.apache.openjpa.kernel.BrokerImpl.hasTransactionalObjects(BrokerImpl.java:3740)
at org.apache.openjpa.kernel.BrokerImpl.setDirty(BrokerImpl.java:3857)
at
org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1572)
at
org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1485)
at
org.apache.openjpa.kernel.StateManagerImpl.dirtyCheck(StateManagerImpl.java:808)
at
org.apache.openjpa.kernel.BrokerImpl$ManagedCache.dirtyCheck(BrokerImpl.java:4621)
at
org.apache.openjpa.kernel.BrokerImpl$ManagedCache.access$000(BrokerImpl.java:4361)
at
org.apache.openjpa.kernel.BrokerImpl.hasTransactionalObjects(BrokerImpl.java:3740)
at org.apache.openjpa.kernel.BrokerImpl.setDirty(BrokerImpl.java:3857)
at
org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1572)
at
org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1485)
at
org.apache.openjpa.kernel.StateManagerImpl.dirtyCheck(StateManagerImpl.java:808)
at
org.apache.openjpa.kernel.BrokerImpl$ManagedCache.dirtyCheck(BrokerImpl.java:4621)
at
org.apache.openjpa.kernel.BrokerImpl$ManagedCache.access$000(BrokerImpl.java:4361)
at
org.apache.openjpa.kernel.BrokerImpl.hasTransactionalObjects(BrokerImpl.java:3740)
at org.apache.openjpa.kernel.BrokerImpl.setDirty(BrokerImpl.java:3857)
at
org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1572)
at
org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1485)
at
org.apache.openjpa.kernel.StateManagerImpl.dirtyCheck(StateManagerImpl.java:808)
at
org.apache.openjpa.kernel.BrokerImpl$ManagedCache.dirtyCheck(BrokerImpl.java:4621)
at
org.apache.openjpa.kernel.BrokerImpl$ManagedCache.access$000(BrokerImpl.java:4361)
at
org.apache.openjpa.kernel.BrokerImpl.hasTransactionalObjects(BrokerImpl.java:3740)
at org.apache.openjpa.kernel.BrokerImpl.setDirty(BrokerImpl.java:3857)
at
org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1572)
at
org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1485)
at
org.apache.openjpa.kernel.StateManagerImpl.dirtyCheck(StateManagerImpl.java:808)
at
org.apache.openjpa.kernel.BrokerImpl$ManagedCache.dirtyCheck(BrokerImpl.java:4621)
at
org.apache.openjpa.kernel.BrokerImpl$ManagedCache.access$000(BrokerImpl.java:4361)
at
org.apache.openjpa.kernel.BrokerImpl.hasTransactionalObjects(BrokerImpl.java:3740)
at org.apache.openjpa.kernel.BrokerImpl.setDirty(BrokerImpl.java:3857)
at
org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1572)
at
org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1485)
at
org.apache.openjpa.kernel.StateManagerImpl.dirtyCheck(StateManagerImpl.java:808)
at
org.apache.openjpa.kernel.BrokerImpl$ManagedCache.dirtyCheck(BrokerImpl.java:4621)
at
org.apache.openjpa.kernel.BrokerImpl$ManagedCache.access$000(BrokerImpl.java:4361)
at
org.apache.openjpa.kernel.BrokerImpl.hasTransactionalObjects(BrokerImpl.java:3740)
at org.apache.openjpa.kernel.BrokerImpl.setDirty(BrokerImpl.java:3857)
at
org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1572)
at
org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1485)
at
org.apache.openjpa.kernel.StateManagerImpl.dirtyCheck(StateManagerImpl.java:808)
at
org.apache.openjpa.kernel.BrokerImpl$ManagedCache.dirtyCheck(BrokerImpl.java:4621)
at
org.apache.openjpa.kernel.BrokerImpl$ManagedCache.access$000(BrokerImpl.java:4361)
at
org.apache.openjpa.kernel.BrokerImpl.hasTransactionalObjects(BrokerImpl.java:3740)
was:
I don't have any idea why and when it happens.
Here's part of stack trace:
Exception in thread "Timer-0" java.lang.StackOverflowError
at java.security.AccessController.doPrivileged(Native Method)
at
org.apache.openjpa.enhance.Reflection.getDeclaredField(Reflection.java:201)
at org.apache.openjpa.enhance.Reflection.findField(Reflection.java:180)
at
org.apache.openjpa.enhance.com$tailenet$songstat$domain$Record$pcsubclass.pcProvideField(Unknown
Source)
at
org.apache.openjpa.kernel.StateManagerImpl.provideField(StateManagerImpl.java:2978)
at
org.apache.openjpa.kernel.SaveFieldManager.isFieldEqual(SaveFieldManager.java:185)
at
org.apache.openjpa.kernel.StateManagerImpl.dirtyCheck(StateManagerImpl.java:807)
at
org.apache.openjpa.kernel.BrokerImpl$ManagedCache.dirtyCheck(BrokerImpl.java:4621)
at
org.apache.openjpa.kernel.BrokerImpl$ManagedCache.access$000(BrokerImpl.java:4361)
at
org.apache.openjpa.kernel.BrokerImpl.hasTransactionalObjects(BrokerImpl.java:3740)
at org.apache.openjpa.kernel.BrokerImpl.setDirty(BrokerImpl.java:3857)
at
org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1572)
at
org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1485)
at
org.apache.openjpa.kernel.StateManagerImpl.dirtyCheck(StateManagerImpl.java:808)
at
org.apache.openjpa.kernel.BrokerImpl$ManagedCache.dirtyCheck(BrokerImpl.java:4621)
at
org.apache.openjpa.kernel.BrokerImpl$ManagedCache.access$000(BrokerImpl.java:4361)
at
org.apache.openjpa.kernel.BrokerImpl.hasTransactionalObjects(BrokerImpl.java:3740)
at org.apache.openjpa.kernel.BrokerImpl.setDirty(BrokerImpl.java:3857)
at
org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1572)
at
org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1485)
at
org.apache.openjpa.kernel.StateManagerImpl.dirtyCheck(StateManagerImpl.java:808)
at
org.apache.openjpa.kernel.BrokerImpl$ManagedCache.dirtyCheck(BrokerImpl.java:4621)
at
org.apache.openjpa.kernel.BrokerImpl$ManagedCache.access$000(BrokerImpl.java:4361)
at
org.apache.openjpa.kernel.BrokerImpl.hasTransactionalObjects(BrokerImpl.java:3740)
at org.apache.openjpa.kernel.BrokerImpl.setDirty(BrokerImpl.java:3857)
at
org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1572)
at
org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1485)
at
org.apache.openjpa.kernel.StateManagerImpl.dirtyCheck(StateManagerImpl.java:808)
at
org.apache.openjpa.kernel.BrokerImpl$ManagedCache.dirtyCheck(BrokerImpl.java:4621)
at
org.apache.openjpa.kernel.BrokerImpl$ManagedCache.access$000(BrokerImpl.java:4361)
at
org.apache.openjpa.kernel.BrokerImpl.hasTransactionalObjects(BrokerImpl.java:3740)
at org.apache.openjpa.kernel.BrokerImpl.setDirty(BrokerImpl.java:3857)
at
org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1572)
at
org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1485)
at
org.apache.openjpa.kernel.StateManagerImpl.dirtyCheck(StateManagerImpl.java:808)
at
org.apache.openjpa.kernel.BrokerImpl$ManagedCache.dirtyCheck(BrokerImpl.java:4621)
at
org.apache.openjpa.kernel.BrokerImpl$ManagedCache.access$000(BrokerImpl.java:4361)
at
org.apache.openjpa.kernel.BrokerImpl.hasTransactionalObjects(BrokerImpl.java:3740)
at org.apache.openjpa.kernel.BrokerImpl.setDirty(BrokerImpl.java:3857)
at
org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1572)
at
org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1485)
at
org.apache.openjpa.kernel.StateManagerImpl.dirtyCheck(StateManagerImpl.java:808)
at
org.apache.openjpa.kernel.BrokerImpl$ManagedCache.dirtyCheck(BrokerImpl.java:4621)
at
org.apache.openjpa.kernel.BrokerImpl$ManagedCache.access$000(BrokerImpl.java:4361)
at
org.apache.openjpa.kernel.BrokerImpl.hasTransactionalObjects(BrokerImpl.java:3740)
at org.apache.openjpa.kernel.BrokerImpl.setDirty(BrokerImpl.java:3857)
at
org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1572)
at
org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1485)
at
org.apache.openjpa.kernel.StateManagerImpl.dirtyCheck(StateManagerImpl.java:808)
at
org.apache.openjpa.kernel.BrokerImpl$ManagedCache.dirtyCheck(BrokerImpl.java:4621)
at
org.apache.openjpa.kernel.BrokerImpl$ManagedCache.access$000(BrokerImpl.java:4361)
at
org.apache.openjpa.kernel.BrokerImpl.hasTransactionalObjects(BrokerImpl.java:3740)
Summary: Exception in thread "Timer-0" java.lang.StackOverflowError
after persist many times (was: Exception in thread "Timer-0"
java.lang.StackOverflowError)
> Exception in thread "Timer-0" java.lang.StackOverflowError after persist many
> times
> -----------------------------------------------------------------------------------
>
> Key: OPENJPA-551
> URL: https://issues.apache.org/jira/browse/OPENJPA-551
> Project: OpenJPA
> Issue Type: Bug
> Affects Versions: 1.0.2
> Environment: windows xp
> Reporter: kobe valiant
> Priority: Blocker
>
> There's StackOverflowError after EntityManager.persist many times, say about
> 1500 times
> Here's part of stack trace:
> Exception in thread "Timer-0" java.lang.StackOverflowError
> at java.security.AccessController.doPrivileged(Native Method)
> at
> org.apache.openjpa.enhance.Reflection.getDeclaredField(Reflection.java:201)
> at org.apache.openjpa.enhance.Reflection.findField(Reflection.java:180)
> at
> org.apache.openjpa.enhance.com$tailenet$songstat$domain$Record$pcsubclass.pcProvideField(Unknown
> Source)
> at
> org.apache.openjpa.kernel.StateManagerImpl.provideField(StateManagerImpl.java:2978)
> at
> org.apache.openjpa.kernel.SaveFieldManager.isFieldEqual(SaveFieldManager.java:185)
> at
> org.apache.openjpa.kernel.StateManagerImpl.dirtyCheck(StateManagerImpl.java:807)
> at
> org.apache.openjpa.kernel.BrokerImpl$ManagedCache.dirtyCheck(BrokerImpl.java:4621)
> at
> org.apache.openjpa.kernel.BrokerImpl$ManagedCache.access$000(BrokerImpl.java:4361)
> at
> org.apache.openjpa.kernel.BrokerImpl.hasTransactionalObjects(BrokerImpl.java:3740)
> at org.apache.openjpa.kernel.BrokerImpl.setDirty(BrokerImpl.java:3857)
> at
> org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1572)
> at
> org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1485)
> at
> org.apache.openjpa.kernel.StateManagerImpl.dirtyCheck(StateManagerImpl.java:808)
> at
> org.apache.openjpa.kernel.BrokerImpl$ManagedCache.dirtyCheck(BrokerImpl.java:4621)
> at
> org.apache.openjpa.kernel.BrokerImpl$ManagedCache.access$000(BrokerImpl.java:4361)
> at
> org.apache.openjpa.kernel.BrokerImpl.hasTransactionalObjects(BrokerImpl.java:3740)
> at org.apache.openjpa.kernel.BrokerImpl.setDirty(BrokerImpl.java:3857)
> at
> org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1572)
> at
> org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1485)
> at
> org.apache.openjpa.kernel.StateManagerImpl.dirtyCheck(StateManagerImpl.java:808)
> at
> org.apache.openjpa.kernel.BrokerImpl$ManagedCache.dirtyCheck(BrokerImpl.java:4621)
> at
> org.apache.openjpa.kernel.BrokerImpl$ManagedCache.access$000(BrokerImpl.java:4361)
> at
> org.apache.openjpa.kernel.BrokerImpl.hasTransactionalObjects(BrokerImpl.java:3740)
> at org.apache.openjpa.kernel.BrokerImpl.setDirty(BrokerImpl.java:3857)
> at
> org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1572)
> at
> org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1485)
> at
> org.apache.openjpa.kernel.StateManagerImpl.dirtyCheck(StateManagerImpl.java:808)
> at
> org.apache.openjpa.kernel.BrokerImpl$ManagedCache.dirtyCheck(BrokerImpl.java:4621)
> at
> org.apache.openjpa.kernel.BrokerImpl$ManagedCache.access$000(BrokerImpl.java:4361)
> at
> org.apache.openjpa.kernel.BrokerImpl.hasTransactionalObjects(BrokerImpl.java:3740)
> at org.apache.openjpa.kernel.BrokerImpl.setDirty(BrokerImpl.java:3857)
> at
> org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1572)
> at
> org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1485)
> at
> org.apache.openjpa.kernel.StateManagerImpl.dirtyCheck(StateManagerImpl.java:808)
> at
> org.apache.openjpa.kernel.BrokerImpl$ManagedCache.dirtyCheck(BrokerImpl.java:4621)
> at
> org.apache.openjpa.kernel.BrokerImpl$ManagedCache.access$000(BrokerImpl.java:4361)
> at
> org.apache.openjpa.kernel.BrokerImpl.hasTransactionalObjects(BrokerImpl.java:3740)
> at org.apache.openjpa.kernel.BrokerImpl.setDirty(BrokerImpl.java:3857)
> at
> org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1572)
> at
> org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1485)
> at
> org.apache.openjpa.kernel.StateManagerImpl.dirtyCheck(StateManagerImpl.java:808)
> at
> org.apache.openjpa.kernel.BrokerImpl$ManagedCache.dirtyCheck(BrokerImpl.java:4621)
> at
> org.apache.openjpa.kernel.BrokerImpl$ManagedCache.access$000(BrokerImpl.java:4361)
> at
> org.apache.openjpa.kernel.BrokerImpl.hasTransactionalObjects(BrokerImpl.java:3740)
> at org.apache.openjpa.kernel.BrokerImpl.setDirty(BrokerImpl.java:3857)
> at
> org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1572)
> at
> org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1485)
> at
> org.apache.openjpa.kernel.StateManagerImpl.dirtyCheck(StateManagerImpl.java:808)
> at
> org.apache.openjpa.kernel.BrokerImpl$ManagedCache.dirtyCheck(BrokerImpl.java:4621)
> at
> org.apache.openjpa.kernel.BrokerImpl$ManagedCache.access$000(BrokerImpl.java:4361)
> at
> org.apache.openjpa.kernel.BrokerImpl.hasTransactionalObjects(BrokerImpl.java:3740)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.