I found the following deadlock:
Thread [Transaction Domain JBWere] (Suspended)
LOCKS ConnectionPool PoolEntry.boundary(Xid, boolean)
line: 230
TransactionImpl.rollbackXAResources(TransactionImpl$InternalXAResourceHolder)
line: 2595
TransactionImpl.internalRollback() line: 1533
TransactionImpl.rollback() line: 536
LOCKS TransactionImpl TransactionImpl.timedOut() line:
1804
TransactionDomainImpl.run() line: 1246
Thread.run() line: 534
Thread [Thread-6] (Suspended)
LOCKS TransactionImpl
TransactionImpl.delistResource(XAResource, int) line: 680
TransactionManagerImpl.delistResource(XAResource, int)
line: 400
LOCKS ConnectionPool
ConnectionPool.release(PooledConnection, boolean) line: 823
ConnectionPool.connectionClosed(ConnectionEvent) line: 612
OracleXAConnection(OraclePooledConnection).callListener(int)
line: 482
OracleXAConnection(OraclePooledConnection).logicalClose()
line: 445
OracleConnection.logicalClose() line: 2936
OracleConnection.close() line: 1454
JDBCConnectionProviderImpl.closeConnection(Connection)
line: not available
Util.closeConnection(Connection) line: 202
I have attached a new ConnectionPool.java which I
believe should fix the problem. I believe the same
problem exists for the JCA ConnectionPool.java.