diff --git a/apps/i2psnark/java/src/org/klomp/snark/MetaInfo.java b/apps/i2psnark/java/src/org/klomp/snark/MetaInfo.java
index 6e1047ae50a7d29879dc3aa5ed01c224f3da3227..3deeafc97a65752aadd94bbbd210a9be5b1bde60 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/MetaInfo.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/MetaInfo.java
@@ -517,7 +517,6 @@ public class MetaInfo
    *  @since 0.9.1
    */
   boolean checkPiece(PartialPiece pp) {
-    MessageDigest sha1 = SHA1.getInstance();
     int piece = pp.getPiece();
     byte[] hash;
     try {
diff --git a/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java b/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java
index 6517b4cd5d9751065517292c40d7505003d466a0..51d439eb5ad16d6801afbd27de543075de939fce 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java
@@ -754,7 +754,7 @@ public class SnarkManager implements CompleteListener {
      *  @since 0.9.1
      */
     public void saveOpenTrackers(List<String> ot) {
-        String val = setListConfig(PROP_OPENTRACKERS, ot);
+        setListConfig(PROP_OPENTRACKERS, ot);
         if (ot == null)
             ot = Collections.singletonList(I2PSnarkUtil.DEFAULT_OPENTRACKERS);
         _util.setOpenTrackers(ot);
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 4f86caa4ab83782e9ca73ef59dd716b059284607..222935c0a4848b32f4ffcc4fa17b439c1567d95c 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java
@@ -2548,7 +2548,7 @@ public class I2PSnarkServlet extends BasicServlet {
             if (showPriority) {
                 buf.append("<td class=\"priority\">");
                 File f = item;
-                if ((!complete) && (!item.isDirectory()) && f != null) {
+                if ((!complete) && (!item.isDirectory())) {
                     int pri = snark.getStorage().getPriority(f.getCanonicalPath());
                     buf.append("<input type=\"radio\" value=\"5\" name=\"pri.").append(f.getCanonicalPath()).append("\" ");
                     if (pri > 0)
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java
index 7cdf3e6e2a50075149648dbebe8adf9b46d0b603..99ff7af5947746d0439519ce40234eb05f26e38a 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java
@@ -273,8 +273,6 @@ public class IndexBean {
         TunnelController cur = getController(_tunnel);
         
         Properties config = getConfig();
-        if (config == null)
-            return "Invalid params";
         
         if (cur == null) {
             // creating new
@@ -970,8 +968,6 @@ public class IndexBean {
 
         TunnelController tun = getController(_tunnel);
         Properties config = getConfig();
-        if (config == null)
-            return "Invalid params";
         if (tun == null) {
             // creating new
             tun = new TunnelController(config, "", true);
@@ -1038,8 +1034,6 @@ public class IndexBean {
     private String generateNewEncryptionKey() {
         TunnelController tun = getController(_tunnel);
         Properties config = getConfig();
-        if (config == null)
-            return "Invalid params";
         if (tun == null) {
             // creating new
             tun = new TunnelController(config, "", true);
diff --git a/apps/streaming/java/src/net/i2p/client/streaming/ConnectionDataReceiver.java b/apps/streaming/java/src/net/i2p/client/streaming/ConnectionDataReceiver.java
index 71ccbfe93b59b5e3415a375aab6eca086683a74a..4929024acbb2a2444834d86bd674386fc93eff4c 100644
--- a/apps/streaming/java/src/net/i2p/client/streaming/ConnectionDataReceiver.java
+++ b/apps/streaming/java/src/net/i2p/client/streaming/ConnectionDataReceiver.java
@@ -93,7 +93,8 @@ class ConnectionDataReceiver implements MessageOutputStream.DataReceiver {
 
         if (doSend) {
             PacketLocal packet = send(buf, off, size);
-            if (packet == null) return _dummyStatus;
+            // this shouldn't be null
+            //if (packet == null) return _dummyStatus;
             
             //dont wait for non-acks
             if ( (packet.getSequenceNum() > 0) || (packet.isFlagSet(Packet.FLAG_SYNCHRONIZE)) )
diff --git a/core/java/src/net/i2p/crypto/DSAEngine.java b/core/java/src/net/i2p/crypto/DSAEngine.java
index 5b78da021d5aab2b675598820813ce48514bbe04..1a5638ce9ef8368117f9ebf7726397a4e22a688a 100644
--- a/core/java/src/net/i2p/crypto/DSAEngine.java
+++ b/core/java/src/net/i2p/crypto/DSAEngine.java
@@ -598,7 +598,6 @@ public class DSAEngine {
     private Signature altSignRaw(SimpleDataStructure hash, SigningPrivateKey privateKey) throws GeneralSecurityException {
         SigType type = privateKey.getType();
         String algo = getRawAlgo(type);
-        java.security.Signature jsig = java.security.Signature.getInstance(algo);
         PrivateKey privKey = SigUtil.toJavaKey(privateKey);
         return altSignRaw(algo, hash, privKey, type);
     }
diff --git a/core/java/src/net/i2p/crypto/SigUtil.java b/core/java/src/net/i2p/crypto/SigUtil.java
index bae5b0ef39b2889e6ea5964348b2603aafb491eb..1d9fe7c17d0b39268a75bdf9c656434177fe079f 100644
--- a/core/java/src/net/i2p/crypto/SigUtil.java
+++ b/core/java/src/net/i2p/crypto/SigUtil.java
@@ -175,7 +175,6 @@ class SigUtil {
                               throws GeneralSecurityException {
         SigType type = pk.getType();
         int len = type.getPubkeyLen();
-        int sublen = len / 2;
         byte[] b = pk.getData();
         BigInteger s = new NativeBigInteger(1, b);
         // see ECConstants re: casting
diff --git a/core/java/src/net/i2p/util/Clock.java b/core/java/src/net/i2p/util/Clock.java
index c8587f48eb4ffe3259e021e89216bf71b42495ff..5cba4684e8f3ba226e4817f30c59e2112e8a48b4 100644
--- a/core/java/src/net/i2p/util/Clock.java
+++ b/core/java/src/net/i2p/util/Clock.java
@@ -113,7 +113,7 @@ public class Clock implements Timestamper.UpdateListener {
     /*
      * @return the current delta from System.currentTimeMillis() in milliseconds
      */
-    public long getOffset() {
+    public synchronized long getOffset() {
         return _offset;
     }
     
diff --git a/core/java/src/net/i2p/util/SimpleTimer.java b/core/java/src/net/i2p/util/SimpleTimer.java
index c3ef807aded966d212292aed53580c0df755d178..48de1ebbf284f7ac6a9c8bea80b790462c829e7e 100644
--- a/core/java/src/net/i2p/util/SimpleTimer.java
+++ b/core/java/src/net/i2p/util/SimpleTimer.java
@@ -149,7 +149,7 @@ public class SimpleTimer {
             }
             // FIXME if you plan to use this class again
             while (_events.containsKey(time))
-                time = new Long(time.longValue() + 1);
+                time = Long.valueOf(time.longValue() + 1);
             _events.put(time, event);
             _eventTimes.put(event, time);
             
diff --git a/router/java/src/net/i2p/router/MessageHistory.java b/router/java/src/net/i2p/router/MessageHistory.java
index 66e13952f784dd1e32954f8a62fb293de7367ed6..1eec0fa30f10a38e3efc6886be374bf359f5bed2 100644
--- a/router/java/src/net/i2p/router/MessageHistory.java
+++ b/router/java/src/net/i2p/router/MessageHistory.java
@@ -374,8 +374,7 @@ public class MessageHistory {
         buf.append(getPrefix());
         buf.append("timed out waiting for a reply to [").append(sentMessage.getMessageType());
         buf.append("] [").append(sentMessage.getMessageId()).append("] expiring on [");
-        if (sentMessage != null)
-            buf.append(getTime(sentMessage.getReplySelector().getExpiration()));
+        buf.append(getTime(sentMessage.getReplySelector().getExpiration()));
         buf.append("] ").append(sentMessage.getReplySelector().toString());
         addEntry(buf.toString());
     }
diff --git a/router/java/src/net/i2p/router/StatisticsManager.java b/router/java/src/net/i2p/router/StatisticsManager.java
index 3be2231f82e0425cd6e5fa6a04d7158735b02c35..6af874f1474a21d4c7f5530af974fdc2eea0d899 100644
--- a/router/java/src/net/i2p/router/StatisticsManager.java
+++ b/router/java/src/net/i2p/router/StatisticsManager.java
@@ -86,7 +86,7 @@ public class StatisticsManager implements Service {
         
         if (_context.getBooleanPropertyDefaultTrue(PROP_PUBLISH_RANKINGS) &&
             _context.random().nextInt(RANDOM_INCLUDE_STATS) == 0) {
-            long publishedUptime = _context.router().getUptime();
+            //long publishedUptime = _context.router().getUptime();
             // Don't publish these for first hour
             // Disabled in 0.9
             //if (publishedUptime > 62*60*1000)
diff --git a/router/java/src/net/i2p/router/TunnelPoolSettings.java b/router/java/src/net/i2p/router/TunnelPoolSettings.java
index 3016dadd6ee82856c5b53b6cb9e6c45cb62237f4..a63b4ef056a31789b38d51152721486e7f737590 100644
--- a/router/java/src/net/i2p/router/TunnelPoolSettings.java
+++ b/router/java/src/net/i2p/router/TunnelPoolSettings.java
@@ -283,7 +283,6 @@ public class TunnelPoolSettings {
     }
     
     private static final boolean getBoolean(String str, boolean defaultValue) { 
-        if (str == null) return defaultValue;
         boolean v = Boolean.parseBoolean(str) ||
                     (str != null && "YES".equals(str.toUpperCase(Locale.US)));
         return v;
diff --git a/router/java/src/net/i2p/router/networkdb/HandleDatabaseLookupMessageJob.java b/router/java/src/net/i2p/router/networkdb/HandleDatabaseLookupMessageJob.java
index ed4b32e27a8fb1de570fd5ad54a3fc93fa7afedf..20257bc6e2b38989c608187a51052bc0fb205374 100644
--- a/router/java/src/net/i2p/router/networkdb/HandleDatabaseLookupMessageJob.java
+++ b/router/java/src/net/i2p/router/networkdb/HandleDatabaseLookupMessageJob.java
@@ -223,7 +223,6 @@ public class HandleDatabaseLookupMessageJob extends JobImpl {
     private static boolean isUnreachable(RouterInfo info) {
         if (info == null) return true;
         String cap = info.getCapabilities();
-        if (cap == null) return false;
         return cap.indexOf(Router.CAPABILITY_REACHABLE) >= 0;
     }
     
diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillPeerSelector.java b/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillPeerSelector.java
index 86170d237b7211ba9d140e50e7447c15e3365779..98da4c1187f3695bc968a2b34241d4fc12cf72d0 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillPeerSelector.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillPeerSelector.java
@@ -310,8 +310,6 @@ class FloodfillPeerSelector extends PeerSelector {
         if (pinfo == null)
             return rv;
         Collection<RouterAddress> paddr = pinfo.getAddresses();
-        if (paddr == null)
-            return rv;
         for (RouterAddress pa : paddr) {
             byte[] pib = pa.getIP();
             if (pib == null) continue;
diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java
index 118d40c86695c9524181bc70d122853c66694fd5..1a6b3139c69f589239b258a64151ffe92bf7f562 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java
@@ -926,7 +926,7 @@ public class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacade {
      */
     void dropAfterLookupFailed(Hash peer) {
         _context.peerManager().removeCapabilities(peer);
-        boolean removed = _kb.remove(peer);
+        _kb.remove(peer);
         //if (removed) {
         //    if (_log.shouldLog(Log.INFO))
         //        _log.info("Removed kbucket entry for " + peer);
diff --git a/router/java/src/net/i2p/router/peermanager/ProfileOrganizer.java b/router/java/src/net/i2p/router/peermanager/ProfileOrganizer.java
index 176dd09013be251603c820c3e1d654cd5eabc1c4..7096aa13974f6cc24c66eb3260374351bbf46024 100644
--- a/router/java/src/net/i2p/router/peermanager/ProfileOrganizer.java
+++ b/router/java/src/net/i2p/router/peermanager/ProfileOrganizer.java
@@ -1270,8 +1270,6 @@ public class ProfileOrganizer {
         if (pinfo == null)
             return rv;
         Collection<RouterAddress> paddr = pinfo.getAddresses();
-        if (paddr == null)
-            return rv;
         for (RouterAddress pa : paddr) {
             byte[] pib = pa.getIP();
             if (pib == null) continue;
diff --git a/router/java/src/net/i2p/router/transport/OutboundMessageRegistry.java b/router/java/src/net/i2p/router/transport/OutboundMessageRegistry.java
index 5cf11573d6b2e043cf2f276aa3f8c15028b4a7fd..947127f1e926e60c21b25484bf1927f0d456db67 100644
--- a/router/java/src/net/i2p/router/transport/OutboundMessageRegistry.java
+++ b/router/java/src/net/i2p/router/transport/OutboundMessageRegistry.java
@@ -139,12 +139,10 @@ public class OutboundMessageRegistry {
                     
                     if (o instanceof OutNetMessage) {
                         msg = (OutNetMessage)o;
-                        if (msg != null)
-                            rv.add(msg);
+                        rv.add(msg);
                     } else if (o instanceof List) {
                         msgs = (List<OutNetMessage>)o;
-                        if (msgs != null)
-                            rv.addAll(msgs);
+                        rv.addAll(msgs);
                     }
                 }
                 if (removed) {
diff --git a/router/java/src/net/i2p/router/transport/crypto/DHSessionKeyBuilder.java b/router/java/src/net/i2p/router/transport/crypto/DHSessionKeyBuilder.java
index 72d3097c80ece64cabf3b2e676044b7ac52368a2..592d0f90f831d2ed6ddc14b01c196f3918538111 100644
--- a/router/java/src/net/i2p/router/transport/crypto/DHSessionKeyBuilder.java
+++ b/router/java/src/net/i2p/router/transport/crypto/DHSessionKeyBuilder.java
@@ -229,7 +229,7 @@ public class DHSessionKeyBuilder {
         //_peerValue = new NativeBigInteger(val);
     }
 
-    public BigInteger getPeerPublicValue() {
+    public synchronized BigInteger getPeerPublicValue() {
         return _peerValue;
     }
 
diff --git a/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java b/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java
index 8906166ec7fca8dc7266c096211263e82d073f20..884737b31d5f84525ec68770145de57a65bacb63 100644
--- a/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java
+++ b/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java
@@ -952,8 +952,7 @@ public class NTCPTransport extends TransportImpl {
             }
         } else if (enabled.equals("false") &&
                    name != null && name.length() > 0 &&
-                   !name.equals(ohost) &&
-                   nport != null) {
+                   !name.equals(ohost)) {
             // Host name is configured, and we have a port (either auto or configured)
             // but we probably only get here if the port is auto,
             // otherwise createNTCPAddress() would have done it already
diff --git a/router/java/src/net/i2p/router/transport/udp/EstablishmentManager.java b/router/java/src/net/i2p/router/transport/udp/EstablishmentManager.java
index 95250aa95939889a50191753c67d87c6332c38be..05dd8c60231fa23475f19a6d8dfc73a3787cbefe 100644
--- a/router/java/src/net/i2p/router/transport/udp/EstablishmentManager.java
+++ b/router/java/src/net/i2p/router/transport/udp/EstablishmentManager.java
@@ -1306,7 +1306,7 @@ class EstablishmentManager {
         _outboundByHash.remove(outboundState.getRemoteIdentity().calculateHash(), outboundState);
         // should have already been removed in handleOutbound() above
         // remove only if value == state
-        boolean removed = _outboundStates.remove(outboundState.getRemoteHostId(), outboundState);
+        _outboundStates.remove(outboundState.getRemoteHostId(), outboundState);
         if (outboundState.getState() != OB_STATE_CONFIRMED_COMPLETELY) {
             if (_log.shouldLog(Log.INFO))
                 _log.info("Expired: " + outboundState + " Lifetime: " + outboundState.getLifetime());
diff --git a/router/java/src/net/i2p/router/transport/udp/OutboundMessageFragments.java b/router/java/src/net/i2p/router/transport/udp/OutboundMessageFragments.java
index 96e9a66865847ae54f12e769aebaab41800b8e47..3feaa8e6ab5c3fa665852d52d5d853f378cb2f5d 100644
--- a/router/java/src/net/i2p/router/transport/udp/OutboundMessageFragments.java
+++ b/router/java/src/net/i2p/router/transport/udp/OutboundMessageFragments.java
@@ -150,7 +150,6 @@ class OutboundMessageFragments {
      *
      */
     public void add(OutNetMessage msg) {
-        I2NPMessage msgBody = msg.getMessage();
         RouterInfo target = msg.getTarget();
         if (target == null)
             return;
diff --git a/router/java/src/net/i2p/router/tunnel/OutboundTunnelEndpoint.java b/router/java/src/net/i2p/router/tunnel/OutboundTunnelEndpoint.java
index c5ffe076a1522420f665f4bef31f01617db249b6..0b5a9999f308360a11db7cea1cce4de162cee638 100644
--- a/router/java/src/net/i2p/router/tunnel/OutboundTunnelEndpoint.java
+++ b/router/java/src/net/i2p/router/tunnel/OutboundTunnelEndpoint.java
@@ -58,7 +58,7 @@ class OutboundTunnelEndpoint {
             if (_log.shouldLog(Log.DEBUG))
                 _log.debug("outbound tunnel " + _config + " received a full message: " + msg
                            + " to be forwarded on to "
-                           + (toRouter != null ? toRouter.toBase64().substring(0,4) : "")
+                           + toRouter.toBase64().substring(0,4)
                            + (toTunnel != null ? ":" + toTunnel.getTunnelId() : ""));
             int size = msg.getMessageSize();
             // don't drop it if we are the target
diff --git a/router/java/src/net/i2p/router/tunnel/pool/TunnelPeerSelector.java b/router/java/src/net/i2p/router/tunnel/pool/TunnelPeerSelector.java
index b337a685bf21b7e17fdabab35d84adde75e7441a..84efa82153dcfc137854509b66d0d102624150b1 100644
--- a/router/java/src/net/i2p/router/tunnel/pool/TunnelPeerSelector.java
+++ b/router/java/src/net/i2p/router/tunnel/pool/TunnelPeerSelector.java
@@ -348,9 +348,6 @@ public abstract class TunnelPeerSelector {
 
     private static boolean shouldExclude(RouterContext ctx, Log log, RouterInfo peer, char excl[]) {
         String cap = peer.getCapabilities();
-        if (cap == null) {
-            return true;
-        }
         for (int j = 0; j < excl.length; j++) {
             if (cap.indexOf(excl[j]) >= 0) {
                 return true;