diff --git a/src/java/org/apache/poi/poifs/filesystem/DocumentInputStream.java b/src/java/org/apache/poi/poifs/filesystem/DocumentInputStream.java index 0f581aa36a..db152cef80 100644 --- a/src/java/org/apache/poi/poifs/filesystem/DocumentInputStream.java +++ b/src/java/org/apache/poi/poifs/filesystem/DocumentInputStream.java @@ -236,7 +236,7 @@ public class DocumentInputStream _tiny_buffer = new byte[ 1 ]; } _document.read(_tiny_buffer, _current_offset++); - return _tiny_buffer[ 0 ]; + return ((int)_tiny_buffer[ 0 ]) & 0x000000FF; } /** diff --git a/src/testcases/org/apache/poi/poifs/filesystem/TestDocumentInputStream.java b/src/testcases/org/apache/poi/poifs/filesystem/TestDocumentInputStream.java index e77fee566a..f3c15227c0 100644 --- a/src/testcases/org/apache/poi/poifs/filesystem/TestDocumentInputStream.java +++ b/src/testcases/org/apache/poi/poifs/filesystem/TestDocumentInputStream.java @@ -217,8 +217,10 @@ public class TestDocumentInputStream for (int j = 0; j < _workbook_size; j++) { + int b = stream.read(); + assertTrue("checking sign of " + j, b >= 0); assertEquals("validating byte " + j, _workbook_data[ j ], - ( byte ) stream.read()); + ( byte ) b); remaining--; assertEquals("checking remaining after reading byte " + j, remaining, stream.available());