Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUwe Stieber2014-01-27 15:35:58 +0000
committerUwe Stieber2014-01-27 15:35:58 +0000
commite948e2e7c8f1584e28b2848bd8e852b2f0e1c7d1 (patch)
tree456e96a64707197bf0f0558c1ee4e0f12434ccdd /target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core
parent6c6d8820ed55f0ff3ed145bba48a4858c7421fff (diff)
downloadorg.eclipse.tcf-e948e2e7c8f1584e28b2848bd8e852b2f0e1c7d1.tar.gz
org.eclipse.tcf-e948e2e7c8f1584e28b2848bd8e852b2f0e1c7d1.tar.xz
org.eclipse.tcf-e948e2e7c8f1584e28b2848bd8e852b2f0e1c7d1.zip
Target Explorer: Fix invalid thread access
Diffstat (limited to 'target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core')
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/steps/InitializeModelStep.java18
1 files changed, 13 insertions, 5 deletions
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/steps/InitializeModelStep.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/steps/InitializeModelStep.java
index abd286be9..36960a18e 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/steps/InitializeModelStep.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core/src/org/eclipse/tcf/te/tcf/processes/core/steps/InitializeModelStep.java
@@ -13,6 +13,7 @@ import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.Status;
import org.eclipse.tcf.protocol.IChannel;
+import org.eclipse.tcf.protocol.Protocol;
import org.eclipse.tcf.te.runtime.interfaces.callback.ICallback;
import org.eclipse.tcf.te.runtime.interfaces.properties.IPropertiesContainer;
import org.eclipse.tcf.te.runtime.stepper.interfaces.IFullQualifiedId;
@@ -37,14 +38,21 @@ public class InitializeModelStep extends AbstractPeerNodeStep {
IPeerNode peerNode = getActivePeerModelContext(context, data, fullQualifiedId);
if (peerNode != null) {
IRuntimeModel model = ModelManager.getRuntimeModel(peerNode);
- IModelChannelService service = model != null ? model.getService(IModelChannelService.class) : null;
+ final IModelChannelService service = model != null ? model.getService(IModelChannelService.class) : null;
if (service != null) {
- service.openChannel(new IModelChannelService.DoneOpenChannel() {
+ Runnable runnable = new Runnable() {
@Override
- public void doneOpenChannel(Throwable error, IChannel channel) {
- callback.done(InitializeModelStep.this, StatusHelper.getStatus(error));
+ public void run() {
+ service.openChannel(new IModelChannelService.DoneOpenChannel() {
+ @Override
+ public void doneOpenChannel(Throwable error, IChannel channel) {
+ callback.done(InitializeModelStep.this, StatusHelper.getStatus(error));
+ }
+ });
}
- });
+ };
+
+ Protocol.invokeLater(runnable);
} else {
callback.done(InitializeModelStep.this, Status.OK_STATUS);
}

Back to the top