[ 
https://issues.apache.org/jira/browse/GERONIMODEVTOOLS-760?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13053974#comment-13053974
 ] 

Jarek Gawor commented on GERONIMODEVTOOLS-760:
----------------------------------------------

Committed possible solution to this problem in revision 1138994. The server 
monitoring tasks will now be started from a separate thread instead of the 
Activator.


> 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