diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelClientBase.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelClientBase.java index a2c408973d..7316715c73 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelClientBase.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelClientBase.java @@ -752,10 +752,17 @@ public abstract class I2PTunnelClientBase extends I2PTunnelTask implements Runna * Blocking runner, used during the connection establishment */ private class BlockingRunner implements Runnable { - private Socket _s; + private final Socket _s; public BlockingRunner(Socket s) { _s = s; } public void run() { - clientConnectionRun(_s); + try { + clientConnectionRun(_s); + } catch (Throwable t) { + // probably an IllegalArgumentException from + // connecting to the router in a delay-open or + // close-on-idle tunnel (in connectManager() above) + _log.error("Uncaught error in i2ptunnel client", t); + } } } diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelServer.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelServer.java index db1f0d07e0..76a52c32b9 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelServer.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelServer.java @@ -570,7 +570,11 @@ public class I2PTunnelServer extends I2PTunnelTask implements Runnable { } public void run() { - blockingHandle(_i2ps); + try { + blockingHandle(_i2ps); + } catch (Throwable t) { + _log.error("Uncaught error in i2ptunnel server", t); + } } } diff --git a/history.txt b/history.txt index ff9792efed..a5d09d49a2 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,20 @@ +2015-04-21 zzz + * i2ptunnel: Log uncaught errors in thread pool + * Reseed: Disable non-su3 reseeding + * Router timestamper: + - Add country-to-continent mapping + - Add continent zones as fallback + - Don't start threads in constructors + * Transports: Reduce idle timeouts + +2015-04-20 zzz + * Blockfile: Unroll recursive initialization + * EepGet: Set soTimeout for non-proxied fetches to enforce + header timeout and prevent long reseed hangs + * Reseed: + - Honor SSL/non-SSL setting when custom reseed list is set (ticket #1136) + - Remove all default HTTP URLs (ticket #1514) + 2015-04-17 zzz Prop from i2p.i2p.zzz.test2: * Console: Set session cookies to HttpOnly diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index 4e28a2c8d2..c10128fe62 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -18,7 +18,7 @@ public class RouterVersion { /** deprecated */ public final static String ID = "Monotone"; public final static String VERSION = CoreVersion.VERSION; - public final static long BUILD = 5; + public final static long BUILD = 6; /** for example "-test" */ public final static String EXTRA = "";