Author: rob.stryker(a)jboss.com
Date: 2011-10-04 03:25:11 -0400 (Tue, 04 Oct 2011)
New Revision: 35313
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/JBossServerCorePlugin.java
Log:
JBIDE-9802 - patch from alexey
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/JBossServerCorePlugin.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/JBossServerCorePlugin.java 2011-10-04
06:33:27 UTC (rev 35312)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/JBossServerCorePlugin.java 2011-10-04
07:25:11 UTC (rev 35313)
@@ -16,10 +16,12 @@
import org.eclipse.core.runtime.IExtensionPoint;
import org.eclipse.core.runtime.IExtensionRegistry;
import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.Plugin;
import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.osgi.service.debug.DebugOptions;
import org.eclipse.osgi.service.debug.DebugOptionsListener;
import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework;
@@ -67,8 +69,16 @@
UnitedServerListenerManager.getDefault();
UnitedServerListenerManager.getDefault().addListener(XPathModel.getDefault());
UnitedServerListenerManager.getDefault().addListener(ServerListener.getDefault());
- FacetedProjectFramework.addListener( JBoss4xEarFacetInstallListener.getDefault(),
IFacetedProjectEvent.Type.POST_INSTALL);
-
+ // It's unsafe to use FacetedProjectFramework in start method in the same thread.
If may cause a deadlock. See
https://issues.jboss.org/browse/JBIDE-9802
+ Job job = new Job("Adding JBoss4xEarFacetInstallListener") { //$NON-NLS-1$
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ FacetedProjectFramework.addListener(JBoss4xEarFacetInstallListener.getDefault(),
IFacetedProjectEvent.Type.POST_INSTALL);
+ return Status.OK_STATUS;
+ }
+ };
+ job.schedule();
+
// register the debug options listener
final Hashtable<String, String> props = new Hashtable<String, String>(4);
props.put(DebugOptions.LISTENER_SYMBOLICNAME, PLUGIN_ID);