[ http://issues.apache.org/jira/browse/DBCP-100?page=all ]
Phil Steitz resolved DBCP-100.
------------------------------
Resolution: Fixed
Made userKeys an instance variable. Fixed in r433104, nightlies starting
21-aug-06.
> [dbcp] NullPointerException retrieving connection from the pool
> ---------------------------------------------------------------
>
> Key: DBCP-100
> URL: http://issues.apache.org/jira/browse/DBCP-100
> Project: Commons Dbcp
> Issue Type: Bug
> Environment: Operating System: Windows XP
> Platform: Other
> Reporter: Fedor Karpelevitch
> Fix For: 1.2.2
>
>
> under some load we start getting this exception when retrieving connection
> from
> pool:
> org.apache.commons.dbcp.SQLNestedException: Could not retrieve connection info
> from pool
> at
> org.apache.commons.dbcp.datasources.SharedPoolDataSource.getPooledConnectionAndInfo(SharedPoolDataSource.java:169)
> at
> org.apache.commons.dbcp.datasources.InstanceKeyDataSource.getConnection(InstanceKeyDataSource.java:631)
> at
> org.apache.commons.dbcp.datasources.InstanceKeyDataSource.getConnection(InstanceKeyDataSource.java:615)
> at
> org.apache.torque.TorqueInstance.getConnection(TorqueInstance.java:705)
> ... 34 more
> Caused by: java.lang.NullPointerException
> at
> org.apache.commons.collections.SequencedHashMap.insertEntry(SequencedHashMap.java:226)
> at
> org.apache.commons.collections.SequencedHashMap.put(SequencedHashMap.java:451)
> at org.apache.commons.collections.LRUMap.put(LRUMap.java:125)
> at
> org.apache.commons.dbcp.datasources.SharedPoolDataSource.getUserPassKey(SharedPoolDataSource.java:179)
> at
> org.apache.commons.dbcp.datasources.SharedPoolDataSource.getPooledConnectionAndInfo(SharedPoolDataSource.java:165)
> ... 37 more
> this is apparently caused by improper syncronization:
> SharedPoolDataSource.getPooledConnectionAndInfo() is synchronized _instance_
> method, but it accesses SharedPoolDataSource.userKeys which is a _static_
> variable, so if you have more than one instance of SharedPoolDataSource (as we
> do) access to the map would not be properly synchronized. So either map should
> be made instance variable, or the method should be synchronized on the class,
> not instance.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]