This is an automated email from the ASF dual-hosted git repository. cshannon pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git
The following commit(s) were added to refs/heads/main by this push: new 5515656132 Update TabletsMetadata stream() to autoclose TabletsMetadata (#4356) 5515656132 is described below commit 551565613275e202a8f6612b956789488bc6e3b1 Author: Christopher L. Shannon <cshan...@apache.org> AuthorDate: Mon Mar 11 11:26:07 2024 -0400 Update TabletsMetadata stream() to autoclose TabletsMetadata (#4356) Follow on changes to #4355 Before this change if stream() was used the the TabletsMetadata close method still had to be called manually as the close method on the stream did not delegate. With this change if the stream is used in a try-with-resources to autoClsoe the stream or if the stream is closed manually, TabletsMetadata will also be closed. --- .../accumulo/core/clientImpl/bulk/ConcurrentKeyExtentCache.java | 3 +-- server/gc/src/main/java/org/apache/accumulo/gc/GCRun.java | 5 ++--- .../src/main/java/org/apache/accumulo/tserver/ScanServer.java | 4 ++-- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/core/src/main/java/org/apache/accumulo/core/clientImpl/bulk/ConcurrentKeyExtentCache.java b/core/src/main/java/org/apache/accumulo/core/clientImpl/bulk/ConcurrentKeyExtentCache.java index acd5924ff9..e338fe99fa 100644 --- a/core/src/main/java/org/apache/accumulo/core/clientImpl/bulk/ConcurrentKeyExtentCache.java +++ b/core/src/main/java/org/apache/accumulo/core/clientImpl/bulk/ConcurrentKeyExtentCache.java @@ -89,8 +89,7 @@ class ConcurrentKeyExtentCache implements KeyExtentCache { protected Stream<KeyExtent> lookupExtents(Text row) { TabletsMetadata tabletsMetadata = TabletsMetadata.builder(ctx).forTable(tableId) .overlapping(row, true, null).checkConsistency().fetch(PREV_ROW).build(); - return tabletsMetadata.stream().onClose(tabletsMetadata::close).limit(100) - .map(TabletMetadata::getExtent); + return tabletsMetadata.stream().limit(100).map(TabletMetadata::getExtent); } @Override diff --git a/server/gc/src/main/java/org/apache/accumulo/gc/GCRun.java b/server/gc/src/main/java/org/apache/accumulo/gc/GCRun.java index f02b85634e..1939d6e51a 100644 --- a/server/gc/src/main/java/org/apache/accumulo/gc/GCRun.java +++ b/server/gc/src/main/java/org/apache/accumulo/gc/GCRun.java @@ -175,9 +175,8 @@ public class GCRun implements GarbageCollectionEnvironment { if (level == Ample.DataLevel.ROOT) { tabletStream = Stream.of(context.getAmple().readTablet(RootTable.EXTENT, DIR, FILES, SCANS)); } else { - TabletsMetadata tm = TabletsMetadata.builder(context).scanTable(level.metaTable()) - .checkConsistency().fetch(DIR, FILES, SCANS).build(); - tabletStream = tm.stream().onClose(tm::close); + tabletStream = TabletsMetadata.builder(context).scanTable(level.metaTable()) + .checkConsistency().fetch(DIR, FILES, SCANS).build().stream(); } // there is a lot going on in this "one line" so see below for more info diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/ScanServer.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/ScanServer.java index fa838231af..8fcc742ba2 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/ScanServer.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/ScanServer.java @@ -159,8 +159,8 @@ public class ScanServer extends AbstractServer Collection<KeyExtent> extents = (Collection<KeyExtent>) keys; try (TabletsMetadata tabletsMetadata = ample.readTablets().forTablets(extents, Optional.empty()).build()) { - tms = tabletsMetadata.stream().onClose(tabletsMetadata::close) - .collect(Collectors.toMap(TabletMetadata::getExtent, tm -> tm)); + tms = + tabletsMetadata.stream().collect(Collectors.toMap(TabletMetadata::getExtent, tm -> tm)); } long t2 = System.currentTimeMillis(); LOG.trace("Read metadata for {} tablets in {} ms", keys.size(), t2 - t1);