You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by "Phil Steitz (JIRA)" <ji...@apache.org> on 2006/07/10 07:27:31 UTC

[jira] Updated: (DBCP-100) [dbcp] NullPointerException retrieving connection from the pool

     [ http://issues.apache.org/jira/browse/DBCP-100?page=all ]

Phil Steitz updated DBCP-100:
-----------------------------

    Bugzilla Id:   (was: 35825)
    Fix Version: 1.2.2

> [dbcp] NullPointerException retrieving connection from the pool
> ---------------------------------------------------------------
>
>          Key: DBCP-100
>          URL: http://issues.apache.org/jira/browse/DBCP-100
>      Project: Commons Dbcp
>         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: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org