Commit in lcsim/src/org/lcsim/conditions on MAIN
ConditionsManagerImplementation.java+5-61.7 -> 1.8
Fixed listener list concurrent modification problem

lcsim/src/org/lcsim/conditions
ConditionsManagerImplementation.java 1.7 -> 1.8
diff -u -r1.7 -r1.8
--- ConditionsManagerImplementation.java	3 Apr 2007 18:02:34 -0000	1.7
+++ ConditionsManagerImplementation.java	10 May 2007 05:21:36 -0000	1.8
@@ -23,7 +23,7 @@
    private ConditionsReader reader;
    private String detectorName;
    private int run;
-   private List listenerList = new ArrayList();
+   private List<ConditionsListener> listenerList = new ArrayList<ConditionsListener>();
    private Logger logger = Logger.getLogger(ConditionsManagerImplementation.class.getName());
    
    /**
@@ -104,15 +104,14 @@
    {
       listenerList.remove(l);
    }
+
    void fireConditionsChanged()
    {
       ConditionsEvent event = new ConditionsEvent(this);
-      for (Iterator i = listenerList.iterator(); i.hasNext(); )
-      {
-         ConditionsListener cl = (ConditionsListener) i.next();
-         cl.conditionsChanged(event);
-      }
+      ArrayList<ConditionsListener> listeners = new ArrayList<ConditionsListener>(listenerList);
+      for (ConditionsListener cl : listeners) cl.conditionsChanged(event);
    }
+
    InputStream open(String name, String type) throws IOException
    {
       if (reader == null) throw new IOException("Detector description has not been set");
CVSspam 0.2.8