From 304f2ebb7ba730031d07c5ec8937a0a966e4add1 Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Tue, 28 Oct 2014 13:16:20 +0000
Subject: [PATCH] dont OOM when thread dies

---
 .../src/net/i2p/router/transport/udp/ACKSender.java   | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/router/java/src/net/i2p/router/transport/udp/ACKSender.java b/router/java/src/net/i2p/router/transport/udp/ACKSender.java
index b7cb7d6cbe..f2ca91fc85 100644
--- a/router/java/src/net/i2p/router/transport/udp/ACKSender.java
+++ b/router/java/src/net/i2p/router/transport/udp/ACKSender.java
@@ -84,7 +84,18 @@ class ACKSender implements Runnable {
     }
     
     public void run() {
+        try {
+            run2();
+        } finally {
+            // prevent OOM on thread death
+            if (_alive) {
+                _alive = false;
+                _log.error("ACK Sender died");
+            }
+        }
+    }
 
+    private void run2() {
         // we use a Set to strip out dups that come in on the Queue
         Set<PeerState> notYet = new HashSet<PeerState>();
         while (_alive) {
-- 
GitLab