You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by bo...@apache.org on 2013/11/10 11:26:31 UTC

svn commit: r1540460 - in /commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/compressors: CompressorInputStream.java snappy/FramedSnappyCompressorInputStream.java snappy/SnappyCompressorInputStream.java

Author: bodewig
Date: Sun Nov 10 10:26:30 2013
New Revision: 1540460

URL: http://svn.apache.org/r1540460
Log:
COMPRESS-147 CompressorInputStream didn't know the concept of pushback, also take adavantage of count ignoring -1s

Modified:
    commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/compressors/CompressorInputStream.java
    commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/compressors/snappy/FramedSnappyCompressorInputStream.java
    commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/compressors/snappy/SnappyCompressorInputStream.java

Modified: commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/compressors/CompressorInputStream.java
URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/compressors/CompressorInputStream.java?rev=1540460&r1=1540459&r2=1540460&view=diff
==============================================================================
--- commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/compressors/CompressorInputStream.java (original)
+++ commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/compressors/CompressorInputStream.java Sun Nov 10 10:26:30 2013
@@ -42,12 +42,22 @@ public abstract class CompressorInputStr
      * @param read the number of bytes read
      */
     protected void count(long read) {
-        if(read != -1) {
+        if (read != -1) {
             bytesRead = bytesRead + read;
         }
     }
 
     /**
+     * Decrements the counter of already read bytes.
+     * 
+     * @param pushedBack the number of bytes pushed back.
+     * @since 1.7
+     */
+    protected void pushedBackBytes(long pushedBack) {
+        bytesRead -= pushedBack;
+    }
+
+    /**
      * Returns the current number of bytes read from this stream.
      * @return the number of read bytes
      * @deprecated this method may yield wrong results for large

Modified: commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/compressors/snappy/FramedSnappyCompressorInputStream.java
URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/compressors/snappy/FramedSnappyCompressorInputStream.java?rev=1540460&r1=1540459&r2=1540460&view=diff
==============================================================================
--- commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/compressors/snappy/FramedSnappyCompressorInputStream.java (original)
+++ commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/compressors/snappy/FramedSnappyCompressorInputStream.java Sun Nov 10 10:26:30 2013
@@ -136,7 +136,7 @@ public class FramedSnappyCompressorInput
             endReached = true;
         } else if (type == STREAM_IDENTIFIER_TYPE) {
             in.unread(type);
-            count(-1);
+            pushedBackBytes(1);
             readStreamIdentifier();
             readNextBlock();
         } else if (type == PADDING_CHUNK_TYPE
@@ -166,9 +166,7 @@ public class FramedSnappyCompressorInput
     private void readCrc() throws IOException {
         byte[] b = new byte[4];
         int read = IOUtils.readFully(in, b);
-        if (read > 0) {
-            count(read);
-        }
+        count(read);
         if (read != 4) {
             throw new IOException("premature end of stream");
         }
@@ -190,9 +188,7 @@ public class FramedSnappyCompressorInput
     private void skipBlock() throws IOException {
         int size = readSize();
         long read = IOUtils.skip(in, size);
-        if (read > 0) {
-            count(read);
-        }
+        count(read);
         if (read != size) {
             throw new IOException("premature end of stream");
         }
@@ -201,9 +197,7 @@ public class FramedSnappyCompressorInput
     private void readStreamIdentifier() throws IOException {
         byte[] b = new byte[10];
         int read = IOUtils.readFully(in, b);
-        if (read > 0) {
-            count(read);
-        }
+        count(read);
         if (10 != read || !matches(b, 10)) {
             throw new IOException("Not a framed Snappy stream");
         }

Modified: commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/compressors/snappy/SnappyCompressorInputStream.java
URL: http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/compressors/snappy/SnappyCompressorInputStream.java?rev=1540460&r1=1540459&r2=1540460&view=diff
==============================================================================
--- commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/compressors/snappy/SnappyCompressorInputStream.java (original)
+++ commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/compressors/snappy/SnappyCompressorInputStream.java Sun Nov 10 10:26:30 2013
@@ -311,9 +311,7 @@ public class SnappyCompressorInputStream
      */
     private boolean expandLiteral(final int length) throws IOException {
         int bytesRead = in.read(decompressBuf, writeIndex, length);
-        if (bytesRead != -1) {
-            count(bytesRead);
-        }
+        count(bytesRead);
         if (length != bytesRead) {
             throw new IOException("Premature end of stream");
         }