felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Guillaume Nodet (JIRA)" <j...@apache.org>
Subject [jira] Created: (FELIX-953) Bundle#loadClass sometimes return null instead of throwing a CNFR
Date Fri, 20 Feb 2009 20:51:01 GMT
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:
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;

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.

View raw message