[cp-patches] Fix for Class.getSimpleName()

Sebastian Mancke s.mancke at tarent.de
Wed Apr 16 10:28:33 UTC 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1



Christian Thalinger schrieb:
> On Wed, 2008-04-16 at 10:58 +0200, Sebastian Mancke wrote:
>> I saw this patch and think it broke the behaviour, because of the wrong
>> usage of fullName.lastIndexOf(".", pos): The pos argument, counted from
>> left makes no sense in this method.
>>
>> Also, I think, that advancing 'pos', dependent on
>> Character.isDigit(fullName.charAt(pos)) make no sense, because we return
>> "" for anonymous classes already.
> 
> I see.  Can you try the CACAO testcase (I hope this is the right one):
> tests/regression/TestAnnotations.java
TestAnnotations hangs the current cacao. Dump is attached.

But maybe the testcase you mean is MinimalClassReflection, right?
I have diff'ed cacaos output to the jdks output. In fact, I have missed
one case: The Digits after the '$' exist for local classes and have to
be skipped for the simple name. I will overwork my patch.

- --Sebastian

- --
tarent Gesellschaft für Softwareentwicklung und IT-Beratung mbH

Heilsbachstr. 24, 53123 Bonn    | Poststr. 4-5, 10178 Berlin
fon: +49(228) / 52675-0         | fon: +49(30) / 27594853
fax: +49(228) / 52675-25        | fax: +49(30) / 78709617
durchwahl: +49(228) / 52675-17  | mobil: +49(171) / 7673249

Geschäftsführer:
Boris Esser, Elmar Geese, Thomas Müller-Ackermann
HRB AG Bonn 5168
Ust-ID: DE122264941
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFIBdTQsMJ2Yk81wE0RAiSsAKD6Oat3rw6HGWzV0jTiPBbrWD2cQgCeMnJa
gQYpAZmnkZMwxFmqAegbNVA=
=AgQ5
-----END PGP SIGNATURE-----
-------------- next part --------------
== Testing EnumA ==
LOG: [0x401b96b0] We received a SIGSEGV and tried to handle it, but we were
LOG: [0x401b96b0] unable to find a Java method at:
LOG: [0x401b96b0] 
LOG: [0x401b96b0] PC=0x4024ff33
LOG: [0x401b96b0] 
LOG: [0x401b96b0] Dumping the current stacktrace:
	at java.lang.reflect.VMMethod.getDefaultValue()Ljava/lang/Object;(Native Method)
	at java.lang.reflect.Method.getDefaultValue()Ljava/lang/Object;(Method.java:440)
	at sun.reflect.annotation.AnnotationType.<init>(Ljava/lang/Class;)V(AnnotationType.java:132)
	at sun.reflect.annotation.AnnotationType.getInstance(Ljava/lang/Class;)Lsun/reflect/annotation/AnnotationType;(AnnotationType.java:99)
	at sun.reflect.annotation.AnnotationParser.parseAnnotation(Ljava/nio/ByteBuffer;Lsun/reflect/ConstantPool;Ljava/lang/Class;Z)Ljava/lang/annotation/Annotation;(AnnotationParser.java:300)
	at sun.reflect.annotation.AnnotationParser.parseAnnotations2([BLsun/reflect/ConstantPool;Ljava/lang/Class;)Ljava/util/Map;(AnnotationParser.java:167)
	at sun.reflect.annotation.AnnotationParser.parseAnnotations([BLsun/reflect/ConstantPool;Ljava/lang/Class;)Ljava/util/Map;(AnnotationParser.java:150)
	at sun.reflect.annotation.AnnotationParser.parseAnnotationsIntoArray([BLsun/reflect/ConstantPool;Ljava/lang/Class;)[Ljava/lang/annotation/Annotation;(AnnotationParser.java:63)
	at java.lang.VMClass.getDeclaredAnnotations(Ljava/lang/Class;)[Ljava/lang/annotation/Annotation;(Native Method)
	at java.lang.Class.getDeclaredAnnotations()[Ljava/lang/annotation/Annotation;(Class.java:1575)
	at AnnotatedElementAnnotationTester.testGetDeclaredAnnotations()Z(TestAnnotations.java:862)
	at AnnotatedElementAnnotationTester.test()Z(TestAnnotations.java:851)
	at ClassAnnotationTester.test()Z(TestAnnotations.java:1268)
	at TestAnnotations.main([Ljava/lang/String;)V(TestAnnotations.java:1773)
LOG: [0x401b96b0] Exiting...


More information about the Classpath-patches mailing list