You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by da...@apache.org on 2018/11/20 15:16:39 UTC

[29/31] lucene-solr:jira/http2: LUCENE-8568: TestMockDirectoryWrapper/ RAMInputStream NPE.

LUCENE-8568: TestMockDirectoryWrapper/ RAMInputStream NPE.


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/bd3ce916
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/bd3ce916
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/bd3ce916

Branch: refs/heads/jira/http2
Commit: bd3ce916bd1919576d9ced96e65182e850b3924c
Parents: 25bca6f
Author: Dawid Weiss <dw...@apache.org>
Authored: Tue Nov 20 13:37:29 2018 +0100
Committer: Dawid Weiss <dw...@apache.org>
Committed: Tue Nov 20 13:37:29 2018 +0100

----------------------------------------------------------------------
 .../src/java/org/apache/lucene/store/RAMInputStream.java | 11 +++++++++--
 .../org/apache/lucene/store/BaseDirectoryTestCase.java   |  3 +++
 2 files changed, 12 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/bd3ce916/lucene/core/src/java/org/apache/lucene/store/RAMInputStream.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/store/RAMInputStream.java b/lucene/core/src/java/org/apache/lucene/store/RAMInputStream.java
index cb07b6e..312d638 100644
--- a/lucene/core/src/java/org/apache/lucene/store/RAMInputStream.java
+++ b/lucene/core/src/java/org/apache/lucene/store/RAMInputStream.java
@@ -72,17 +72,24 @@ public class RAMInputStream extends IndexInput implements Cloneable {
     if (bufferPosition == bufferLength) {
       nextBuffer();
     }
-    return currentBuffer[bufferPosition++];
+    if (currentBuffer == null) {
+      throw new EOFException();
+    } else {
+      return currentBuffer[bufferPosition++];
+    }
   }
 
   @Override
   public void readBytes(byte[] b, int offset, int len) throws IOException {
     while (len > 0) {
-
       if (bufferPosition == bufferLength) {
         nextBuffer();
       }
 
+      if (currentBuffer == null) {
+        throw new EOFException();
+      }
+
       int remainInBuffer = bufferLength - bufferPosition;
       int bytesToCopy = len < remainInBuffer ? len : remainInBuffer;
       System.arraycopy(currentBuffer, bufferPosition, b, offset, bytesToCopy);

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/bd3ce916/lucene/test-framework/src/java/org/apache/lucene/store/BaseDirectoryTestCase.java
----------------------------------------------------------------------
diff --git a/lucene/test-framework/src/java/org/apache/lucene/store/BaseDirectoryTestCase.java b/lucene/test-framework/src/java/org/apache/lucene/store/BaseDirectoryTestCase.java
index e49000b..d9eeb88 100644
--- a/lucene/test-framework/src/java/org/apache/lucene/store/BaseDirectoryTestCase.java
+++ b/lucene/test-framework/src/java/org/apache/lucene/store/BaseDirectoryTestCase.java
@@ -522,6 +522,9 @@ public abstract class BaseDirectoryTestCase extends LuceneTestCase {
 
       // But any read following the seek(len) should throw an EOFException.
       expectThrows(EOFException.class, i::readByte);
+      expectThrows(EOFException.class, () -> {
+        i.readBytes(new byte [1], 0, 1);
+      });
 
       i.close();
     }