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