Repository: flume
Updated Branches:
  refs/heads/flume-1.7 bf2495047 -> 589bfa202


FLUME-2593. ResettableFileInputStream returns negate values from read() method

(Miroslav Holubec via Johny Rufus)


Project: http://git-wip-us.apache.org/repos/asf/flume/repo
Commit: http://git-wip-us.apache.org/repos/asf/flume/commit/589bfa20
Tree: http://git-wip-us.apache.org/repos/asf/flume/tree/589bfa20
Diff: http://git-wip-us.apache.org/repos/asf/flume/diff/589bfa20

Branch: refs/heads/flume-1.7
Commit: 589bfa202fbbe8b862f8ee943b81d0e1ea2d670b
Parents: bf24950
Author: Johny Rufus <[email protected]>
Authored: Thu Oct 22 18:35:38 2015 -0700
Committer: Johny Rufus <[email protected]>
Committed: Thu Oct 22 18:38:44 2015 -0700

----------------------------------------------------------------------
 .../ResettableFileInputStream.java              |  2 +-
 .../TestResettableFileInputStream.java          | 23 ++++++++++++++++++++
 2 files changed, 24 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flume/blob/589bfa20/flume-ng-core/src/main/java/org/apache/flume/serialization/ResettableFileInputStream.java
----------------------------------------------------------------------
diff --git 
a/flume-ng-core/src/main/java/org/apache/flume/serialization/ResettableFileInputStream.java
 
b/flume-ng-core/src/main/java/org/apache/flume/serialization/ResettableFileInputStream.java
index 622c09f..618913e 100644
--- 
a/flume-ng-core/src/main/java/org/apache/flume/serialization/ResettableFileInputStream.java
+++ 
b/flume-ng-core/src/main/java/org/apache/flume/serialization/ResettableFileInputStream.java
@@ -224,7 +224,7 @@ public class ResettableFileInputStream extends 
ResettableInputStream
     } else if (len == 0) {
       return -1;
     } else {
-      return byteBuf[0];
+      return byteBuf[0] & 0xFF;
     }
   }
 

http://git-wip-us.apache.org/repos/asf/flume/blob/589bfa20/flume-ng-core/src/test/java/org/apache/flume/serialization/TestResettableFileInputStream.java
----------------------------------------------------------------------
diff --git 
a/flume-ng-core/src/test/java/org/apache/flume/serialization/TestResettableFileInputStream.java
 
b/flume-ng-core/src/test/java/org/apache/flume/serialization/TestResettableFileInputStream.java
index 2c559db..631bdfe 100644
--- 
a/flume-ng-core/src/test/java/org/apache/flume/serialization/TestResettableFileInputStream.java
+++ 
b/flume-ng-core/src/test/java/org/apache/flume/serialization/TestResettableFileInputStream.java
@@ -87,6 +87,29 @@ public class TestResettableFileInputStream {
     in.close();
   }
 
+  /**
+   * Ensure that we can simply read bytes from a file using InputStream.read() 
method.
+   * @throws IOException
+   */
+  @Test
+  public void testReadByte() throws IOException {
+    byte[] bytes = new byte[255];
+    for (int i = 0; i < 255; i++) {
+      bytes[i] = (byte) i;
+    }
+
+    Files.write(bytes, file);
+
+    PositionTracker tracker = new DurablePositionTracker(meta, file.getPath());
+    ResettableInputStream in = new ResettableFileInputStream(file, tracker);
+
+    for (int i = 0; i < 255; i++) {
+      assertEquals(i, in.read());
+    }
+    assertEquals(-1, in.read());
+
+    in.close();
+  }
 
   /**
    * Ensure that we can process lines that contain multi byte characters in 
weird places

Reply via email to