From 0a8f79f0e34485df1997e6f40c00ef20d4385bff Mon Sep 17 00:00:00 2001
From: dg2-new <dg2-new@mail.i2p>
Date: Sun, 10 Nov 2013 19:04:57 +0000
Subject: [PATCH] Findbugs: A stab at squashing some issues across the board.
 Probably more to follow.

---
 .../java/src/net/i2p/i2ptunnel/irc/IRCFilter.java        | 2 +-
 .../java/src/net/i2p/i2ptunnel/socks/SOCKS4aServer.java  | 7 ++++---
 .../java/src/net/i2p/i2ptunnel/socks/SOCKS5Server.java   | 8 +++++---
 .../java/src/net/i2p/client/streaming/PcapWriter.java    | 5 +----
 core/java/src/net/i2p/util/Log.java                      | 9 +++++----
 router/java/src/net/i2p/router/Blocklist.java            | 3 ++-
 .../router/networkdb/kademlia/FloodfillMonitorJob.java   | 4 ++--
 router/java/src/net/i2p/router/transport/UPnP.java       | 4 ++--
 8 files changed, 22 insertions(+), 20 deletions(-)

diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/irc/IRCFilter.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/irc/IRCFilter.java
index ee9305128e..58f00b9759 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/irc/IRCFilter.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/irc/IRCFilter.java
@@ -71,7 +71,7 @@ abstract class IRCFilter {
 
         // Allow numerical responses
         try {
-            new Integer(command);
+            Integer.valueOf(command);
             return s;
         } catch(NumberFormatException nfe){}
 
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/socks/SOCKS4aServer.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/socks/SOCKS4aServer.java
index 546e7129de..d56b4ceed4 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/socks/SOCKS4aServer.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/socks/SOCKS4aServer.java
@@ -104,19 +104,20 @@ public class SOCKS4aServer extends SOCKSServer {
             throw new SOCKSException("Invalid port number in request");
         }
 
-        connHostName = new String("");
+        StringBuilder builder = new StringBuilder();
         boolean alreadyWarned = false;
         for (int i = 0; i < 4; ++i) {
             int octet = in.readByte() & 0xff;
-            connHostName += Integer.toString(octet);
+            builder.append(Integer.toString(octet));
             if (i != 3) {
-                connHostName += ".";
+                builder.append(".");
                 if (octet != 0 && !alreadyWarned) {
                     _log.warn("IPV4 address type in request: " + connHostName + ". Is your client secure?");
                     alreadyWarned = true;
                 }
             }
         }
+        connHostName = builder.toString();
 
         // Check if the requested IP should be mapped to a domain name
         String mappedDomainName = getMappedDomainNameForIP(connHostName);
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/socks/SOCKS5Server.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/socks/SOCKS5Server.java
index f55a80aa7a..edbaa88593 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/socks/SOCKS5Server.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/socks/SOCKS5Server.java
@@ -198,14 +198,16 @@ public class SOCKS5Server extends SOCKSServer {
         addressType = in.readUnsignedByte();
         switch (addressType) {
         case AddressType.IPV4:
-            connHostName = new String("");
+            //connHostName = new String();
+            StringBuilder builder = new StringBuilder();
             for (int i = 0; i < 4; ++i) {
                 int octet = in.readUnsignedByte();
-                connHostName += Integer.toString(octet);
+                builder.append(Integer.toString(octet));
                 if (i != 3) {
-                    connHostName += ".";
+                    builder.append(".");
                 }
             }
+            connHostName = builder.toString();
             // Check if the requested IP should be mapped to a domain name
             String mappedDomainName = getMappedDomainNameForIP(connHostName);
             if (mappedDomainName != null) {
diff --git a/apps/streaming/java/src/net/i2p/client/streaming/PcapWriter.java b/apps/streaming/java/src/net/i2p/client/streaming/PcapWriter.java
index 930ced57c8..00448f45d9 100644
--- a/apps/streaming/java/src/net/i2p/client/streaming/PcapWriter.java
+++ b/apps/streaming/java/src/net/i2p/client/streaming/PcapWriter.java
@@ -238,10 +238,7 @@ public class PcapWriter {
             seq = pkt.getSequenceNum();
         long acked = 0;
         if (con != null) {
-            if (isInbound)
-                acked = getLowestAckedThrough(pkt, con);
-            else
-                acked = getLowestAckedThrough(pkt, con);
+            acked = getLowestAckedThrough(pkt, con);
         }
         DataHelper.writeLong(_fos, 4, pkt.getSequenceNum());
         DataHelper.writeLong(_fos, 4, acked);
diff --git a/core/java/src/net/i2p/util/Log.java b/core/java/src/net/i2p/util/Log.java
index 75c56e79ca..42f54b06aa 100644
--- a/core/java/src/net/i2p/util/Log.java
+++ b/core/java/src/net/i2p/util/Log.java
@@ -209,14 +209,15 @@ public class Log {
             return;
         
         // catenate all toString()s
-        String descString = "close() loop in";
+        StringBuilder builder = new StringBuilder();
+        builder.append("close() loop in");
         for (Object o : desc) {
-            descString += " ";
-            descString += String.valueOf(o);
+            builder.append(" ");
+            builder.append(String.valueOf(o));
         }
         
         Exception e = new Exception("check stack trace");
-        log(level,descString,e);
+        log(level,builder.toString(),e);
     }
 
     public String getName() {
diff --git a/router/java/src/net/i2p/router/Blocklist.java b/router/java/src/net/i2p/router/Blocklist.java
index 3a28bd85a6..7385d87384 100644
--- a/router/java/src/net/i2p/router/Blocklist.java
+++ b/router/java/src/net/i2p/router/Blocklist.java
@@ -526,7 +526,8 @@ public class Blocklist {
             if (pib == null) continue;
             // O(n**2)
             for (int i = 0; i < rv.size(); i++) {
-                if (DataHelper.eq(rv.get(i), pib)) continue;
+                // findbugs triggered on this, looks like unfinished work
+                //if (DataHelper.eq(rv.get(i), pib)) continue;
             }
             rv.add(pib);
          }
diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillMonitorJob.java b/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillMonitorJob.java
index 19ab5c89c3..282c11eae6 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillMonitorJob.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillMonitorJob.java
@@ -146,7 +146,7 @@ class FloodfillMonitorJob extends JobImpl {
             final RouterContext rc = getContext();
             final String log = String.format(
                     "FF criteria breakdown: happy=%b, capabilities=%s, maxLag=%d, known=%d, " +
-                    "active=%d, participating=%d, offset=%d, ssuAddr=%b",
+                    "active=%d, participating=%d, offset=%d, ssuAddr=%s",
                     happy, 
                     rc.router().getRouterInfo().getCapabilities(),
                     rc.jobQueue().getMaxLag(),
@@ -154,7 +154,7 @@ class FloodfillMonitorJob extends JobImpl {
                     rc.commSystem().countActivePeers(),
                     rc.tunnelManager().getParticipatingCount(),
                     Math.abs(rc.clock().getOffset()),
-                    rc.router().getRouterInfo().getTargetAddress("SSU")
+                    rc.router().getRouterInfo().getTargetAddress("SSU").toString()
                     );
             _log.debug(log);
         }
diff --git a/router/java/src/net/i2p/router/transport/UPnP.java b/router/java/src/net/i2p/router/transport/UPnP.java
index 99b30d346d..32678f750d 100644
--- a/router/java/src/net/i2p/router/transport/UPnP.java
+++ b/router/java/src/net/i2p/router/transport/UPnP.java
@@ -415,7 +415,7 @@ class UPnP extends ControlPoint implements DeviceChangeListener, EventListener {
 		if(getIP == null || !getIP.postControlAction())
 			return -1;
 
-		return Integer.valueOf(getIP.getOutputArgumentList().getArgument("NewUpstreamMaxBitRate").getValue());
+		return Integer.parseInt(getIP.getOutputArgumentList().getArgument("NewUpstreamMaxBitRate").getValue());
 	}
 	
 	/**
@@ -429,7 +429,7 @@ class UPnP extends ControlPoint implements DeviceChangeListener, EventListener {
 		if(getIP == null || !getIP.postControlAction())
 			return -1;
 
-		return Integer.valueOf(getIP.getOutputArgumentList().getArgument("NewDownstreamMaxBitRate").getValue());
+		return Integer.parseInt(getIP.getOutputArgumentList().getArgument("NewDownstreamMaxBitRate").getValue());
 	}
 	
 	/** debug only */
-- 
GitLab