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



_______________________________________________
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath

Reply via email to