diff options
author | Uwe Stieber | 2014-01-27 15:35:58 +0000 |
---|---|---|
committer | Uwe Stieber | 2014-01-27 15:35:58 +0000 |
commit | e948e2e7c8f1584e28b2848bd8e852b2f0e1c7d1 (patch) | |
tree | 456e96a64707197bf0f0558c1ee4e0f12434ccdd /target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.core | |
parent | 6c6d8820ed55f0ff3ed145bba48a4858c7421fff (diff) | |
download | org.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.java | 18 |
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); } |