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);

Reply via email to