You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@aries.apache.org by "John Ross (JIRA)" <ji...@apache.org> on 2015/10/19 16:22:05 UTC

[jira] [Commented] (ARIES-1434) org.osgi.framework.BundleException: Region 'application.a.esa;0.0.0;osgi.subsystem.application;1' is already connected to region 'composite.a.esa;0.0.0;osgi.subsystem.composite;2

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

John Ross commented on ARIES-1434:
----------------------------------

The state of the user started subsystem is checked in StartAction.run. A resolution will only occur if the subsystem is in the INSTALLED state. However, once the resolution of the starting subsystem begins, the resolve method will be called recursively on any children. The resolve method does not prevent subsystems in the RESOLVED state from resolving because this state can apply to persisted subsystems coming back online after a framework or core bundle restart which need their export sharing policies set.

It is possible to weed out child subsystems in the ACTIVE state, but it will be necessary to distinguish between a persistently started child and one that is already "live" and has simply been resolved or started before its parent.

> org.osgi.framework.BundleException: Region 'application.a.esa;0.0.0;osgi.subsystem.application;1' is already connected to region 'composite.a.esa;0.0.0;osgi.subsystem.composite;2
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: ARIES-1434
>                 URL: https://issues.apache.org/jira/browse/ARIES-1434
>             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
>
>
> Starting a parent subsystem which has an already started child subsystem with an export sharing policy results in the exception below [1]. The exception occurs because the implementation attempts to set the already existing export sharing policy of the child subsystem during resolution.
> [1]
> org.osgi.framework.BundleException: Region 'application.a.esa;0.0.0;osgi.subsystem.application;1' is already connected to region 'composite.a.esa;0.0.0;osgi.subsystem.composite;2
> 	at org.eclipse.equinox.internal.region.StandardRegionDigraph.connect(StandardRegionDigraph.java:158)
> 	at org.eclipse.equinox.internal.region.BundleIdBasedRegion.connectRegion(BundleIdBasedRegion.java:176)
> 	at org.apache.aries.subsystem.core.internal.StartAction.setExportIsolationPolicy(StartAction.java:267)
> 	at org.apache.aries.subsystem.core.internal.StartAction.resolve(StartAction.java:237)
> 	at org.apache.aries.subsystem.core.internal.StartAction.resolve(StartAction.java:184)
> 	at org.apache.aries.subsystem.core.internal.StartAction.run(StartAction.java:116)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at org.apache.aries.subsystem.core.internal.BasicSubsystem.start(BasicSubsystem.java:295)
> 	at org.apache.aries.subsystem.itests.SubsystemTest.startSubsystemFromInstalled(SubsystemTest.java:874)
> 	at org.apache.aries.subsystem.itests.SubsystemTest.startSubsystem(SubsystemTest.java:868)
> 	at org.apache.aries.subsystem.itests.defect.AriesXXXXTest.test(AriesXXXXTest.java:80)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:606)
> 	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
> 	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> 	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
> 	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> 	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
> 	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
> 	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
> 	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
> 	at org.ops4j.pax.exam.invoker.junit.internal.ContainerTestRunner.runChild(ContainerTestRunner.java:67)
> 	at org.ops4j.pax.exam.invoker.junit.internal.ContainerTestRunner.runChild(ContainerTestRunner.java:37)
> 	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
> 	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
> 	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
> 	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
> 	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
> 	at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
> 	at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
> 	at org.junit.runner.JUnitCore.run(JUnitCore.java:138)
> 	at org.ops4j.pax.exam.invoker.junit.internal.JUnitProbeInvoker.invokeViaJUnit(JUnitProbeInvoker.java:125)
> 	at org.ops4j.pax.exam.invoker.junit.internal.JUnitProbeInvoker.findAndInvoke(JUnitProbeInvoker.java:98)
> 	at org.ops4j.pax.exam.invoker.junit.internal.JUnitProbeInvoker.call(JUnitProbeInvoker.java:74)
> 	at org.ops4j.pax.exam.nat.internal.NativeTestContainer.call(NativeTestContainer.java:108)
> 	at org.ops4j.pax.exam.spi.reactors.EagerSingleStagedReactor.invoke(EagerSingleStagedReactor.java:109)
> 	at org.ops4j.pax.exam.junit.impl.ProbeRunner$2.evaluate(ProbeRunner.java:278)
> 	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
> 	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
> 	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
> 	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
> 	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
> 	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
> 	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
> 	at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
> 	at org.ops4j.pax.exam.junit.impl.ProbeRunner.run(ProbeRunner.java:112)
> 	at org.ops4j.pax.exam.junit.PaxExam.run(PaxExam.java:93)
> 	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
> 	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)



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