dlr 01/08/24 12:10:52
Modified: util/src/java/org/apache/commons/util BufferCache.java
Log:
* Imported Iterator.
* Produce an interator which won't notice modifications to keySequence
which happen when get() is called.
* Corrected bug in put() which caused problems with caches of size 2.
Revision Changes Path
1.3 +13 -2
jakarta-commons-sandbox/util/src/java/org/apache/commons/util/BufferCache.java
Index: BufferCache.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/util/src/java/org/apache/commons/util/BufferCache.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -u -r1.2 -r1.3
--- BufferCache.java 2001/08/08 23:56:48 1.2
+++ BufferCache.java 2001/08/24 19:10:52 1.3
@@ -55,6 +55,7 @@
*/
import java.util.Hashtable;
+import java.util.Iterator;
/**
* A resizably fixed length object cache implementing the LRU
@@ -62,7 +63,7 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Daniel Rall</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Leonard Richardson</a>
- * @version $Id: BufferCache.java,v 1.2 2001/08/08 23:56:48 knielsen Exp $
+ * @version $Id: BufferCache.java,v 1.3 2001/08/24 19:10:52 dlr Exp $
*/
public class BufferCache extends SequencedHashtable
{
@@ -99,6 +100,16 @@
}
/**
+ * Returns a key iterator.
+ */
+ public Iterator iterator ()
+ {
+ // Using keySequence iterator() methods causes problems in
+ // conjunction with all the calls to freshenSequence().
+ return new EnumerationIterator(keys());
+ }
+
+ /**
* Returns the current maximum size of the storage buffer.
*
* @return The current maximum size of the storage buffer.
@@ -144,7 +155,7 @@
public synchronized Object put (Object key, Object value)
{
int size = size();
- if (size > 0 && size + 1 >= maxSize)
+ if (size > 0 && size + 1 > maxSize)
{
// Stay within constraints of allocated buffer by releasing the
// eldest buffered object.