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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Andrew Haley wrote:
> 2008-05-22  Andrew Haley  <aph@xxxxxxxxxx>
> 
>         PR libgcj/35020
>         * java/lang/Class.java (getSimpleName): Import from GNU Classpath.

Hmph.  It looks like the GNU Classpath version of Class.getSimpleName()
was just as bad as the libgcj version.  Fixed thusly.

Andrew.


2008-05-22  Andrew Haley  <aph@xxxxxxxxxx>

	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.

Index: java/lang/Class.java
===================================================================
*** java/lang/Class.java        (revision 135771)
--- java/lang/Class.java        (working copy)
***************
*** 1090,1099 ****
        ++pos;
        while (Character.isDigit(fullName.charAt(pos)))
          ++pos;
        }
!     int packagePos = fullName.lastIndexOf(".", pos);
      if (packagePos == -1)
!       return fullName.substring(pos);
      else
        return fullName.substring(packagePos + 1);
    }
--- 1090,1101 ----
        ++pos;
        while (Character.isDigit(fullName.charAt(pos)))
          ++pos;
+       fullName = fullName.substring(pos);
        }
! 
!     int packagePos = fullName.lastIndexOf(".");
      if (packagePos == -1)
!       return fullName;
      else
        return fullName.substring(packagePos + 1);
    }
Index: testsuite/libjava.lang/PR35020.java
===================================================================
*** testsuite/libjava.lang/PR35020.java (revision 0)
--- testsuite/libjava.lang/PR35020.java (revision 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());
+    }
+ }
+ 
Index: testsuite/libjava.lang/PR35020.out
===================================================================
*** testsuite/libjava.lang/PR35020.out  (revision 0)
--- testsuite/libjava.lang/PR35020.out  (revision 0)
***************
*** 0 ****
--- 1,6 ----
+ inner
+ PR35020
+ Class
+ int[]
+ Object[][][][][][][][]
+ 


[Index of Archives]     [Linux Kernel]     [Linux Cryptography]     [Fedora]     [Fedora Directory]     [Red Hat Development]

  Powered by Linux