You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Mark Thomas (JIRA)" <ji...@apache.org> on 2016/11/02 15:44:58 UTC

[jira] [Commented] (POOL-316) Evictor periodically throws NullPointerExceptions

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

Mark Thomas commented on POOL-316:
----------------------------------

Line 781 is:
{code:java}
evict = evictionPolicy.evict(evictionConfig, underTest,
        idleObjects.size());
{code}
Either evictionPolicy or idleObjects must be null to trigger the NPE.
It can't be idleObjects since a) it is non-null and final and b) it is used earlier in the method at line 752 and would trigger an NPE there it it was null.
Therefore it must be evictionPolicy. There does appear a way for that to be null without an error being generated. If the evictionPolicyClassName is set to a valid class that does not implement EvictionPolicy then evictionPolicy will be null. The code expects evictionPolicy to be non-null so we need to handle this error rather than ignore it.

The above doesn't appear to explain why the OP is seeing an NPE. A test case remains desirable.

> Evictor periodically throws NullPointerExceptions
> -------------------------------------------------
>
>                 Key: POOL-316
>                 URL: https://issues.apache.org/jira/browse/POOL-316
>             Project: Commons Pool
>          Issue Type: Bug
>    Affects Versions: 2.4.2
>            Reporter: Caleb Cittadino
>
> When the logging level is set to WARN or INFO we see the following NPE peridically:
> {code}
> [2016-10-20 13:26:38,646 | WARN  | org.apache.commons.dbcp2.BasicDataSource] An internal object pool swallowed an Exception.
> java.lang.Exception: java.lang.NullPointerException
>        at org.apache.commons.pool2.impl.GenericObjectPool.evict(GenericObjectPool.java:787) [commons-pool2-2.4.2.jar:2.4.2]
>        at org.apache.commons.pool2.impl.BaseGenericObjectPool$Evictor.run(BaseGenericObjectPool.java:1036) [commons-pool2-2.4.2.jar:2.4.2]
>        at java.util.TimerThread.mainLoop(Unknown Source) [na:1.8.0_25]
>        at java.util.TimerThread.run(Unknown Source) [na:1.8.0_25]
> Caused by: java.lang.NullPointerException: null
>        at org.apache.commons.pool2.impl.GenericObjectPool.evict(GenericObjectPool.java:781) [commons-pool2-2.4.2.jar:2.4.2]
>        ... 3 common frames omitted
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)