From 707f616498b713dac0377952ac7c28c322e05ab7 Mon Sep 17 00:00:00 2001
From: str4d <str4d@mail.i2p>
Date: Thu, 28 Nov 2013 11:10:57 +0000
Subject: [PATCH] Changes from -rc diff review

---
 apps/BOB/src/net/i2p/BOB/TCPtoI2P.java                |  5 ++---
 .../java/src/org/klomp/snark/I2PSnarkUtil.java        |  7 ++-----
 .../java/src/org/klomp/snark/SnarkManager.java        |  4 +---
 .../src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java    |  2 +-
 apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2Ping.java |  5 +----
 .../java/src/net/i2p/router/web/ConfigUIHelper.java   |  4 +---
 .../java/src/net/i2p/router/web/GraphHelper.java      |  7 ++-----
 .../java/src/net/i2p/client/streaming/Connection.java |  2 +-
 .../src/src/i2p/susi/webmail/RequestWrapper.java      |  7 ++++---
 core/java/src/com/nettgryppa/security/HashCash.java   |  2 +-
 core/java/src/net/i2p/client/I2PSessionImpl2.java     |  4 +---
 core/java/src/net/i2p/client/MessageState.java        |  7 ++-----
 core/java/src/net/i2p/crypto/ElGamalAESEngine.java    |  4 +---
 core/java/src/net/i2p/crypto/KeyStoreUtil.java        |  4 ++--
 core/java/src/net/i2p/data/LeaseSet.java              |  9 ++-------
 core/java/src/net/i2p/util/I2PAppThread.java          |  5 +----
 core/java/src/net/i2p/util/I2PThread.java             |  5 +----
 router/java/src/net/i2p/router/RouterVersion.java     |  2 +-
 .../networkdb/kademlia/ExploreKeySelectorJob.java     |  4 +---
 .../i2p/router/networkdb/kademlia/HarvesterJob.java   | 11 +++--------
 .../net/i2p/router/networkdb/kademlia/SearchJob.java  |  7 ++-----
 .../src/net/i2p/router/peermanager/PeerTestJob.java   |  7 ++-----
 22 files changed, 35 insertions(+), 79 deletions(-)

diff --git a/apps/BOB/src/net/i2p/BOB/TCPtoI2P.java b/apps/BOB/src/net/i2p/BOB/TCPtoI2P.java
index e2f09672b6..0ce587257d 100644
--- a/apps/BOB/src/net/i2p/BOB/TCPtoI2P.java
+++ b/apps/BOB/src/net/i2p/BOB/TCPtoI2P.java
@@ -70,8 +70,7 @@ public class TCPtoI2P implements Runnable {
 	 * @throws IOException
 	 */
 	private static String lnRead(InputStream in) throws IOException {
-		String S = "";
-        StringBuilder builder = new StringBuilder();
+		StringBuilder builder = new StringBuilder();
 		int b;
 		char c;
 
@@ -86,7 +85,7 @@ public class TCPtoI2P implements Runnable {
 				break;
 			}
 			c = (char) (b & 0x7f); // We only care about ASCII
-            builder.append(c);
+			builder.append(c);
 		}
 		return builder.toString();
 	}
diff --git a/apps/i2psnark/java/src/org/klomp/snark/I2PSnarkUtil.java b/apps/i2psnark/java/src/org/klomp/snark/I2PSnarkUtil.java
index 8edf0cc6a3..2c7a6d2860 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/I2PSnarkUtil.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/I2PSnarkUtil.java
@@ -5,7 +5,6 @@ import java.io.File;
 import java.io.IOException;
 import java.util.Collections;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
