From aea20a552e1eca0e0ebaee92e61eaf38ca297a24 Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 11 Mar 2017 16:27:37 +0000 Subject: [PATCH] Fix HashSessionScavenger, class changed in Jetty 9 History for prop, -4 --- .../net/i2p/router/web/RouterConsoleRunner.java | 15 +++++++++++---- history.txt | 16 ++++++++++++++++ .../java/src/net/i2p/router/RouterVersion.java | 2 +- 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java b/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java index b2381344b..183403a9d 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java @@ -19,7 +19,6 @@ import java.util.Map; import java.util.Properties; import java.util.SortedSet; import java.util.StringTokenizer; -import java.util.Timer; import java.util.concurrent.LinkedBlockingQueue; import net.i2p.I2PAppContext; @@ -72,6 +71,7 @@ import org.eclipse.jetty.util.security.Credential.MD5; import org.eclipse.jetty.util.ssl.SslContextFactory; import org.eclipse.jetty.util.thread.ExecutorThreadPool; import org.eclipse.jetty.util.thread.QueuedThreadPool; +import org.eclipse.jetty.util.thread.ScheduledExecutorScheduler; import org.eclipse.jetty.util.thread.ThreadPool; import org.tanukisoftware.wrapper.WrapperManager; @@ -98,7 +98,7 @@ public class RouterConsoleRunner implements RouterApp { private final ClientAppManager _mgr; private volatile ClientAppState _state = UNINITIALIZED; private static Server _server; - private static Timer _jettyTimer; + private static ScheduledExecutorScheduler _jettyTimer; private String _listenPort; private String _listenHost; private String _sslListenPort; @@ -241,7 +241,9 @@ public class RouterConsoleRunner implements RouterApp { portMapper.unregister(PortMapper.SVC_HTTPS_CONSOLE); synchronized(RouterConsoleRunner.class) { if (_jettyTimer != null) { - _jettyTimer.cancel(); + try { + _jettyTimer.stop(); + } catch (Exception e) {} _jettyTimer = null; } } @@ -954,7 +956,12 @@ public class RouterConsoleRunner implements RouterApp { // see HashSessionManager javadoc synchronized(RouterConsoleRunner.class) { if (_jettyTimer == null) { - _jettyTimer = new Timer("Console HashSessionScavenger", true); + _jettyTimer = new ScheduledExecutorScheduler("Console HashSessionScavenger", true); + try { + _jettyTimer.start(); + } catch (Exception e) { + System.err.println("Warning: ScheduledExecutorScheduler start failed: " + e); + } } context.getServletContext().setAttribute("org.eclipse.jetty.server.session.timer", _jettyTimer); } diff --git a/history.txt b/history.txt index 2a136d72a..15d4b0e2b 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,19 @@ +2017-03-11 zzz +Prop from i2p.i2p.zzz.jetty9: + * Console: Fix RouterConsoleRunner for Jetty 9 + * Debian packages: + - Remove libjetty8-java and ant-optional dependencies + - Add libjetty9-java and libtomcat8-java dependencies + Fixes stretch/sid package (ticket #1902) + - Fix up build files for package builds + * Eepsite: Update initial configuration files for Jetty 9 + * Jetty: + - Update to Jetty 9.2.21.v20170120 and Tomcat 8.0.33 (tickets #1512, #1935) + Fixes jsp compilation on Java 9 (ticket #1870) + We now support servlet API 3.1, JSP API 2.3, and EL API 3.0. + Breaks the following plugins: bwschedule, i2pbote, i2pcontrol, zzzot + * Startup: Add migration code for eepsite Jetty 8 configuration files + 2017-03-09 zzz * i2psnark: Prevent RuntimeException caused by corrupt i2psnark.dht.dat file * Router: Set default sig type to EdDSA for non-Android ARM diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index 0725033fa..f6e6df3a5 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 = 3; + public final static long BUILD = 4; /** for example "-test" */ public final static String EXTRA = "";