You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by dw...@apache.org on 2018/11/20 12:51:30 UTC
lucene-solr:branch_7x: LUCENE-8568: TestMockDirectoryWrapper/
RAMInputStream NPE.
Repository: lucene-solr
Updated Branches:
refs/heads/branch_7x a4e95f39b -> 92f5bd8a3
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/92f5bd8a
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/92f5bd8a
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/92f5bd8a
Branch: refs/heads/branch_7x
Commit: 92f5bd8a3d7e2dd95d7006a3d1c5c673924f7ab9
Parents: a4e95f3
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:51:25 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/92f5bd8a/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/92f5bd8a/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();
}