asmuts      02/05/13 11:12:27

  Modified:    src/java/org/apache/jcs/engine/memory/mru
                        MRUMemoryCache.java
  Log:
  Eliminated teh race condition. The creation of the key array is using the same lock 
as remove and put.
  
  The shrinker uses the array rather than the set directly.  The cache then manages 
the removal.  Should be fine.
  
  Revision  Changes    Path
  1.5       +6 -3      
jakarta-turbine-jcs/src/java/org/apache/jcs/engine/memory/mru/MRUMemoryCache.java
  
  Index: MRUMemoryCache.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine-jcs/src/java/org/apache/jcs/engine/memory/mru/MRUMemoryCache.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- MRUMemoryCache.java       13 May 2002 16:25:42 -0000      1.4
  +++ MRUMemoryCache.java       13 May 2002 18:12:27 -0000      1.5
  @@ -26,7 +26,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Aaron Smuts</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>James Taylor</a>
  - * @version $Id: MRUMemoryCache.java,v 1.4 2002/05/13 16:25:42 asmuts Exp $
  + * @version $Id: MRUMemoryCache.java,v 1.5 2002/05/13 18:12:27 asmuts Exp $
    */
   public class MRUMemoryCache
       implements MemoryCache, Serializable
  @@ -488,8 +488,11 @@
        */
       public Object[] getKeyArray()
       {
  -      // may need to lock to map here?
  -      return map.keySet().toArray();
  +        synchronized ( lockMe )
  +        {
  +          // may need to lock to map here?
  +          return map.keySet().toArray();
  +        }
       }
   
       /**
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to