diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt index 8737d1ce7ceb..a00c594f9acd 100644 --- a/lucene/CHANGES.txt +++ b/lucene/CHANGES.txt @@ -370,6 +370,8 @@ Bug Fixes * GITHUB#13369: Fix NRT opening failure when soft deletes are enabled and the document fails to index before a point field is written (Ben Trent) +* GITHUB#13378: Fix points writing with no values (Chris Hegarty) + Build --------------------- diff --git a/lucene/core/src/java/org/apache/lucene/util/bkd/BKDWriter.java b/lucene/core/src/java/org/apache/lucene/util/bkd/BKDWriter.java index b370f5526420..1eb3be29d8ef 100644 --- a/lucene/core/src/java/org/apache/lucene/util/bkd/BKDWriter.java +++ b/lucene/core/src/java/org/apache/lucene/util/bkd/BKDWriter.java @@ -513,6 +513,10 @@ private IORunnable writeFieldNDims( pointCount = values.size(); + if (pointCount == 0) { + return null; + } + final int numLeaves = Math.toIntExact((pointCount + config.maxPointsInLeafNode - 1) / config.maxPointsInLeafNode); final int numSplits = numLeaves - 1; diff --git a/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java b/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java index a4228054e07c..674ba6eac651 100644 --- a/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java +++ b/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java @@ -2338,6 +2338,8 @@ public TokenStreamComponents createComponents(String fieldName) { LeafReader onlyReader = getOnlyLeafReader(r); // we mark the failed doc as deleted assertEquals(onlyReader.numDeletedDocs(), 1); + // there are not points values (rather than an empty set of values) + assertNull(onlyReader.getPointValues("field")); onlyReader.close(); w.close(); dir.close();