bug-classpath
[Top][All Lists]
Advanced

[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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]