From 137ac9be72ad74b5614a767f0ec0787adb41875d Mon Sep 17 00:00:00 2001 From: lprimak Date: Fri, 7 Jun 2024 21:34:46 -0500 Subject: [PATCH] bugfix: 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) {