[294630] Invalid thread access FacetsSelectionPanel.handleProjectFacetsChangedEvent
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetsSelectionPanel.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetsSelectionPanel.java
index d4ed091..ea313c6 100644
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetsSelectionPanel.java
+++ b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetsSelectionPanel.java
@@ -910,6 +910,21 @@
private void handleProjectFacetsChangedEvent( final IFacetedProjectEvent event )
{
+ if( ! Thread.currentThread().equals( getDisplay().getThread() ) )
+ {
+ final Runnable uiRunnable = new Runnable()
+ {
+ public void run()
+ {
+ handleProjectFacetsChangedEvent( event );
+ }
+ };
+
+ getDisplay().asyncExec( uiRunnable );
+
+ return;
+ }
+
final Set<ICategory> affectedCategories = new HashSet<ICategory>();
if( event != null )
@@ -924,13 +939,8 @@
final IProjectFacet f = fv.getProjectFacet();
final boolean checked = fpjwc.hasProjectFacet( fv );
- final CheckboxTreeViewer treeViewer = this.treeViewer;
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- treeViewer.setChecked( f, checked );
- treeViewer.update( f, null );
- }
- });
+ this.treeViewer.setChecked( f, checked );
+ this.treeViewer.update( f, null );
final ICategory category = f.getCategory();