diff --git a/VERSION.txt b/VERSION.txt index df766c3eb72..d37d3d77ac9 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -6,6 +6,8 @@ jetty-7.3.1-SNAPSHOT + 336793 Tee data filled and flushed from endpoint + 337258 Scanner start and end cycle notification + 337268 Allow specifying alias of a certificate to be used by SSL connector + + 337270 Shared Timer for session management + + 337271 Flush SSL endpoint when dispatch thread held forever jetty-7.3.0.v20110203 3 February 2011 + JETTY-1259 NullPointerException in JDBCSessionIdManager when invalidating session (further update) diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/session/HashSessionManager.java b/jetty-server/src/main/java/org/eclipse/jetty/server/session/HashSessionManager.java index 816af1463f1..3d28df976ec 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/session/HashSessionManager.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/session/HashSessionManager.java @@ -36,6 +36,7 @@ import java.util.concurrent.ConcurrentMap; import javax.servlet.http.HttpServletRequest; +import org.eclipse.jetty.server.Server; import org.eclipse.jetty.util.IO; import org.eclipse.jetty.util.LazyList; import org.eclipse.jetty.util.log.Log; @@ -46,12 +47,16 @@ import org.eclipse.jetty.util.log.Log; *
* This manager supports saving sessions to disk, either periodically or at shutdown. * Sessions can also have their content idle saved to disk to reduce the memory overheads of large idle sessions. + *
+ * This manager will create it's own Timer instance to scavenge threads, unless it discovers a shared Timer instance
+ * set as the "org.eclipse.jetty.server.session.timer" attribute of the Server.
*
*/
public class HashSessionManager extends AbstractSessionManager
{
private static int __id;
private Timer _timer;
+ private boolean _timerStop=false;
private TimerTask _task;
private int _scavengePeriodMs=30000;
private int _savePeriodMs=0; //don't do period saves by default
@@ -78,7 +83,13 @@ public class HashSessionManager extends AbstractSessionManager
_sessions=new ConcurrentHashMap