@@ -216,10 +215,8 @@ public class I2PSnarkUtil {
                 _log.debug("Connecting to I2P", new Exception("I did it"));
             Properties opts = _context.getProperties();
             if (_opts != null) {
-                for (Iterator<String> iter = _opts.keySet().iterator(); iter.hasNext(); ) {
-                    String key = iter.next();
-                    opts.setProperty(key, _opts.get(key).toString());
-                }
+                for (Map.Entry<String, String> entry : _opts.entrySet() )
+                    opts.setProperty(entry.getKey(), entry.getValue());
             }
             if (opts.getProperty("inbound.nickname") == null)
                 opts.setProperty("inbound.nickname", _baseName.replace("i2psnark", "I2PSnark"));
diff --git a/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java b/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java
index c245c97a0b..5041fc98b1 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java
@@ -14,7 +14,6 @@ import java.util.Collections;
 import java.util.Comparator;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
@@ -1687,8 +1686,7 @@ public class SnarkManager implements CompleteListener {
         // Don't remove magnet torrents that don't have a torrent file yet
         existingNames.removeAll(_magnets);
         // now lets see which ones have been removed...
-        for (Iterator<String> iter = existingNames.iterator(); iter.hasNext(); ) {
-            String name = iter.next();
+        for (String name : existingNames) {
             if (foundNames.contains(name)) {
                 // known and still there.  noop
             } else {
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java
index 5e86042faa..1de544c1f8 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java
@@ -204,7 +204,7 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer {
                     if (_log.shouldLog(Log.WARN))
                         _log.warn("Refusing POST since peer is throttled: " + peerHash.toBase64());
                     try {
-                        // Send a 503, so the user doesn't get an HTTP Proxy error message
+                        // Send a 403, so the user doesn't get an HTTP Proxy error message
                         // and blame his router or the network.
                         socket.getOutputStream().write(ERR_DENIED);
                     } catch (IOException ioe) {}
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2Ping.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2Ping.java
index 3ab952a951..0390f84b7e 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2Ping.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2Ping.java
@@ -7,7 +7,6 @@ import java.io.BufferedReader;
 import java.io.FileReader;
 import java.io.IOException;
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 
 import net.i2p.I2PAppContext;
@@ -137,10 +136,8 @@ public class I2Ping extends I2PTunnelTask implements Runnable {
                     reportTimes = false;
             }
             br.close();
-            for (Iterator<PingHandler> it = pingHandlers.iterator(); it.hasNext();) {
-                Thread t = (Thread) it.next();
+            for (Thread t : pingHandlers)
                 t.join();
-            }
             return;
         } else {
             Thread t = new PingHandler(cmd);
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java
index 66b7070ae5..7b406fbff0 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java
@@ -1,7 +1,6 @@
 package net.i2p.router.web;
 
 import java.io.File;
-import java.util.Iterator;
 import java.util.Map;
 import java.util.Set;
 import java.util.TreeSet;
@@ -58,8 +57,7 @@ public class ConfigUIHelper extends HelperBase {
          }
          // user themes
          Set<String> props = _context.getPropertyNames();
-         for (Iterator<String> iter = props.iterator(); iter.hasNext(); ) {
-              String prop = iter.next();
+         for (String prop : props) {
               if (prop.startsWith(PROP_THEME_PFX) && prop.length() > PROP_THEME_PFX.length())
                   rv.add(prop.substring(PROP_THEME_PFX.length()));
          }
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/GraphHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/GraphHelper.java
index d0b3947b4e..b98a02119b 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/GraphHelper.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/GraphHelper.java
@@ -4,7 +4,6 @@ import java.io.IOException;
 import java.io.Writer;
 import java.util.Comparator;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -144,8 +143,7 @@ public class GraphHelper extends FormHandler {
             // go to some trouble to see if we have the data for the combined bw graph
             boolean hasTx = false;
             boolean hasRx = false;
-            for (Iterator<SummaryListener> iter = ordered.iterator(); iter.hasNext(); ) {
-                SummaryListener lsnr = iter.next();
+            for (SummaryListener lsnr : ordered) {
                 String title = lsnr.getRate().getRateStat().getName();
                 if (title.equals("bw.sendRate")) hasTx = true;
                 else if (title.equals("bw.recvRate")) hasRx = true;
@@ -166,8 +164,7 @@ public class GraphHelper extends FormHandler {
                            + "\" alt=\"" + title + "\" title=\"" + title + "\"></a>\n");
             }
             
-            for (Iterator<SummaryListener> iter = ordered.iterator(); iter.hasNext(); ) {
-                SummaryListener lsnr = iter.next();
+            for (SummaryListener lsnr : ordered) {
                 Rate r = lsnr.getRate();
                 // e.g. "statname for 60m"
                 String title = _("{0} for {1}", r.getRateStat().getName(), DataHelper.formatDuration2(_periodCount * r.getPeriod()));
diff --git a/apps/streaming/java/src/net/i2p/client/streaming/Connection.java b/apps/streaming/java/src/net/i2p/client/streaming/Connection.java
index fbc99d4399..db086d883f 100644
--- a/apps/streaming/java/src/net/i2p/client/streaming/Connection.java
+++ b/apps/streaming/java/src/net/i2p/client/streaming/Connection.java
@@ -610,7 +610,7 @@ class Connection {
         _inputStream.streamErrorOccurred(ioe);
         _connectionError = "Connection reset";
         synchronized (_connectLock) { _connectLock.notifyAll(); }
-        // RFC 793 end of setion 3.4: We are completely done.
+        // RFC 793 end of section 3.4: We are completely done.
         disconnectComplete();
     }
 
diff --git a/apps/susimail/src/src/i2p/susi/webmail/RequestWrapper.java b/apps/susimail/src/src/i2p/susi/webmail/RequestWrapper.java
index 95ad753b84..bf0f3519e8 100644
--- a/apps/susimail/src/src/i2p/susi/webmail/RequestWrapper.java
+++ b/apps/susimail/src/src/i2p/susi/webmail/RequestWrapper.java
@@ -28,6 +28,7 @@ import java.io.InputStream;
 import java.util.Enumeration;
 import java.util.Hashtable;
 import java.util.Locale;
+import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
@@ -134,10 +135,10 @@ public class RequestWrapper {
 		String result = null;
 		if( multiPartRequest != null ) {
 			Hashtable<String, String> params = multiPartRequest.getParams( partName );
-			for( Enumeration<String> e = params.keys(); e.hasMoreElements(); ) {
-				String key = e.nextElement();
+			for( Map.Entry<String, String> e : params.entrySet() ) {
+				String key = e.getKey();
 				if( key.toLowerCase(Locale.US).compareToIgnoreCase( "content-type") == 0 ) {
-					String value = (String)params.get( key );
+					String value = e.getValue();
 					int i = value.indexOf( ";" );
 					if( i != -1 )
 						result = value.substring( 0, i );
diff --git a/core/java/src/com/nettgryppa/security/HashCash.java b/core/java/src/com/nettgryppa/security/HashCash.java
index be8d92a471..3f3a85f7a5 100644
--- a/core/java/src/com/nettgryppa/security/HashCash.java
+++ b/core/java/src/com/nettgryppa/security/HashCash.java
@@ -338,7 +338,7 @@ private static long bytesToLong(byte[] b) {
     boolean first = true;
     
     for(Map.Entry<String, List<String>> entry: extensions.entrySet()) {
-        String key = entry.getKey();
+      String key = entry.getKey();
       if(key.contains(":") || key.contains(";") || key.contains("="))
           throw new IllegalArgumentException("Extension key contains an illegal character. " + key);
       if(!first)
diff --git a/core/java/src/net/i2p/client/I2PSessionImpl2.java b/core/java/src/net/i2p/client/I2PSessionImpl2.java
index 487d53e279..27e787e435 100644
--- a/core/java/src/net/i2p/client/I2PSessionImpl2.java
+++ b/core/java/src/net/i2p/client/I2PSessionImpl2.java
@@ -523,10 +523,8 @@ class I2PSessionImpl2 extends I2PSessionImpl {
         if (_sendingStates == null)    // only null if overridden by I2PSimpleSession
             return;
         synchronized (_sendingStates) {
-            for (Iterator<MessageState> iter = _sendingStates.iterator(); iter.hasNext();) {
-                MessageState state = iter.next();
+            for (MessageState state : _sendingStates)
                 state.cancel();
-            }
             if (_log.shouldLog(Log.INFO)) _log.info(getPrefix() + "Disconnecting " + _sendingStates.size() + " states");
             _sendingStates.clear();
         }
diff --git a/core/java/src/net/i2p/client/MessageState.java b/core/java/src/net/i2p/client/MessageState.java
index 7425ed56dd..4d56f64859 100644
--- a/core/java/src/net/i2p/client/MessageState.java
+++ b/core/java/src/net/i2p/client/MessageState.java
@@ -1,7 +1,6 @@
 package net.i2p.client;
 
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicLong;
 
@@ -150,8 +149,7 @@ class MessageState {
 
         if (_log.shouldLog(Log.DEBUG)) 
             _log.debug(_prefix + "isSuccess(" + wantedStatus + "): " + _receivedStatus);
-        for (Iterator<Integer> iter = _receivedStatus.iterator(); iter.hasNext();) {
-            Integer val = iter.next();
+        for (Integer val : _receivedStatus) {
             int recv = val.intValue();
             switch (recv) {
                 case MessageStatusMessage.STATUS_SEND_BEST_EFFORT_FAILURE:
@@ -210,8 +208,7 @@ class MessageState {
         if (_log.shouldLog(Log.DEBUG)) 
             _log.debug(_prefix + "isFailure(" + wantedStatus + "): " + _receivedStatus);
         
-        for (Iterator<Integer> iter = _receivedStatus.iterator(); iter.hasNext();) {
-            Integer val = iter.next();
+        for (Integer val : _receivedStatus) {
             int recv = val.intValue();
             switch (recv) {
                 case MessageStatusMessage.STATUS_SEND_BEST_EFFORT_FAILURE:
diff --git a/core/java/src/net/i2p/crypto/ElGamalAESEngine.java b/core/java/src/net/i2p/crypto/ElGamalAESEngine.java
index 849fd16006..126a06a36f 100644
--- a/core/java/src/net/i2p/crypto/ElGamalAESEngine.java
+++ b/core/java/src/net/i2p/crypto/ElGamalAESEngine.java
@@ -12,7 +12,6 @@ package net.i2p.crypto;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 
@@ -656,8 +655,7 @@ public class ElGamalAESEngine {
         int cur = prefixBytes;
         DataHelper.toLong(aesData, cur, 2, tagsForDelivery.size());
         cur += 2;
-        for (Iterator<SessionTag> iter = tagsForDelivery.iterator(); iter.hasNext();) {
-            SessionTag tag = iter.next();
+        for (SessionTag tag : tagsForDelivery) {
             System.arraycopy(tag.getData(), 0, aesData, cur, SessionTag.BYTE_LENGTH);
             cur += SessionTag.BYTE_LENGTH;
         }
diff --git a/core/java/src/net/i2p/crypto/KeyStoreUtil.java b/core/java/src/net/i2p/crypto/KeyStoreUtil.java
index 81179ae8f4..654a058683 100644
--- a/core/java/src/net/i2p/crypto/KeyStoreUtil.java
+++ b/core/java/src/net/i2p/crypto/KeyStoreUtil.java
@@ -266,7 +266,7 @@ public class KeyStoreUtil {
      *  @param keyPW the key password, must be at least 6 characters
      *
      *  @return success
-     *  @since 0.8.3, consolidated from RouterConsoleRUnner and SSLClientListenerRunner in 0.9.9
+     *  @since 0.8.3, consolidated from RouterConsoleRunner and SSLClientListenerRunner in 0.9.9
      */
     public static boolean createKeys(File ks, String alias, String cname, String ou,
                                      String keyPW) {
@@ -290,7 +290,7 @@ public class KeyStoreUtil {
      *  @param keyPW the key password, must be at least 6 characters
      *
      *  @return success
-     *  @since 0.8.3, consolidated from RouterConsoleRUnner and SSLClientListenerRunner in 0.9.9
+     *  @since 0.8.3, consolidated from RouterConsoleRunner and SSLClientListenerRunner in 0.9.9
      */
     public static boolean createKeys(File ks, String ksPW, String alias, String cname, String ou,
                                      int validDays, String keyAlg, int keySize, String keyPW) {
diff --git a/core/java/src/net/i2p/data/LeaseSet.java b/core/java/src/net/i2p/data/LeaseSet.java
index 45c6978aed..75b24220d4 100644
--- a/core/java/src/net/i2p/data/LeaseSet.java
+++ b/core/java/src/net/i2p/data/LeaseSet.java
@@ -15,7 +15,6 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 
 import net.i2p.I2PAppContext;
@@ -290,10 +289,8 @@ public class LeaseSet extends DatabaseEntry {
             _signingKey.writeBytes(out);
             DataHelper.writeLong(out, 1, _leases.size());
             //DataHelper.writeLong(out, 4, _version);
-            for (Iterator<Lease> iter = _leases.iterator(); iter.hasNext();) {
-                Lease lease = iter.next();
+            for (Lease lease : _leases)
                 lease.writeBytes(out);
-            }
         } catch (IOException ioe) {
             return null;
         } catch (DataFormatException dfe) {
@@ -339,10 +336,8 @@ public class LeaseSet extends DatabaseEntry {
         _signingKey.writeBytes(out);
         DataHelper.writeLong(out, 1, _leases.size());
         //DataHelper.writeLong(out, 4, _version);
-        for (Iterator<Lease> iter = _leases.iterator(); iter.hasNext();) {
-            Lease lease = iter.next();
+        for (Lease lease : _leases)
             lease.writeBytes(out);
-        }
         _signature.writeBytes(out);
     }
     
diff --git a/core/java/src/net/i2p/util/I2PAppThread.java b/core/java/src/net/i2p/util/I2PAppThread.java
index bf117ab83d..da291d2104 100644
--- a/core/java/src/net/i2p/util/I2PAppThread.java
+++ b/core/java/src/net/i2p/util/I2PAppThread.java
@@ -10,7 +10,6 @@ package net.i2p.util;
  */
 
 
-import java.util.Iterator;
 import java.util.Set;
 import java.util.concurrent.CopyOnWriteArraySet;
 
@@ -45,10 +44,8 @@ public class I2PAppThread extends I2PThread {
     
     @Override
     protected void fireOOM(OutOfMemoryError oom) {
-        for (Iterator<OOMEventListener> iter = _threadListeners.iterator(); iter.hasNext(); ) {
-            OOMEventListener listener = iter.next();
+        for (OOMEventListener listener : _threadListeners)
             listener.outOfMemory(oom);
-        }
     }
 
     /** register a new component that wants notification of OOM events */
diff --git a/core/java/src/net/i2p/util/I2PThread.java b/core/java/src/net/i2p/util/I2PThread.java
index 47ce953c67..17cfa12127 100644
--- a/core/java/src/net/i2p/util/I2PThread.java
+++ b/core/java/src/net/i2p/util/I2PThread.java
@@ -10,7 +10,6 @@ package net.i2p.util;
  */
 
 
-import java.util.Iterator;
 import java.util.Set;
 import java.util.concurrent.CopyOnWriteArraySet;
 
@@ -112,10 +111,8 @@ public class I2PThread extends Thread {
 ****/
     
     protected void fireOOM(OutOfMemoryError oom) {
-        for (Iterator<OOMEventListener> iter = _listeners.iterator(); iter.hasNext(); ) {
-            OOMEventListener listener = iter.next();
+        for (OOMEventListener listener : _listeners)
             listener.outOfMemory(oom);
-        }
     }
 
     /** register a new component that wants notification of OOM events */
diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java
index b76ab68631..2f2ab6ae7f 100644
--- a/router/java/src/net/i2p/router/RouterVersion.java
+++ b/router/java/src/net/i2p/router/RouterVersion.java
@@ -18,7 +18,7 @@ public class RouterVersion {
     /** deprecated */
     public final static String ID = "Monotone";
     public final static String VERSION = CoreVersion.VERSION;
-    public final static long BUILD = 34;
+    public final static long BUILD = 35;
 
     /** for example "-test" */
     public final static String EXTRA = "-rc";
diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/ExploreKeySelectorJob.java b/router/java/src/net/i2p/router/networkdb/kademlia/ExploreKeySelectorJob.java
index cb4f111f60..2c8af25038 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/ExploreKeySelectorJob.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/ExploreKeySelectorJob.java
@@ -9,7 +9,6 @@ package net.i2p.router.networkdb.kademlia;
  */
 
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.Set;
 
 import net.i2p.data.Hash;
@@ -62,8 +61,7 @@ class ExploreKeySelectorJob extends JobImpl {
             KBucket bucket = _facade.getKBuckets().getBucket(i);
             if (bucket.getKeyCount() < KBucketSet.BUCKET_SIZE) {
                 boolean already = false;
-                for (Iterator<Hash> iter = alreadyQueued.iterator(); iter.hasNext(); ) {
-                    Hash key = iter.next();
+                for (Hash key : alreadyQueued) {
                     if (bucket.shouldContain(key)) {
                         already = true;
                         _log.debug("Bucket " + i + " is already queued for exploration \t" + key);
diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/HarvesterJob.java b/router/java/src/net/i2p/router/networkdb/kademlia/HarvesterJob.java
index fb2c1546bd..a69a2bc906 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/HarvesterJob.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/HarvesterJob.java
@@ -1,7 +1,6 @@
 package net.i2p.router.networkdb.kademlia;
 
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -58,10 +57,8 @@ class HarvesterJob extends JobImpl {
     public void runJob() {
         if (shouldHarvest()) {
             List<Hash> peers = selectPeersToUpdate();
-            for (int i = 0; i < peers.size(); i++) {
-                Hash peer= peers.get(i);
+            for (Hash peer : peers)
                 harvest(peer);
-            }
         }
         requeue(REQUEUE_DELAY);
     }
@@ -79,8 +76,7 @@ class HarvesterJob extends JobImpl {
         Map<Long, Hash> routersByAge = new TreeMap<Long, Hash>();
         Set<Hash> peers = _facade.getAllRouters();
         long now = getContext().clock().now();
-        for (Iterator<Hash> iter = peers.iterator(); iter.hasNext(); ) {
-            Hash peer = iter.next();
+        for (Hash peer : peers) {
             RouterInfo info = _facade.lookupRouterInfoLocally(peer);
             if (info != null) {
                 long when = info.getPublished();
@@ -96,8 +92,7 @@ class HarvesterJob extends JobImpl {
         // ignoring peers that are new, so lets grab the oldest MAX_PER_RUN
         // entries
         List<Hash> rv = new ArrayList<Hash>(); 
-        for (Iterator<Hash> iter = routersByAge.values().iterator(); iter.hasNext(); ) {
-            Hash peer = iter.next();
+        for (Hash peer : routersByAge.values()) {
             rv.add(peer);
             if (rv.size() >= MAX_PER_RUN)
                 break;
diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/SearchJob.java b/router/java/src/net/i2p/router/networkdb/kademlia/SearchJob.java
index a8c84df33e..136d3e90cb 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/SearchJob.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/SearchJob.java
@@ -10,7 +10,6 @@ package net.i2p.router.networkdb.kademlia;
 
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 
@@ -290,8 +289,7 @@ class SearchJob extends JobImpl {
                 return;
             } else {
                 attempted.addAll(closestHashes);
-                for (Iterator<Hash> iter = closestHashes.iterator(); iter.hasNext(); ) {
-                    Hash peer = iter.next();
+                for (Hash peer : closestHashes) {
                     DatabaseEntry ds = _facade.getDataStore().get(peer);
                     if (ds == null) {
                         if (_log.shouldLog(Log.INFO))
@@ -630,8 +628,7 @@ class SearchJob extends JobImpl {
             Set<Hash> sendTo = _state.getRepliedPeers(); // _state.getFailed();
             sendTo.addAll(_state.getPending());
             int numSent = 0;
-            for (Iterator<Hash> iter = sendTo.iterator(); iter.hasNext(); ) {
-                Hash peer = iter.next();
+            for (Hash peer : sendTo) {
                 RouterInfo peerInfo = _facade.lookupRouterInfoLocally(peer);
                 if (peerInfo == null) continue;
                 if (resend(peerInfo, (LeaseSet)ds))
diff --git a/router/java/src/net/i2p/router/peermanager/PeerTestJob.java b/router/java/src/net/i2p/router/peermanager/PeerTestJob.java
index d9a00d40a0..a2096edcfb 100644
--- a/router/java/src/net/i2p/router/peermanager/PeerTestJob.java
+++ b/router/java/src/net/i2p/router/peermanager/PeerTestJob.java
@@ -1,7 +1,6 @@
 package net.i2p.router.peermanager;
 
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 
@@ -73,8 +72,7 @@ public class PeerTestJob extends JobImpl {
         if (_log.shouldLog(Log.DEBUG))
             _log.debug("Testing " + peers.size() + " peers");
         
-        for (Iterator<RouterInfo> iter = peers.iterator(); iter.hasNext(); ) {
-            RouterInfo peer = iter.next();
+        for (RouterInfo peer : peers) {
             if (_log.shouldLog(Log.DEBUG))
                 _log.debug("Testing peer " + peer.getIdentity().getHash().toBase64());
             testPeer(peer);
@@ -98,8 +96,7 @@ public class PeerTestJob extends JobImpl {
             _log.debug("Peer selection found " + peerHashes.size() + " peers");
         
         Set<RouterInfo> peers = new HashSet<RouterInfo>(peerHashes.size());
-        for (Iterator<Hash> iter = peerHashes.iterator(); iter.hasNext(); ) {
-            Hash peer = iter.next();
+        for (Hash peer : peerHashes) {
             RouterInfo peerInfo = getContext().netDb().lookupRouterInfoLocally(peer);
             if (peerInfo != null) {
                 peers.add(peerInfo);
-- 
GitLab