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) {