Uploaded image for project: 'Geronimo-Devtools'
  1. Geronimo-Devtools
  2. GERONIMODEVTOOLS-760

Two GeronimoServerBehaviourDelegates created for one IServer

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 3.0
    • 3.0
    • eclipse-plugin
    • None

    Description

      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.

      Attachments

        Activity

          People

            gawor@mcs.anl.gov Jarek Gawor
            gawor@mcs.anl.gov Jarek Gawor
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: