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.
  
  
  

Reply via email to