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