You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by sc...@apache.org on 2004/10/17 00:23:41 UTC

cvs commit: jakarta-commons/collections/src/test/org/apache/commons/collections/buffer TestCircularFifoBuffer.java

scolebourne    2004/10/16 15:23:41

  Modified:    collections/src/java/org/apache/commons/collections/buffer
                        BoundedFifoBuffer.java
               collections RELEASE-NOTES.html
               collections/src/test/org/apache/commons/collections/buffer
                        TestCircularFifoBuffer.java
  Log:
  BoundedFifoBuffer/CircularFifoBuffer - Fix serialization to work in case where buffer serialized when full
  bug 31433, from Kalle Gustafsson
  
  Revision  Changes    Path
  1.9       +6 -2      jakarta-commons/collections/src/java/org/apache/commons/collections/buffer/BoundedFifoBuffer.java
  
  Index: BoundedFifoBuffer.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/buffer/BoundedFifoBuffer.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- BoundedFifoBuffer.java	2 Jun 2004 23:12:44 -0000	1.8
  +++ BoundedFifoBuffer.java	16 Oct 2004 22:23:40 -0000	1.9
  @@ -139,8 +139,12 @@
               elements[i] = in.readObject();
           }
           start = 0;
  -        end = size;
           full = (size == maxElements);
  +        if (full) {
  +            end = 0;
  +        } else {
  +            end = size;
  +        }
       }
   
       //-----------------------------------------------------------------------
  
  
  
  1.72      +2 -1      jakarta-commons/collections/RELEASE-NOTES.html
  
  Index: RELEASE-NOTES.html
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/collections/RELEASE-NOTES.html,v
  retrieving revision 1.71
  retrieving revision 1.72
  diff -u -r1.71 -r1.72
  --- RELEASE-NOTES.html	22 Sep 2004 23:35:03 -0000	1.71
  +++ RELEASE-NOTES.html	16 Oct 2004 22:23:41 -0000	1.72
  @@ -29,7 +29,7 @@
   (Checks performed using JDiff and Clirr, thanks).
   </p>
   <p>
  -The only new deprecations are ................
  +There are no new deprecations.
   </p>
   
   <center><h3>NEW CLASSES</h3></center>
  @@ -47,6 +47,7 @@
   <center><h3>BUG FIXES</h3></center>
   <ul>
   <li>FastArrayList - Fix iterators and views to work better in multithreaded environments</li>
  +<li>BoundedFifoBuffer/CircularFifoBuffer - Fix serialization to work in case where buffer serialized when full [31433]</li>
   </ul>
   
   <center><h3>JAVADOC</h3></center>
  
  
  
  1.5       +40 -1     jakarta-commons/collections/src/test/org/apache/commons/collections/buffer/TestCircularFifoBuffer.java
  
  Index: TestCircularFifoBuffer.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/collections/src/test/org/apache/commons/collections/buffer/TestCircularFifoBuffer.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- TestCircularFifoBuffer.java	2 Jun 2004 23:12:45 -0000	1.4
  +++ TestCircularFifoBuffer.java	16 Oct 2004 22:23:41 -0000	1.5
  @@ -15,6 +15,10 @@
    */
   package org.apache.commons.collections.buffer;
   
  +import java.io.ByteArrayInputStream;
  +import java.io.ByteArrayOutputStream;
  +import java.io.ObjectInputStream;
  +import java.io.ObjectOutputStream;
   import java.util.ArrayList;
   import java.util.Collection;
   import java.util.Iterator;
  @@ -192,6 +196,41 @@
               return;
           }
           fail();
  +    }
  +    
  +    public void testRepeatedSerialization() throws Exception {
  +        // bug 31433
  +        CircularFifoBuffer b = new CircularFifoBuffer(2);
  +        b.add("a");
  +        assertEquals(1, b.size());
  +        assertEquals(true, b.contains("a"));
  +        
  +        ByteArrayOutputStream bos = new ByteArrayOutputStream();
  +        new ObjectOutputStream(bos).writeObject(b);
  +        
  +        CircularFifoBuffer b2 = (CircularFifoBuffer) new ObjectInputStream(
  +            new ByteArrayInputStream(bos.toByteArray())).readObject();
  +        
  +        assertEquals(1, b2.size());
  +        assertEquals(true, b2.contains("a"));
  +        b2.add("b");
  +        assertEquals(2, b2.size());
  +        assertEquals(true, b2.contains("a"));
  +        assertEquals(true, b2.contains("b"));
  +        
  +        bos = new ByteArrayOutputStream();
  +        new ObjectOutputStream(bos).writeObject(b2);
  +        
  +        CircularFifoBuffer b3 = (CircularFifoBuffer) new ObjectInputStream(
  +            new ByteArrayInputStream(bos.toByteArray())).readObject();
  +        
  +        assertEquals(2, b3.size());
  +        assertEquals(true, b3.contains("a"));
  +        assertEquals(true, b3.contains("b"));
  +        b3.add("c");
  +        assertEquals(2, b3.size());
  +        assertEquals(true, b3.contains("b"));
  +        assertEquals(true, b3.contains("c"));
       }
   
       public String getCompatibilityVersion() {
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org