X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.interop%2Fsrc%2Forg%2Fsimantics%2Finterop%2Fissues%2FAbstractIssue.java;h=01ebb022bcb8052db9216cb1fe06e04330438a2d;hb=1f360dfa6505e971658bad416214f5f358305fba;hp=ae14eedcf58d1f2434c4b4dd39e9458184ae8c9b;hpb=f8c634455297c89de2932ee815dfb5cbba427646;p=simantics%2Finterop.git diff --git a/org.simantics.interop/src/org/simantics/interop/issues/AbstractIssue.java b/org.simantics.interop/src/org/simantics/interop/issues/AbstractIssue.java index ae14eed..01ebb02 100644 --- a/org.simantics.interop/src/org/simantics/interop/issues/AbstractIssue.java +++ b/org.simantics.interop/src/org/simantics/interop/issues/AbstractIssue.java @@ -24,9 +24,12 @@ public abstract class AbstractIssue implements Issue{ Display.getDefault().asyncExec(new Runnable() { @Override public void run() { - for (IssueListener l : listeners) { - l.updated(AbstractIssue.this); + synchronized (listeners) { + for (IssueListener l : listeners) { + l.updated(AbstractIssue.this); + } } + } }); } @@ -40,18 +43,23 @@ public abstract class AbstractIssue implements Issue{ for (IssueListener l : list) { l.disposed(AbstractIssue.this); } + listeners.clear(); } }); } @Override public void addListener(IssueListener listener) { - listeners.add(listener); + synchronized(listeners) { + listeners.add(listener); + } } @Override public void removeListener(IssueListener listener) { - listeners.remove(listener); + synchronized(listeners) { + listeners.remove(listener); + } } @Override