[
https://issues.apache.org/jira/browse/FELIX-1176?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12712724#action_12712724
]
Richard S. Hall commented on FELIX-1176:
----------------------------------------
I think you are misinterpreting what the spec is saying. All it is saying is
that synchronous bundle listeners are called synchronously. It is not saying
that they control the life cycle of the bundle generating the event.
> RuntimeException in SynchronousBundleListener does not effect Bundle
> lisfecycle
> -------------------------------------------------------------------------------
>
> Key: FELIX-1176
> URL: https://issues.apache.org/jira/browse/FELIX-1176
> Project: Felix
> Issue Type: Bug
> Components: Framework
> Affects Versions: felix-1.8.0
> Reporter: Thomas Diesler
>
> A bundle is started even if a registered SynchronousBundleListeners throws a
> RuntimeException
> SynchronousBundleListeners
> (http://www.osgi.org/javadoc/r4v41/org/osgi/framework/SynchronousBundleListener.html)
> Unlike normal BundleListener objects, SynchronousBundleListeners are
> synchronously called during bundle lifecycle processing. The bundle lifecycle
> processing will not proceed until all SynchronousBundleListeners have
> completed. SynchronousBundleListener objects will be called prior to
> BundleListener objects.
> ----------------
> public class BlueprintExtender implements SynchronousBundleListener
> {
>
> @SuppressWarnings("unchecked")
> public void bundleChanged(BundleEvent event)
> {
>
> if (event.getType() == BundleEvent.STARTING)
> {
> // throws RTE
> }
> }
> 2009-05-25 11:12:16,336 INFO [context-basic] BundleEvent RESOLVED
> 2009-05-25 11:12:16,440 ERROR [org.jboss.osgi.felix.framework.FelixLogger]
> EventDispatcher: Error during dispatch.
> java.lang.IllegalStateException: Failed to create schema loader:
> java.lang.ClassCastException org.apache.xerces.impl.xs.XSImplementationImpl
> cannot be cast to org.apache.xerces.xs.XSImplementation
> at org.jboss.xb.binding.Util$2.run(Util.java:517)
> at java.security.AccessController.doPrivileged(Native Method)
> at org.jboss.xb.binding.Util.getXSImplementation(Util.java:488)
> at org.jboss.xb.binding.Util.loadSchema(Util.java:357)
> at
> org.jboss.xb.binding.sunday.unmarshalling.XsdBinder.bind(XsdBinder.java:113)
> at
> org.jboss.xb.binding.sunday.unmarshalling.XsdBinder.bind(XsdBinder.java:100)
> at
> org.jboss.osgi.blueprint.parser.BlueprintParser.<init>(BlueprintParser.java:55)
> at
> org.jboss.osgi.blueprint.extender.BlueprintExtender.processDescriptor(BlueprintExtender.java:122)
> at
> org.jboss.osgi.blueprint.extender.BlueprintExtender.bundleChanged(BlueprintExtender.java:92)
> at
> org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:771)
> at
> org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:700)
> at
> org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:597)
> at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:3418)
> at org.apache.felix.framework.Felix.startBundle(Felix.java:1443)
> at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:779)
> at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:760)
> at
> org.jboss.osgi.spi.testing.EmbeddedBundle.start(EmbeddedBundle.java:74)
> at
> org.jboss.test.osgi.blueprint.context.BlueprintContextTestCase.setUp(BlueprintContextTestCase.java:61)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
> at
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
> at
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
> at
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
> at
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
> at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
> at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:44)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
> at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
> at
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
> at
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
> at
> org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
> at
> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
> at
> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
> at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
> at
> org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
> 2009-05-25 11:12:16,446 INFO [jboss-osgi-husky-harness] Test-Package:
> org.jboss.test.osgi.blueprint.context in bundle: context-basic [11]
> 2009-05-25 11:12:16,449 INFO [context-basic] BundleEvent STARTED
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.