From cf38a465eca401054b78e6182f0dced39418554b Mon Sep 17 00:00:00 2001 From: Andrew Haley Date: Fri, 23 May 2008 13:04:18 +0000 Subject: [PATCH] re PR libgcj/35020 (Class.getSimpleName() differs from Sun Java) 2008-05-22 Andrew Haley 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 --- libjava/ChangeLog | 8 +++++++ libjava/classpath/lib/java/lang/Class$1.class | Bin 677 -> 677 bytes libjava/classpath/lib/java/lang/Class.class | Bin 15581 -> 15551 bytes libjava/java/lang/Class.java | 6 +++-- libjava/testsuite/libjava.lang/PR35020.jar | Bin 0 -> 1856 bytes libjava/testsuite/libjava.lang/PR35020.java | 21 ++++++++++++++++++ libjava/testsuite/libjava.lang/PR35020.out | 6 +++++ 7 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 libjava/testsuite/libjava.lang/PR35020.jar create mode 100644 libjava/testsuite/libjava.lang/PR35020.java create mode 100644 libjava/testsuite/libjava.lang/PR35020.out diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 52061d2c1eda..37f12e2c8927 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,11 @@ +2008-05-22 Andrew Haley + + 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 PR libgcj/35020 diff --git a/libjava/classpath/lib/java/lang/Class$1.class b/libjava/classpath/lib/java/lang/Class$1.class index 09e3e86f9954b60f48813dff60c6349d9a59a6f1..9c4806c02337392a561302e5da00c839f9d02193 100644 GIT binary patch delta 23 fc-mXax|DT;1`}idWKAYV*2xSUtWzfEGnoMZPb3C0 delta 23 fc-mXax|DT;1`}iNWKAYV)`<)ptdl0^GnoMZPU;3L diff --git a/libjava/classpath/lib/java/lang/Class.class b/libjava/classpath/lib/java/lang/Class.class index bdcfcfe83bda48e1ab9fce5acf4427d4f3df4cc3..ce854558e542fb0e5114f54b01889a3be01df88d 100644 GIT binary patch delta 2035 zc-n1MTWnNi5dLQN|GV4m>1A7X+iiDyvmo7FTIszD6lw)2>~e`Qq!EdWu3D|Fq16Nv z(?p36l4#^SXo(VhP+okfA=y&7CL#n3;tlU86}(?iY4L{OoU==di7#jV%glV=%s(^d z^yY(`-N!G#b^yS9UiGTGxpeo&(o!-$Gw36XJLz*m$n*q4Za1B#GX`>L!rWIDcAciP z2A!i%%=2ZB%jO4zex&crM*>f&UkT-AqReL=47hBo3kLl}KbuX#r?dVr=ui5~JQj>* zU!u!S`iD?qP6R6)23;}h%J zWiA)z8(hF1bAClvz{N!d&%zc$&Yc7OLy6x0!IjC)PWD+;CW79!?*4m|n|gM1Jo&)Jn_$XYV6kZ>#pR)XH{)%7`rEvxt!C|SV0A&FpG29O!W?x`qMk&f`rXcdlSKy2nf%L& zAuAGZjZDlUov336TM?Eak2SOTS(`rw&YIS8iX>}_q)UeSMAzc7V=udU#@HPTr8uW2 zst>d%N5?J{`*pA(9*&ID--Jkt^UTh6@31Ij9ca;x7PSjE__MsKVbwfaBkBzMohdHd z4xisy#NHGak03|R=85ULEsDI#t6#iwG9pC~j~u;{3a7X<9*K-|kg%UFjdMBU5Le7R zK!?RrJK@qU1avm$iVV-!ZnWqewCg;q)&*FnJ-A;NVo>&vY6FkS-4oi2t=hLOTHIX8 zRT6Cg23OlzYQY-5PBO>RX*Kql1M3jr8aZ=fD~fnF&oN_Bf3lLV7fV~8=Zb#%uGY$- zHN!G(cTVi(DbOdc`Pv9-MC?m(I2JyFlD#ggLyt$IlKr?y%_m=35s;5#M*^=y%eo_85Zc9CCqLl^$OghS6QY<`^{z7Y*>D!?7dSvU{k*7D< z(7v=`23jMBqf&O)0v2Qj8e3D_2A03Z)kfe2Hi7kE+m8{FI#_rF^R#-!@yax~RkhFq z*8m#RwQn%Y=)y8TxWgKnG)`7E6E|gKz1hDoaLeKz39WMvcddKXo~M>qx8+Gc4MRU` ddrs5MrLEj;A@d5G;K~fq7{_fJ;>9*D{snb}Z-D>+ delta 2060 zc-n1MYjBk16@Je7-Z$S~zT8-H+3apEuu!rah$Q5;fgp)W0*S=&MJAf zGyHJkw2Xfk+o|u=66#?6QTfAkaG2Q;5o+s&w(6*@*S1l-v}$QlQM|NDdcJQr8=djb zp6`9n?K#gm=iT2PSU3>))0KzL0@%nmJQ(PxD-GZdde)%{dX7+S?x&D7)I4-@Yh4{V zuQ~KL%-i%jAz>~?5`h4nr#Bsx(pzRWlJuRYe>(IwEtsbwKbFHqhu))qo3ZFm)JKGR z(-)~Wi_w5+K6dDR`oL7iep>QBhd!q-%mcBMf04;%5E{&$ScBy-n_&IJafeX(-SiLB ztv{Ham~0(PPwgE^-xlB?Dgz)ccep~_FVshTL0;i-h*z4jhJk31s~xVvK|=7``?AyN ziR{$Q%mJIjE|5L3s-B_j-pu}q>CDY;l!(Josw9LarnY6X`=-;=6Z^8G`!iFS?6jof zdWY`j214z+=3#S(T4|nXC?(r0G<@FH>hOBZyFoTO+(zYu(ut{&%&j+N_76;^r>0!Z zCI@$8m;2S}aF+=-wfTD;-b`P(U@q2Io83*L{;M7Oggzy7nC~}rG}}C|RQF^$drPYq zE50$n{d}!U_~8I==OLR1O=#6>YX|Q<*|X}`EBpaiP}0n4^Y*5JEj0(3j-f<;lhGV5 zoT76_7B445^mH^w&-BIkSMZC1)QMzF?Qx}eT38{!{irZ|JKATiLt1Uechn#z)eeM2 zlgP)%N>qt#LqGi)Ez-0UQuG&`1S5?QJuhDts>Q+)UEaP1AfgwrOKzIvPAuj8BE7V9 zrkCaX3jI~=*c~)rMm+vb3t~_%20xS3mdNHrj(TR{v(7-DNX*fz!^v~-C31M+#A!M| zo=DEo8zU__`p0rT^{@f;3)t!~9CZYh>X)ce_o7Z6MO@wIRo0jfUZ|`Rwe-$fue3Nc zy-WWRz{>?S=L-^i7i7dA?QGvsL^1qT6#rR9u@-(o@jF5Bdj!;Ds8^4pQJupY^#?So zKVpM=65Z-4b9GnE%sXD{?ypI`rI=cFNHlrwE_oE)UZ5yeq{TWzAAS|k53WZj^FS;SbZRDTtY;Bh_&h?Vc`T01M&B5iEo61D|r z1ZC`FZO(RwXDs#?tpXy+ePHq0tZgLO zGEY|sEjg|nJ7`g?O5MNsuG`p=V;FAn97@i1YO7Nn!&TvuD%E!Vde0+eC&PAaj;oHK zI&6nnKI>)?l*{!J%Vc|MW?~~PE%V$+I75r`+{AcYdbAC?qmH8m+I+Z&S94s-kHXe+Kr?DM)7msR)KD=g+);?E){ zrN0l&A}-?L9B&v-K7rcPcyBy;3YX{bS%@CV;YyC^gs^_qERrJH#m*d0#i_$QmulSE z3tMkNx$Z+qZX5YB|E(?M-MG8o9@8?hTJu zEOj0?c{2f2B<47^v>A)T$z}3axG$R?7yiEqzy21=^lmRpb>6SI2SMJ#w)stO&6vF4 z?##RY9ZNIMUJJ2X&aRh}NalF!6S82(t>eW^CGO7XTfY?DDNeb=mWghTge~6YK9@94 z?%Wc06=a(k-5kBKe_YDA<`iEy_MrEYx>4O(hrSDr{<#-9znP_Uh=<+GJmTTIzJPNV Mk9t1D{a#-DA66oFy8r+H diff --git a/libjava/java/lang/Class.java b/libjava/java/lang/Class.java index d59e83ea4ec3..868e370b819d 100644 --- a/libjava/java/lang/Class.java +++ b/libjava/java/lang/Class.java @@ -1090,10 +1090,12 @@ public final class Class ++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); } diff --git a/libjava/testsuite/libjava.lang/PR35020.jar b/libjava/testsuite/libjava.lang/PR35020.jar new file mode 100644 index 0000000000000000000000000000000000000000..bedaed7ecdba7b3a38f6411f9e1d1c7d89b0873d GIT binary patch literal 1856 zc-jl_W@h1H0D)r(+btN704IYegRg6dqpqi)n|^2rCj+zcQZo+_4y|Be_`>*wF#xDn z1gMe&thZ8CQ`G>-GXi1}WWBzQex7cw!6ACSZdi@^?0e?4kGHPgMP6@Rt#fD2Zw@lJ zV*H>;&&yZG)AwTOsx3hp%^okNJ)0`Fd|5#uBLk|nvXitwy<%iw2x4Yn;00P65M*p> zU}T_|oRe5wjMcu}K;L|!KoQ%1ro%nK-2oS_`RA-{h+5FA-7{NF%~x%!p!20GdU9V_ z?g~o9G?1b!N*gJ8t zgAYdEES~CcQ1aW-+fy6+9;wXayZ?G(!%LOdw|pvteltCNwb3~KHYf92{##qubxLbU zX~ZyI{b|89H9c8Wl}W0vbG=FKwZq30t)0JVzud}uMe{n4M__BHiRVgKcBZ3<}j%t|%rVAD$oJMfC< zxMTd@OBeUw@O)hsa-zU~kyhMV3k6~0cCHg*{F$$n%NHtCsv&!X*<^-qYO623F*LEMwBox9D7KOZa4ZaNz|$M1>ys-35Q z=C6>CeehDplzr>bQir|;K2v6{ypSz;&92c><3Yza*{Dam>2U%Y`SDe=R7lQevCeHej z!lKA}Fl^F8Z~w<37&jg+|Z4?|s@aYn$Bh;)iW&pLpCoO$73mr2e=im9cZmycu05w@Q1( z8$QurI_aUP^R|mJh7z^)N;)ZlTN0C+7ryaOm0NT);zhdMHx}osA7kJ3?wGc5K3i{r z8gtvC&2p>Ur&ulG+v;}tr@gf5+J*9&;df3+At3F$^FNU3QSuZA5VDlqCryVR_`9B$kc2)(Hk%PW<`w*%e*V6*ntrN%+CzMNRg45mzP?ECqhC4e7z4lh|HP3Bvv?B z`t|p-&itVVkFB5lXsH5+qwCV|zA+`jr6zQ z&p&e?5G-SnaeDvm-xD3XzV=-jA*v4q7tO4h`Zz}H{Nvjt%Qm%L$c-zp?cuDu^y_@& zo(rvcdYlhm_}`r^w8!)3k{W?&&LtOkA1o4gN@#u1*Ryc`3#Yp}&sMIIOP!^CNI}zh zrhn>E-}_zjBD3!NSNinm!NQo3nY%6>6Ww;%dGf5=*~zn>Y+4tpyTMgpZR3TF{0Y++ z@BG6m;;J@3v4&;Zk8d;Q9(u^s^tZXZjlU)Tj^zvEvbEP;k4QwxC5SRx$8X-z$GckS zy4tqJ_yBK4CUIt51vf90CBX335kw;u literal 0 Hc-jL100001 diff --git a/libjava/testsuite/libjava.lang/PR35020.java b/libjava/testsuite/libjava.lang/PR35020.java new file mode 100644 index 000000000000..1850da79683c --- /dev/null +++ b/libjava/testsuite/libjava.lang/PR35020.java @@ -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()); + } +} + diff --git a/libjava/testsuite/libjava.lang/PR35020.out b/libjava/testsuite/libjava.lang/PR35020.out new file mode 100644 index 000000000000..73eb0c917fc6 --- /dev/null +++ b/libjava/testsuite/libjava.lang/PR35020.out @@ -0,0 +1,6 @@ +inner +PR35020 +Class +int[] +Object[][][][][][][][] + -- 2.47.3