diff --git a/router/java/src/net/i2p/router/client/ClientConnectionRunner.java b/router/java/src/net/i2p/router/client/ClientConnectionRunner.java
index bd09aa2494ad51de7ce54a1c56e8eb15131c2b2c..f3abac915656fb05b4a15f63fcb9cb0f4a02244a 100644
--- a/router/java/src/net/i2p/router/client/ClientConnectionRunner.java
+++ b/router/java/src/net/i2p/router/client/ClientConnectionRunner.java
@@ -199,12 +199,15 @@ class ClientConnectionRunner {
         if (_sessionKeyManager != null)
             _sessionKeyManager.shutdown();
         _manager.unregisterConnection(this);
-        for (SessionParams sp : _sessions.values()) {
-            LeaseSet ls = sp.currentLeaseSet;
-            if (ls != null)
-                _context.netDb().unpublish(ls);
-            if (!sp.isPrimary)
-                _context.tunnelManager().removeAlias(sp.dest);
+        // netdb may be null in unit tests
+        if (_context.netDb() != null) {
+            for (SessionParams sp : _sessions.values()) {
+                LeaseSet ls = sp.currentLeaseSet;
+                if (ls != null)
+                    _context.netDb().unpublish(ls);
+                if (!sp.isPrimary)
+                    _context.tunnelManager().removeAlias(sp.dest);
+            }
         }
         synchronized (_alreadyProcessed) {
             _alreadyProcessed.clear();