John Ross created ARIES-1429:
--------------------------------

             Summary: NullPointerException at 
org.apache.aries.subsystem.core.internal.WovenClassListener.modified at 
org.apache.aries.subsystem.core.internal.RegionUpdater.addRequirements
                 Key: ARIES-1429
                 URL: https://issues.apache.org/jira/browse/ARIES-1429
             Project: Aries
          Issue Type: Bug
          Components: Subsystem
    Affects Versions: subsystem-2.0.4
            Reporter: John Ross
            Assignee: John Ross
             Fix For: subsystem-2.0.6


An NullPointerException [1] may occur while updating a region as part of adding 
dynamic imports to the sharing policy for a bundle containing a woven class. 
This will only occur when something outside of the subsystems implementation 
for whatever reason has deleted the region digraph edge that connects the 
parent subsystem to the subsystem containing the bundle whose class is being 
woven as a constituent.

Still, it would be useful if the implementation would allow this by replacing 
the NPE with a noop. In other words, if the implementation does not find an 
existing edge between parent and child, it would simply assume that something 
else is handling the dynamic imports.

[1]
org.osgi.service.subsystem.SubsystemException: java.lang.NullPointerException
        at 
org.apache.aries.subsystem.core.internal.WovenClassListener.modified(WovenClassListener.java:125)
        at 
org.eclipse.osgi.internal.weaving.WovenClassImpl$1.call(WovenClassImpl.java:203)
        at 
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHookPrivileged(ServiceRegistry.java:1280)
        at 
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHooksPrivileged(ServiceRegistry.java:1263)
        at 
org.eclipse.osgi.internal.weaving.WovenClassImpl.notifyWovenClassListeners(WovenClassImpl.java:220)
        at 
org.eclipse.osgi.internal.weaving.WovenClassImpl.callHooks(WovenClassImpl.java:271)
        at 
org.eclipse.osgi.internal.weaving.WeavingHookConfigurator.processClass(WeavingHookConfigurator.java:56)
        at 
org.eclipse.osgi.internal.loader.classpath.ClasspathManager.defineClass(ClasspathManager.java:616)
        at 
org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findClassImpl(ClasspathManager.java:588)
        at 
org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:540)
        at 
org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:527)
        at 
org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:324)
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:330)
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:407)
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:357)
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:349)
        at 
org.eclipse.osgi.internal.framework.BundleContextImpl.loadBundleActivator(BundleContextImpl.java:757)
        at 
org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:711)
        at 
org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:951)
        at 
org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:328)
        at org.eclipse.osgi.container.Module.doStart(Module.java:566)
        at org.eclipse.osgi.container.Module.start(Module.java:434)
        at 
org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:402)
        at 
org.apache.aries.subsystem.core.internal.StartAction.startBundleResource(StartAction.java:337)
        at 
org.apache.aries.subsystem.core.internal.StartAction.startResource(StartAction.java:365)
        at 
org.apache.aries.subsystem.core.internal.StartAction.run(StartAction.java:128)
        at java.security.AccessController.doPrivileged(Native Method)
        at 
org.apache.aries.subsystem.core.internal.BasicSubsystem.start(BasicSubsystem.java:295)
        at 
com.ibm.ws.app.manager.esa.internal.DeploySubsystemAction.startSubsystem(DeploySubsystemAction.java:269)
        at 
com.ibm.ws.app.manager.esa.internal.DeploySubsystemAction.createStartSubsystemFuture(DeploySubsystemAction.java:218)
        at 
com.ibm.ws.app.manager.esa.internal.DeploySubsystemAction.deploySubsystem(DeploySubsystemAction.java:157)
        at 
com.ibm.ws.app.manager.esa.internal.DeploySubsystemAction.deploy(DeploySubsystemAction.java:102)
        at 
com.ibm.ws.app.manager.esa.internal.SubsystemHandler.install(SubsystemHandler.java:339)
        at 
com.ibm.ws.app.manager.esa.internal.EBAToSubsystemHandler.install(EBAToSubsystemHandler.java:189)
        at 
com.ibm.ws.app.manager.internal.statemachine.StartAction.execute(StartAction.java:139)
        at 
com.ibm.ws.app.manager.internal.statemachine.ApplicationStateMachineImpl.enterState(ApplicationStateMachineImpl.java:1168)
        at 
com.ibm.ws.app.manager.internal.statemachine.ApplicationStateMachineImpl.run(ApplicationStateMachineImpl.java:781)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
        at 
org.apache.aries.subsystem.core.internal.RegionUpdater.addRequirements(RegionUpdater.java:106)
        at 
org.apache.aries.subsystem.core.internal.RegionUpdater.addRequirements(RegionUpdater.java:60)
        at 
org.apache.aries.subsystem.core.internal.WovenClassListener.modified(WovenClassListener.java:122)
        ... 39 more



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to