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

Marc Prud'hommeaux commented on OPENJPA-295:
--------------------------------------------

Could the application somehow be using the same JTA transaction from different 
threads? The reason we don't synchronize at AbstractBrokerFactory:684 is that 
we don't expect to ever be able to have multiple threads accessing the list of 
brokers, since it is keyed off of the JTA transaction (which is supposed to be 
thread-bound).

> 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.

Reply via email to