[jboss-jira] [JBoss JIRA] (WFCORE-1494) Investigate consequences of changes in JDK9 on JBoss Logging
Richard Opalka (JIRA)
issues at jboss.org
Wed Apr 20 16:51:00 EDT 2016
[ https://issues.jboss.org/browse/WFCORE-1494?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Richard Opalka moved WFLY-6359 to WFCORE-1494:
----------------------------------------------
Project: WildFly Core (was: WildFly)
Key: WFCORE-1494 (was: WFLY-6359)
Component/s: Logging
(was: Logging)
Affects Version/s: 2.1.0.Final
(was: 10.0.0.Final)
Fix Version/s: 3.0.0.Alpha1
(was: 10.1.0.Final)
> Investigate consequences of changes in JDK9 on JBoss Logging
> ------------------------------------------------------------
>
> Key: WFCORE-1494
> URL: https://issues.jboss.org/browse/WFCORE-1494
> Project: WildFly Core
> Issue Type: Task
> Components: Logging
> Affects Versions: 2.1.0.Final
> Reporter: Richard Opalka
> Assignee: James Perkins
> Fix For: 3.0.0.Alpha1
>
>
> When running:
> $[wildfly-core/logging]>mvn test -Dtest=**/Log4jAppenderTestCase
> on JDK9 the test is failing.
> {noformat}
> levelTest(org.jboss.as.logging.logmanager.Log4jAppenderTestCase) Time elapsed: 0.006 sec <<< ERROR!
> java.lang.IllegalStateException: The LogManager was not properly installed (you must set the "java.util.logging.manager" system property to "org.jboss.logmanager.LogManager")
> at org.jboss.logmanager.Logger.getLogger(Logger.java:57)
> at org.jboss.as.logging.logmanager.Log4jAppenderTestCase.<init>(Log4jAppenderTestCase.java:49)
> formatTest(org.jboss.as.logging.logmanager.Log4jAppenderTestCase) Time elapsed: 0.001 sec <<< ERROR!
> java.lang.IllegalStateException: The LogManager was not properly installed (you must set the "java.util.logging.manager" system property to "org.jboss.logmanager.LogManager")
> at org.jboss.logmanager.Logger.getLogger(Logger.java:57)
> at org.jboss.as.logging.logmanager.Log4jAppenderTestCase.<init>(Log4jAppenderTestCase.java:49)
> {noformat}
> After short debugging I identified the difference between JDK8 and JKD9 that is causing the test to fail. In JDK8 the relevant piece of code was:
> {code}
> // java.util.logging.Logger
> private static Logger demandLogger(String name, String resourceBundleName, Class<?> caller) {
> LogManager manager = LogManager.getLogManager();
> SecurityManager sm = System.getSecurityManager();
> if (sm != null && !SystemLoggerHelper.disableCallerCheck) {
> if (caller.getClassLoader() == null) {
> return manager.demandSystemLogger(name, resourceBundleName);
> }
> }
> return manager.demandLogger(name, resourceBundleName, caller);
> // ends up calling new Logger(name, resourceBundleName, caller)
> // iff the logger doesn't exist already
> }
> {code}
> in JDK9 the Security Manager check part disappeared:
> {code}
> // java.util.logging.Logger
> private static Logger demandLogger(String name, String resourceBundleName, Class<?> caller) {
> LogManager manager = LogManager.getLogManager();
> if (!SystemLoggerHelper.disableCallerCheck) {
> if (caller.getClassLoader() == null) {
> return manager.demandSystemLogger(name, resourceBundleName, caller);
> }
> }
> return manager.demandLogger(name, resourceBundleName, caller);
> // ends up calling new Logger(name, resourceBundleName, caller)
> // iff the logger doesn't exist already
> }
> {code}
> This change causes the platform java.util.logging.Logger is returned instead of expected one
> org.jboss.logmanager.Logger.
> It is possible to workaround this problem by setting sun.util.logging.disableCallerCheck JVM property, like:
> $[wildfly-core/logging]>mvn test -Dtest=**/Log4jAppenderTestCase -Dsun.util.logging.disableCallerCheck=true
> Please investigate, whether this is regression that should be addressed by Oracle and if there are not other potential problems affecting proper logging functionality on JDK9.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
More information about the jboss-jira
mailing list