You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2009/03/24 14:25:47 UTC

svn commit: r757790 - /camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiPackageScanClassResolver.java

Author: ningjiang
Date: Tue Mar 24 13:25:47 2009
New Revision: 757790

URL: http://svn.apache.org/viewvc?rev=757790&view=rev
Log:
CAMEL-1481 OsgiPackageScanClassResolver should use the regular classloader if the osgi bundle classloader can't find any class

Modified:
    camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiPackageScanClassResolver.java

Modified: camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiPackageScanClassResolver.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiPackageScanClassResolver.java?rev=757790&r1=757789&r2=757790&view=diff
==============================================================================
--- camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiPackageScanClassResolver.java (original)
+++ camel/trunk/components/camel-osgi/src/main/java/org/apache/camel/osgi/OsgiPackageScanClassResolver.java Tue Mar 24 13:25:47 2009
@@ -49,12 +49,15 @@
         ClassLoader osgiClassLoader = getOsgiClassLoader(set);
 
         if (osgiClassLoader != null) {
-            // if we have an osgi bundle loader use this one only
+            // if we have an osgi bundle loader use this one first
             LOG.debug("Using only osgi bundle classloader");
             findInOsgiClassLoader(test, packageName, osgiClassLoader, classes);
-        } else {
+        }
+        
+        if (classes.size() == 0) {
+            // Using the regular classloaders as a fallback
             LOG.debug("Using only regular classloaders");
-            for (ClassLoader classLoader : set) {
+            for (ClassLoader classLoader : set.toArray(new ClassLoader[set.size()])) {
                 if (!isOsgiClassloader(classLoader)) {
                     find(test, packageName, classLoader, classes);
                 }