This is an automated email from the ASF dual-hosted git repository. ctubbsii pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/accumulo.git
commit 71e4ea4e7ffafadba6cba7ac78d2927a178e05d3 Author: Christopher Tubbs <ctubb...@apache.org> AuthorDate: Tue May 27 20:22:07 2025 -0400 More trivial cleanup * Fix unused import / variables * Fix misrepresented name of Iterable variable (the name indicated it was an "iterator", but it was an "iterable" instead) * Remove unnecessary use of 3rd party library utility method Iterables.size() to compute the size of scanners in many tests, when scanner.stream().count() suffices with built-in Java constructs; in addition, checking the stream size returns the correct long type, whereas Iterables.size() cannot handle scanners with unexpectedly large sizes; fixing this removes any implication that the size of any result set of a scanner is limited to Java's maximum int value, when it isn't * Remove some warnings suppressions for ignored sizes when checking scanner result set size, instead use slightly more strict check that the result set is non-zero, as expected * Replace Iterables.elementsEqual with ArrayList.equals, which is equivalent --- .../core/metadata/schema/TabletMetadataTest.java | 4 +- .../apache/accumulo/server/split/SplitUtils.java | 6 +-- .../org/apache/accumulo/server/util/ZooZap.java | 2 - .../accumulo/server/split/SplitUtilsTest.java | 4 +- .../accumulo/test/BulkImportSequentialRowsIT.java | 4 +- .../test/MissingWalHeaderCompletesRecoveryIT.java | 6 +-- .../org/apache/accumulo/test/RootRecoveryIT.java | 7 ++-- .../java/org/apache/accumulo/test/SampleIT.java | 18 +++------ .../test/ScanServerConcurrentTabletScanIT.java | 4 +- .../test/ScanServerGroupConfigurationIT.java | 12 +++--- .../org/apache/accumulo/test/ScanServerIT.java | 43 +++++++++++----------- .../accumulo/test/ScanServerMultipleScansIT.java | 20 +++++----- .../accumulo/test/ScanServer_NoServersIT.java | 28 +++++++------- .../functional/BalanceAfterCommsFailureIT.java | 4 +- .../accumulo/test/functional/FlushNoFileIT.java | 4 +- .../accumulo/test/functional/KerberosIT.java | 5 +-- .../test/functional/ManagerAssignmentIT.java | 13 +++---- .../test/functional/MemoryStarvedScanIT.java | 4 +- .../test/functional/MergeTabletsBaseIT.java | 4 +- .../functional/TabletManagementIteratorIT.java | 4 +- .../apache/accumulo/test/shell/ShellServerIT.java | 9 ++--- 21 files changed, 85 insertions(+), 120 deletions(-) diff --git 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 index 2256ab5ca3..4bbb4199ef 100644 --- 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 @@ -350,8 +350,8 @@ public class TabletMetadataTest { // MERGED Column not fetched mutation = TabletColumnFamily.createPrevRowMutation(extent); - tm = TabletMetadata.convertRow(toRowMap(mutation).entrySet().iterator(), - EnumSet.of(ColumnType.PREV_ROW), true, false); + tm = TabletMetadata.convertRow(toRowMap(mutation).entrySet().iterator(), EnumSet.of(PREV_ROW), + true, false); assertThrows(IllegalStateException.class, tm::hasMerged); } diff --git a/server/base/src/main/java/org/apache/accumulo/server/split/SplitUtils.java b/server/base/src/main/java/org/apache/accumulo/server/split/SplitUtils.java index 677f2b93c0..ac4d03a53e 100644 --- a/server/base/src/main/java/org/apache/accumulo/server/split/SplitUtils.java +++ b/server/base/src/main/java/org/apache/accumulo/server/split/SplitUtils.java @@ -234,11 +234,11 @@ public class SplitUtils { return common; } - public static SortedSet<Text> findSplits(Iterable<Key> tabletIndexIterator, int desiredSplits, + public static SortedSet<Text> findSplits(Iterable<Key> tabletIndexIterable, int desiredSplits, Predicate<ByteSequence> rowPredicate) { Preconditions.checkArgument(desiredSplits >= 1); - int numKeys = Iterables.size(tabletIndexIterator); + int numKeys = Iterables.size(tabletIndexIterable); double interSplitDistance = (double) numKeys / (double) (desiredSplits + 1); @@ -249,7 +249,7 @@ public class SplitUtils { ByteSequence prevRow = null; ByteSequence lastRow = null; - for (Key key : tabletIndexIterator) { + for (Key key : tabletIndexIterable) { if (lastRow != null && !key.getRowData().equals(lastRow)) { prevRow = lastRow; } diff --git a/server/base/src/main/java/org/apache/accumulo/server/util/ZooZap.java b/server/base/src/main/java/org/apache/accumulo/server/util/ZooZap.java index 9b0c40d848..4de56ee36a 100644 --- a/server/base/src/main/java/org/apache/accumulo/server/util/ZooZap.java +++ b/server/base/src/main/java/org/apache/accumulo/server/util/ZooZap.java @@ -25,7 +25,6 @@ import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Set; -import java.util.function.Predicate; import java.util.stream.Collectors; import org.apache.accumulo.core.cli.Help; @@ -114,7 +113,6 @@ public class ZooZap implements KeywordExecutable { Opts opts = new Opts(); opts.parseArgs(keyword(), args); - final Predicate<String> groupPredicate; final AddressSelector addressSelector; if (opts.hostPortExcludeFile != null) { diff --git a/server/base/src/test/java/org/apache/accumulo/server/split/SplitUtilsTest.java b/server/base/src/test/java/org/apache/accumulo/server/split/SplitUtilsTest.java index e8281e4c08..7083f1c90c 100644 --- a/server/base/src/test/java/org/apache/accumulo/server/split/SplitUtilsTest.java +++ b/server/base/src/test/java/org/apache/accumulo/server/split/SplitUtilsTest.java @@ -126,8 +126,8 @@ public class SplitUtilsTest { }; } - public static SortedSet<Text> findSplits(Iterable<Key> tabletIndexIterator, int desiredSplits) { - return SplitUtils.findSplits(tabletIndexIterator, desiredSplits, sc -> true); + public static SortedSet<Text> findSplits(Iterable<Key> tabletIndexIterable, int desiredSplits) { + return SplitUtils.findSplits(tabletIndexIterable, desiredSplits, sc -> true); } @Test diff --git a/test/src/main/java/org/apache/accumulo/test/BulkImportSequentialRowsIT.java b/test/src/main/java/org/apache/accumulo/test/BulkImportSequentialRowsIT.java index 2db11f8d60..0658dadb0a 100644 --- a/test/src/main/java/org/apache/accumulo/test/BulkImportSequentialRowsIT.java +++ b/test/src/main/java/org/apache/accumulo/test/BulkImportSequentialRowsIT.java @@ -40,8 +40,6 @@ import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.collect.Iterables; - // ACCUMULO-3967 public class BulkImportSequentialRowsIT extends AccumuloClusterHarness { private static final Logger log = LoggerFactory.getLogger(BulkImportSequentialRowsIT.class); @@ -106,7 +104,7 @@ public class BulkImportSequentialRowsIT extends AccumuloClusterHarness { to.importDirectory(bulk.toString()).to(tableName).load(); // The bug is that some tablets don't get imported into. - assertEquals(NR * NV, Iterables.size(client.createScanner(tableName, Authorizations.EMPTY))); + assertEquals(NR * NV, client.createScanner(tableName, Authorizations.EMPTY).stream().count()); } } diff --git a/test/src/main/java/org/apache/accumulo/test/MissingWalHeaderCompletesRecoveryIT.java b/test/src/main/java/org/apache/accumulo/test/MissingWalHeaderCompletesRecoveryIT.java index b7ed823856..0e06a8fccc 100644 --- a/test/src/main/java/org/apache/accumulo/test/MissingWalHeaderCompletesRecoveryIT.java +++ b/test/src/main/java/org/apache/accumulo/test/MissingWalHeaderCompletesRecoveryIT.java @@ -56,8 +56,6 @@ import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.collect.Iterables; - public class MissingWalHeaderCompletesRecoveryIT extends ConfigurableMacBase { private static final Logger log = LoggerFactory.getLogger(MissingWalHeaderCompletesRecoveryIT.class); @@ -162,7 +160,7 @@ public class MissingWalHeaderCompletesRecoveryIT extends ConfigurableMacBase { // Reading the table implies that recovery completed successfully (the empty file was ignored) // otherwise the tablet will never come online and we won't be able to read it. try (Scanner s = client.createScanner(tableName, Authorizations.EMPTY)) { - assertEquals(0, Iterables.size(s)); + assertEquals(0, s.stream().count()); } } } @@ -223,7 +221,7 @@ public class MissingWalHeaderCompletesRecoveryIT extends ConfigurableMacBase { // Reading the table implies that recovery completed successfully (the empty file was ignored) // otherwise the tablet will never come online and we won't be able to read it. try (Scanner s = client.createScanner(tableName, Authorizations.EMPTY)) { - assertEquals(0, Iterables.size(s)); + assertEquals(0, s.stream().count()); } } } diff --git a/test/src/main/java/org/apache/accumulo/test/RootRecoveryIT.java b/test/src/main/java/org/apache/accumulo/test/RootRecoveryIT.java index 0263c2e3f0..8da680e415 100644 --- a/test/src/main/java/org/apache/accumulo/test/RootRecoveryIT.java +++ b/test/src/main/java/org/apache/accumulo/test/RootRecoveryIT.java @@ -18,6 +18,8 @@ */ package org.apache.accumulo.test; +import static org.junit.jupiter.api.Assertions.assertTrue; + import java.time.Duration; import org.apache.accumulo.core.client.Accumulo; @@ -41,8 +43,6 @@ import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.collect.Iterables; - public class RootRecoveryIT extends SharedMiniClusterBase { private static final int ZK_TIMEOUT_MS = 5000; @@ -106,8 +106,7 @@ public class RootRecoveryIT extends SharedMiniClusterBase { LOG.info("Scanning root table"); Scanner s = c.createScanner(SystemTables.ROOT.tableName()); - @SuppressWarnings("unused") - int ignoredSize = Iterables.size(s); + assertTrue(s.stream().count() > 0); } } diff --git a/test/src/main/java/org/apache/accumulo/test/SampleIT.java b/test/src/main/java/org/apache/accumulo/test/SampleIT.java index 3c55b361aa..3faeb75b79 100644 --- a/test/src/main/java/org/apache/accumulo/test/SampleIT.java +++ b/test/src/main/java/org/apache/accumulo/test/SampleIT.java @@ -75,8 +75,6 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; -import com.google.common.collect.Iterables; - @Tag(AccumuloITBase.SIMPLE_MINI_CLUSTER_SUITE) public class SampleIT extends SharedMiniClusterBase { @@ -249,7 +247,7 @@ public class SampleIT extends SharedMiniClusterBase { // ensure non sample data can be scanned after scanning sample data for (ScannerBase sb : Arrays.asList(scanner, bScanner, isoScanner, csiScanner, oScanner)) { sb.clearSamplerConfiguration(); - assertEquals(20000, Iterables.size(sb)); + assertEquals(20000, sb.stream().count()); sb.setSamplerConfiguration(SC1); } @@ -366,10 +364,6 @@ public class SampleIT extends SharedMiniClusterBase { return someRow; } - private int countEntries(Iterable<Entry<Key,Value>> scanner) { - return Iterables.size(scanner); - } - private void setRange(Range range, List<? extends ScannerBase> scanners) { for (ScannerBase s : scanners) { if (s instanceof Scanner) { @@ -431,7 +425,7 @@ public class SampleIT extends SharedMiniClusterBase { // the iterator should see less than 10 entries in sample data, and return data setRange(range1, scanners); for (ScannerBase s : scanners) { - assertEquals(2954, countEntries(s)); + assertEquals(2954, s.stream().count()); } Range range2 = new Range(keys.get(5), true, keys.get(18), true); @@ -439,7 +433,7 @@ public class SampleIT extends SharedMiniClusterBase { // the iterator should see more than 10 entries in sample data, and return no data for (ScannerBase s : scanners) { - assertEquals(0, countEntries(s)); + assertEquals(0, s.stream().count()); } // flush an rerun same test against files @@ -458,12 +452,12 @@ public class SampleIT extends SharedMiniClusterBase { setRange(range1, scanners); for (ScannerBase s : scanners) { - assertEquals(2954, countEntries(s)); + assertEquals(2954, s.stream().count()); } setRange(range2, scanners); for (ScannerBase s : scanners) { - assertEquals(0, countEntries(s)); + assertEquals(0, s.stream().count()); } updateSamplingConfig(client, tableName, SC2); @@ -475,7 +469,7 @@ public class SampleIT extends SharedMiniClusterBase { scanners = Arrays.asList(scanner, isoScanner, bScanner, csiScanner, oScanner); for (ScannerBase s : scanners) { - assertThrows(SampleNotPresentException.class, () -> countEntries(s), + assertThrows(SampleNotPresentException.class, () -> s.stream().count(), "Expected SampleNotPresentException, but it did not happen : " + s.getClass().getSimpleName()); } diff --git a/test/src/main/java/org/apache/accumulo/test/ScanServerConcurrentTabletScanIT.java b/test/src/main/java/org/apache/accumulo/test/ScanServerConcurrentTabletScanIT.java index 4f1deb88f7..170355106c 100644 --- a/test/src/main/java/org/apache/accumulo/test/ScanServerConcurrentTabletScanIT.java +++ b/test/src/main/java/org/apache/accumulo/test/ScanServerConcurrentTabletScanIT.java @@ -52,8 +52,6 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; -import com.google.common.collect.Iterables; - @Tag(MINI_CLUSTER_ONLY) public class ScanServerConcurrentTabletScanIT extends SharedMiniClusterBase { @@ -204,7 +202,7 @@ public class ScanServerConcurrentTabletScanIT extends SharedMiniClusterBase { // A new scan should read all 1100 entries try (Scanner scanner2 = client.createScanner(tableName, Authorizations.EMPTY)) { int totalEntriesExpected = firstBatchOfEntriesCount + secondBatchOfEntriesCount; - assertEquals(totalEntriesExpected, Iterables.size(scanner2)); + assertEquals(totalEntriesExpected, scanner2.stream().count()); } } } diff --git a/test/src/main/java/org/apache/accumulo/test/ScanServerGroupConfigurationIT.java b/test/src/main/java/org/apache/accumulo/test/ScanServerGroupConfigurationIT.java index fcbc4a2fe6..dc442370b7 100644 --- a/test/src/main/java/org/apache/accumulo/test/ScanServerGroupConfigurationIT.java +++ b/test/src/main/java/org/apache/accumulo/test/ScanServerGroupConfigurationIT.java @@ -42,8 +42,6 @@ import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -import com.google.common.collect.Iterables; - public class ScanServerGroupConfigurationIT extends SharedMiniClusterBase { // @formatter:off @@ -138,7 +136,7 @@ public class ScanServerGroupConfigurationIT extends SharedMiniClusterBase { scanner.setRange(new Range()); scanner.setConsistencyLevel(ConsistencyLevel.EVENTUAL); - assertEquals(ingestedEntryCount, Iterables.size(scanner), + assertEquals(ingestedEntryCount, scanner.stream().count(), "The scanner should fall back to the tserver and should have seen all ingested and flushed entries"); // Allow one scan server to be started at this time @@ -153,7 +151,7 @@ public class ScanServerGroupConfigurationIT extends SharedMiniClusterBase { AddressSelector.all(), true) .size() > 0); - assertEquals(ingestedEntryCount, Iterables.size(scanner), + assertEquals(ingestedEntryCount, scanner.stream().count(), "The scan server scanner should have seen all ingested and flushed entries"); // if scanning against tserver would see the following, but should not on scan server @@ -175,7 +173,7 @@ public class ScanServerGroupConfigurationIT extends SharedMiniClusterBase { .getScanServer(rg -> rg.equals("GROUP1"), AddressSelector.all(), true).size() == 1); scanner.setExecutionHints(Map.of("scan_type", "use_group1")); - assertEquals(ingestedEntryCount + additionalIngest1, Iterables.size(scanner), + assertEquals(ingestedEntryCount + additionalIngest1, scanner.stream().count(), "The scan server scanner should have seen all ingested and flushed entries"); // if scanning against tserver would see the following, but should not on scan server @@ -183,12 +181,12 @@ public class ScanServerGroupConfigurationIT extends SharedMiniClusterBase { ScanServerIT.ingest(client, tableName, 10, 10, 20, "colf", false); assertEquals(100, additionalIngest2); - assertEquals(ingestedEntryCount + additionalIngest1, Iterables.size(scanner), + assertEquals(ingestedEntryCount + additionalIngest1, scanner.stream().count(), "The scan server scanner should have seen all ingested and flushed entries"); scanner.setConsistencyLevel(ConsistencyLevel.IMMEDIATE); assertEquals(ingestedEntryCount + additionalIngest1 + additionalIngest2, - Iterables.size(scanner), + scanner.stream().count(), "Scanning against tserver should have resulted in seeing all ingested entries"); } } diff --git a/test/src/main/java/org/apache/accumulo/test/ScanServerIT.java b/test/src/main/java/org/apache/accumulo/test/ScanServerIT.java index a7db46c557..6c80dc4f82 100644 --- a/test/src/main/java/org/apache/accumulo/test/ScanServerIT.java +++ b/test/src/main/java/org/apache/accumulo/test/ScanServerIT.java @@ -83,8 +83,6 @@ import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Timeout; -import com.google.common.collect.Iterables; - @Tag(MINI_CLUSTER_ONLY) public class ScanServerIT extends SharedMiniClusterBase { @@ -135,15 +133,15 @@ public class ScanServerIT extends SharedMiniClusterBase { try (Scanner scanner = client.createScanner(tableName, Authorizations.EMPTY)) { scanner.setRange(new Range()); scanner.setConsistencyLevel(ConsistencyLevel.EVENTUAL); - assertEquals(ingestedEntryCount, Iterables.size(scanner), + assertEquals(ingestedEntryCount, scanner.stream().count(), "The scan server scanner should have seen all ingested and flushed entries"); // if scanning against tserver would see the following, but should not on scan server final int additionalIngestedEntryCount = ingest(client, tableName, 10, 10, 10, "colf", false); - assertEquals(ingestedEntryCount, Iterables.size(scanner), + assertEquals(ingestedEntryCount, scanner.stream().count(), "The scan server scanner should have seen all ingested and flushed entries"); scanner.setConsistencyLevel(ConsistencyLevel.IMMEDIATE); - assertEquals(ingestedEntryCount + additionalIngestedEntryCount, Iterables.size(scanner), + assertEquals(ingestedEntryCount + additionalIngestedEntryCount, scanner.stream().count(), "Scanning against tserver should have resulted in seeing all ingested entries"); } // when the scanner is closed, all open sessions should be closed } @@ -160,14 +158,14 @@ public class ScanServerIT extends SharedMiniClusterBase { try (BatchScanner scanner = client.createBatchScanner(tableName, Authorizations.EMPTY)) { scanner.setRanges(Collections.singletonList(new Range())); scanner.setConsistencyLevel(ConsistencyLevel.EVENTUAL); - assertEquals(ingestedEntryCount, Iterables.size(scanner), + assertEquals(ingestedEntryCount, scanner.stream().count(), "The scan server scanner should have seen all ingested and flushed entries"); final int additionalIngestedEntryCount = ingest(client, tableName, 10, 10, 10, "colf", false); - assertEquals(ingestedEntryCount, Iterables.size(scanner), + assertEquals(ingestedEntryCount, scanner.stream().count(), "The scan server scanner should have seen all ingested and flushed entries"); scanner.setConsistencyLevel(ConsistencyLevel.IMMEDIATE); - assertEquals(ingestedEntryCount + additionalIngestedEntryCount, Iterables.size(scanner), + assertEquals(ingestedEntryCount + additionalIngestedEntryCount, scanner.stream().count(), "Scanning against tserver should have resulted in seeing all ingested entries"); } // when the scanner is closed, all open sessions should be closed } @@ -185,7 +183,7 @@ public class ScanServerIT extends SharedMiniClusterBase { try (Scanner scanner = client.createScanner(tableName, Authorizations.EMPTY)) { scanner.setRange(new Range()); scanner.setConsistencyLevel(ConsistencyLevel.EVENTUAL); - assertEquals(100, Iterables.size(scanner)); + assertEquals(100, scanner.stream().count()); } // when the scanner is closed, all open sessions should be closed }); } @@ -231,18 +229,18 @@ public class ScanServerIT extends SharedMiniClusterBase { try (Scanner scanner = client.createScanner(tableName, Authorizations.EMPTY)) { scanner.setRange(new Range()); scanner.setConsistencyLevel(ConsistencyLevel.EVENTUAL); - assertEquals(ingestedEntryCount, Iterables.size(scanner), + assertEquals(ingestedEntryCount, scanner.stream().count(), "The scan server scanner should have seen all ingested and flushed entries"); // Throws an exception because of the tablets with the UNHOSTED tablet availability scanner.setConsistencyLevel(ConsistencyLevel.IMMEDIATE); - assertThrows(RuntimeException.class, () -> Iterables.size(scanner)); + assertThrows(RuntimeException.class, () -> scanner.stream().count()); // Test that hosted ranges work scanner.setRange(new Range(null, "row_0000000003")); - assertEquals(40, Iterables.size(scanner)); + assertEquals(40, scanner.stream().count()); scanner.setRange(new Range("row_0000000008", null)); - assertEquals(20, Iterables.size(scanner)); + assertEquals(20, scanner.stream().count()); } // when the scanner is closed, all open sessions should be closed } } @@ -289,13 +287,13 @@ public class ScanServerIT extends SharedMiniClusterBase { // Confirm that the ScanServer will not complete the scan eventualScanner.setConsistencyLevel(ConsistencyLevel.EVENTUAL); futures.add(executor.submit(() -> assertTimeoutPreemptively(Duration.ofSeconds(30), () -> { - Iterables.size(eventualScanner); + eventualScanner.stream().count(); }))); // Confirm that the TabletServer will not complete the scan immediateScanner.setConsistencyLevel(ConsistencyLevel.IMMEDIATE); futures.add(executor.submit(() -> assertTimeoutPreemptively(Duration.ofSeconds(30), () -> { - Iterables.size(immediateScanner); + immediateScanner.stream().count(); }))); // Test the BatchScanner @@ -305,13 +303,13 @@ public class ScanServerIT extends SharedMiniClusterBase { // Confirm that the ScanServer will not complete the scan eventualBScanner.setConsistencyLevel(ConsistencyLevel.EVENTUAL); futures.add(executor.submit(() -> assertTimeoutPreemptively(Duration.ofSeconds(30), () -> { - Iterables.size(eventualBScanner); + eventualBScanner.stream().count(); }))); // Confirm that the TabletServer will not complete the scan immediateBScanner.setConsistencyLevel(ConsistencyLevel.IMMEDIATE); futures.add(executor.submit(() -> assertTimeoutPreemptively(Duration.ofSeconds(30), () -> { - Iterables.size(immediateBScanner); + immediateBScanner.stream().count(); }))); UtilWaitThread.sleep(30_000); @@ -336,18 +334,18 @@ public class ScanServerIT extends SharedMiniClusterBase { try (BatchScanner scanner = client.createBatchScanner(tableName, Authorizations.EMPTY)) { scanner.setRanges(Collections.singleton(new Range())); scanner.setConsistencyLevel(ConsistencyLevel.EVENTUAL); - assertEquals(ingestedEntryCount, Iterables.size(scanner), + assertEquals(ingestedEntryCount, scanner.stream().count(), "The scan server scanner should have seen all ingested and flushed entries"); // Throws an exception because of the tablets with the UNHOSTED tablet availability scanner.setConsistencyLevel(ConsistencyLevel.IMMEDIATE); - assertThrows(RuntimeException.class, () -> Iterables.size(scanner)); + assertThrows(RuntimeException.class, () -> scanner.stream().count()); // Test that hosted ranges work Collection<Range> ranges = new ArrayList<>(); ranges.add(new Range(null, "row_0000000003")); ranges.add(new Range("row_0000000008", null)); scanner.setRanges(ranges); - assertEquals(60, Iterables.size(scanner)); + assertEquals(60, scanner.stream().count()); } // when the scanner is closed, all open sessions should be closed } } @@ -439,11 +437,12 @@ public class ScanServerIT extends SharedMiniClusterBase { return ingestedEntriesCount; } - protected static int getNumHostedTablets(AccumuloClient client, String tableId) throws Exception { + protected static long getNumHostedTablets(AccumuloClient client, String tableId) + throws Exception { try (Scanner scanner = client.createScanner(SystemTables.METADATA.tableName())) { scanner.setRange(new Range(tableId, tableId + "<")); scanner.fetchColumnFamily(CurrentLocationColumnFamily.NAME); - return Iterables.size(scanner); + return scanner.stream().count(); } } } diff --git a/test/src/main/java/org/apache/accumulo/test/ScanServerMultipleScansIT.java b/test/src/main/java/org/apache/accumulo/test/ScanServerMultipleScansIT.java index 063b9c5529..776957d6c9 100644 --- a/test/src/main/java/org/apache/accumulo/test/ScanServerMultipleScansIT.java +++ b/test/src/main/java/org/apache/accumulo/test/ScanServerMultipleScansIT.java @@ -34,7 +34,7 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; -import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicLong; import java.util.stream.Collectors; import org.apache.accumulo.core.client.Accumulo; @@ -63,8 +63,6 @@ import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.collect.Iterables; - @Tag(MINI_CLUSTER_ONLY) public class ScanServerMultipleScansIT extends SharedMiniClusterBase { @@ -131,7 +129,7 @@ public class ScanServerMultipleScansIT extends SharedMiniClusterBase { try (Scanner scanner = client.createScanner(tableName, Authorizations.EMPTY)) { scanner.setRange(new Range()); scanner.setConsistencyLevel(ConsistencyLevel.EVENTUAL); - assertEquals(ingestedEntryCount, Iterables.size(scanner)); + assertEquals(ingestedEntryCount, scanner.stream().count()); } catch (TableNotFoundException e) { fail("Table not found"); } @@ -161,7 +159,7 @@ public class ScanServerMultipleScansIT extends SharedMiniClusterBase { try (Scanner scanner = client.createScanner(tableName, Authorizations.EMPTY)) { scanner.setRange(new Range()); scanner.setConsistencyLevel(ConsistencyLevel.EVENTUAL); - assertEquals(ingestedEntryCount, Iterables.size(scanner)); + assertEquals(ingestedEntryCount, scanner.stream().count()); } } } @@ -184,7 +182,7 @@ public class ScanServerMultipleScansIT extends SharedMiniClusterBase { final CountDownLatch latch = new CountDownLatch(1); - final AtomicInteger counter = new AtomicInteger(0); + final AtomicLong counter = new AtomicLong(0); List<Future<?>> futures = new ArrayList<>(NUM_SCANS); @@ -215,7 +213,7 @@ public class ScanServerMultipleScansIT extends SharedMiniClusterBase { } scanner.setConsistencyLevel(ConsistencyLevel.EVENTUAL); - counter.addAndGet(Iterables.size(scanner)); + counter.addAndGet(scanner.stream().count()); } catch (TableNotFoundException e) { fail("Table not found"); @@ -254,7 +252,7 @@ public class ScanServerMultipleScansIT extends SharedMiniClusterBase { try (BatchScanner scanner = client.createBatchScanner(tableName, Authorizations.EMPTY)) { scanner.setRanges(Collections.singletonList(new Range())); scanner.setConsistencyLevel(ConsistencyLevel.EVENTUAL); - assertEquals(ingestedEntryCount, Iterables.size(scanner)); + assertEquals(ingestedEntryCount, scanner.stream().count()); } catch (TableNotFoundException e) { fail("Table not found"); } @@ -284,7 +282,7 @@ public class ScanServerMultipleScansIT extends SharedMiniClusterBase { client.createBatchScanner(tableName, Authorizations.EMPTY, NUM_SCANS)) { scanner.setRanges(Collections.singletonList(new Range())); scanner.setConsistencyLevel(ConsistencyLevel.EVENTUAL); - assertEquals(ingestedEntryCount, Iterables.size(scanner)); + assertEquals(ingestedEntryCount, scanner.stream().count()); } } } @@ -307,7 +305,7 @@ public class ScanServerMultipleScansIT extends SharedMiniClusterBase { final CountDownLatch latch = new CountDownLatch(1); - final AtomicInteger counter = new AtomicInteger(0); + final AtomicLong counter = new AtomicLong(0); List<Future<?>> futures = new ArrayList<>(NUM_SCANS); for (int i = 0; i < NUM_SCANS; i++) { @@ -340,7 +338,7 @@ public class ScanServerMultipleScansIT extends SharedMiniClusterBase { } scanner.setConsistencyLevel(ConsistencyLevel.EVENTUAL); - counter.addAndGet(Iterables.size(scanner)); + counter.addAndGet(scanner.stream().count()); } catch (TableNotFoundException e) { fail("Table not found"); } diff --git a/test/src/main/java/org/apache/accumulo/test/ScanServer_NoServersIT.java b/test/src/main/java/org/apache/accumulo/test/ScanServer_NoServersIT.java index f692a38271..2163a006eb 100644 --- a/test/src/main/java/org/apache/accumulo/test/ScanServer_NoServersIT.java +++ b/test/src/main/java/org/apache/accumulo/test/ScanServer_NoServersIT.java @@ -50,8 +50,6 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; -import com.google.common.collect.Iterables; - @Tag(MINI_CLUSTER_ONLY) public class ScanServer_NoServersIT extends SharedMiniClusterBase { @@ -109,12 +107,12 @@ public class ScanServer_NoServersIT extends SharedMiniClusterBase { try (Scanner scanner = client.createScanner(tableName, Authorizations.EMPTY)) { scanner.setRange(new Range()); scanner.setConsistencyLevel(ConsistencyLevel.EVENTUAL); - assertEquals(ingestedEntryCount, Iterables.size(scanner), + assertEquals(ingestedEntryCount, scanner.stream().count(), "Scanner did not see ingested and flushed entries"); final int additionalIngestedEntryCount = ingest(client, tableName, 10, 10, 10, "colf", false); // since there are no scan servers, and we are reading from tservers, we should see update - assertEquals(ingestedEntryCount + additionalIngestedEntryCount, Iterables.size(scanner), + assertEquals(ingestedEntryCount + additionalIngestedEntryCount, scanner.stream().count(), "Scanning against tserver should have resulted in seeing all ingested entries"); } // when the scanner is closed, all open sessions should be closed } @@ -140,12 +138,12 @@ public class ScanServer_NoServersIT extends SharedMiniClusterBase { try (BatchScanner scanner = client.createBatchScanner(tableName, Authorizations.EMPTY)) { scanner.setRanges(Collections.singletonList(new Range())); scanner.setConsistencyLevel(ConsistencyLevel.EVENTUAL); - assertEquals(ingestedEntryCount, Iterables.size(scanner), + assertEquals(ingestedEntryCount, scanner.stream().count(), "Scanner did not see ingested and flushed entries"); final int additionalIngestedEntryCount = ingest(client, tableName, 10, 10, 10, "colf", false); // since there are no scan servers, and we are reading from tservers, we should see update - assertEquals(ingestedEntryCount + additionalIngestedEntryCount, Iterables.size(scanner), + assertEquals(ingestedEntryCount + additionalIngestedEntryCount, scanner.stream().count(), "Scanning against tserver should have resulted in seeing all ingested entries"); } // when the scanner is closed, all open sessions should be closed } @@ -163,7 +161,7 @@ public class ScanServer_NoServersIT extends SharedMiniClusterBase { scanner.setRange(new Range()); scanner.setTimeout(1, TimeUnit.SECONDS); scanner.setConsistencyLevel(ConsistencyLevel.EVENTUAL); - assertEquals(100, Iterables.size(scanner)); + assertEquals(100, scanner.stream().count()); } // when the scanner is closed, all open sessions should be closed }); } @@ -181,7 +179,7 @@ public class ScanServer_NoServersIT extends SharedMiniClusterBase { scanner.setRanges(List.of(new Range())); scanner.setTimeout(1, TimeUnit.SECONDS); scanner.setConsistencyLevel(ConsistencyLevel.EVENTUAL); - assertEquals(100, Iterables.size(scanner)); + assertEquals(100, scanner.stream().count()); } // when the scanner is closed, all open sessions should be closed }); } @@ -199,17 +197,17 @@ public class ScanServer_NoServersIT extends SharedMiniClusterBase { scanner.setConsistencyLevel(ConsistencyLevel.EVENTUAL); // Throws an exception because no scan servers and falls back to tablet server with tablets // with UNHOSTED availability - assertThrows(RuntimeException.class, () -> Iterables.size(scanner)); + assertThrows(RuntimeException.class, () -> scanner.stream().count()); // Throws an exception because of the tablets with UNHOSTED availability scanner.setConsistencyLevel(ConsistencyLevel.IMMEDIATE); - assertThrows(RuntimeException.class, () -> Iterables.size(scanner)); + assertThrows(RuntimeException.class, () -> scanner.stream().count()); // Test that hosted ranges work scanner.setRange(new Range(null, "row_0000000003")); - assertEquals(40, Iterables.size(scanner)); + assertEquals(40, scanner.stream().count()); scanner.setRange(new Range("row_0000000008", null)); - assertEquals(20, Iterables.size(scanner)); + assertEquals(20, scanner.stream().count()); } // when the scanner is closed, all open sessions should be closed } @@ -227,17 +225,17 @@ public class ScanServer_NoServersIT extends SharedMiniClusterBase { scanner.setConsistencyLevel(ConsistencyLevel.EVENTUAL); // Throws an exception because no scan servers and falls back to tablet server with tablets // with UNHOSTED availability - assertThrows(RuntimeException.class, () -> Iterables.size(scanner)); + assertThrows(RuntimeException.class, () -> scanner.stream().count()); // Throws an exception because of the tablets with UNHOSTED availability scanner.setConsistencyLevel(ConsistencyLevel.IMMEDIATE); - assertThrows(RuntimeException.class, () -> Iterables.size(scanner)); + assertThrows(RuntimeException.class, () -> scanner.stream().count()); // Test that hosted ranges work Collection<Range> ranges = new ArrayList<>(); ranges.add(new Range(null, "row_0000000003")); ranges.add(new Range("row_0000000008", null)); scanner.setRanges(ranges); - assertEquals(60, Iterables.size(scanner)); + assertEquals(60, scanner.stream().count()); } // when the scanner is closed, all open sessions should be closed } } diff --git a/test/src/main/java/org/apache/accumulo/test/functional/BalanceAfterCommsFailureIT.java b/test/src/main/java/org/apache/accumulo/test/functional/BalanceAfterCommsFailureIT.java index 0d5ff211e7..f6688cd567 100644 --- a/test/src/main/java/org/apache/accumulo/test/functional/BalanceAfterCommsFailureIT.java +++ b/test/src/main/java/org/apache/accumulo/test/functional/BalanceAfterCommsFailureIT.java @@ -46,8 +46,6 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.io.Text; import org.junit.jupiter.api.Test; -import com.google.common.collect.Iterables; - public class BalanceAfterCommsFailureIT extends ConfigurableMacBase { @Override @@ -94,7 +92,7 @@ public class BalanceAfterCommsFailureIT extends ConfigurableMacBase { } c.tableOperations().addSplits("test", splits); // Ensure all of the tablets are actually assigned - assertEquals(0, Iterables.size(c.createScanner("test", Authorizations.EMPTY))); + assertEquals(0, c.createScanner("test", Authorizations.EMPTY).stream().count()); Thread.sleep(30_000); checkBalance(c); } diff --git a/test/src/main/java/org/apache/accumulo/test/functional/FlushNoFileIT.java b/test/src/main/java/org/apache/accumulo/test/functional/FlushNoFileIT.java index fcf2e36ae6..ab2c8838c1 100644 --- a/test/src/main/java/org/apache/accumulo/test/functional/FlushNoFileIT.java +++ b/test/src/main/java/org/apache/accumulo/test/functional/FlushNoFileIT.java @@ -53,8 +53,6 @@ import org.apache.accumulo.test.util.Wait; import org.apache.hadoop.io.Text; import org.junit.jupiter.api.Test; -import com.google.common.collect.Iterables; - /** * Tests that Accumulo will flush but not create a file that has 0 entries. */ @@ -144,7 +142,7 @@ public class FlushNoFileIT extends AccumuloClusterHarness { }); try (Scanner scanner = c.createScanner(tableName)) { - assertEquals(0, Iterables.size(scanner), "Expected 0 Entries in table"); + assertEquals(0, scanner.stream().count(), "Expected 0 Entries in table"); } } } diff --git a/test/src/main/java/org/apache/accumulo/test/functional/KerberosIT.java b/test/src/main/java/org/apache/accumulo/test/functional/KerberosIT.java index ce1cdb0e2b..06335da177 100644 --- a/test/src/main/java/org/apache/accumulo/test/functional/KerberosIT.java +++ b/test/src/main/java/org/apache/accumulo/test/functional/KerberosIT.java @@ -84,7 +84,6 @@ import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.collect.Iterables; import com.google.common.collect.Sets; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; @@ -425,12 +424,12 @@ public class KerberosIT extends AccumuloITBase { // krb credentials UserGroupInformation userWithoutPrivs = UserGroupInformation.createUserForTesting("fake_user", new String[0]); - int recordsSeen = userWithoutPrivs.doAs((PrivilegedExceptionAction<Integer>) () -> { + long recordsSeen = userWithoutPrivs.doAs((PrivilegedExceptionAction<Long>) () -> { AccumuloClient client = mac.createAccumuloClient(rootUser.getPrincipal(), delegationToken); try (BatchScanner bs = client.createBatchScanner(tableName)) { bs.setRanges(Collections.singleton(new Range())); - return Iterables.size(bs); + return bs.stream().count(); } }); diff --git a/test/src/main/java/org/apache/accumulo/test/functional/ManagerAssignmentIT.java b/test/src/main/java/org/apache/accumulo/test/functional/ManagerAssignmentIT.java index d865cf2a9a..538860614f 100644 --- a/test/src/main/java/org/apache/accumulo/test/functional/ManagerAssignmentIT.java +++ b/test/src/main/java/org/apache/accumulo/test/functional/ManagerAssignmentIT.java @@ -87,7 +87,6 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import com.google.common.collect.Iterables; import com.google.common.net.HostAndPort; public class ManagerAssignmentIT extends SharedMiniClusterBase { @@ -271,7 +270,7 @@ public class ManagerAssignmentIT extends SharedMiniClusterBase { Scanner s = client.createScanner(tableName); s.setRange(scanRange); // Should return keys for a, b, c - assertEquals(3, Iterables.size(s)); + assertEquals(3, s.stream().count()); List<TabletStats> stats = getTabletStats(client, tableId); // There should be one tablet online @@ -289,7 +288,7 @@ public class ManagerAssignmentIT extends SharedMiniClusterBase { try (Scanner s = client.createScanner(tableName)) { s.setRange(new Range("a", "s")); - assertEquals(19, Iterables.size(s)); + assertEquals(19, s.stream().count()); } List<TabletStats> stats = getTabletStats(client, tableId); @@ -302,7 +301,7 @@ public class ManagerAssignmentIT extends SharedMiniClusterBase { // all others should be loaded. try (Scanner s = client.createScanner(tableName)) { s.setRange(new Range("a", "t")); - assertEquals(20, Iterables.size(s)); + assertEquals(20, s.stream().count()); } stats = getTabletStats(client, tableId); @@ -322,7 +321,7 @@ public class ManagerAssignmentIT extends SharedMiniClusterBase { try (BatchScanner s = client.createBatchScanner(tableName)) { s.setRanges(List.of(new Range("a", "c"))); // Should return keys for a, b, c - assertEquals(3, Iterables.size(s)); + assertEquals(3, s.stream().count()); } List<TabletStats> stats = getTabletStats(client, tableId); @@ -341,7 +340,7 @@ public class ManagerAssignmentIT extends SharedMiniClusterBase { try (BatchScanner s = client.createBatchScanner(tableName)) { s.setRanges(List.of(new Range("a", "s"))); - assertEquals(19, Iterables.size(s)); + assertEquals(19, s.stream().count()); } List<TabletStats> stats = getTabletStats(client, tableId); @@ -353,7 +352,7 @@ public class ManagerAssignmentIT extends SharedMiniClusterBase { // Run another scan, all tablets should be loaded try (BatchScanner s = client.createBatchScanner(tableName)) { s.setRanges(List.of(new Range("a", "t"))); - assertEquals(20, Iterables.size(s)); + assertEquals(20, s.stream().count()); } stats = getTabletStats(client, tableId); diff --git a/test/src/main/java/org/apache/accumulo/test/functional/MemoryStarvedScanIT.java b/test/src/main/java/org/apache/accumulo/test/functional/MemoryStarvedScanIT.java index 5f8dd0d05f..3a2464fd15 100644 --- a/test/src/main/java/org/apache/accumulo/test/functional/MemoryStarvedScanIT.java +++ b/test/src/main/java/org/apache/accumulo/test/functional/MemoryStarvedScanIT.java @@ -66,8 +66,6 @@ import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.collect.Iterables; - public class MemoryStarvedScanIT extends SharedMiniClusterBase { public static class MemoryStarvedITConfiguration implements MiniClusterConfigurationCallback { @@ -188,7 +186,7 @@ public class MemoryStarvedScanIT extends SharedMiniClusterBase { try (Scanner scanner = client.createScanner(SystemTables.METADATA.tableName())) { IteratorSetting is = new IteratorSetting(11, MemoryFreeingIterator.class, Map.of()); scanner.addScanIterator(is); - assertNotEquals(0, Iterables.size(scanner)); // consume the key/values + assertNotEquals(0, scanner.stream().count()); // consume the key/values } } diff --git a/test/src/main/java/org/apache/accumulo/test/functional/MergeTabletsBaseIT.java b/test/src/main/java/org/apache/accumulo/test/functional/MergeTabletsBaseIT.java index 5118874da8..980fec8627 100644 --- a/test/src/main/java/org/apache/accumulo/test/functional/MergeTabletsBaseIT.java +++ b/test/src/main/java/org/apache/accumulo/test/functional/MergeTabletsBaseIT.java @@ -84,8 +84,6 @@ import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.collect.Iterables; - public abstract class MergeTabletsBaseIT extends SharedMiniClusterBase { private static final Logger log = LoggerFactory.getLogger(MergeTabletsBaseIT.class); @@ -193,7 +191,7 @@ public abstract class MergeTabletsBaseIT extends SharedMiniClusterBase { s.setRange(new Range(tid + ";g")); TabletColumnFamily.PREV_ROW_COLUMN.fetch(s); TabletColumnFamily.AVAILABILITY_COLUMN.fetch(s); - assertEquals(2, Iterables.size(s)); + assertEquals(2, s.stream().count()); for (Entry<Key,Value> rows : s) { if (TabletColumnFamily.PREV_ROW_COLUMN.hasColumns(rows.getKey())) { assertEquals("c", TabletColumnFamily.decodePrevEndRow(rows.getValue()).toString()); diff --git a/test/src/main/java/org/apache/accumulo/test/functional/TabletManagementIteratorIT.java b/test/src/main/java/org/apache/accumulo/test/functional/TabletManagementIteratorIT.java index d347d51c42..5016070509 100644 --- a/test/src/main/java/org/apache/accumulo/test/functional/TabletManagementIteratorIT.java +++ b/test/src/main/java/org/apache/accumulo/test/functional/TabletManagementIteratorIT.java @@ -102,7 +102,6 @@ import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.collect.Iterables; import com.google.common.collect.Sets; /** @@ -145,8 +144,7 @@ public class TabletManagementIteratorIT extends AccumuloClusterHarness { // to be hosted. Then, remove the location. Scanner s = client.createScanner(t3); s.setRange(new Range()); - @SuppressWarnings("unused") - var unused = Iterables.size(s); // consume all the data + assertEquals(0, s.stream().count()); // consume all the data // examine a clone of the metadata table, so we can manipulate it copyTable(client, SystemTables.METADATA.tableName(), metaCopy1); diff --git a/test/src/main/java/org/apache/accumulo/test/shell/ShellServerIT.java b/test/src/main/java/org/apache/accumulo/test/shell/ShellServerIT.java index aa521d78ec..fe3ee97b8e 100644 --- a/test/src/main/java/org/apache/accumulo/test/shell/ShellServerIT.java +++ b/test/src/main/java/org/apache/accumulo/test/shell/ShellServerIT.java @@ -106,7 +106,6 @@ import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.collect.Iterables; import com.google.common.collect.Sets; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; @@ -1152,8 +1151,8 @@ public class ShellServerIT extends SharedMiniClusterBase { ts.exec("deletetable -f formatter_test", true); - assertTrue(Iterables.elementsEqual(expectedDefault, new ArrayList<>(actualDefault))); - assertTrue(Iterables.elementsEqual(expectedFormatted, new ArrayList<>(actualFormatted))); + assertEquals(expectedDefault, actualDefault); + assertEquals(expectedFormatted, actualFormatted); } /** @@ -1933,9 +1932,9 @@ public class ShellServerIT extends SharedMiniClusterBase { try (AccumuloClient client = Accumulo.newClient().from(getClientProps()).build(); Scanner s = client.createScanner(table, Authorizations.EMPTY); BatchScanner bs = client.createBatchScanner(table)) { - assertThrows(RuntimeException.class, () -> Iterables.size(s)); + assertThrows(RuntimeException.class, () -> s.stream().count()); bs.setRanges(Collections.singleton(new Range())); - assertThrows(RuntimeException.class, () -> Iterables.size(bs)); + assertThrows(RuntimeException.class, () -> bs.stream().count()); } }