On loading junit.jar[2] i get initialization exception[3]. This
exception disappears if i revert the patch committed for
(HARMONY-6649) toUpper/toLowerCase.
Make sure your junit.jar contains the signature files[1]. (use the
junit.jar(version 3.8.2) bundled with eclipse). So with HARMONY-6649
commit, I am not able to load the jar file if it's manifest contains
any signature related files. Any thought on this?
[1] jar -tvf junit.jar
9714 Thu Aug 07 12:04:14 GMT+05:30 2008 META-INF/MANIFEST.MF
9791 Thu Aug 07 12:04:14 GMT+05:30 2008 META-INF/ECLIPSE.SF
3487 Thu Aug 07 12:04:14 GMT+05:30 2008 META-INF/ECLIPSE.RSA
0 Fri Mar 03 15:22:26 GMT+05:30 2006 META-INF/
76 Thu Aug 07 12:04:08 GMT+05:30 2008 META-INF/eclipse.inf
0 Fri Mar 03 15:22:10 GMT+05:30 2006 junit/
0 Fri Mar 03 15:22:26 GMT+05:30 2006 junit3.8.2/
0 Fri Mar 03 15:22:24 GMT+05:30 2006 junit/awtui/
............
[2] run command : java -cp junit.jar junit.textui.TestRunner
[3] Exception:
Uncaught exception in main:
java.lang.ExceptionInInitializerError
at com.ibm.icu.util.ULocale.<clinit>(ULocale.java:109)
at com.ibm.icu.impl.ICUResourceBundle.instantiateBundle(ICUResourceBundl
e.java:810)
at com.ibm.icu.impl.ICUResourceBundle.getBundleInstance(ICUResourceBundl
e.java:801)
at com.ibm.icu.util.UResourceBundle.getRootType(UResourceBundle.java:489
)
at com.ibm.icu.util.UResourceBundle.instantiateBundle(UResourceBundle.ja
va:536)
at com.ibm.icu.util.UResourceBundle.getBundleInstance(UResourceBundle.ja
va:144)
at com.ibm.icu.util.UResourceBundle.getBundleInstance(UResourceBundle.ja
va:124)
at com.ibm.icu.impl.ZoneMeta.getSystemTimeZone(ZoneMeta.java:509)
at com.ibm.icu.util.TimeZone.getTimeZone(TimeZone.java:617)
at com.ibm.icu.util.TimeZone.getTimeZone(TimeZone.java:587)
at java.util.SimpleTimeZone$1.run(SimpleTimeZone.java:50)
at java.util.SimpleTimeZone$1.run(SimpleTimeZone.java:1)
at java.security.AccessController.doPrivilegedImpl(AccessController.java
:171)
at java.security.AccessController.doPrivileged(AccessController.java:53)
at java.util.SimpleTimeZone.getICUTimeZone(SimpleTimeZone.java:48)
at java.util.SimpleTimeZone.<init>(SimpleTimeZone.java:110)
at java.util.TimeZone.<clinit>(TimeZone.java:91)
at org.apache.harmony.security.asn1.ASN1Time.getDecodedObject(ASN1Time.j
ava:51)
at org.apache.harmony.security.asn1.ASN1UTCTime.decode(ASN1UTCTime.java:
96)
at org.apache.harmony.security.asn1.ASN1Choice.decode(ASN1Choice.java:32
0)
at org.apache.harmony.security.asn1.BerInputStream.readSequence(BerInput
Stream.java:665)
at org.apache.harmony.security.asn1.DerInputStream.readSequence(DerInput
Stream.java:125)
at org.apache.harmony.security.asn1.ASN1Sequence.decode(ASN1Sequence.jav
a:48)
at org.apache.harmony.security.asn1.BerInputStream.readSequence(BerInput
Stream.java:665)
at org.apache.harmony.security.asn1.DerInputStream.readSequence(DerInput
Stream.java:125)
at org.apache.harmony.security.asn1.ASN1Sequence.decode(ASN1Sequence.jav
a:48)
at org.apache.harmony.security.asn1.BerInputStream.readSequence(BerInput
Stream.java:665)
at org.apache.harmony.security.asn1.DerInputStream.readSequence(DerInput
Stream.java:125)
at org.apache.harmony.security.asn1.ASN1Sequence.decode(ASN1Sequence.jav
a:48)
at org.apache.harmony.security.asn1.BerInputStream.decodeValueCollection
(BerInputStream.java:755)
at org.apache.harmony.security.asn1.BerInputStream.readSetOf(BerInputStr
eam.java:733)
at org.apache.harmony.security.asn1.DerInputStream.readSetOf(DerInputStr
eam.java:138)
at org.apache.harmony.security.asn1.ASN1SetOf.decode(ASN1SetOf.java:48)
at org.apache.harmony.security.asn1.ASN1Implicit.decode(ASN1Implicit.jav
a:140)
at org.apache.harmony.security.asn1.BerInputStream.readSequence(BerInput
Stream.java:665)
at org.apache.harmony.security.asn1.DerInputStream.readSequence(DerInput
Stream.java:125)
at org.apache.harmony.security.asn1.ASN1Sequence.decode(ASN1Sequence.jav
a:48)
at org.apache.harmony.security.asn1.ASN1Type.decode(ASN1Type.java:97)
at org.apache.harmony.security.pkcs7.ContentInfo$1.getDecodedObject(Cont
entInfo.java:153)
at org.apache.harmony.security.asn1.ASN1Sequence.decode(ASN1Sequence.jav
a:53)
at org.apache.harmony.security.utils.JarUtils.verifySignature(JarUtils.j
ava:73)
at java.util.jar.JarVerifier.verifyCertificate(JarVerifier.java:296)
at java.util.jar.JarVerifier.readCertificates(JarVerifier.java:265)
at java.util.jar.JarFile.getInputStream(JarFile.java:392)
at java.net.URLClassLoader$URLJarHandler.createClass(URLClassLoader.java
:402)
at java.net.URLClassLoader$URLJarHandler.findClass(URLClassLoader.java:3
71)
at java.net.URLClassLoader.findClassImpl(URLClassLoader.java:1209)
at java.net.URLClassLoader$4.run(URLClassLoader.java:901)
at java.net.URLClassLoader$4.run(URLClassLoader.java:1)
at java.security.AccessController.doPrivilegedImpl(AccessController.java
:171)
at java.security.AccessController.doPrivileged(AccessController.java:64)
at java.net.URLClassLoader.findClass(URLClassLoader.java:903)
at java.lang.ClassLoader.loadClass(ClassLoader.java:488)
at java.lang.ClassLoader$SystemClassLoader.loadClass(ClassLoader.java:87
0)
at java.lang.ClassLoader.loadClass(ClassLoader.java:267)
Caused by: java.lang.NullPointerException
at com.ibm.icu.util.ULocale.getName(ULocale.java:827)
at com.ibm.icu.util.ULocale.<init>(ULocale.java:480)
at java.util.Locale.<init>(Locale.java:228)
at java.util.Locale.<init>(Locale.java:201)
at java.util.Locale.<clinit>(Locale.java:51)
at com.ibm.icu.util.ULocale.<clinit>(ULocale.java:109)
... 54 more
FAILED to invoke JVM.
On Fri, Sep 24, 2010 at 11:57 AM, Tim Ellison <[email protected]> wrote:
> On 24/Sep/2010 06:58, Robert Muir wrote:
>> On Fri, Sep 24, 2010 at 1:49 AM, Tim Ellison <[email protected]> wrote:
>>
>>> System.out.println(new File("σ.txt").hashCode());
>>> System.out.println(new File("ς.txt").hashCode());
>>>
>>> prints out
>>>
>>> 889962580
>>> 890776533
>>>
>>> on both Harmony and the RI.
>>>
>>>
>> but perhaps this is just a bug in the RI?
>> according to the link:
>> http://download.oracle.com/javase/6/docs/api/java/io/File.html#hashCode%28%29
>> <http://download.oracle.com/javase/6/docs/api/java/io/File.html#hashCode%28%29>Because
>> equality of abstract pathnames is inherently system-dependent, so is the
>> computation of their hash codes.
>>
>> Is it a problem that "windows equals" is inconsistent with hashCode here? I
>> admit these are corner cases.
>
> No, I don't think it is a problem. I was reviewing the invokers of
> toLowerCase() and was confused by the wording in the spec. I'm happy
> that we should simply lowercase it in a locale independent way, and
> don't need to do a "windows equals" implementation.
>
> Regards,
> Tim
>
--
Mohan