commons-dbcp-1.2.1.jar and commons-pool-1.3.jar I have a connection handler class that I wrote around a static instance of SharedPoolDataSource. SharedPoolDataSource gets initialized in static block. Locking shown in stacktrace is occurring within aSharedPoolDataSource.getConnection() call. The lock on aSharedPoolDataSource is never given up, all other threads back up waiting to get db connection. I'll start by updating my those jars, I'm certain this is self inflicted wound and not a bug in either library.
"catalina-exec-foo1-2" daemon prio=10 tid=0x000000004bf5b800 nid=0x41a2 runnable [0x0000000042be1000] java.lang.Thread.State: RUNNABLE at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at oracle.net.ns.Packet.receive(Packet.java:293) at oracle.net.ns.DataPacket.receive(DataPacket.java:92) at oracle.net.ns.NetInputStream.getNextPacket(NetInputStream.java:174) at oracle.net.ns.NetInputStream.read(NetInputStream.java:119) at oracle.net.ns.NetInputStream.read(NetInputStream.java:94) at oracle.net.ns.NetInputStream.read(NetInputStream.java:79) at oracle.jdbc.driver.T4CSocketInputStreamWrapper.readNextPacket(T4CSocketInputStreamWrapper.java:112) at oracle.jdbc.driver.T4CSocketInputStreamWrapper.read(T4CSocketInputStreamWrapper.java:73) at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1040) at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1016) at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:588) at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:183) at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:780) at oracle.jdbc.driver.T4CStatement.executeMaybeDescribe(T4CStatement.java:855) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1187) at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1378) - locked <0x00002aaad1f64df8> (a oracle.jdbc.driver.T4CConnection) at oracle.jdbc.driver.OracleStatementWrapper.executeQuery(OracleStatementWrapper.java:387) at org.apache.commons.dbcp.datasources.KeyedCPDSConnectionFactory.validateObject(KeyedCPDSConnectionFactory.java:163) at org.apache.commons.pool.impl.GenericKeyedObjectPool.borrowObject(GenericKeyedObjectPool.java:837) - locked <0x00002aaace878d18> (a org.apache.commons.pool.impl.GenericKeyedObjectPool) at org.apache.commons.dbcp.datasources.SharedPoolDataSource.getPooledConnectionAndInfo(SharedPoolDataSource.java:165) - locked <0x00002aaaced306f8> (a org.apache.commons.dbcp.datasources.SharedPoolDataSource) at org.apache.commons.dbcp.datasources.InstanceKeyDataSource.getConnection(InstanceKeyDataSource.java:631) at org.apache.commons.dbcp.datasources.InstanceKeyDataSource.getConnection(InstanceKeyDataSource.java:615) at mycompany.db.ConnectionHandler.getConnection(ConnectionHandler.java:150)