tmf: Bug 469809: Invalid thread access closing editors in non-UI thread
authorPatrick Tasse <patrick.tasse@gmail.com>
Wed, 10 Jun 2015 17:23:56 +0000 (13:23 -0400)
committerPatrick Tasse <patrick.tasse@gmail.com>
Wed, 10 Jun 2015 18:13:53 +0000 (14:13 -0400)
Change-Id: Ia692b41efe429b96c995ba7bf7ed749d25ceff12
Signed-off-by: Patrick Tasse <patrick.tasse@gmail.com>
Reviewed-on: https://git.eclipse.org/r/49949
Reviewed-by: Hudson CI
Reviewed-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Tested-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/project/handlers/RenameFolderHandler.java
org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/internal/tmf/ui/project/handlers/RenameTraceHandler.java
org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/project/wizards/RenameExperimentDialog.java
org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/project/wizards/SelectTracesWizardPage.java

index 5d41a01da63af8ea23cfcb19644bf46b2c2beba3..cbbfb8546a1c365dd2bc4003f62632ab9bef72fc 100644 (file)
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2014 Ericsson
+ * Copyright (c) 2014, 2015 Ericsson
  *
  * All rights reserved. This program and the accompanying materials are
  * made available under the terms of the Eclipse Public License v1.0 which
@@ -27,6 +27,7 @@ import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.window.Window;
+import org.eclipse.swt.widgets.Display;
 import org.eclipse.tracecompass.tmf.ui.project.model.TmfExperimentElement;
 import org.eclipse.tracecompass.tmf.ui.project.model.TmfTraceElement;
 import org.eclipse.tracecompass.tmf.ui.project.model.TmfTraceFolder;
@@ -90,8 +91,13 @@ public class RenameFolderHandler extends AbstractHandler {
                         throw new OperationCanceledException();
                     }
 
-                    for (TmfTraceElement traceElement : oldFolder.getTraces()) {
-                        traceElement.closeEditors();
+                    for (final TmfTraceElement traceElement : oldFolder.getTraces()) {
+                        Display.getDefault().syncExec(new Runnable() {
+                            @Override
+                            public void run() {
+                                traceElement.closeEditors();
+                            }
+                        });
 
                         IPath relativePath = traceElement.getPath().makeRelativeTo(oldFolder.getPath());
                         String newElementPath = newFolderPath.makeRelativeTo(tracesFolder.getPath()).append(relativePath).toString();
index 5bca31a41a62ef941922a92cb83233cc7c97e922..a9066d332011e8250058728c8baa5ae045676631 100644 (file)
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2009, 2014 Ericsson
+ * Copyright (c) 2009, 2015 Ericsson
  *
  * All rights reserved. This program and the accompanying materials are
  * made available under the terms of the Eclipse Public License v1.0 which
@@ -29,6 +29,7 @@ import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.window.Window;
+import org.eclipse.swt.widgets.Display;
 import org.eclipse.tracecompass.tmf.ui.project.model.TmfExperimentElement;
 import org.eclipse.tracecompass.tmf.ui.project.model.TmfExperimentFolder;
 import org.eclipse.tracecompass.tmf.ui.project.model.TmfTraceElement;
@@ -93,7 +94,12 @@ public class RenameTraceHandler extends AbstractHandler {
                         throw new OperationCanceledException();
                     }
                     // Close the trace if open
-                    oldTrace.closeEditors();
+                    Display.getDefault().syncExec(new Runnable() {
+                        @Override
+                        public void run() {
+                            oldTrace.closeEditors();
+                        }
+                    });
 
                     if (oldTrace.getResource() instanceof IFolder) {
                         IFolder folder = (IFolder) oldTrace.getResource();
index ea71ac51791bd07b89498f4221f7bb56e616a340..d0fba2eab6a6de9cd62d4aa95ec1dba41c7a91d8 100644 (file)
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011, 2014 Ericsson
+ * Copyright (c) 2011, 2015 Ericsson
  *
  * All rights reserved. This program and the accompanying materials are
  * made available under the terms of the Eclipse Public License v1.0 which
@@ -35,6 +35,7 @@ import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Listener;
@@ -203,7 +204,12 @@ public class RenameExperimentDialog extends SelectionStatusDialog {
                         throw new OperationCanceledException();
                     }
                     // Close the experiment if open
-                    fExperiment.closeEditors();
+                    Display.getDefault().syncExec(new Runnable() {
+                        @Override
+                        public void run() {
+                            fExperiment.closeEditors();
+                        }
+                    });
 
                     IFolder folder = fExperiment.getResource();
                     IFile bookmarksFile = fExperiment.getBookmarksFile();
index 66a5094aae6535b6e8d572a54172655dc31e337f..276d235c83683842afba3ffddab48c5789cfce5d 100644 (file)
@@ -53,6 +53,7 @@ import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Tree;
 import org.eclipse.tracecompass.internal.tmf.ui.Activator;
 import org.eclipse.tracecompass.tmf.core.project.model.TmfTraceType;
@@ -431,7 +432,12 @@ public class SelectTracesWizardPage extends WizardPage {
                     subMonitor.worked(1);
                 }
                 if (changed) {
-                    fExperiment.closeEditors();
+                    Display.getDefault().syncExec(new Runnable() {
+                        @Override
+                        public void run() {
+                            fExperiment.closeEditors();
+                        }
+                    });
                     fExperiment.deleteSupplementaryResources();
                 }
                 setStatus(Status.OK_STATUS);
This page took 0.029059 seconds and 5 git commands to generate.