FELIX-861 Check class loader of target class, which may be null if the
class has been loaded by the bootstrap (aka system) class loader
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@729903 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/DependencyManager.java b/scr/src/main/java/org/apache/felix/scr/impl/DependencyManager.java
index 3fdb059..4e4450c 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/DependencyManager.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/DependencyManager.java
@@ -732,8 +732,16 @@
try
{
// Case2 - Service object parameter
- parameterClass = targetClass.getClassLoader().loadClass(
- parameterClassName );
+
+ // need the class loader of the target class, which may be the
+ // system classloader, which case getClassLoader may retur null
+ ClassLoader loader = targetClass.getClassLoader();
+ if ( loader == null )
+ {
+ loader = ClassLoader.getSystemClassLoader();
+ }
+
+ parameterClass = loader.loadClass( parameterClassName );
return AbstractComponentManager.getMethod( targetClass, methodname, new Class[]
{ parameterClass }, true );
}