avoid widget is disposed exception
authorKatja Luther <k.luther@bgbm.org>
Fri, 24 Nov 2017 11:51:54 +0000 (12:51 +0100)
committerKatja Luther <k.luther@bgbm.org>
Fri, 24 Nov 2017 11:51:54 +0000 (12:51 +0100)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/e4/AbstractCdmEditorPartE4.java

index 1ca0af3c1a873d3c54de8b675ad80d70b6da4751..701219ecdfa3e2311ba772bf434ad33d298fe5d2 100644 (file)
@@ -14,6 +14,7 @@ import javax.annotation.PreDestroy;
 import javax.inject.Inject;
 import javax.inject.Named;
 
+import org.apache.log4j.Logger;
 import org.eclipse.e4.core.di.annotations.Optional;
 import org.eclipse.e4.ui.di.PersistState;
 import org.eclipse.e4.ui.di.UISynchronize;
@@ -25,6 +26,7 @@ import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWTException;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
@@ -58,7 +60,7 @@ public abstract class AbstractCdmEditorPartE4
      * If it is <code>true</code> then it is currently delaying a selection.
      */
     private boolean isInDelay;
-
+    private static final Logger logger = Logger.getLogger(AbstractCdmEditorPartE4.class);
 
     /**
      * This class invokes internal_selectionChanged() in a separate thread.
@@ -129,7 +131,11 @@ public abstract class AbstractCdmEditorPartE4
             return;
         }
         if (viewer != null && viewer.getControl()!= null && viewer.getInput() != null && !viewer.getControl().isDisposed()){
-            viewer.getControl().setEnabled(true);
+           try{
+               viewer.getControl().setEnabled(true);
+           }catch(SWTException e){
+              logger.debug("Something went wrong for setEnabled", e);
+           }
         }