[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();