From 4f9c442d556619fe5344a7b592e60068fc952447 Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Sun, 24 Oct 2010 16:56:43 +0000
Subject: [PATCH] fix disconnect race NPE

---
 apps/i2psnark/java/src/org/klomp/snark/I2PSnarkUtil.java | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/apps/i2psnark/java/src/org/klomp/snark/I2PSnarkUtil.java b/apps/i2psnark/java/src/org/klomp/snark/I2PSnarkUtil.java
index 195659c50f..3c1cad5356 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/I2PSnarkUtil.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/I2PSnarkUtil.java
@@ -190,6 +190,7 @@ public class I2PSnarkUtil {
      */
     public void disconnect() {
         I2PSocketManager mgr = _manager;
+        // FIXME this can cause race NPEs elsewhere
         _manager = null;
         _shitlist.clear();
         mgr.destroySocketManager();
@@ -201,6 +202,9 @@ public class I2PSnarkUtil {
     
     /** connect to the given destination */
     I2PSocket connect(PeerID peer) throws IOException {
+        I2PSocketManager mgr = _manager;
+        if (mgr == null)
+            throw new IOException("No socket manager");
         Destination addr = peer.getAddress();
         if (addr == null)
             throw new IOException("Null address");
-- 
GitLab