From 9d5c14cf2cee9f846fda750d30ec102f60cf049b Mon Sep 17 00:00:00 2001 From: Alfonso Valdez Date: Tue, 11 Jun 2024 18:20:09 -0600 Subject: [PATCH] Merge pull request #6749 from flowlogix/fix-dangling-session-thread Properly cleaning up ContainerBackgroundSessionProcessor threads after application is undeployed --- .../src/main/java/org/apache/catalina/core/ContainerBase.java | 2 +- .../src/main/java/org/apache/catalina/core/StandardContext.java | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/appserver/web/web-core/src/main/java/org/apache/catalina/core/ContainerBase.java b/appserver/web/web-core/src/main/java/org/apache/catalina/core/ContainerBase.java index 9077f558b94..30032acbeb5 100644 --- a/appserver/web/web-core/src/main/java/org/apache/catalina/core/ContainerBase.java +++ b/appserver/web/web-core/src/main/java/org/apache/catalina/core/ContainerBase.java @@ -1750,7 +1750,7 @@ protected void threadStart() { * to update lastaccesstime and accessedTime. */ protected void threadSessionStart() { - if (sessionThread != null) + if (sessionThread != null || manager == null) return; threadSessionDone = false; String threadName = "ContainerBackgroundSessionProcessor[" + toString() + "]"; diff --git a/appserver/web/web-core/src/main/java/org/apache/catalina/core/StandardContext.java b/appserver/web/web-core/src/main/java/org/apache/catalina/core/StandardContext.java index d041e61e209..a84ece1ec7a 100644 --- a/appserver/web/web-core/src/main/java/org/apache/catalina/core/StandardContext.java +++ b/appserver/web/web-core/src/main/java/org/apache/catalina/core/StandardContext.java @@ -5946,6 +5946,8 @@ public synchronized void stop(boolean isShutdown) // Stop ContainerBackgroundProcessor thread super.threadStop(); + // Stop ContainerBackgroundSessionProcessor thread + super.threadSessionStop(); if ((manager != null) && (manager instanceof Lifecycle)) { if(manager instanceof StandardManager) {