You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by dp...@apache.org on 2012/05/11 16:42:04 UTC

svn commit: r1337188 - in /jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk: client/Client.java server/BoundaryInputStream.java

Author: dpfister
Date: Fri May 11 14:42:03 2012
New Revision: 1337188

URL: http://svn.apache.org/viewvc?rev=1337188&view=rev
Log:
OAK-12 - Implement a test suite for the MicroKernel
- fix ArrayIndexOOB in BoundaryInputStream 
- Client.write(InputStream) should close InputStream

Modified:
    jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/client/Client.java
    jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/server/BoundaryInputStream.java

Modified: jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/client/Client.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/client/Client.java?rev=1337188&r1=1337187&r2=1337188&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/client/Client.java (original)
+++ jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/client/Client.java Fri May 11 14:42:03 2012
@@ -352,6 +352,7 @@ public class Client implements MicroKern
             throw toMicroKernelException(e);
         } finally {
             IOUtils.closeQuietly(request);
+            IOUtils.closeQuietly(in);
         }
     }
     

Modified: jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/server/BoundaryInputStream.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/server/BoundaryInputStream.java?rev=1337188&r1=1337187&r2=1337188&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/server/BoundaryInputStream.java (original)
+++ jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/server/BoundaryInputStream.java Fri May 11 14:42:03 2012
@@ -61,8 +61,8 @@ class BoundaryInputStream extends InputS
         this.boundary = ("\r\n" + boundary).getBytes();
 
         // Must be able to unread this many bytes
-        if (size < this.boundary.length + 1) {
-            size = this.boundary.length + 1;
+        if (size < this.boundary.length + 2) {
+            size = this.boundary.length + 2;
         }
         buf = new byte[size];
     }
@@ -104,12 +104,13 @@ class BoundaryInputStream extends InputS
         if (count < 0) {
             eos = true;
         }
+        count += offset;
     }
 
     private int copy(byte[] b, int off, int len) throws IOException {
         int i = 0, j = 0;
 
-        while (i < count && j < len) {
+        while (offset + i < count && j < len) {
             if (boundary[boundaryIndex] == buf[offset + i]) {
                 boundaryIndex++;
                 i++;
@@ -123,7 +124,6 @@ class BoundaryInputStream extends InputS
                     i -= boundaryIndex;
                     if (i < 0) {
                         offset += i;
-                        count += -i;
                         i = 0;
                     }
                     boundaryIndex = 0;