diff --git a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java index ce8e82cd9e..4f86caa4ab 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java +++ b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java @@ -2487,7 +2487,6 @@ public class I2PSnarkServlet extends BasicServlet { Storage storage = snark.getStorage(); try { File f = item; - if (f != null) { long remaining = storage.remaining(f.getCanonicalPath()); if (remaining < 0) { complete = true; @@ -2507,9 +2506,6 @@ public class I2PSnarkServlet extends BasicServlet { (100 * (length - remaining) / length) + "% " + _("complete") + " (" + DataHelper.formatSize2(remaining) + "B " + _("remaining") + ")"; } - } else { - status = "Not a file?"; - } } catch (IOException ioe) { status = "Not a file? " + ioe; } diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelClientBase.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelClientBase.java index 793f19ee62..c6d5904943 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelClientBase.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelClientBase.java @@ -318,8 +318,7 @@ public abstract class I2PTunnelClientBase extends I2PTunnelTask implements Runna if (s.isClosed()) { if (_log.shouldLog(Log.INFO)) _log.info(tunnel.getClientOptions().getProperty("inbound.nickname") + ": Building a new socket manager since the old one closed [s=" + s + "]"); - if (s != null) - tunnel.removeSession(s); + tunnel.removeSession(s); // We could be here a LONG time, holding the lock socketManager = buildSocketManager(tunnel, pkf); } else { diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java index 864f69181d..5e86042faa 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java @@ -128,7 +128,7 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer { int pp = getIntOption(OPT_POST_MAX, 0); int pt = getIntOption(OPT_POST_TOTAL_MAX, 0); synchronized(this) { - if (pp != 0 || pp != 0 || _postThrottler != null) { + if (pp != 0 || pt != 0 || _postThrottler != null) { long pw = 1000L * getIntOption(OPT_POST_WINDOW, DEFAULT_POST_WINDOW); long pb = 1000L * getIntOption(OPT_POST_BAN_TIME, DEFAULT_POST_BAN_TIME); long px = 1000L * getIntOption(OPT_POST_TOTAL_BAN_TIME, DEFAULT_POST_TOTAL_BAN_TIME); diff --git a/apps/routerconsole/java/src/net/i2p/router/web/StatSummarizer.java b/apps/routerconsole/java/src/net/i2p/router/web/StatSummarizer.java index b14c28ac88..9cd83c059c 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/StatSummarizer.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/StatSummarizer.java @@ -3,6 +3,7 @@ package net.i2p.router.web; import java.io.File; import java.io.IOException; import java.io.OutputStream; +import java.util.Collections; import java.util.List; import java.util.HashSet; import java.util.Set; @@ -309,6 +310,8 @@ public class StatSummarizer implements Runnable { * @return list of Rate objects */ Set parseSpecs(String specs) { + if (specs == null) + return Collections.EMPTY_SET; StringTokenizer tok = new StringTokenizer(specs, ","); Set rv = new HashSet(); while (tok.hasMoreTokens()) { diff --git a/apps/streaming/java/src/net/i2p/client/streaming/ConnectionPacketHandler.java b/apps/streaming/java/src/net/i2p/client/streaming/ConnectionPacketHandler.java index 74aa4da5df..353ce6e61f 100644 --- a/apps/streaming/java/src/net/i2p/client/streaming/ConnectionPacketHandler.java +++ b/apps/streaming/java/src/net/i2p/client/streaming/ConnectionPacketHandler.java @@ -202,7 +202,7 @@ class ConnectionPacketHandler { if (_log.shouldLog(Log.WARN)) _log.warn(String.format("%s congestion.. dup packet %s ackDelay %d lastSend %d ago", - con, packet, now, ackDelay, DataHelper.formatDuration(now - lastSendTime))); + con, packet, ackDelay, DataHelper.formatDuration(now - lastSendTime))); final long nextSendTime = lastSendTime + ackDelay; if (nextSendTime <= now) { diff --git a/router/java/src/net/i2p/router/TunnelPoolSettings.java b/router/java/src/net/i2p/router/TunnelPoolSettings.java index 34f345ec74..3016dadd6e 100644 --- a/router/java/src/net/i2p/router/TunnelPoolSettings.java +++ b/router/java/src/net/i2p/router/TunnelPoolSettings.java @@ -197,6 +197,9 @@ public class TunnelPoolSettings { public Properties getUnknownOptions() { return _unknownOptions; } + /** + * @param prefix non-null + */ public void readFromProperties(String prefix, Map props) { for (Map.Entry e : props.entrySet()) { String name = (String) e.getKey(); @@ -225,11 +228,14 @@ public class TunnelPoolSettings { int max = _isExploratory ? EXPLORATORY_PRIORITY : MAX_PRIORITY; _priority = Math.min(max, Math.max(MIN_PRIORITY, getInt(value, def))); } else - _unknownOptions.setProperty(name.substring((prefix != null ? prefix.length() : 0)), value); + _unknownOptions.setProperty(name.substring(prefix.length()), value); } } - } + } + /** + * @param prefix non-null + */ public void writeToProperties(String prefix, Properties props) { if (props == null) return; props.setProperty(prefix + PROP_ALLOW_ZERO_HOP, ""+_allowZeroHop); diff --git a/router/java/src/net/i2p/router/tunnel/pool/BuildExecutor.java b/router/java/src/net/i2p/router/tunnel/pool/BuildExecutor.java index b6d31ec70e..41843ca71b 100644 --- a/router/java/src/net/i2p/router/tunnel/pool/BuildExecutor.java +++ b/router/java/src/net/i2p/router/tunnel/pool/BuildExecutor.java @@ -320,10 +320,12 @@ class BuildExecutor implements Runnable { // we don't have either inbound or outbound tunnels, so don't bother trying to build // non-zero-hop tunnels // try to kickstart it to build a fallback, otherwise we may get stuck here for a long time (minutes) - if (mgr.getFreeTunnelCount() <= 0) - mgr.selectInboundTunnel(); - if (mgr.getOutboundTunnelCount() <= 0) - mgr.selectOutboundTunnel(); + if (mgr != null) { + if (mgr.getFreeTunnelCount() <= 0) + mgr.selectInboundTunnel(); + if (mgr.getOutboundTunnelCount() <= 0) + mgr.selectOutboundTunnel(); + } synchronized (_currentlyBuilding) { if (!_repoll) { if (_log.shouldLog(Log.DEBUG)) diff --git a/router/java/src/net/i2p/router/tunnel/pool/TunnelPool.java b/router/java/src/net/i2p/router/tunnel/pool/TunnelPool.java index 4b16a8ab6d..69a9f6617e 100644 --- a/router/java/src/net/i2p/router/tunnel/pool/TunnelPool.java +++ b/router/java/src/net/i2p/router/tunnel/pool/TunnelPool.java @@ -261,7 +261,7 @@ public class TunnelPool { } } if (rv != null) { - _context.statManager().addRateData("tunnel.matchLease", closestTo.equals(rv) ? 1 : 0); + _context.statManager().addRateData("tunnel.matchLease", closestTo.equals(rv.getFarEnd()) ? 1 : 0); } else { if (_log.shouldLog(Log.WARN)) _log.warn(toString() + ": No tunnels to select from");