You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by mw...@apache.org on 2019/03/06 21:31:28 UTC

[accumulo] branch master updated: Replace loops that remove with Collection.removeIf (#1014)

This is an automated email from the ASF dual-hosted git repository.

mwalch pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/accumulo.git


The following commit(s) were added to refs/heads/master by this push:
     new e6eb6b9  Replace loops that remove with Collection.removeIf (#1014)
e6eb6b9 is described below

commit e6eb6b9664e1a5054245fca44715c4d8877849e3
Author: Mike Walch <mw...@apache.org>
AuthorDate: Wed Mar 6 16:31:23 2019 -0500

    Replace loops that remove with Collection.removeIf (#1014)
---
 .../apache/accumulo/fate/zookeeper/ZooCache.java   | 23 +++-------------------
 .../accumulo/server/client/BulkImporter.java       |  7 +------
 .../java/org/apache/accumulo/master/Master.java    |  8 +-------
 .../accumulo/shell/commands/SetIterCommand.java    | 17 ++++------------
 .../shell/commands/SetScanIterCommand.java         |  8 +-------
 .../shell/commands/SetShellIterCommand.java        | 17 ++--------------
 .../accumulo/test/InterruptibleScannersIT.java     | 13 +++---------
 .../java/org/apache/accumulo/test/SampleIT.java    |  8 +-------
 8 files changed, 16 insertions(+), 85 deletions(-)

diff --git a/core/src/main/java/org/apache/accumulo/fate/zookeeper/ZooCache.java b/core/src/main/java/org/apache/accumulo/fate/zookeeper/ZooCache.java
index 499a9dc..7fff9ec 100644
--- a/core/src/main/java/org/apache/accumulo/fate/zookeeper/ZooCache.java
+++ b/core/src/main/java/org/apache/accumulo/fate/zookeeper/ZooCache.java
@@ -22,7 +22,6 @@ import java.security.SecureRandom;
 import java.util.Collections;
 import java.util.ConcurrentModificationException;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.locks.Lock;
@@ -520,7 +519,6 @@ public class ZooCache {
     } finally {
       cacheReadLock.unlock();
     }
-
   }
 
   /**
@@ -550,28 +548,13 @@ public class ZooCache {
     Preconditions.checkState(!closed);
     cacheWriteLock.lock();
     try {
-      for (Iterator<String> i = cache.keySet().iterator(); i.hasNext();) {
-        String path = i.next();
-        if (path.startsWith(zPath))
-          i.remove();
-      }
-
-      for (Iterator<String> i = childrenCache.keySet().iterator(); i.hasNext();) {
-        String path = i.next();
-        if (path.startsWith(zPath))
-          i.remove();
-      }
-
-      for (Iterator<String> i = statCache.keySet().iterator(); i.hasNext();) {
-        String path = i.next();
-        if (path.startsWith(zPath))
-          i.remove();
-      }
+      cache.keySet().removeIf(path -> path.startsWith(zPath));
+      childrenCache.keySet().removeIf(path -> path.startsWith(zPath));
+      statCache.keySet().removeIf(path -> path.startsWith(zPath));
 
       immutableCache = new ImmutableCacheCopies(++updateCount, cache, statCache, childrenCache);
     } finally {
       cacheWriteLock.unlock();
     }
   }
-
 }
diff --git a/server/base/src/main/java/org/apache/accumulo/server/client/BulkImporter.java b/server/base/src/main/java/org/apache/accumulo/server/client/BulkImporter.java
index 4f56b2d..2028706 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/client/BulkImporter.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/client/BulkImporter.java
@@ -236,12 +236,7 @@ public class BulkImporter {
         }
 
         // remove map files that have no more key extents to assign
-        Iterator<Entry<Path,List<KeyExtent>>> afIter = assignmentFailures.entrySet().iterator();
-        while (afIter.hasNext()) {
-          Entry<Path,List<KeyExtent>> entry = afIter.next();
-          if (entry.getValue().size() == 0)
-            afIter.remove();
-        }
+        assignmentFailures.values().removeIf(List::isEmpty);
 
         Set<Entry<Path,Integer>> failureIter = failureCount.entrySet();
         for (Entry<Path,Integer> entry : failureIter) {
diff --git a/server/master/src/main/java/org/apache/accumulo/master/Master.java b/server/master/src/main/java/org/apache/accumulo/master/Master.java
index 3e5fd7f..5d7fc6d 100644
--- a/server/master/src/main/java/org/apache/accumulo/master/Master.java
+++ b/server/master/src/main/java/org/apache/accumulo/master/Master.java
@@ -821,13 +821,7 @@ public class Master
 
   public void clearMigrations(TableId tableId) {
     synchronized (migrations) {
-      Iterator<KeyExtent> iterator = migrations.keySet().iterator();
-      while (iterator.hasNext()) {
-        KeyExtent extent = iterator.next();
-        if (extent.getTableId().equals(tableId)) {
-          iterator.remove();
-        }
-      }
+      migrations.keySet().removeIf(extent -> extent.getTableId().equals(tableId));
     }
   }
 
diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/SetIterCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/SetIterCommand.java
index d66d88b..092aef3 100644
--- a/shell/src/main/java/org/apache/accumulo/shell/commands/SetIterCommand.java
+++ b/shell/src/main/java/org/apache/accumulo/shell/commands/SetIterCommand.java
@@ -19,7 +19,6 @@ package org.apache.accumulo.shell.commands;
 import java.io.IOException;
 import java.util.EnumSet;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.Map;
 import java.util.Map.Entry;
 
@@ -143,12 +142,8 @@ public class SetIterCommand extends Command {
 
     ScanCommand.ensureTserversCanLoadIterator(shellState, tableName, classname);
 
-    for (Iterator<Entry<String,String>> i = options.entrySet().iterator(); i.hasNext();) {
-      final Entry<String,String> entry = i.next();
-      if (entry.getValue() == null || entry.getValue().isEmpty()) {
-        i.remove();
-      }
-    }
+    options.values().removeIf(v -> v == null || v.isEmpty());
+
     final EnumSet<IteratorScope> scopes = EnumSet.noneOf(IteratorScope.class);
     if (cl.hasOption(allScopeOpt.getOpt()) || cl.hasOption(mincScopeOpt.getOpt())) {
       scopes.add(IteratorScope.minc);
@@ -181,12 +176,8 @@ public class SetIterCommand extends Command {
               + SortedKeyValueIterator.class.getName());
     }
 
-    for (Iterator<Entry<String,String>> i = options.entrySet().iterator(); i.hasNext();) {
-      final Entry<String,String> entry = i.next();
-      if (entry.getValue() == null || entry.getValue().isEmpty()) {
-        i.remove();
-      }
-    }
+    options.values().removeIf(v -> v == null || v.isEmpty());
+
     final EnumSet<IteratorScope> scopes = EnumSet.noneOf(IteratorScope.class);
     if (cl.hasOption(allScopeOpt.getOpt()) || cl.hasOption(mincScopeOpt.getOpt())) {
       scopes.add(IteratorScope.minc);
diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/SetScanIterCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/SetScanIterCommand.java
index 0fa83e1..95b4582 100644
--- a/shell/src/main/java/org/apache/accumulo/shell/commands/SetScanIterCommand.java
+++ b/shell/src/main/java/org/apache/accumulo/shell/commands/SetScanIterCommand.java
@@ -22,7 +22,6 @@ import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.Map.Entry;
 
 import org.apache.accumulo.core.client.AccumuloException;
 import org.apache.accumulo.core.client.AccumuloSecurityException;
@@ -57,12 +56,7 @@ public class SetScanIterCommand extends SetIterCommand {
 
     ScanCommand.ensureTserversCanLoadIterator(shellState, tableName, classname);
 
-    for (Iterator<Entry<String,String>> i = options.entrySet().iterator(); i.hasNext();) {
-      final Entry<String,String> entry = i.next();
-      if (entry.getValue() == null || entry.getValue().isEmpty()) {
-        i.remove();
-      }
-    }
+    options.values().removeIf(v -> v == null || v.isEmpty());
 
     List<IteratorSetting> tableScanIterators = shellState.scanIteratorOptions.get(tableName);
     if (tableScanIterators == null) {
diff --git a/shell/src/main/java/org/apache/accumulo/shell/commands/SetShellIterCommand.java b/shell/src/main/java/org/apache/accumulo/shell/commands/SetShellIterCommand.java
index 2156ea8..e583078 100644
--- a/shell/src/main/java/org/apache/accumulo/shell/commands/SetShellIterCommand.java
+++ b/shell/src/main/java/org/apache/accumulo/shell/commands/SetShellIterCommand.java
@@ -18,10 +18,8 @@ package org.apache.accumulo.shell.commands;
 
 import java.io.IOException;
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.Map.Entry;
 
 import org.apache.accumulo.core.client.AccumuloException;
 import org.apache.accumulo.core.client.AccumuloSecurityException;
@@ -51,13 +49,7 @@ public class SetShellIterCommand extends SetIterCommand {
 
     String profile = cl.getOptionValue(profileOpt.getOpt());
 
-    // instead of setting table properties, just put the options in a list to use at scan time
-    for (Iterator<Entry<String,String>> i = options.entrySet().iterator(); i.hasNext();) {
-      final Entry<String,String> entry = i.next();
-      if (entry.getValue() == null || entry.getValue().isEmpty()) {
-        i.remove();
-      }
-    }
+    options.values().removeIf(v -> v == null || v.isEmpty());
 
     List<IteratorSetting> tableScanIterators = shellState.iteratorProfiles.get(profile);
     if (tableScanIterators == null) {
@@ -67,12 +59,7 @@ public class SetShellIterCommand extends SetIterCommand {
     final IteratorSetting setting = new IteratorSetting(priority, name, classname);
     setting.addOptions(options);
 
-    Iterator<IteratorSetting> iter = tableScanIterators.iterator();
-    while (iter.hasNext()) {
-      if (iter.next().getName().equals(name)) {
-        iter.remove();
-      }
-    }
+    tableScanIterators.removeIf(iteratorSetting -> iteratorSetting.getName().equals(name));
     tableScanIterators.add(setting);
   }
 
diff --git a/test/src/main/java/org/apache/accumulo/test/InterruptibleScannersIT.java b/test/src/main/java/org/apache/accumulo/test/InterruptibleScannersIT.java
index a647cde..a7a0c72 100644
--- a/test/src/main/java/org/apache/accumulo/test/InterruptibleScannersIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/InterruptibleScannersIT.java
@@ -19,7 +19,6 @@ package org.apache.accumulo.test;
 import static org.junit.Assert.fail;
 
 import java.util.ArrayList;
-import java.util.Iterator;
 
 import org.apache.accumulo.core.client.AccumuloClient;
 import org.apache.accumulo.core.client.IteratorSetting;
@@ -69,15 +68,9 @@ public class InterruptibleScannersIT extends AccumuloClusterHarness {
             do {
               ArrayList<ActiveScan> scans = new ArrayList<>(
                   client.instanceOperations().getActiveScans(tserver));
-              Iterator<ActiveScan> iter = scans.iterator();
-              while (iter.hasNext()) {
-                ActiveScan scan = iter.next();
-                // Remove scans not against our table and not owned by us
-                if (!getAdminPrincipal().equals(scan.getUser())
-                    || !tableName.equals(scan.getTable())) {
-                  iter.remove();
-                }
-              }
+              // Remove scans not against our table and not owned by us
+              scans.removeIf(scan -> !getAdminPrincipal().equals(scan.getUser())
+                  || !tableName.equals(scan.getTable()));
 
               if (!scans.isEmpty()) {
                 // We found our scan
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 ba7678b..28c4cde 100644
--- a/test/src/main/java/org/apache/accumulo/test/SampleIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/SampleIT.java
@@ -164,13 +164,7 @@ public class SampleIT extends AccumuloClusterHarness {
         sb.setSamplerConfiguration(SC1);
       }
 
-      Iterator<Key> it = expected.keySet().iterator();
-      while (it.hasNext()) {
-        Key k = it.next();
-        if (k.getRow().toString().equals(someRow)) {
-          it.remove();
-        }
-      }
+      expected.keySet().removeIf(k -> k.getRow().toString().equals(someRow));
 
       expected.put(new Key(someRow, "cf1", "cq1", 8), new Value("42".getBytes()));
       expected.put(new Key(someRow, "cf1", "cq3", 8), new Value("suprise".getBytes()));