This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/10.1.x by this push: new d7c46a6302 Handle case where listener receives destroy but not init event d7c46a6302 is described below commit d7c46a6302b2dcf6eb92608cec452b9684a02bb2 Author: Mark Thomas <ma...@apache.org> AuthorDate: Fri Jun 14 18:34:10 2024 +0100 Handle case where listener receives destroy but not init event --- java/org/apache/catalina/core/AprLifecycleListener.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/java/org/apache/catalina/core/AprLifecycleListener.java b/java/org/apache/catalina/core/AprLifecycleListener.java index a06d9672c8..1db75895b9 100644 --- a/java/org/apache/catalina/core/AprLifecycleListener.java +++ b/java/org/apache/catalina/core/AprLifecycleListener.java @@ -103,6 +103,7 @@ public class AprLifecycleListener implements LifecycleListener { // Guarded by lock private static int referenceCount = 0; + private boolean instanceInitialized = false; public static boolean isAprAvailable() { @@ -131,6 +132,7 @@ public class AprLifecycleListener implements LifecycleListener { if (Lifecycle.BEFORE_INIT_EVENT.equals(event.getType())) { synchronized (lock) { + instanceInitialized = true; if (!(event.getLifecycle() instanceof Server)) { log.warn(sm.getString("listener.notServer", event.getLifecycle().getClass().getSimpleName())); } @@ -163,8 +165,12 @@ public class AprLifecycleListener implements LifecycleListener { } } else if (Lifecycle.AFTER_DESTROY_EVENT.equals(event.getType())) { synchronized (lock) { - if (--referenceCount != 0) { - // Still being used (note test is performed after reference count is decremented) + // Instance may get destroyed without ever being initialized + if (instanceInitialized) { + referenceCount --; + } + if (referenceCount != 0) { + // Still being used return; } if (!AprStatus.isAprAvailable()) { --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org