Skip to content

Commit 2169187

Browse files
committed
[94] Ensure the level is set in a privileged action if the security manager is being used.
Signed-off-by: James R. Perkins <jperkins@redhat.com>
1 parent 0c14d61 commit 2169187

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

src/main/java/org/jboss/logmanager/log4j/JBossStatusListener.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@ static void registerIfAbsent(final LogContext logContext) {
5555
Logger logger = logContext.getLoggerIfExists(NAME);
5656
if (logger == null) {
5757
logger = logContext.getLogger(NAME);
58-
logger.setLevel(levelTranslator.translateLevel(StatusLogger.getLogger().getFallbackListener().getStatusLevel()));
58+
setLogLevel(logger,
59+
levelTranslator.translateLevel(StatusLogger.getLogger().getFallbackListener().getStatusLevel()));
5960
}
6061
StatusListener listener = logger.getAttachment(STATUS_LISTENER_KEY);
6162
if (listener == null) {
@@ -120,4 +121,15 @@ private static void detach(final Logger logger) {
120121
}
121122
}
122123

123-
}
124+
private static void setLogLevel(final java.util.logging.Logger logger, final java.util.logging.Level level) {
125+
if (System.getSecurityManager() == null) {
126+
logger.setLevel(level);
127+
} else {
128+
AccessController.doPrivileged((PrivilegedAction<Object>) () -> {
129+
logger.setLevel(level);
130+
return null;
131+
});
132+
}
133+
}
134+
135+
}

0 commit comments

Comments
 (0)