From fefcb6c2cbe9c727ef197e50272a87e43d294320 Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Sun, 26 Dec 2010 23:35:27 +0000
Subject: [PATCH] prevent leak after exception

---
 core/java/src/net/i2p/client/I2PSessionImpl.java | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/core/java/src/net/i2p/client/I2PSessionImpl.java b/core/java/src/net/i2p/client/I2PSessionImpl.java
index e101ff7252..8b4389e47d 100644
--- a/core/java/src/net/i2p/client/I2PSessionImpl.java
+++ b/core/java/src/net/i2p/client/I2PSessionImpl.java
@@ -864,13 +864,16 @@ abstract class I2PSessionImpl implements I2PSession, I2CPMessageReader.I2CPMessa
             return null;
         LookupWaiter waiter = new LookupWaiter(h);
         _pendingLookups.offer(waiter);
-        sendMessage(new DestLookupMessage(h));
         try {
-            synchronized (waiter) {
-                waiter.wait(maxWait);
-            }
-        } catch (InterruptedException ie) {}
-        _pendingLookups.remove(waiter);
+            sendMessage(new DestLookupMessage(h));
+            try {
+                synchronized (waiter) {
+                    waiter.wait(maxWait);
+                }
+            } catch (InterruptedException ie) {}
+        } finally {
+            _pendingLookups.remove(waiter);
+        }
         return waiter.destination;
     }
 
-- 
GitLab