diff --git a/core/java/src/net/i2p/client/impl/I2PSessionImpl.java b/core/java/src/net/i2p/client/impl/I2PSessionImpl.java
index 07bde4a1a259bd40299ab8656ce4b2a0ee96a19b..b08a3e8b02ccbec2e5c531476b501329d89a8f22 100644
--- a/core/java/src/net/i2p/client/impl/I2PSessionImpl.java
+++ b/core/java/src/net/i2p/client/impl/I2PSessionImpl.java
@@ -11,7 +11,6 @@ package net.i2p.client.impl;
 
 import java.io.BufferedInputStream;
 import java.io.EOFException;
-import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
diff --git a/core/java/src/net/i2p/data/DatabaseEntry.java b/core/java/src/net/i2p/data/DatabaseEntry.java
index 8a6b84e275b22350aeb40a9fc7b73b63604e6cf7..a0b761ebaed2fd02c38a86887738fda2e593e834 100644
--- a/core/java/src/net/i2p/data/DatabaseEntry.java
+++ b/core/java/src/net/i2p/data/DatabaseEntry.java
@@ -74,12 +74,15 @@ public abstract class DatabaseEntry extends DataStructureImpl {
      * The Hash of the local client that received this LS,
      * null if the router or unknown.
      *
-     * @since 0.9.47
+     * @since 0.9.61
      */
     public Hash getReceivedBy() {
         return _receivedBy;
     }
 
+    /**
+     * @since 0.9.61
+     */
     public void setReceivedBy(Hash receivedBy) {
         this._receivedBy = receivedBy;
     }
diff --git a/router/java/src/net/i2p/router/client/ClientConnectionRunner.java b/router/java/src/net/i2p/router/client/ClientConnectionRunner.java
index 8648901931e60cf4ebd4a00f498d7b0463c7691d..9c0cdd078e83bbc4a867b38ba5b75d21a1601c8a 100644
--- a/router/java/src/net/i2p/router/client/ClientConnectionRunner.java
+++ b/router/java/src/net/i2p/router/client/ClientConnectionRunner.java
@@ -448,7 +448,6 @@ class ClientConnectionRunner {
         if (id == null)
             return;
         boolean isPrimary = false;
-        Hash dbid = getDestHash();
         for (Iterator<SessionParams> iter = _sessions.values().iterator(); iter.hasNext(); ) {
             SessionParams sp = iter.next();
             if (id.equals(sp.sessionId)) {
diff --git a/router/java/src/net/i2p/router/client/ClientManager.java b/router/java/src/net/i2p/router/client/ClientManager.java
index 5be5cc43c07dd182dfc6dee6f3c7c0ea0fd8f0fc..d991b7538fdd3d0922849ffecef519ed54bfbd1c 100644
--- a/router/java/src/net/i2p/router/client/ClientManager.java
+++ b/router/java/src/net/i2p/router/client/ClientManager.java
@@ -788,7 +788,7 @@ class ClientManager {
             ClientConnectionRunner runner = getRunner(destHash);
             if (runner == null){
                 if (_log.shouldLog(Log.WARN))
-                _log.warn("ClientManager got a null runner in getClientFloodfillNetworkDatabaseFacade for " + destHash);
+                    _log.warn("ClientManager got a null runner in getClientFloodfillNetworkDatabaseFacade for " + destHash);
                 return null;
             }
             if (_log.shouldLog(Log.DEBUG))
diff --git a/router/java/src/net/i2p/router/client/ClientManagerFacadeImpl.java b/router/java/src/net/i2p/router/client/ClientManagerFacadeImpl.java
index e4e704d4dea72e160653b2b4b1bfcd6500c7ccf5..98135119288c619790f95174f22c4c202a2ab4eb 100644
--- a/router/java/src/net/i2p/router/client/ClientManagerFacadeImpl.java
+++ b/router/java/src/net/i2p/router/client/ClientManagerFacadeImpl.java
@@ -298,6 +298,7 @@ public class ClientManagerFacadeImpl extends ClientManagerFacade implements Inte
      * 
      * @param destHash destination hash associated with the client who's subDb we're looking for
      * @return the netdb or null
+     * @since 0.9.61
      */
     @Override
     public FloodfillNetworkDatabaseFacade getClientFloodfillNetworkDatabaseFacade(Hash destHash) {
@@ -311,6 +312,7 @@ public class ClientManagerFacadeImpl extends ClientManagerFacade implements Inte
      * get all the primary hashes for all the clients and return them as a set
      * 
      * @return all the hashes or an empty set, non-null
+     * @since 0.9.61
      */
     @Override
     public Set<Hash> getPrimaryHashes() {
diff --git a/router/java/src/net/i2p/router/dummy/DummyClientManagerFacade.java b/router/java/src/net/i2p/router/dummy/DummyClientManagerFacade.java
index f93b7f87d25b32e26c6daed2bb8c8263e4804a5f..1e967f1508835c0abc1fad147188b0252a440a5f 100644
--- a/router/java/src/net/i2p/router/dummy/DummyClientManagerFacade.java
+++ b/router/java/src/net/i2p/router/dummy/DummyClientManagerFacade.java
@@ -53,9 +53,17 @@ public class DummyClientManagerFacade extends ClientManagerFacade {
     public SessionKeyManager getClientSessionKeyManager(Hash _dest) { return null; }
     
     public void requestLeaseSet(Hash dest, LeaseSet set) {}
+
+    /**
+     *  @since 0.9.61
+     */
     public FloodfillNetworkDatabaseFacade getClientFloodfillNetworkDatabaseFacade(Hash dbid) {
         return null;
     }
+
+    /**
+     *  @since 0.9.61
+     */
     public Set<Hash> getPrimaryHashes() {
         return Collections.emptySet();
     }
diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/ExpireLeasesJob.java b/router/java/src/net/i2p/router/networkdb/kademlia/ExpireLeasesJob.java
index 1964fc692cc3faa7d31fb1f28655bf0194980061..cea205d8126e74548d4d42f78ef21c94e820134e 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/ExpireLeasesJob.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/ExpireLeasesJob.java
@@ -47,7 +47,8 @@ class ExpireLeasesJob extends JobImpl {
             //_log.info("Lease " + key + " is expiring, so lets look for it again", new Exception("Expire and search"));
             //_facade.lookupLeaseSet(key, null, null, RERUN_DELAY_MS);
         }
-        _log.info("(dbid: " + _facade
+        if (_log.shouldInfo())
+            _log.info("(dbid: " + _facade
                   + "; db size: " + _facade.getKnownLeaseSets()
                   + ") Leases expired: " + toExpire);
         //_facade.queueForExploration(toExpire); // don't do explicit searches, just explore passively
diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillNetworkDatabaseFacade.java b/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillNetworkDatabaseFacade.java
index 98c853478b28f0ca0c3e242dec43fa08ce768fac..1f35e4f653ec599d6f4b9a2ea4da184a8bfb3d70 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillNetworkDatabaseFacade.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillNetworkDatabaseFacade.java
@@ -35,7 +35,6 @@ import net.i2p.util.SystemVersion;
  */
 public class FloodfillNetworkDatabaseFacade extends KademliaNetworkDatabaseFacade {
     public static final char CAPABILITY_FLOODFILL = 'f';
-    private static final String MINIMUM_SUBDB_PEERS = "router.subDbMinimumPeers";
     private final Map<Hash, FloodSearchJob> _activeFloodQueries;
     private boolean _floodfillEnabled;
     private final Set<Hash> _verifiesInProgress;
diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillNetworkDatabaseSegmentor.java b/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillNetworkDatabaseSegmentor.java
index e81d766fd575bb46bd6959433466be14169f64bc..fe44e171261b6f59736d7797f22aad9f4e8060f1 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillNetworkDatabaseSegmentor.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillNetworkDatabaseSegmentor.java
@@ -117,7 +117,7 @@ public class FloodfillNetworkDatabaseSegmentor extends SegmentedNetworkDatabaseF
      * the dbid is null.
      * 
      * @since 0.9.61
-     * @return may be null if the client netDb does not exist
+     * @return non-null, the main netDb if the client netDb does not exist
      */
     @Override
     public NetworkDatabaseFacade clientNetDB(Hash id) {
diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/HandleFloodfillDatabaseStoreMessageJob.java b/router/java/src/net/i2p/router/networkdb/kademlia/HandleFloodfillDatabaseStoreMessageJob.java
index dd2910ab443f28d5bfcecb46b68fcded8a883526..7c245f779436e53a5ffa0c64445204538867e1f6 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/HandleFloodfillDatabaseStoreMessageJob.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/HandleFloodfillDatabaseStoreMessageJob.java
@@ -27,7 +27,6 @@ import net.i2p.data.i2np.I2NPMessage;
 import net.i2p.data.i2np.TunnelGatewayMessage;
 import net.i2p.router.Job;
 import net.i2p.router.JobImpl;
-import net.i2p.router.NetworkDatabaseFacade;
 import net.i2p.router.OutNetMessage;
 import net.i2p.router.Router;
 import net.i2p.router.RouterContext;
diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/IterativeSearchJob.java b/router/java/src/net/i2p/router/networkdb/kademlia/IterativeSearchJob.java
index 8ddd61123e8b08a56d8e550ec86a33a28c9cc774..d0ab7470a80ae7d2bb0122542768d4d73babaf77 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/IterativeSearchJob.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/IterativeSearchJob.java
@@ -14,7 +14,6 @@ import net.i2p.crypto.EncType;
 import net.i2p.crypto.SigType;
 import net.i2p.data.Base64;
 import net.i2p.data.DataHelper;
-import net.i2p.data.Destination;
 import net.i2p.data.Hash;
 import net.i2p.data.i2np.DatabaseLookupMessage;
 import net.i2p.data.i2np.I2NPMessage;
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 0e7918d6e074eb5641c858fc4f78ab9f99af1e49..e93771ed287fe570a90c1d2502ccfdc72b86010f 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java
@@ -8,7 +8,6 @@ package net.i2p.router.networkdb.kademlia;
  *
  */
 
-import java.io.File;
 import java.io.IOException;
 import java.io.Writer;
 import java.util.Collection;
@@ -1160,7 +1159,7 @@ public abstract class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacad
             throw new IllegalArgumentException("Invalid store attempt - " + err);
 
         if (_log.shouldDebug())
-            _log.debug("Storing LS to the persistent data store...");
+            _log.debug("Storing LS to the data store...");
         _ds.put(key, leaseSet);
         
         if (encls != null) {
diff --git a/router/java/src/net/i2p/router/networkdb/reseed/ReseedChecker.java b/router/java/src/net/i2p/router/networkdb/reseed/ReseedChecker.java
index f6e895296c39ad1912f7ba3f8c1b139e8ed1274a..d3680a173075bb31b837662b058bbaab17fdd83d 100644
--- a/router/java/src/net/i2p/router/networkdb/reseed/ReseedChecker.java
+++ b/router/java/src/net/i2p/router/networkdb/reseed/ReseedChecker.java
@@ -43,7 +43,7 @@ public class ReseedChecker {
 
     /**
      *  All reseeding must be done through this instance.
-     *  Access through context.netDbSegmentor().reseedChecker(), others should not instantiate
+     *  Access through context.netDb().reseedChecker(), others should not instantiate
      *
      *  @since 0.9
      */
diff --git a/router/java/src/net/i2p/router/startup/BootNetworkDbJob.java b/router/java/src/net/i2p/router/startup/BootNetworkDbJob.java
index 79133cf171f23dd401035a318884adce8fe133b1..a42c5f4084e6ed4104281f178dbd5dc36a300952 100644
--- a/router/java/src/net/i2p/router/startup/BootNetworkDbJob.java
+++ b/router/java/src/net/i2p/router/startup/BootNetworkDbJob.java
@@ -10,7 +10,6 @@ package net.i2p.router.startup;
 
 import net.i2p.router.JobImpl;
 import net.i2p.router.RouterContext;
-import net.i2p.router.networkdb.kademlia.FloodfillNetworkDatabaseSegmentor;
 
 /** start up the network database */
 class BootNetworkDbJob extends JobImpl {
diff --git a/router/java/src/net/i2p/router/transport/ntcp/InboundEstablishState.java b/router/java/src/net/i2p/router/transport/ntcp/InboundEstablishState.java
index dd6349a62791fc868998c8da9accfeb432b6a592..168fe5be2b04a4b0a1564f855f2daacebcbf8d33 100644
--- a/router/java/src/net/i2p/router/transport/ntcp/InboundEstablishState.java
+++ b/router/java/src/net/i2p/router/transport/ntcp/InboundEstablishState.java
@@ -674,7 +674,7 @@ class InboundEstablishState extends EstablishBase implements NTCP2Payload.Payloa
         }
         _aliceIdent = ri.getIdentity();
         Hash h = _aliceIdent.calculateHash();
-        // this sets the reasonH
+        // this sets the reason
         boolean ok = verifyInbound(h);
         if (!ok)
             throw new DataFormatException("NTCP2 verifyInbound() fail");
diff --git a/router/java/src/net/i2p/router/tunnel/TunnelDispatcher.java b/router/java/src/net/i2p/router/tunnel/TunnelDispatcher.java
index 48ca9e55c19188863bc6f65860ab5b4d1f9eb35a..c1a9095cf63ea2cf660cc7eba6c0aa9ddf41d0a8 100644
--- a/router/java/src/net/i2p/router/tunnel/TunnelDispatcher.java
+++ b/router/java/src/net/i2p/router/tunnel/TunnelDispatcher.java
@@ -226,8 +226,6 @@ public class TunnelDispatcher implements Service {
         ctx.statManager().createRateStat("tunnel.handleLoadClove", "When do we receive load test cloves", "Tunnels", new long[] { 60*60*1000 });
         // following is for PumpedTunnelGateway
         ctx.statManager().createRateStat("tunnel.dropGatewayOverflow", "Dropped message at GW, queue full", "Tunnels", new long[] { 60*60*1000 });
-        ctx.statManager().createRateStat("tunnel.inboundI2NPGarlicRIDSM", "IBMD Storing Garlic RI DSM",
-                                         "Tunnels", new long[] { 10*60*1000, 60*60*1000 });
         ctx.statManager().createRateStat("tunnel.outboundTunnelEndpointFwdRIDSM", "OBTE Forwarding RI DSM",
                                          "Tunnels", new long[] { 10*60*1000, 60*60*1000 });
     }