Jboss 5 as plugin/bundle inside another osgi-implementatin -
rhodan76 Apr 9, 2009 7:43 AMHello,
don't know if it's the right place here - but we have an osgi-problem with jboss 5....
Due to the absence of an embeded jboss we are trying to boot the whole jboss 5 as a single plugin inside of an rcp-application (=equinox-osgi implementation). Already fixed follwoing problems:
- made vfs urls known to the osgi implementation
- made withe-spaces in path working
- ugly hacked some classloading issues
we encounter now some (strange) problem of type:
2009-04-09 13:18:52,170 INFO [STDOUT] (Thread-12) While loading class "com.arjuna.ats.internal.arjuna.recovery.TransactionStatusConnector", thread "Thread[Thread-12,5,main]" timed out waiting (5000ms) for thread "Thread[Start Level Event Dispatcher,5,main]" to finish starting bundle initial@reference:file:plugins/com.qualitype.genoproof.rcp.server_1.0.0/ [3]".To avoid deadlock, thread "Thread[Thread-12,5,main]" is proceeding but "com.arjuna.ats.internal.arjuna.recovery.TransactionStatusConnector" may not be fully initialized.
Seems like the equinox osgi-framework cannot handle halting of modules due to the dependency management between different jboss services.
See also http://dev.eclipse.org/newslists/news.eclipse.webtools/msg15744.html
Stacktrace from boot.log:
2009-04-09 13:18:46,878 DEBUG [org.jboss.deployers.structure.spi.helpers.AbstractDeploymentContext] (Start Level Event Dispatcher) Added component DefaultUserTransactionprovider to vfsfile:/C:/temp/Genoproof2/eclipse/plugins/com.qualitype.genoproof.rcp.server_1.0.0/Jboss/server/default/deploy/transaction-jboss-beans.xml 2009-04-09 13:18:46,925 DEBUG [org.jboss.system.ServiceController] (Start Level Event Dispatcher) Registering service jboss:service=TransactionManager 2009-04-09 13:18:46,925 DEBUG [org.jboss.system.microcontainer.jmx.ServiceControllerRegistrationLifecycleCallback] (Start Level Event Dispatcher) Registered MBean jboss:service=TransactionManager 2009-04-09 13:18:46,925 INFO [com.arjuna.ats.jbossatx.jta.TransactionManagerService] (Start Level Event Dispatcher) JBossTS Transaction Service (JTA version) - JBoss Inc. 2009-04-09 13:18:46,925 INFO [com.arjuna.ats.jbossatx.jta.TransactionManagerService] (Start Level Event Dispatcher) Setting up property manager MBean and JMX layer 2009-04-09 13:18:47,019 DEBUG [com.arjuna.ats.arjuna.logging.arjLoggerI18N] (Start Level Event Dispatcher) [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_1] - Starting service com.arjuna.ats.arjuna.recovery.ActionStatusService on port 4713 2009-04-09 13:18:47,034 DEBUG [com.arjuna.ats.arjuna.logging.arjLogger] (Start Level Event Dispatcher) TransactionStatusManagerItem - host: 127.0.0.1 port: 4713 2009-04-09 13:18:47,050 DEBUG [com.arjuna.ats.arjuna.logging.arjLoggerI18N] (Start Level Event Dispatcher) [com.arjuna.ats.arjuna.recovery.TransactionStatusManager_3] - TransactionStatusManager started on port 4713 and host 127.0.0.1 with service com.arjuna.ats.arjuna.recovery.ActionStatusService 2009-04-09 13:18:47,081 DEBUG [com.arjuna.ats.tsmx.logging.tsmxLogger] (Start Level Event Dispatcher) Registering mbean for module 'arjuna' 2009-04-09 13:18:47,081 DEBUG [com.arjuna.ats.tsmx.logging.tsmxLogger] (Start Level Event Dispatcher) Initialising JMX agent com.arjuna.ats.internal.jbossatx.agent.LocalJBossAgentImpl 2009-04-09 13:18:47,081 DEBUG [com.arjuna.ats.tsmx.logging.tsmxLogger] (Start Level Event Dispatcher) Registering mbean for module 'jta' 2009-04-09 13:18:47,081 DEBUG [com.arjuna.ats.tsmx.logging.tsmxLogger] (Start Level Event Dispatcher) Registering mbean for module 'txoj' 2009-04-09 13:18:47,112 INFO [com.arjuna.ats.jbossatx.jta.TransactionManagerService] (Start Level Event Dispatcher) Initializing recovery manager 2009-04-09 13:18:47,112 DEBUG [com.arjuna.ats.arjuna.logging.arjLogger] (Start Level Event Dispatcher) --- Start RecoveryActivators 2009-04-09 13:18:47,128 DEBUG [com.arjuna.ats.arjuna.logging.arjLogger] (Thread-12) --- ExpiredEntryMonitor ----Do, 9 Apr 2009 13:18:47---- 2009-04-09 13:18:52,170 INFO [STDOUT] (Thread-12) !ENTRY 2009-04-09 13:18:52,170 INFO [STDOUT] (Thread-12) 2009-04-09 13:18:52,170 INFO [STDOUT] (Thread-12) org.eclipse.osgi 2009-04-09 13:18:52,170 INFO [STDOUT] (Thread-12) 2009-04-09 13:18:52,170 INFO [STDOUT] (Thread-12) 2 2009-04-09 13:18:52,170 INFO [STDOUT] (Thread-12) 2009-04-09 13:18:52,170 INFO [STDOUT] (Thread-12) 0 2009-04-09 13:18:52,170 INFO [STDOUT] (Thread-12) 2009-04-09 13:18:52,170 INFO [STDOUT] (Thread-12) 2009-04-09 13:18:52.170 2009-04-09 13:18:52,170 INFO [STDOUT] (Thread-12) !MESSAGE 2009-04-09 13:18:52,170 INFO [STDOUT] (Thread-12) 2009-04-09 13:18:52,170 INFO [STDOUT] (Thread-12) While loading class "com.arjuna.ats.internal.arjuna.recovery.TransactionStatusConnector", thread "Thread[Thread-12,5,main]" timed out waiting (5000ms) for thread "Thread[Start Level Event Dispatcher,5,main]" to finish starting bundle "initial@reference:file:plugins/com.qualitype.genoproof.rcp.server_1.0.0/ [3]". To avoid deadlock, thread "Thread[Thread-12,5,main]" is proceeding but "com.arjuna.ats.internal.arjuna.recovery.TransactionStatusConnector" may not be fully initialized. 2009-04-09 13:18:52,170 INFO [STDOUT] (Thread-12) !STACK 2009-04-09 13:18:52,170 INFO [STDOUT] (Thread-12) 2009-04-09 13:18:52,170 INFO [STDOUT] (Thread-12) 0 2009-04-09 13:18:52,170 INFO [STDOUT] (Thread-12) org.osgi.framework.BundleException: State change in progress for bundle "initial@reference:file:plugins/com.qualitype.genoproof.rcp.server_1.0.0/" by thread "Start Level Event Dispatcher". at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1144) at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:263) at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:400) at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:111) at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:427) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:193) at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:370) at org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(BundleLoader.java:446) at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:399) at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:387) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:87) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) at com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner.scan(ExpiredTransactionStatusManagerScanner.java:144) at com.arjuna.ats.internal.arjuna.recovery.ExpiredEntryMonitor.run(ExpiredEntryMonitor.java:212) Caused by: org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException ... 15 more Root exception: org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1144) at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:263) at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:400) at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:111) at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:427) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:193) at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:370) at org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(BundleLoader.java:446) at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:399) at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:387) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:87) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) at com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner.scan(ExpiredTransactionStatusManagerScanner.java:144) at com.arjuna.ats.internal.arjuna.recovery.ExpiredEntryMonitor.run(ExpiredEntryMonitor.java:212) 2009-04-09 13:18:57,212 INFO [STDOUT] (Listener:4713) !ENTRY 2009-04-09 13:18:57,212 INFO [STDOUT] (Listener:4713) 2009-04-09 13:18:57,212 INFO [STDOUT] (Listener:4713) org.eclipse.osgi 2009-04-09 13:18:57,212 INFO [STDOUT] (Listener:4713) 2009-04-09 13:18:57,212 INFO [STDOUT] (Listener:4713) 2 2009-04-09 13:18:57,212 INFO [STDOUT] (Listener:4713) 2009-04-09 13:18:57,212 INFO [STDOUT] (Listener:4713) 0 2009-04-09 13:18:57,212 INFO [STDOUT] (Listener:4713) 2009-04-09 13:18:57,212 INFO [STDOUT] (Listener:4713) 2009-04-09 13:18:57.212 2009-04-09 13:18:57,212 INFO [STDOUT] (Listener:4713) !MESSAGE 2009-04-09 13:18:57,212 INFO [STDOUT] (Listener:4713) 2009-04-09 13:18:57,212 INFO [STDOUT] (Listener:4713) While loading class "com.arjuna.ats.internal.arjuna.recovery.Connection", thread "Thread[Listener:4713,5,main]" timed out waiting (5000ms) for thread "Thread[Start Level Event Dispatcher,5,main]" to finish starting bundle "initial@reference:file:plugins/com.qualitype.genoproof.rcp.server_1.0.0/ [3]". To avoid deadlock, thread "Thread[Listener:4713,5,main]" is proceeding but "com.arjuna.ats.internal.arjuna.recovery.Connection" may not be fully initialized. 2009-04-09 13:18:57,212 INFO [STDOUT] (Listener:4713) !STACK 2009-04-09 13:18:57,212 INFO [STDOUT] (Listener:4713) 2009-04-09 13:18:57,212 INFO [STDOUT] (Listener:4713) 0 2009-04-09 13:18:57,212 INFO [STDOUT] (Listener:4713) org.osgi.framework.BundleException: State change in progress for bundle "initial@reference:file:plugins/com.qualitype.genoproof.rcp.server_1.0.0/" by thread "Start Level Event Dispatcher". at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1144) at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:263) at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:400) at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:111) at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:427) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:193) at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:370) at org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(BundleLoader.java:446) at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:399) at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:387) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:87) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) at com.arjuna.ats.internal.arjuna.recovery.Listener.run(Listener.java:121) Caused by: org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException ... 14 more Root exception: org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1144) at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:263) at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:400) at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:111) at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:427) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:193) at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:370) at org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(BundleLoader.java:446) at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:399) at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:387) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:87) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) at com.arjuna.ats.internal.arjuna.recovery.Listener.run(Listener.java:121)
Can somebody bring some ligth into this problem - and answer the question, if it should be possible to boot up jboss inside of another osgi-implementation?