You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Narayanan Harihara (JIRA)" <ji...@apache.org> on 2015/04/23 16:33:38 UTC

[jira] [Created] (POOL-292) ClassNotFoundException: org.apache.commons.pool2.impl.DefaultEvictionPolicy

Narayanan Harihara created POOL-292:
---------------------------------------

             Summary: ClassNotFoundException: org.apache.commons.pool2.impl.DefaultEvictionPolicy
                 Key: POOL-292
                 URL: https://issues.apache.org/jira/browse/POOL-292
             Project: Commons Pool
          Issue Type: Bug
    Affects Versions: 2.3
         Environment: Apache Karaf OSGi
            Reporter: Narayanan Harihara


Here is my application structure:
myapplication-bundle(uses mybatis) -->  datasource-bundle (uses commons-dbcp2) --> commons-pool2 bundle.

With this structure, all the datasource API information are hidden from my application and only javax.sql.DataSource is exported from the datasource-bundle. So I do not have OSGi import package for org.apache.commons.pool2.impl in my application. 

But the method org.apache.commons.pool2.impl.BaseGenericObjectPool.setEvictionPolicyClassName is using Thread.currentThread().getContextClassLoader() to load EvicationPolicy class, which means it is using the class loader of myapplication to load org.apache.commons.pool2.impl.DefaultEvictionPolicy class. Since I do not have that in my OSGi Import-Package, I get a ClassNotFound exception. 

This issue did not happen in commons-pool2 version 2.2 because, it did not use the current thread's class loader to instantiate the eviction policy. Due to this, I am kinda forced to use 2.2 version in my environment and i would like to stay on the latest version due to all the bug fixes with concurrency. 

Any help would be really appreciated. 




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