commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael C (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (POOL-338) GenericObjectPool constructor throws an exception
Date Mon, 09 Apr 2018 13:24:00 GMT

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

Michael C commented on POOL-338:
--------------------------------

Nice touch. Here is the new log that shows two class loaders:

java.lang.IllegalArgumentException: Class org.apache.commons.pool2.impl.DefaultEvictionPolicy
from class loader [Thread context class loader: org.eclipse.osgi.internal.framework.ContextFinder@383d49e2]
does not implement org.apache.commons.pool2.impl.EvictionPolicy from class loader [org.eclipse.osgi.internal.loader.EquinoxClassLoader@d099faf[com.rivetlogic.liferay.store.box:1.0.0(id=42)]]

Since the error came from line 618 _{{if (policy instanceof EvictionPolicy<?>)}}_, it
makes sense to me to use the same class loader of EvictionPolicy to load _{{policy}}_ in line
608:

{{    final ClassLoader classLoader = EvictionPolicy.class.getClassLoader();}}

It works in my OSGi environment.

> GenericObjectPool constructor throws an exception
> -------------------------------------------------
>
>                 Key: POOL-338
>                 URL: https://issues.apache.org/jira/browse/POOL-338
>             Project: Commons Pool
>          Issue Type: Bug
>    Affects Versions: 2.4.2, 2.4.3, 2.5.0
>         Environment: Java 8, Liferay DXP (an OSGi environment).
>            Reporter: Michael C
>            Priority: Major
>
> Version 2.4.3 GenericObjectPool constructor throws this exception:
> {{java.lang.IllegalArgumentException: [org.apache.commons.pool2.impl.DefaultEvictionPolicy]
does not implement EvictionPolicy}}
> {{    at org.apache.commons.pool2.impl.BaseGenericObjectPool.setEvictionPolicyClassName(BaseGenericObjectPool.java:618)}}
> {{    at org.apache.commons.pool2.impl.GenericObjectPool.setConfig(GenericObjectPool.java:318)}}
> {{    at org.apache.commons.pool2.impl.GenericObjectPool.<init>(GenericObjectPool.java:115)}}
> {{    at org.apache.commons.pool2.impl.GenericObjectPool.<init>(GenericObjectPool.java:88)}}
>  
> Version 2.5.0 throws the same exception. Version 2.4.2 or older's setEvictionPolicyClassName
method fail silently for the same reason. This line in BaseGenericObjectPool evaluates to
false for all versions:
> {{        if (policy instanceof EvictionPolicy<?>) {}}
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message