Skip to content

Commit 5515656

Browse files
authored
Update TabletsMetadata stream() to autoclose TabletsMetadata (apache#4356)
Follow on changes to apache#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.
1 parent e3039f4 commit 5515656

File tree

3 files changed

+5
-7
lines changed

3 files changed

+5
-7
lines changed

core/src/main/java/org/apache/accumulo/core/clientImpl/bulk/ConcurrentKeyExtentCache.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,7 @@ protected void updateCache(KeyExtent e) {
8989
protected Stream<KeyExtent> lookupExtents(Text row) {
9090
TabletsMetadata tabletsMetadata = TabletsMetadata.builder(ctx).forTable(tableId)
9191
.overlapping(row, true, null).checkConsistency().fetch(PREV_ROW).build();
92-
return tabletsMetadata.stream().onClose(tabletsMetadata::close).limit(100)
93-
.map(TabletMetadata::getExtent);
92+
return tabletsMetadata.stream().limit(100).map(TabletMetadata::getExtent);
9493
}
9594

9695
@Override

server/gc/src/main/java/org/apache/accumulo/gc/GCRun.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -175,9 +175,8 @@ public Stream<Reference> getReferences() {
175175
if (level == Ample.DataLevel.ROOT) {
176176
tabletStream = Stream.of(context.getAmple().readTablet(RootTable.EXTENT, DIR, FILES, SCANS));
177177
} else {
178-
TabletsMetadata tm = TabletsMetadata.builder(context).scanTable(level.metaTable())
179-
.checkConsistency().fetch(DIR, FILES, SCANS).build();
180-
tabletStream = tm.stream().onClose(tm::close);
178+
tabletStream = TabletsMetadata.builder(context).scanTable(level.metaTable())
179+
.checkConsistency().fetch(DIR, FILES, SCANS).build().stream();
181180
}
182181

183182
// there is a lot going on in this "one line" so see below for more info

server/tserver/src/main/java/org/apache/accumulo/tserver/ScanServer.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -159,8 +159,8 @@ private TabletMetadataLoader(Ample ample) {
159159
Collection<KeyExtent> extents = (Collection<KeyExtent>) keys;
160160
try (TabletsMetadata tabletsMetadata =
161161
ample.readTablets().forTablets(extents, Optional.empty()).build()) {
162-
tms = tabletsMetadata.stream().onClose(tabletsMetadata::close)
163-
.collect(Collectors.toMap(TabletMetadata::getExtent, tm -> tm));
162+
tms =
163+
tabletsMetadata.stream().collect(Collectors.toMap(TabletMetadata::getExtent, tm -> tm));
164164
}
165165
long t2 = System.currentTimeMillis();
166166
LOG.trace("Read metadata for {} tablets in {} ms", keys.size(), t2 - t1);

0 commit comments

Comments
 (0)