From 8c823ce518c9c3b36d9e355d495836174686da3c Mon Sep 17 00:00:00 2001 From: "John Y. Pazekha" Date: Fri, 25 Apr 2025 03:40:39 +0200 Subject: [PATCH] A way to disable the optimization for filling the stack traces --- .../log4j/util/PrivateSecurityManagerStackTraceUtil.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/PrivateSecurityManagerStackTraceUtil.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/PrivateSecurityManagerStackTraceUtil.java index ec2b5cf1e4d..4579f9e65b7 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/util/PrivateSecurityManagerStackTraceUtil.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/PrivateSecurityManagerStackTraceUtil.java @@ -24,9 +24,9 @@ * Internal utility to share a fast implementation of {@code #getCurrentStackTrace()} * with the java 9 implementation of {@link StackLocator}. */ -final class PrivateSecurityManagerStackTraceUtil { +public final class PrivateSecurityManagerStackTraceUtil { - private static final PrivateSecurityManager SECURITY_MANAGER; + private static PrivateSecurityManager SECURITY_MANAGER; static { PrivateSecurityManager psm; @@ -51,6 +51,11 @@ static boolean isEnabled() { return SECURITY_MANAGER != null; } + /** Disable the fast stack traces, if already enabled. */ + public static void disable() { + SECURITY_MANAGER = null; + } + /** * Returns the current execution stack as a Deque of classes. *