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)