Two GeronimoServerBehaviourDelegates created for one IServer
------------------------------------------------------------

                 Key: GERONIMODEVTOOLS-760
                 URL: https://issues.apache.org/jira/browse/GERONIMODEVTOOLS-760
             Project: Geronimo-Devtools
          Issue Type: Bug
          Components: eclipse-plugin
    Affects Versions: 3.0
            Reporter: Jarek Gawor
            Assignee: Jarek Gawor


Once in a while two GeronimoServerBehaviourDelegates are created for the same 
IServer and GeronimoServerBehaviourDelegates.initialize() is called twice. 
Here's a call stack from the two calls to .initialize():

java.lang.Exception
        at 
org.apache.geronimo.st.v30.core.GeronimoServerBehaviourDelegate.initialize(GeronimoServerBehaviourDelegate.java:686)
        at 
org.eclipse.wst.server.core.model.ServerBehaviourDelegate.initialize(ServerBehaviourDelegate.java:102)
        at 
org.eclipse.wst.server.core.model.InternalInitializer.initializeServerBehaviourDelegate(InternalInitializer.java:41)
        at 
org.eclipse.wst.server.core.internal.Server.getBehaviourDelegate(Server.java:510)
        at 
org.eclipse.wst.server.core.internal.Server.loadAdapter(Server.java:1493)
        at 
org.apache.geronimo.st.v30.core.Activator.getGeronimoServerBehaviourDelegate(Activator.java:154)
        at 
org.apache.geronimo.st.v30.core.Activator.triggerStartUpdateServerTask(Activator.java:169)
        at org.apache.geronimo.st.v30.core.Activator.start(Activator.java:117)
        at 
org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783)
        at java.security.AccessController.doPrivileged(Native Method)
        at 
org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774)
        at 
org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755)
        at 
org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:370)
        at 
org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:284)
        at 
org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:417)
        at 
org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:265)
        at 
org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:106)
        at 
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:453)
        at 
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:393)
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:469)
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422)
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
        at 
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
        at 
org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:338)
        at 
org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:232)
        at 
org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1197)
        at 
org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
        at 
org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:904)
        at 
org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
        at 
org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
        at 
org.eclipse.wst.server.core.internal.ServerType.createServerBehaviourDelegate(ServerType.java:91)
        at 
org.eclipse.wst.server.core.internal.Server.getBehaviourDelegate(Server.java:508)
        at 
org.eclipse.wst.server.core.internal.Server.canPublish(Server.java:1095)
        at 
org.eclipse.wst.server.core.internal.Server.shouldPublish(Server.java:1109)
        at 
org.eclipse.wst.server.ui.internal.cnf.ServerDecorator.getServerStatusLabel(ServerDecorator.java:139)
        at 
org.eclipse.wst.server.ui.internal.cnf.ServerDecorator.decorate(ServerDecorator.java:73)
        at 
org.eclipse.ui.internal.decorators.LightweightDecoratorDefinition.decorate(LightweightDecoratorDefinition.java:269)
        at 
org.eclipse.ui.internal.decorators.LightweightDecoratorManager$LightweightRunnable.run(LightweightDecoratorManager.java:81)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
        at 
org.eclipse.ui.internal.decorators.LightweightDecoratorManager.decorate(LightweightDecoratorManager.java:365)
        at 
org.eclipse.ui.internal.decorators.LightweightDecoratorManager.getDecorations(LightweightDecoratorManager.java:347)
        at 
org.eclipse.ui.internal.decorators.DecorationScheduler$1.ensureResultCached(DecorationScheduler.java:371)
        at 
org.eclipse.ui.internal.decorators.DecorationScheduler$1.run(DecorationScheduler.java:331)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)



java.lang.Exception
        at 
org.apache.geronimo.st.v30.core.GeronimoServerBehaviourDelegate.initialize(GeronimoServerBehaviourDelegate.java:686)
        at 
org.eclipse.wst.server.core.model.ServerBehaviourDelegate.initialize(ServerBehaviourDelegate.java:102)
        at 
org.eclipse.wst.server.core.model.InternalInitializer.initializeServerBehaviourDelegate(InternalInitializer.java:41)
        at 
org.eclipse.wst.server.core.internal.Server.getBehaviourDelegate(Server.java:510)
        at 
org.eclipse.wst.server.core.internal.Server.canPublish(Server.java:1095)
        at 
org.eclipse.wst.server.core.internal.Server.shouldPublish(Server.java:1109)
        at 
org.eclipse.wst.server.ui.internal.cnf.ServerDecorator.getServerStatusLabel(ServerDecorator.java:139)
        at 
org.eclipse.wst.server.ui.internal.cnf.ServerDecorator.decorate(ServerDecorator.java:73)
        at 
org.eclipse.ui.internal.decorators.LightweightDecoratorDefinition.decorate(LightweightDecoratorDefinition.java:269)
        at 
org.eclipse.ui.internal.decorators.LightweightDecoratorManager$LightweightRunnable.run(LightweightDecoratorManager.java:81)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
        at 
org.eclipse.ui.internal.decorators.LightweightDecoratorManager.decorate(LightweightDecoratorManager.java:365)
        at 
org.eclipse.ui.internal.decorators.LightweightDecoratorManager.getDecorations(LightweightDecoratorManager.java:347)
        at 
org.eclipse.ui.internal.decorators.DecorationScheduler$1.ensureResultCached(DecorationScheduler.java:371)
        at 
org.eclipse.ui.internal.decorators.DecorationScheduler$1.run(DecorationScheduler.java:331)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)


I believe the first call stack leads to ClassCircularityError since 
ConfigurationElementHandle attempts to load GeronimoServerBehaviourDelegate 
class which combined with lazy activated bundle forces the Activator to be 
called which attempts to load the GeronimoServerBehaviourDelegate class.

Disabling lazy loading seems to help.


--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to