]> gerrit.simantics Code Review - simantics/interop.git/blobdiff - org.simantics.interop/src/org/simantics/interop/issues/AbstractIssue.java
More extensive search for comparable resources
[simantics/interop.git] / org.simantics.interop / src / org / simantics / interop / issues / AbstractIssue.java
index ae14eedcf58d1f2434c4b4dd39e9458184ae8c9b..01ebb022bcb8052db9216cb1fe06e04330438a2d 100644 (file)
@@ -24,9 +24,12 @@ public abstract class AbstractIssue implements Issue{
                Display.getDefault().asyncExec(new Runnable() {\r
                        @Override\r
                        public void run() {\r
-                               for (IssueListener l : listeners) {\r
-                                       l.updated(AbstractIssue.this);\r
+                               synchronized (listeners) {\r
+                                       for (IssueListener l : listeners) {\r
+                                               l.updated(AbstractIssue.this);\r
+                                       }       \r
                                }\r
+                               \r
                        }\r
                });\r
        }\r
@@ -40,18 +43,23 @@ public abstract class AbstractIssue implements Issue{
                                for (IssueListener l : list) {\r
                                        l.disposed(AbstractIssue.this);\r
                                }\r
+                               listeners.clear();\r
                        }\r
                });\r
        }\r
        \r
        @Override\r
        public void addListener(IssueListener listener) {\r
-               listeners.add(listener);\r
+               synchronized(listeners) {\r
+                       listeners.add(listener);\r
+               }\r
        }\r
        \r
        @Override\r
        public void removeListener(IssueListener listener) {\r
-               listeners.remove(listener);\r
+               synchronized(listeners) {\r
+                       listeners.remove(listener);\r
+               }\r
        }\r
        \r
        @Override\r