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();
}