re PR libgcj/35020 (Class.getSimpleName() differs from Sun Java)

2008-05-22  Andrew Haley  <aph@redhat.com>

	PR libgcj/35020
	* java/lang/Class.java (getSimpleName): Replace incorrect use of
	String.lastIndexOf(String, int) with String.substring.
	* testsuite/libjava.lang/PR35020.java: New file.
	* testsuite/libjava.lang/PR35020.out: New file.

From-SVN: r135801
This commit is contained in:
Andrew Haley 2008-05-23 13:04:18 +00:00 committed by Andrew Haley
parent 833248d2d0
commit cf38a465ec
7 changed files with 39 additions and 2 deletions

View File

@ -1,3 +1,11 @@
2008-05-22 Andrew Haley <aph@redhat.com>
PR libgcj/35020
* java/lang/Class.java (getSimpleName): Replace incorrect use of
String.lastIndexOf(String, int) with String.substring.
* testsuite/libjava.lang/PR35020.java: New file.
* testsuite/libjava.lang/PR35020.out: New file.
2008-05-22 Andrew Haley <aph@redhat.com>
PR libgcj/35020

View File

@ -1090,10 +1090,12 @@ public final class Class<T>
++pos;
while (Character.isDigit(fullName.charAt(pos)))
++pos;
fullName = fullName.substring(pos);
}
int packagePos = fullName.lastIndexOf(".", pos);
int packagePos = fullName.lastIndexOf(".");
if (packagePos == -1)
return fullName.substring(pos);
return fullName;
else
return fullName.substring(packagePos + 1);
}

Binary file not shown.

View File

@ -0,0 +1,21 @@
public class PR35020
{
class inner
{
}
public static void main(String[] args)
{
System.out.println(inner.class.getSimpleName());
System.out.println(PR35020.class.getSimpleName());
System.out.println(Class.class.getSimpleName());
System.out.println((new int[7]).getClass().getSimpleName());
System.out.println((new Object[1][1][1][1][1][1][1][1]).getClass().getSimpleName());
System.out.println((new java.security.PrivilegedAction()
{
public Object run() {
return null;
}
}).getClass().getSimpleName());
}
}

View File

@ -0,0 +1,6 @@
inner
PR35020
Class
int[]
Object[][][][][][][][]