Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUwe Stieber2013-01-23 13:47:36 +0000
committerUwe Stieber2013-01-23 13:47:36 +0000
commit18f8e3438452f038b56f1cb9d179e2a00adc6496 (patch)
treef9ac4f90c27a67793b4eb0f7f67c5bbd6df4a360 /target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf
parent88135793ca1e0d798fda0d9a5e176c93bfa02535 (diff)
downloadorg.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.java17
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;

Back to the top