commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christian Peter (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (POOL-192) GenericKeyedObjectPool: clear() clears the keyed pool but does not decrease the item counter
Date Fri, 28 Oct 2011 14:32:32 GMT

    [ https://issues.apache.org/jira/browse/POOL-192?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13138398#comment-13138398
] 

Christian Peter commented on POOL-192:
--------------------------------------

The value of ??_totalInternalProcessing?? is increased by the number of elements in the queue
in method ??clear(Object key)??, just before ??destroy?? is called.

As the ObjectQueue for the key was removed from the map in method ??clear??, the object for
the key is always null in method ??destroy??.

Therefore ??_totalInternalProcessing?? is never decreased there which leads to an incorrect
value of ??_totalInternalProcessing??.

Suggested fix in ??destroy(Map m, KeyedPoolablabeObjectFactroy factory)??:

??ObjectQueue objectQueue = (ObjectQueue) _poolMap.get(key);??
??if (objectQueue != null) {??
   ...
??}??
*else {*
    *_totalInternalProcessing--;*
*}*

                
> GenericKeyedObjectPool: clear() clears the keyed pool but does not decrease the item
counter
> --------------------------------------------------------------------------------------------
>
>                 Key: POOL-192
>                 URL: https://issues.apache.org/jira/browse/POOL-192
>             Project: Commons Pool
>          Issue Type: Bug
>    Affects Versions: 1.5.6
>            Reporter: Helge Dannenberg
>
> If function 'clear(Object key)' in GenericKeyedObjectPool is called onto a keyed pool,
the ObjectQueue (= the keyed pool) is removed from the pool list. 
> Its items are deleteded in the function 'destroy()' afterwards. But as the ObjectQueue
is already removed, the itemcounter _totalInternalProcessing is 
> never decreased.
> As a result of this bug the pool exhausts even if the pool is empty.
> The solution is to decrease the counter _totalInternalProcessing in 'destroy()' also
if ObjectQueue in null.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message