aries-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "John Ross (JIRA)" <j...@apache.org>
Subject [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
Date Mon, 19 Oct 2015 14:22:05 GMT

    [ 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)

Mime
View raw message