Repository: incubator-gobblin Updated Branches: refs/heads/master 88383014c -> b01ec9cc9
[GOBBLIN-501] Fix NPE thrown from read after EOF of LazyMaterializeDecryptorInputStream Closes #2371 from zxcware/enc Project: http://git-wip-us.apache.org/repos/asf/incubator-gobblin/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-gobblin/commit/b01ec9cc Tree: http://git-wip-us.apache.org/repos/asf/incubator-gobblin/tree/b01ec9cc Diff: http://git-wip-us.apache.org/repos/asf/incubator-gobblin/diff/b01ec9cc Branch: refs/heads/master Commit: b01ec9cc991c5a2dbe422ffc2e8f17d28be1a96a Parents: 8838301 Author: zhchen <[email protected]> Authored: Thu May 24 11:03:03 2018 -0700 Committer: Hung Tran <[email protected]> Committed: Thu May 24 11:03:03 2018 -0700 ---------------------------------------------------------------------- .../main/java/org/apache/gobblin/crypto/GPGFileDecryptor.java | 4 ++++ .../java/org/apache/gobblin/crypto/GPGFileDecryptorTest.java | 3 +++ 2 files changed, 7 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-gobblin/blob/b01ec9cc/gobblin-modules/gobblin-crypto/src/main/java/org/apache/gobblin/crypto/GPGFileDecryptor.java ---------------------------------------------------------------------- diff --git a/gobblin-modules/gobblin-crypto/src/main/java/org/apache/gobblin/crypto/GPGFileDecryptor.java b/gobblin-modules/gobblin-crypto/src/main/java/org/apache/gobblin/crypto/GPGFileDecryptor.java index 399b3e8..4c673c7 100644 --- a/gobblin-modules/gobblin-crypto/src/main/java/org/apache/gobblin/crypto/GPGFileDecryptor.java +++ b/gobblin-modules/gobblin-crypto/src/main/java/org/apache/gobblin/crypto/GPGFileDecryptor.java @@ -178,6 +178,10 @@ public class GPGFileDecryptor { @Override public int read() throws IOException { + if (this.currentUnderlyingStream == null) { + return -1; + } + int value = this.currentUnderlyingStream.read(); if (value != -1) { http://git-wip-us.apache.org/repos/asf/incubator-gobblin/blob/b01ec9cc/gobblin-modules/gobblin-crypto/src/test/java/org/apache/gobblin/crypto/GPGFileDecryptorTest.java ---------------------------------------------------------------------- diff --git a/gobblin-modules/gobblin-crypto/src/test/java/org/apache/gobblin/crypto/GPGFileDecryptorTest.java b/gobblin-modules/gobblin-crypto/src/test/java/org/apache/gobblin/crypto/GPGFileDecryptorTest.java index 964bebb..05892fc 100644 --- a/gobblin-modules/gobblin-crypto/src/test/java/org/apache/gobblin/crypto/GPGFileDecryptorTest.java +++ b/gobblin-modules/gobblin-crypto/src/test/java/org/apache/gobblin/crypto/GPGFileDecryptorTest.java @@ -86,6 +86,9 @@ public class GPGFileDecryptorTest { Assert.assertEquals(bytesRead, 1041981183L); + // Make sure no error thrown if read again after reaching EOF + Assert.assertEquals(is.read(), -1); + System.gc(); System.gc(); long endHeapSize = Runtime.getRuntime().totalMemory();
