You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by gd...@apache.org on 2004/07/21 03:39:08 UTC

cvs commit: incubator-geronimo/modules/timer/src/java/org/apache/geronimo/timer/vm VMWorkerPersistence.java

gdamour     2004/07/20 18:39:08

  Modified:    modules/timer/src/java/org/apache/geronimo/timer/vm
                        VMWorkerPersistence.java
  Log:
  Synchronize the lookup otherwise it is possible to have a concurrent modification of the Map.
  
  Revision  Changes    Path
  1.3       +7 -5      incubator-geronimo/modules/timer/src/java/org/apache/geronimo/timer/vm/VMWorkerPersistence.java
  
  Index: VMWorkerPersistence.java
  ===================================================================
  RCS file: /home/cvs/incubator-geronimo/modules/timer/src/java/org/apache/geronimo/timer/vm/VMWorkerPersistence.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- VMWorkerPersistence.java	20 Jul 2004 23:36:53 -0000	1.2
  +++ VMWorkerPersistence.java	21 Jul 2004 01:39:08 -0000	1.3
  @@ -81,10 +81,12 @@
   
       public Collection getIdsByKey(String key, Object userId) throws PersistenceException {
           Collection ids = new ArrayList();
  -        for (Iterator iterator = tasks.values().iterator(); iterator.hasNext();) {
  -            WorkInfo workInfo = (WorkInfo) iterator.next();
  -            if (key.equals(workInfo.getKey()) && (userId == null || userId.equals(workInfo.getUserId()))) {
  -                ids.add(new Long(workInfo.getId()));
  +        synchronized(tasks) {
  +            for (Iterator iterator = tasks.values().iterator(); iterator.hasNext();) {
  +                WorkInfo workInfo = (WorkInfo) iterator.next();
  +                if (key.equals(workInfo.getKey()) && (userId == null || userId.equals(workInfo.getUserId()))) {
  +                    ids.add(new Long(workInfo.getId()));
  +                }
               }
           }
           return ids;