diff --git a/core/java/src/net/i2p/data/i2cp/I2CPMessageReader.java b/core/java/src/net/i2p/data/i2cp/I2CPMessageReader.java index d57e4b732..4b93c52d8 100644 --- a/core/java/src/net/i2p/data/i2cp/I2CPMessageReader.java +++ b/core/java/src/net/i2p/data/i2cp/I2CPMessageReader.java @@ -190,10 +190,14 @@ public class I2CPMessageReader { _listener.readError(I2CPMessageReader.this, ime); cancelRunner(); } catch (IOException ioe) { - _log.warn("IO Error handling message", ioe); - _listener.readError(I2CPMessageReader.this, ioe); + if (_stayAlive) { + _log.warn("IO Error handling message", ioe); + _listener.readError(I2CPMessageReader.this, ioe); + } // else triggered by cancelRunner(), ignore SocketException _listener.disconnected(I2CPMessageReader.this); - cancelRunner(); + if (_stayAlive) { + cancelRunner(); + } } catch (OutOfMemoryError oom) { // ooms seen here... maybe log and keep going? throw oom;