From 0f415a735a947f87aaa61e99a458ff4b186c9010 Mon Sep 17 00:00:00 2001 From: Greg Wilkins Date: Tue, 5 Mar 2013 14:32:17 +1100 Subject: [PATCH] 399799 do not hold lock while calling invalidation listeners --- .../org/eclipse/jetty/server/session/AbstractSession.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/session/AbstractSession.java b/jetty-server/src/main/java/org/eclipse/jetty/server/session/AbstractSession.java index 477a6854cfa..f76cfb8641b 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/session/AbstractSession.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/session/AbstractSession.java @@ -340,16 +340,19 @@ public abstract class AbstractSession implements AbstractSessionManager.SessionI _manager.removeSession(this,true); // Notify listeners and unbind values + boolean do_invalidate=false; synchronized (this) { if (!_invalid) { if (_requests<=0) - doInvalidate(); + do_invalidate=true; else _doInvalidate=true; } } + if (do_invalidate) + doInvalidate(); } /* ------------------------------------------------------------- */