[ 
https://issues.apache.org/jira/browse/DBCP-390?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Phil Steitz closed DBCP-390.
----------------------------


> calling invalidObject(badConnection) damage the counting of the objects in 
> the pool. 
> -------------------------------------------------------------------------------------
>
>                 Key: DBCP-390
>                 URL: https://issues.apache.org/jira/browse/DBCP-390
>             Project: Commons Dbcp
>          Issue Type: Bug
>    Affects Versions: 1.4
>         Environment: All env
>            Reporter: neng xu
>
> We are using DBCP pool.  The pattern of using DBCP pool is same as Apache 
> DBCP pool example PoolingDataSourceDataSourceExample.java. When cleaning bad 
> connections, I noticed that it called pool.invalidObject(object)  method to 
> clean the bad connection object from the pool.  Recently we found that 
> calling invalidObject(object) could damage the number of active connections 
> of  the pool because this method always silently reduce the number  
> regardless the objects was removed from pool or not.  For example, when the 
> connection object is null (creating database connection timeout happens),  
> calling invalidObject(badConnection) would cause the number of Active 
> connections to be reduce one even the method did not remove any object from 
> pool. This damage the counting of the object in the pool.  
> This method should only reduce the number of the objects in the pool when it 
> successfully removed an object from the pool.  
> Note: I understand that we may resolve the problem by checking object is null 
> (or object is in pool) before calling invalidObject() method. But I think it 
> is just a first-aid solution.  



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to