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

commit e3039f402bcc725dbf48e18a22f69267323935f1
Merge: 9d9bcc1d48 802b6e948d
Author: Christopher L. Shannon <cshan...@apache.org>
AuthorDate: Mon Mar 11 11:16:11 2024 -0400

    Merge branch '2.1'

 .../core/metadata/schema/TabletsMetadata.java      |  2 +-
 .../core/metadata/schema/TabletMetadataTest.java   | 25 ++++++++++++++++++++++
 2 files changed, 26 insertions(+), 1 deletion(-)

diff --cc 
core/src/test/java/org/apache/accumulo/core/metadata/schema/TabletMetadataTest.java
index 5287d689ba,67a22ccd3f..9a352b82d5
--- 
a/core/src/test/java/org/apache/accumulo/core/metadata/schema/TabletMetadataTest.java
+++ 
b/core/src/test/java/org/apache/accumulo/core/metadata/schema/TabletMetadataTest.java
@@@ -41,7 -41,8 +43,9 @@@ import java.util.Map
  import java.util.Set;
  import java.util.SortedMap;
  import java.util.TreeMap;
 +import java.util.UUID;
+ import java.util.concurrent.atomic.AtomicBoolean;
+ import java.util.stream.Stream;
  
  import org.apache.accumulo.core.data.Key;
  import org.apache.accumulo.core.data.Mutation;
@@@ -259,30 -259,27 +263,51 @@@ public class TabletMetadataTest 
      assertFalse(tm.hasCurrent());
    }
  
 +  @Test
 +  public void testMergedColumn() {
 +    KeyExtent extent = new KeyExtent(TableId.of("5"), new Text("df"), new 
Text("da"));
 +
 +    // Test merged column set
 +    Mutation mutation = TabletColumnFamily.createPrevRowMutation(extent);
 +    MERGED_COLUMN.put(mutation, MERGED_VALUE);
 +    TabletMetadata tm = 
TabletMetadata.convertRow(toRowMap(mutation).entrySet().iterator(),
 +        EnumSet.of(ColumnType.MERGED), true);
 +    assertTrue(tm.hasMerged());
 +
 +    // Column not set
 +    mutation = TabletColumnFamily.createPrevRowMutation(extent);
 +    tm = TabletMetadata.convertRow(toRowMap(mutation).entrySet().iterator(),
 +        EnumSet.of(ColumnType.MERGED), true);
 +    assertFalse(tm.hasMerged());
 +
 +    // MERGED Column not fetched
 +    mutation = TabletColumnFamily.createPrevRowMutation(extent);
 +    tm = TabletMetadata.convertRow(toRowMap(mutation).entrySet().iterator(),
 +        EnumSet.of(ColumnType.PREV_ROW), true);
 +    assertThrows(IllegalStateException.class, tm::hasMerged);
 +  }
 +
+   @Test
+   public void testTabletsMetadataAutoClose() throws Exception {
+     AtomicBoolean closeCalled = new AtomicBoolean();
+     AutoCloseable autoCloseable = () -> closeCalled.set(true);
+     Constructor<TabletsMetadata> tmConstructor =
+         TabletsMetadata.class.getDeclaredConstructor(AutoCloseable.class, 
Iterable.class);
+     tmConstructor.setAccessible(true);
+ 
+     try (TabletsMetadata ignored = tmConstructor.newInstance(autoCloseable, 
List.of())) {
+       // test autoCloseable used directly on TabletsMetadata
+     }
+     assertTrue(closeCalled.get());
+ 
+     closeCalled.set(false);
+     try (Stream<TabletMetadata> ignored =
+         tmConstructor.newInstance(autoCloseable, List.of()).stream()) {
+       // test stream delegates to close on TabletsMetadata
+     }
+     assertTrue(closeCalled.get());
+   }
+ 
    private SortedMap<Key,Value> toRowMap(Mutation mutation) {
      SortedMap<Key,Value> rowMap = new TreeMap<>();
      mutation.getUpdates().forEach(cu -> {

Reply via email to