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 b7cb7d6cbe6034a15451dd7c772e11ce0ad4b798..f2ca91fc85ba1b0558adcdd5ac6a938a7e60642a 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) {