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
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