[ https://issues.apache.org/jira/browse/FELIX-953?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Richard S. Hall resolved FELIX-953. ----------------------------------- Resolution: Fixed Fix Version/s: felix-1.6.0 You are correct that the extension manager module was incorrect. It should have just been calling loadClass() on its class loader and letting the exception fly rather than catching and logging it. This could be a mistake from the refactoring. I have fixed this. I also investigated the cycle checking code and I am fairly confident it will not return a null to user code, so I think this issue is resolved. Please close it if you are satisfied. > Bundle#loadClass sometimes return null instead of throwing a CNFE > ----------------------------------------------------------------- > > Key: FELIX-953 > URL: https://issues.apache.org/jira/browse/FELIX-953 > Project: Felix > Issue Type: Bug > Components: Framework > Reporter: Guillaume Nodet > Assignee: Richard S. Hall > Priority: Blocker > Fix For: felix-1.6.0 > > Attachments: FELIX-953.patch > > > 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.