You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Michael Dick (JIRA)" <ji...@apache.org> on 2007/07/25 23:44:31 UTC

[jira] Updated: (OPENJPA-295) ArrayIndexOutofBoundsException when under load and within a managed Transaction

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

Michael Dick updated OPENJPA-295:
---------------------------------

    Attachment: OPENJPA-295.diff.txt

Attaching a simple patch based on Patrick's comments. The patch uses a ConcurrentSet (arbitrarily chosen) instead of an ArrayList. 

I also sent a jar containing this change to Rob earlier today and it looks like it resolved the problem. 

I'm hesitating to commit the fix until we understand what else changed between 0.9.7 and now. A quick diff shows no changes to the AbstractBrokerFactory.syncWithManagedTransaction method and only a few in AbstractBrokerFactory as a whole. 

I believe the current builds are faster than 0.9.7 (at least for Rob's application) so it's possible that we're just hitting a timing window that we couldn't before.

> ArrayIndexOutofBoundsException when under load and within a managed Transaction
> -------------------------------------------------------------------------------
>
>                 Key: OPENJPA-295
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-295
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jpa
>    Affects Versions: 1.0.0
>         Environment: openjpa running under WebSphere development builds, as well as Geronimo development builds
>            Reporter: Rob Wisniewski
>            Priority: Blocker
>
> Recent development builds of our WAS products as well as the Geronimo project are seeing exceptions when running under load.  An example of the exception is below:
> Caused by: 
> java.lang.ArrayIndexOutOfBoundsException
> 	at java.util.ArrayList.add(ArrayList.java:378)
> 	at org.apache.openjpa.kernel.AbstractBrokerFactory.syncWithManagedTransaction(AbstractBrokerFactory.java:684)
> 	... 39 more
> This is the deepest trace I can get with the actual exception, but the wrappering exception shows this stack trace for geronimo:
> <1.0.0-SNAPSHOT-SNAPSHOT nonfatal general error> org.apache.openjpa.persistence.PersistenceException: null
> 	at org.apache.openjpa.kernel.AbstractBrokerFactory.syncWithManagedTransaction(AbstractBrokerFactory.java:690)
> 	at org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:304)
> 	at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:182)
> 	at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
> 	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:190)
> 	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:55)
> 	at org.apache.geronimo.persistence.CMPEntityManagerTxScoped.createEntityManager(CMPEntityManagerTxScoped.java:74)
> 	at org.apache.geronimo.persistence.CMPEntityManagerTxScoped.getEntityManager(CMPEntityManagerTxScoped.java:55)
> 	at org.apache.geronimo.persistence.CMPEntityManagerTxScoped.createNamedQuery(CMPEntityManagerTxScoped.java:259)
> 	at org.apache.geronimo.samples.daytrader.ejb3.TradeSLSBBean.getClosedOrders(TradeSLSBBean.java:335)
> This is happening in two separate products with two different JTA implementations, and also both of these products were working at one point.
> Any ideas?

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