[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug classpath/29608] New: circular dependency between LogManager and sy
From: |
marc at mit dot edu |
Subject: |
[Bug classpath/29608] New: circular dependency between LogManager and system classloader initialization |
Date: |
26 Oct 2006 18:58:50 -0000 |
I have a logging properties file which contains these two lines:
handlers=java.util.logging.ConsoleHandler my.Handler
java.util.logging.ConsoleHandler.formatter=my.Formatter
System classloader initialization fails with the appended exception output. In
both cases here, it appears that the system is unable to initialize the
classloader because it cannot find classes which will not be available until
after the classloader initializes. I'd guess the right fix is to delay
initializing the logger until later in the classloader initialization process,
but I haven't dived very deeply into the code to be sure.
WARNING: java.util.logging.ConsoleHandler.formatter = my.Formatter
java.lang.ClassNotFoundException: my/Formatter
at java.lang.VMClass.forName(Native Method)
at java.lang.Class.forName(Class.java:235)
at java.util.logging.LogManager.locateClass(LogManager.java:916)
at java.util.logging.LogManager.getClassProperty(LogManager.java:743)
at java.util.logging.LogManager.getInstanceProperty(LogManager.java:756)
at java.util.logging.StreamHandler.<init>(StreamHandler.java:138)
at java.util.logging.ConsoleHandler.<init>(ConsoleHandler.java:83)
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:334)
at java.lang.Class.newInstance(Class.java:1163)
at java.util.logging.LogManager.createInstance(LogManager.java:847)
at java.util.logging.LogManager.readConfiguration(LogManager.java:571)
at java.util.logging.LogManager.readConfiguration(LogManager.java:532)
at java.util.logging.LogManager.initLogManager(LogManager.java:203)
at java.util.logging.LogManager.getLogManager(LogManager.java:168)
at java.util.logging.Logger.getLogger(Logger.java:276)
at java.util.logging.Logger.getLogger(Logger.java:224)
at java.util.logging.Logger$1.run(Logger.java:91)
at java.security.AccessController.doPrivileged(AccessController.java:96)
at java.util.logging.Logger.<clinit>(Logger.java:86)
at gnu.java.util.jar.JarUtils.<clinit>(JarUtils.java:65)
at java.util.jar.Manifest.read(Manifest.java:162)
at java.util.jar.Manifest.<init>(Manifest.java:89)
at java.util.jar.JarFile.readManifest(JarFile.java:295)
at java.util.jar.JarFile.<init>(JarFile.java:260)
at gnu.java.net.protocol.jar.Connection$JarFileCache.get(Connection.java:98)
at gnu.java.net.protocol.jar.Connection.connect(Connection.java:140)
at gnu.java.net.protocol.jar.Connection.getJarFile(Connection.java:169)
at gnu.java.net.loader.JarURLLoader.initialize(JarURLLoader.java:84)
at gnu.java.net.loader.JarURLLoader.<init>(JarURLLoader.java:76)
at java.net.URLClassLoader.addURLImpl(URLClassLoader.java:387)
at java.net.URLClassLoader.addURLs(URLClassLoader.java:418)
at java.net.URLClassLoader.<init>(URLClassLoader.java:215)
at java.lang.ClassLoader$1.<init>(ClassLoader.java:1099)
at java.lang.ClassLoader.createSystemClassLoader(ClassLoader.java:1098)
at java.lang.ClassLoader.defaultGetSystemClassLoader(ClassLoader.java:1083)
at java.lang.VMClassLoader.getSystemClassLoader(VMClassLoader.java:327)
at java.lang.ClassLoader$StaticData.<clinit>(ClassLoader.java:154)
at java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:799)
WARNING: error instantiating 'my.Handler' referenced by handlers, class not
found
java.lang.ClassNotFoundException: my/Handler
at java.lang.VMClass.forName(Native Method)
at java.lang.Class.forName(Class.java:235)
at java.util.logging.LogManager.locateClass(LogManager.java:916)
at java.util.logging.LogManager.createInstance(LogManager.java:845)
at java.util.logging.LogManager.readConfiguration(LogManager.java:571)
at java.util.logging.LogManager.readConfiguration(LogManager.java:532)
at java.util.logging.LogManager.initLogManager(LogManager.java:203)
at java.util.logging.LogManager.getLogManager(LogManager.java:168)
at java.util.logging.Logger.getLogger(Logger.java:276)
at java.util.logging.Logger.getLogger(Logger.java:224)
at java.util.logging.Logger$1.run(Logger.java:91)
at java.security.AccessController.doPrivileged(AccessController.java:96)
at java.util.logging.Logger.<clinit>(Logger.java:86)
at gnu.java.util.jar.JarUtils.<clinit>(JarUtils.java:65)
at java.util.jar.Manifest.read(Manifest.java:162)
at java.util.jar.Manifest.<init>(Manifest.java:89)
at java.util.jar.JarFile.readManifest(JarFile.java:295)
at java.util.jar.JarFile.<init>(JarFile.java:260)
at gnu.java.net.protocol.jar.Connection$JarFileCache.get(Connection.java:98)
at gnu.java.net.protocol.jar.Connection.connect(Connection.java:140)
at gnu.java.net.protocol.jar.Connection.getJarFile(Connection.java:169)
at gnu.java.net.loader.JarURLLoader.initialize(JarURLLoader.java:84)
at gnu.java.net.loader.JarURLLoader.<init>(JarURLLoader.java:76)
at java.net.URLClassLoader.addURLImpl(URLClassLoader.java:387)
at java.net.URLClassLoader.addURLs(URLClassLoader.java:418)
at java.net.URLClassLoader.<init>(URLClassLoader.java:215)
at java.lang.ClassLoader$1.<init>(ClassLoader.java:1099)
at java.lang.ClassLoader.createSystemClassLoader(ClassLoader.java:1098)
at java.lang.ClassLoader.defaultGetSystemClassLoader(ClassLoader.java:1083)
at java.lang.VMClassLoader.getSystemClassLoader(VMClassLoader.java:327)
at java.lang.ClassLoader$StaticData.<clinit>(ClassLoader.java:154)
at java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:799)
Cannot create system class loader
java.lang.ExceptionInInitializerError
at gnu.java.util.jar.JarUtils.<clinit>(JarUtils.java:65)
at java.util.jar.Manifest.read(Manifest.java:162)
at java.util.jar.Manifest.<init>(Manifest.java:89)
at java.util.jar.JarFile.readManifest(JarFile.java:295)
at java.util.jar.JarFile.<init>(JarFile.java:260)
at gnu.java.net.protocol.jar.Connection$JarFileCache.get(Connection.java:98)
at gnu.java.net.protocol.jar.Connection.connect(Connection.java:140)
at gnu.java.net.protocol.jar.Connection.getJarFile(Connection.java:169)
at gnu.java.net.loader.JarURLLoader.initialize(JarURLLoader.java:84)
at gnu.java.net.loader.JarURLLoader.<init>(JarURLLoader.java:76)
at java.net.URLClassLoader.addURLImpl(URLClassLoader.java:387)
at java.net.URLClassLoader.addURLs(URLClassLoader.java:418)
at java.net.URLClassLoader.<init>(URLClassLoader.java:215)
at java.lang.ClassLoader$1.<init>(ClassLoader.java:1099)
at java.lang.ClassLoader.createSystemClassLoader(ClassLoader.java:1098)
at java.lang.ClassLoader.defaultGetSystemClassLoader(ClassLoader.java:1083)
at java.lang.VMClassLoader.getSystemClassLoader(VMClassLoader.java:327)
at java.lang.ClassLoader$StaticData.<clinit>(ClassLoader.java:154)
at java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:799)
Caused by: java.lang.NullPointerException
at java.util.logging.Logger.addHandler(Logger.java:1017)
at java.util.logging.LogManager.readConfiguration(LogManager.java:573)
at java.util.logging.LogManager.readConfiguration(LogManager.java:532)
at java.util.logging.LogManager.initLogManager(LogManager.java:203)
at java.util.logging.LogManager.getLogManager(LogManager.java:168)
at java.util.logging.Logger.getLogger(Logger.java:276)
at java.util.logging.Logger.getLogger(Logger.java:224)
at java.util.logging.Logger$1.run(Logger.java:91)
at java.security.AccessController.doPrivileged(AccessController.java:96)
at java.util.logging.Logger.<clinit>(Logger.java:86)
at gnu.java.util.jar.JarUtils.<clinit>(JarUtils.java:65)
...18 more
--
Summary: circular dependency between LogManager and system
classloader initialization
Product: classpath
Version: 0.92
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: classpath
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: marc at mit dot edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29608
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Bug classpath/29608] New: circular dependency between LogManager and system classloader initialization,
marc at mit dot edu <=