COMPRESS-332 snappy stream returns 0 when it should return -1
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 5ec8ef5..9e11741 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -44,6 +44,11 @@
<body>
<release version="1.11" date="not released, yet"
description="Release 1.11">
+ <action issue="COMPRESS-332" type="fix" date="2016-01-29">
+ SnappyCompressorInputStream and
+ FramedSnappyCompressorInputStream returned 0 at the end of the
+ stream under certain circumstances.
+ </action>
<action issue="COMPRESS-326" type="fix" date="2015-10-24">
Adjusted unit test to updates in Java8 and later that change
the logic of ZipEntry#getTime.
diff --git a/src/main/java/org/apache/commons/compress/compressors/snappy/SnappyCompressorInputStream.java b/src/main/java/org/apache/commons/compress/compressors/snappy/SnappyCompressorInputStream.java
index cf08a64..b8887f2 100644
--- a/src/main/java/org/apache/commons/compress/compressors/snappy/SnappyCompressorInputStream.java
+++ b/src/main/java/org/apache/commons/compress/compressors/snappy/SnappyCompressorInputStream.java
@@ -135,6 +135,9 @@
}
int readable = Math.min(len, available());
+ if (readable == 0 && len > 0) {
+ return -1;
+ }
System.arraycopy(decompressBuf, readIndex, b, off, readable);
readIndex += readable;
if (readIndex > blockSize) {