You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by iv...@apache.org on 2021/11/29 08:21:45 UTC
[lucene] branch branch_9x updated: LUCENE-10264: Clone index input when creating a PointTree in SimpleTextBKDReader (#478)
This is an automated email from the ASF dual-hosted git repository.
ivera pushed a commit to branch branch_9x
in repository https://gitbox.apache.org/repos/asf/lucene.git
The following commit(s) were added to refs/heads/branch_9x by this push:
new 62084d7 LUCENE-10264: Clone index input when creating a PointTree in SimpleTextBKDReader (#478)
62084d7 is described below
commit 62084d7138808887783199b4256fc3eee794355e
Author: Ignacio Vera <iv...@apache.org>
AuthorDate: Mon Nov 29 09:20:20 2021 +0100
LUCENE-10264: Clone index input when creating a PointTree in SimpleTextBKDReader (#478)
Fixes a race condition introduced in LUCENE-9820.
---
.../org/apache/lucene/codecs/simpletext/SimpleTextBKDReader.java | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextBKDReader.java b/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextBKDReader.java
index c5d5a29..6b98949 100644
--- a/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextBKDReader.java
+++ b/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextBKDReader.java
@@ -77,7 +77,7 @@ final class SimpleTextBKDReader extends PointValues {
@Override
public PointTree getPointTree() {
- return new SimpleTextPointTree(1, 1, minPackedValue, maxPackedValue);
+ return new SimpleTextPointTree(in.clone(), 1, 1, minPackedValue, maxPackedValue);
}
private class SimpleTextPointTree implements PointTree {
@@ -94,8 +94,11 @@ final class SimpleTextBKDReader extends PointValues {
// holds the splitDim for each level:
private final int[] splitDims;
+ private final IndexInput in;
+
private SimpleTextPointTree(
- int nodeID, int level, byte[] minPackedValue, byte[] maxPackedValue) {
+ IndexInput in, int nodeID, int level, byte[] minPackedValue, byte[] maxPackedValue) {
+ this.in = in;
this.scratchDocIDs = new int[config.maxPointsInLeafNode];
this.scratchPackedValue = new byte[config.packedBytesLength];
this.nodeID = nodeID;
@@ -121,7 +124,7 @@ final class SimpleTextBKDReader extends PointValues {
@Override
public PointTree clone() {
SimpleTextPointTree index =
- new SimpleTextPointTree(nodeID, level, minPackedValue, maxPackedValue);
+ new SimpleTextPointTree(in.clone(), nodeID, level, minPackedValue, maxPackedValue);
if (isLeafNode() == false) {
// copy node data
index.splitDims[level] = splitDims[level];