Bug ID: | 6344646 |
Votes | 2 |
Synopsis | java.exe throws ExceptionInInitializerError in Windows Lithuanian locale |
Category | java:classes_text |
Reported Against | |
Release Fixed | mustang(rc) |
State | Closed, fixed |
Related Bugs | |
Submit Date | 02-NOV-2005 |
Description | The following problem is reported on http://forums.java.net/jive/thread.jspa?threadID=1864&tstart=0. It happens with Lithuanian locale. --- I'm having problems starting Mustang JVM. I have the same problem with 57 and 58 release. When I type java.exe in command line, I get the exception trace: Error occurred during initialization of VM java.lang.ExceptionInInitializerError at sun.text.Normalizer.getCombiningClass(Normalizer.java:78) at java.lang.ConditionalSpecialCasing.isMoreAbove(ConditionalSpecialCasing.java:295) at java.lang.ConditionalSpecialCasing.isConditionMet(ConditionalSpecialCasing.java:159) at java.lang.ConditionalSpecialCasing.lookUpTable(ConditionalSpecialCasing.java:140) at java.lang.ConditionalSpecialCasing.toLowerCaseEx(ConditionalSpecialCasing.java:89) at java.lang.String.toLowerCase(String.java:2280) at java.lang.String.toLowerCase(String.java:2335) at java.io.Win32FileSystem.hashCode(Win32FileSystem.java:572) at java.io.File.hashCode(File.java:1873) at java.util.HashMap.hash(HashMap.java:271) at java.util.HashMap.put(HashMap.java:393) at sun.misc.MetaIndex.registerDirectory(MetaIndex.java:173) at sun.misc.Launcher$ExtClassLoader$1.run(Launcher.java:125) at java.security.AccessController.doPrivileged(Native Method) at sun.misc.Launcher$ExtClassLoader.getExtClassLoader(Launcher.java:120) at sun.misc.Launcher.<init>(Launcher.java:53) at sun.misc.Launcher.<clinit>(Launcher.java:41) at java.lang.ClassLoader.initSystemClassLoader(ClassLoader.java:1304) at java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:1286) Caused by: java.lang.RuntimeException at sun.text.normalizer.NormalizerImpl.<clinit>(NormalizerImpl.java:44) at sun.text.Normalizer.getCombiningClass(Normalizer.java:78) at java.lang.ConditionalSpecialCasing.isMoreAbove(ConditionalSpecialCasing.java:295) at java.lang.ConditionalSpecialCasing.isConditionMet(ConditionalSpecialCasing.java:159) at java.lang.ConditionalSpecialCasing.lookUpTable(ConditionalSpecialCasing.java:140) at java.lang.ConditionalSpecialCasing.toLowerCaseEx(ConditionalSpecialCasing.java:89) at java.lang.String.toLowerCase(String.java:2280) at java.lang.String.toLowerCase(String.java:2335) at java.io.Win32FileSystem.hashCode(Win32FileSystem.java:572) at java.io.File.hashCode(File.java:1873) at java.util.HashMap.hash(HashMap.java:271) at java.util.HashMap.put(HashMap.java:393) at sun.misc.MetaIndex.registerDirectory(MetaIndex.java:173) at sun.misc.Launcher$ExtClassLoader$1.run(Launcher.java:125) at java.security.AccessController.doPrivileged(Native Method) at sun.misc.Launcher$ExtClassLoader.getExtClassLoader(Launcher.java:120) at sun.misc.Launcher.<init>(Launcher.java:53) at sun.misc.Launcher.<clinit>(Launcher.java:41) at java.lang.ClassLoader.initSystemClassLoader(ClassLoader.java:1304) at java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:1286) I'm using WinXP Pro whith all latest updates on Centrino machine. |
Work Around | N/A |
Evaluation | The exception is caused by the following cyclic initialization of sun.text.normalizer.NormalizerImpl static class. java.lang.NullPointerException at sun.text.normalizer.NormalizerImpl.getNorm32(NormalizerImpl.java:378) at sun.text.normalizer.NormalizerImpl.getCombiningClass(NormalizerImpl.j ava:2042) at sun.text.Normalizer.getCombiningClass(Normalizer.java:78) at java.lang.ConditionalSpecialCasing.isMoreAbove(ConditionalSpecialCasi ng.java:296) at java.lang.ConditionalSpecialCasing.isConditionMet(ConditionalSpecialC asing.java:159) at java.lang.ConditionalSpecialCasing.lookUpTable(ConditionalSpecialCasi ng.java:140) at java.lang.ConditionalSpecialCasing.toLowerCaseEx(ConditionalSpecialCa sing.java:89) at java.lang.String.toLowerCase(String.java:2280) at java.lang.String.toLowerCase(String.java:2335) at java.io.Win32FileSystem.hashCode(Win32FileSystem.java:572) at java.io.File.hashCode(File.java:1873) at java.util.HashMap.hash(HashMap.java:271) at java.util.HashMap.put(HashMap.java:393) at java.util.HashSet.add(HashSet.java:201) at sun.misc.Launcher$1.run(Launcher.java:345) at java.security.AccessController.doPrivileged(Native Method) at sun.misc.Launcher.getBootstrapClassPath(Launcher.java:332) at java.lang.ClassLoader.getBootstrapClassPath(ClassLoader.java:1137) at java.lang.ClassLoader.getBootstrapResource(ClassLoader.java:1112) at java.lang.ClassLoader.getResource(ClassLoader.java:974) at java.lang.ClassLoader.getResource(ClassLoader.java:972) at java.lang.ClassLoader.getSystemResource(ClassLoader.java:1075) at java.lang.ClassLoader.getSystemResourceAsStream(ClassLoader.java:1181 ) at java.lang.Class.getResourceAsStream(Class.java:2007) at sun.text.normalizer.ICUData.getStream(ICUData.java:43) at sun.text.normalizer.ICUData.getRequiredStream(ICUData.java:63) at sun.text.normalizer.NormalizerImpl.<init>(NormalizerImpl.java:265) at sun.text.normalizer.NormalizerImpl.<clinit>(NormalizerImpl.java:40) at sun.text.Normalizer.getCombiningClass(Normalizer.java:78) at java.lang.ConditionalSpecialCasing.isMoreAbove(ConditionalSpecialCasi ng.java:296) at java.lang.ConditionalSpecialCasing.isConditionMet(ConditionalSpecialC asing.java:159) at java.lang.ConditionalSpecialCasing.lookUpTable(ConditionalSpecialCasi ng.java:140) at java.lang.ConditionalSpecialCasing.toLowerCaseEx(ConditionalSpecialCa sing.java:89) at java.lang.String.toLowerCase(String.java:2280) at java.lang.String.toLowerCase(String.java:2335) at test.main(test.java:8) Changed hashCode() method in Windows file system to use locale independent toLowerCase() method. Also modified the method description in java.io.File.hashCode() according to this change. |
在执行QQIP的时候出现一个怪问题,在C:/可以执行,
在Tomcat classes目录下不可以
用到的函数
.class.getResource("qqwry.dat");