diff --git a/core/src/main/java/org/apache/accumulo/core/summary/SummarySerializer.java b/core/src/main/java/org/apache/accumulo/core/summary/SummarySerializer.java index d84f91084b5..e3a6f61d3b5 100644 --- a/core/src/main/java/org/apache/accumulo/core/summary/SummarySerializer.java +++ b/core/src/main/java/org/apache/accumulo/core/summary/SummarySerializer.java @@ -433,6 +433,10 @@ private static class LgSummaries { boolean exceedsRange(Text startRow, Text endRow) { + if (summaries.length == 0) { + return false; + } + Text lastRow = summaries[summaries.length - 1].lastRow; if (startRow != null && firstRow.compareTo(startRow) <= 0 && startRow.compareTo(lastRow) < 0) { diff --git a/test/src/main/java/org/apache/accumulo/test/functional/SummaryIT.java b/test/src/main/java/org/apache/accumulo/test/functional/SummaryIT.java index 78baa7fdc87..749d1d71af0 100644 --- a/test/src/main/java/org/apache/accumulo/test/functional/SummaryIT.java +++ b/test/src/main/java/org/apache/accumulo/test/functional/SummaryIT.java @@ -717,13 +717,15 @@ public void testLocalityGroups() throws Exception { SummarizerConfiguration sc1 = SummarizerConfiguration.builder(FamilySummarizer.class).build(); SummarizerConfiguration sc2 = SummarizerConfiguration.builder(BasicSummarizer.class).build(); ntc.enableSummarization(sc1, sc2); - c.tableOperations().create(table, ntc); Map> lgroups = new HashMap<>(); lgroups.put("lg1", ImmutableSet.of(new Text("chocolate"), new Text("coffee"))); lgroups.put("lg2", ImmutableSet.of(new Text(" broccoli "), new Text("cabbage"))); + // create a locality group that will not have data in it + lgroups.put("lg3", ImmutableSet.of(new Text(" apple "), new Text("orange"))); - c.tableOperations().setLocalityGroups(table, lgroups); + ntc.setLocalityGroups(lgroups); + c.tableOperations().create(table, ntc); Map expected = new HashMap<>(); try (BatchWriter bw = c.createBatchWriter(table, new BatchWriterConfig())) {