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() {
