Repository: shiro
Updated Branches:
  refs/heads/master 5b03bf39d -> 2537d0802


SHIRO-443: Added DCL around creation of session validation scheduler.

To make sure it is created only once, and to not end up with
multiple daemon threads lurking around in case of heavy load on startup
for session creation.

closes #4


Project: http://git-wip-us.apache.org/repos/asf/shiro/repo
Commit: http://git-wip-us.apache.org/repos/asf/shiro/commit/2537d080
Tree: http://git-wip-us.apache.org/repos/asf/shiro/tree/2537d080
Diff: http://git-wip-us.apache.org/repos/asf/shiro/diff/2537d080

Branch: refs/heads/master
Commit: 2537d0802f8d20d12223fcf319cf2a20769b7a99
Parents: 5b03bf3
Author: Tamas Cservenak <[email protected]>
Authored: Thu May 23 10:47:46 2013 +0200
Committer: bdemers <[email protected]>
Committed: Fri Mar 25 12:18:32 2016 -0400

----------------------------------------------------------------------
 .../session/mgt/AbstractValidatingSessionManager.java   | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/shiro/blob/2537d080/core/src/main/java/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.java
 
b/core/src/main/java/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.java
index 8432318..4743dba 100644
--- 
a/core/src/main/java/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.java
+++ 
b/core/src/main/java/org/apache/shiro/session/mgt/AbstractValidatingSessionManager.java
@@ -220,17 +220,17 @@ public abstract class AbstractValidatingSessionManager 
extends AbstractNativeSes
         return scheduler;
     }
 
-    protected void enableSessionValidation() {
+    protected synchronized void enableSessionValidation() {
         SessionValidationScheduler scheduler = getSessionValidationScheduler();
         if (scheduler == null) {
             scheduler = createSessionValidationScheduler();
             setSessionValidationScheduler(scheduler);
+            if (log.isInfoEnabled()) {
+                log.info("Enabling session validation scheduler...");
+            }
+            scheduler.enableSessionValidation();
+            afterSessionValidationEnabled();
         }
-        if (log.isInfoEnabled()) {
-            log.info("Enabling session validation scheduler...");
-        }
-        scheduler.enableSessionValidation();
-        afterSessionValidationEnabled();
     }
 
     protected void afterSessionValidationEnabled() {

Reply via email to