Bundle#loadClass sometimes return null instead of throwing a CNFR
-----------------------------------------------------------------
Key: FELIX-953
URL: https://issues.apache.org/jira/browse/FELIX-953
Project: Felix
Issue Type: Bug
Components: Framework
Reporter: Guillaume Nodet
Here is a patch:
{code}
Index: src/main/java/org/apache/felix/framework/Felix.java
===================================================================
--- src/main/java/org/apache/felix/framework/Felix.java (revision 746347)
+++ src/main/java/org/apache/felix/framework/Felix.java (working copy)
@@ -1338,7 +1338,12 @@
throw new ClassNotFoundException(name, ex);
}
}
- return bundle.getCurrentModule().getClassByDelegation(name);
+ Class clazz = bundle.getCurrentModule().getClassByDelegation(name);
+ if (clazz == null)
+ {
+ throw new ClassNotFoundException(name);
+ }
+ return clazz;
}
/**
{code}
I'm wondering if there any reason why ModuleImpl#getClassByDelegation(String)
returns null instead of throwing a NPE.
Browsing through the code, it seems there are several places where a null value
is checked, then a CNFE thrown.
This would also avoid possible NPE in felix code as in
Felix#createBundleActivator.
I think it would be nice to iron the definition of IModule#getClassByDelegation
to either remove the thrown CNFE or never returns null, as currently both can
happen.
The IWire interface has exactly the same problem.
I will try to come up with a patch which will never return a null value for
both interfaces.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.