Hi,
The following exception can be seen when, running with JDK 9 b115 ( early
access )
and shutting down the Tomcat server. The issue is that the code in
org.apache.juli.ClassLoaderLogManager.readConfiguration() expects to find the
‘logging.properties' file in the ‘lib' directory of the JRE image. This is not
the case in
JDK 9, it has been moved to the ‘conf' directory of the image. See the "New
run-time
image structure” of JEP 220 [1] for details of this.
The code can be simply updated to look in the ‘conf’ directory, or
alternatively can
select between ‘conf’ and ‘lib’ if required to run on multiple releases.
Configuration error
java.io.FileNotFoundException:
/opt/jdk-9.jdk_b115/Contents/Home/lib/logging.properties (No such file or
directory)
at java.io.FileInputStream.open0(java.base@9-ea/Native Method)
at java.io.FileInputStream.open(java.base@9-ea/FileInputStream.java:195)
at
java.io.FileInputStream.<init>(java.base@9-ea/FileInputStream.java:138)
at
org.apache.juli.ClassLoaderLogManager.readConfiguration(ClassLoaderLogManager.java:479)
at
org.apache.juli.ClassLoaderLogManager$2.run(ClassLoaderLogManager.java:402)
at
org.apache.juli.ClassLoaderLogManager$2.run(ClassLoaderLogManager.java:398)
at java.security.AccessController.doPrivileged(java.base@9-ea/Native
Method)
at
org.apache.juli.ClassLoaderLogManager.getClassLoaderInfo(ClassLoaderLogManager.java:398)
at
org.apache.juli.ClassLoaderLogManager.addLogger(ClassLoaderLogManager.java:136)
at
org.apache.juli.ClassLoaderLogManager.readConfiguration(ClassLoaderLogManager.java:507)
at
org.apache.juli.ClassLoaderLogManager$2.run(ClassLoaderLogManager.java:402)
at
org.apache.juli.ClassLoaderLogManager$2.run(ClassLoaderLogManager.java:398)
at java.security.AccessController.doPrivileged(java.base@9-ea/Native
Method)
at
org.apache.juli.ClassLoaderLogManager.getClassLoaderInfo(ClassLoaderLogManager.java:398)
at
org.apache.juli.ClassLoaderLogManager.readConfiguration(ClassLoaderLogManager.java:493)
at
org.apache.juli.ClassLoaderLogManager.readConfiguration(ClassLoaderLogManager.java:309)
at
java.util.logging.LogManager.readPrimordialConfiguration(java.logging@9-ea/LogManager.java:437)
at
java.util.logging.LogManager.access$800(java.logging@9-ea/LogManager.java:156)
at
java.util.logging.LogManager$2.run(java.logging@9-ea/LogManager.java:387)
at java.security.AccessController.doPrivileged(java.base@9-ea/Native
Method)
at
java.util.logging.LogManager.ensureLogManagerInitialized(java.logging@9-ea/LogManager.java:380)
at
java.util.logging.LogManager.getLogManager(java.logging@9-ea/LogManager.java:422)
at
java.util.logging.SimpleFormatter.getLoggingProperty(java.logging@9-ea/SimpleFormatter.java:63)
at
jdk.internal.logger.SimpleConsoleLogger$Formatting.getSimpleFormat(java.base@9-ea/SimpleConsoleLogger.java:491)
at
jdk.internal.logger.SurrogateLogger.getSimpleFormat(java.base@9-ea/SurrogateLogger.java:62)
at
java.util.logging.SimpleFormatter.<init>(java.logging@9-ea/SimpleFormatter.java:67)
at
jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(java.base@9-ea/Native
Method)
at
jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(java.base@9-ea/NativeConstructorAccessorImpl.java:62)
at
jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(java.base@9-ea/DelegatingConstructorAccessorImpl.java:45)
at
java.lang.reflect.Constructor.newInstance(java.base@9-ea/Constructor.java:453)
at java.lang.Class.newInstance(java.base@9-ea/Class.java:550)
at org.apache.juli.logging.DirectJDKLog.<clinit>(DirectJDKLog.java:49)
at org.apache.juli.logging.LogFactory.getInstance(LogFactory.java:115)
at org.apache.juli.logging.LogFactory.getInstance(LogFactory.java:137)
at org.apache.juli.logging.LogFactory.getLog(LogFactory.java:188)
at org.apache.catalina.startup.Bootstrap.<clinit>(Bootstrap.java:52)
-Chris.
[1] http://openjdk.java.net/jeps/220
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]