This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag 
org.apache.sling.commons.classloader-1.3.0
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-classloader.git

commit 8f139ecbca5f5f9cf82794a82f6c1a490c7d7abe
Author: Carsten Ziegeler <[email protected]>
AuthorDate: Fri Mar 16 12:13:56 2012 +0000

    SLING-2438 : Class might never be loaded if the bundle is in state resolved 
on the first attempt
    
    git-svn-id: 
https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/classloader@1301452
 13f79535-47bb-0310-9956-ffa450edef68
---
 .../commons/classloader/impl/PackageAdminClassLoader.java     | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/commons/classloader/impl/PackageAdminClassLoader.java
 
b/src/main/java/org/apache/sling/commons/classloader/impl/PackageAdminClassLoader.java
index 3258c8f..8985d3c 100644
--- 
a/src/main/java/org/apache/sling/commons/classloader/impl/PackageAdminClassLoader.java
+++ 
b/src/main/java/org/apache/sling/commons/classloader/impl/PackageAdminClassLoader.java
@@ -103,6 +103,9 @@ class PackageAdminClassLoader extends ClassLoader {
         Bundle bundle = null;
         if (exportedPackage != null && !exportedPackage.isRemovalPending() ) {
             bundle = exportedPackage.getExportingBundle();
+            if ( !this.isBundleActive(bundle) ) {
+                bundle = null;
+            }
         }
         return bundle;
     }
@@ -137,7 +140,7 @@ class PackageAdminClassLoader extends ClassLoader {
         Enumeration<URL> e = super.getResources(name);
         if ( e == null || !e.hasMoreElements() ) {
             final Bundle bundle = 
this.findBundleForPackage(getPackageFromResource(name));
-            if ( this.isBundleActive(bundle) ) {
+            if ( bundle != null ) {
                 e = bundle.getResources(name);
                 if ( e != null && e.hasMoreElements() ) {
                     this.factory.addUsedBundle(bundle);
@@ -158,7 +161,7 @@ class PackageAdminClassLoader extends ClassLoader {
         URL url = super.findResource(name);
         if ( url == null ) {
             final Bundle bundle = 
this.findBundleForPackage(getPackageFromResource(name));
-            if ( this.isBundleActive(bundle) ) {
+            if ( bundle != null ) {
                 url = bundle.getResource(name);
                 if ( url != null ) {
                     this.factory.addUsedBundle(bundle);
@@ -182,7 +185,7 @@ class PackageAdminClassLoader extends ClassLoader {
             clazz = super.findClass(name);
         } catch (ClassNotFoundException cnfe) {
             final Bundle bundle = 
this.findBundleForPackage(getPackageFromClassName(name));
-            if ( this.isBundleActive(bundle) ) {
+            if ( bundle != null ) {
                 clazz = bundle.loadClass(name);
                 this.factory.addUsedBundle(bundle);
             }
@@ -211,7 +214,7 @@ class PackageAdminClassLoader extends ClassLoader {
         } catch (final ClassNotFoundException cnfe) {
             final String pckName = getPackageFromClassName(name);
             final Bundle bundle = this.findBundleForPackage(pckName);
-            if ( this.isBundleActive(bundle) ) {
+            if ( bundle != null ) {
                 try {
                     clazz = bundle.loadClass(name);
                     this.factory.addUsedBundle(bundle);

-- 
To stop receiving notification emails like this one, please contact
"[email protected]" <[email protected]>.

Reply via email to