commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mark Thomas (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (POOL-316) Evictor periodically throws NullPointerExceptions
Date Wed, 02 Nov 2016 15:44:58 GMT

    [ 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)

Mime
View raw message