NPE in CLSpace
alesj Dec 4, 2008 6:05 PMDML found this NPE in CLSpace:
- http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4194484#4194484
Take this three config files
<classloading name="jboss-threads-classloader" version="1.0.0.Alpha" xmlns="urn:jboss:classloading:1.0"> <capabilities> <module name="jboss-threads" version="1.0.0.Alpha"/> <package name="org.jboss.threads" version="1.0.0.Alpha"/> </capabilities> <requirements/> </classloading> <classloading name="jboss-threads-deployer-classloader" version="1.0.0.Alpha" xmlns="urn:jboss:classloading:1.0"> <requirements> <module name="jboss-threads"/> <package name="org.jboss.deployers.vfs.deployer.kernel"/> <package name="org.jboss.deployers.vfs.spi.deployer"/> </requirements> </classloading> <classloading name="jboss-kernel-classloader" version="2.0.0.GA" xmlns="urn:jboss:classloading:1.0" import-all="true"> <capabilities> <package name="org.jboss.deployers.vfs.deployer.kernel"/> <package name="org.jboss.deployers.vfs.spi.deployer"/> </capabilities> <requirements/> </classloading>
And you end up with
JBoss-MC-Demo ERROR [04-12-2008 23:56:08] AbstractKernelController - Error resolving dependencies for ClassLoader: name=vfsfile:/C:/projects/demos/sandbox/deployers/ state=Describe mode=Manual requiredState=ClassLoader java.lang.NullPointerException at org.jboss.classloading.spi.dependency.ClassLoadingSpace.resolve(ClassLoadingSpace.java:325) at org.jboss.classloading.spi.dependency.ClassLoadingSpace.joinAndResolve(ClassLoadingSpace.java:122) at org.jboss.classloading.spi.dependency.ClassLoadingSpace.joinAndResolve(ClassLoadingSpace.java:169) at org.jboss.classloading.spi.dependency.ClassLoadingSpace.resolve(ClassLoadingSpace.java:325) at org.jboss.classloading.spi.dependency.Module.resolveModule(Module.java:737) at org.jboss.classloading.spi.dependency.RequirementDependencyItem.resolve(RequirementDependencyItem.java:87) at org.jboss.dependency.plugins.AbstractDependencyInfo.resolveDependencies(AbstractDependencyInfo.java:143) at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1103) at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1039) at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984) at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822) at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553) at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781) at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:545) at org.jboss.demos.bootstrap.MainDeployerHelper.process(MainDeployerHelper.java:86)
The cause is the CLMD/module with import-all="true" and this code in Domain::addModule
// Skip the classloader space checking when it is import all if (module.isImportAll() == false) { ClassLoadingSpace space = new ClassLoadingSpace(); space.join(module); }
Module never joins any CLSpace.