diff options
author | Uwe Stieber | 2013-01-23 13:47:36 +0000 |
---|---|---|
committer | Uwe Stieber | 2013-01-23 13:47:36 +0000 |
commit | 18f8e3438452f038b56f1cb9d179e2a00adc6496 (patch) | |
tree | f9ac4f90c27a67793b4eb0f7f67c5bbd6df4a360 /target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf | |
parent | 88135793ca1e0d798fda0d9a5e176c93bfa02535 (diff) | |
download | org.eclipse.tcf-18f8e3438452f038b56f1cb9d179e2a00adc6496.tar.gz org.eclipse.tcf-18f8e3438452f038b56f1cb9d179e2a00adc6496.tar.xz org.eclipse.tcf-18f8e3438452f038b56f1cb9d179e2a00adc6496.zip |
Target Explorer: Fix invalid thread access
Diffstat (limited to 'target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf')
-rw-r--r-- | target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/DelegatingLabelProvider.java | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/DelegatingLabelProvider.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/DelegatingLabelProvider.java index a1d251f59..4d18f2a9d 100644 --- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/DelegatingLabelProvider.java +++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/DelegatingLabelProvider.java @@ -12,6 +12,7 @@ package org.eclipse.tcf.te.tcf.ui.navigator; import java.util.HashMap; import java.util.Map; import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicInteger; import org.eclipse.core.runtime.Assert; import org.eclipse.jface.viewers.ILabelDecorator; @@ -123,13 +124,25 @@ public class DelegatingLabelProvider extends LabelProvider implements ILabelDeco * @param label The label. Must not be <code>null</code>. * @return <code>True</code> if the address shall be appended, <code>false</code> otherwise. */ - protected boolean isAppendAddressText(String label) { + protected boolean isAppendAddressText(final String label) { Assert.isNotNull(label); boolean append = "TCF Agent".equals(label) || "TCF Proxy".equals(label); //$NON-NLS-1$ //$NON-NLS-2$ if (!append) { - append = Model.getModel().getService(ILocatorModelLookupService.class).lkupPeerModelByName(label).length > 1; + final AtomicInteger count = new AtomicInteger(); + + Runnable runnable = new Runnable() { + @Override + public void run() { + count.set(Model.getModel().getService(ILocatorModelLookupService.class).lkupPeerModelByName(label).length); + } + }; + + if (Protocol.isDispatchThread()) runnable.run(); + else Protocol.invokeAndWait(runnable); + + append = count.get() > 1; } return append; |