aries-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF subversion and git services (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ARIES-1441) Subsystem core tries to shutdown the framework when it has a framework dependency like org.osgi.util.tracker
Date Tue, 23 Feb 2016 18:41:18 GMT

    [ https://issues.apache.org/jira/browse/ARIES-1441?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15159394#comment-15159394
] 

ASF subversion and git services commented on ARIES-1441:
--------------------------------------------------------

Commit 1731925 from [~jwross@us.ibm.com] in branch 'aries/trunk'
[ https://svn.apache.org/r1731925 ]

[ARIES-1441] Subsystem core tries to shutdown the framework when it has a framework dependency
like org.osgi.util.tracker

I chose to take a different approach than in the patch. Bundles that are constituents of root
will now automatically receive an active use count increment when the
subsystem being acted upon is root. This will prevent them from being stopped or uninstalled.
This does not affect dependencies that were provisioned to root in
support of child subsystems. These are managed by the child subsystems themselves.

Plus test.

> Subsystem core tries to shutdown the framework when it has a framework dependency like
org.osgi.util.tracker
> ------------------------------------------------------------------------------------------------------------
>
>                 Key: ARIES-1441
>                 URL: https://issues.apache.org/jira/browse/ARIES-1441
>             Project: Aries
>          Issue Type: Bug
>          Components: Subsystem
>    Affects Versions: subsystem-2.0.6, subsystem-2.0.8
>         Environment: karaf 
> pax exam
>            Reporter: Bas
>              Labels: patch, test
>         Attachments: AriesStopSubsystem.java.test.patch, patch-stop-subsystem.patch
>
>
> When performing a shutdown of the subsystem core bundle it tries to stop the framework
because there is a org.osgi.util.tracker import package.
> Also in the same situation described above when trying to shutdown the framework by calling
stop on bundle 0 it can fail with:
> [org.apache.aries.subsystem.core.internal.StopAction] : An error occurred while stopping
resource osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.10.0.v20140606-1445";
singleton:="true" of subsystem org.apache.aries.subsystem.core.internal.BasicSubsystem@25760667
> org.osgi.framework.BundleException: Unable to acquire the state change lock for the module:
osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.10.0.v20140606-1445";
singleton:="true" [id=0] STOPPED [STOPPED] invalid
> 	at org.eclipse.osgi.container.Module.lockStateChange(Module.java:329)
> 	at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule.asyncStop(EquinoxBundle.java:151)
> 	at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle.stop(EquinoxBundle.java:272)
> 	at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle.stop(EquinoxBundle.java:277)
> 	at org.apache.aries.subsystem.core.internal.StopAction.stopBundleResource(StopAction.java:97)
> 	at org.apache.aries.subsystem.core.internal.StopAction.stopResource(StopAction.java:109)
> 	at org.apache.aries.subsystem.core.internal.StopAction.run(StopAction.java:67)
> 	at org.apache.aries.subsystem.core.internal.StopAction.stopSubsystemResource(StopAction.java:135)
> 	at org.apache.aries.subsystem.core.internal.StopAction.stopResource(StopAction.java:107)
> 	at org.apache.aries.subsystem.core.internal.StopAction.run(StopAction.java:67)
> 	at org.apache.aries.subsystem.core.internal.Activator.deactivate(Activator.java:162)
> 	at org.apache.aries.subsystem.core.internal.Activator.removedService(Activator.java:291)
> 	at org.osgi.util.tracker.ServiceTracker$Tracked.customizerRemoved(ServiceTracker.java:967)
> 	at org.osgi.util.tracker.ServiceTracker$Tracked.customizerRemoved(ServiceTracker.java:870)
> 	at org.osgi.util.tracker.AbstractTracked.untrack(AbstractTracked.java:341)
> 	at org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:909)
> 	at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:109)
> 	at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:914)
> 	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
> 	at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
> 	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:862)
> 	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:801)
> 	at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:222)
> 	at org.eclipse.equinox.internal.region.RegionManager.stop(RegionManager.java:67)
> 	at org.eclipse.osgi.internal.framework.BundleContextImpl$4.run(BundleContextImpl.java:827)
> 	at org.eclipse.osgi.internal.framework.BundleContextImpl$4.run(BundleContextImpl.java:1)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at org.eclipse.osgi.internal.framework.BundleContextImpl.stop(BundleContextImpl.java:820)
> 	at org.eclipse.osgi.internal.framework.EquinoxBundle.stopWorker0(EquinoxBundle.java:950)
> 	at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.stopWorker(EquinoxBundle.java:324)
> 	at org.eclipse.osgi.container.Module.doStop(Module.java:626)
> 	at org.eclipse.osgi.container.Module.stop(Module.java:488)
> 	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.decStartLevel(ModuleContainer.java:1623)
> 	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1542)
> 	at org.eclipse.osgi.container.SystemModule.stopWorker(SystemModule.java:248)
> 	at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule.stopWorker(EquinoxBundle.java:145)
> 	at org.eclipse.osgi.container.Module.doStop(Module.java:626)
> 	at org.eclipse.osgi.container.Module.stop(Module.java:488)
> 	at org.eclipse.osgi.container.SystemModule.stop(SystemModule.java:186)
> 	at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule$1.run(EquinoxBundle.java:160)
> 	at java.lang.Thread.run(Thread.java:662)



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

Mime
View raw message