From 0854f1891d6f327f1a3625f3aaaab3c595377569 Mon Sep 17 00:00:00 2001 From: Andrew Haley Date: Tue, 4 Sep 2007 17:54:56 +0000 Subject: [PATCH] re PR java/27908 (VMSecureRandom generateSeed infinite loop? (Regression)) 2007-09-04 Andrew Haley PR java/27908 * testsuite/libjava.lang/PR27908.java ({run1,run2,run3}.isRunning): New Method. (main): Fix race condition. From-SVN: r128094 --- libjava/testsuite/libjava.lang/Foo.class | Bin 0 -> 390 bytes libjava/testsuite/libjava.lang/PR27908.jar | Bin 2452 -> 2718 bytes libjava/testsuite/libjava.lang/PR27908.java | 18 +++++++++++++++++- libjava/testsuite/libjava.lang/WalkerTest.jar | Bin 0 -> 1210 bytes .../testsuite/libjava.lang/WalkerTest.java | 15 +++++++++++++++ libjava/testsuite/libjava.lang/WalkerTest.out | 1 + 6 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 libjava/testsuite/libjava.lang/Foo.class create mode 100644 libjava/testsuite/libjava.lang/WalkerTest.jar create mode 100644 libjava/testsuite/libjava.lang/WalkerTest.java create mode 100644 libjava/testsuite/libjava.lang/WalkerTest.out diff --git a/libjava/testsuite/libjava.lang/Foo.class b/libjava/testsuite/libjava.lang/Foo.class new file mode 100644 index 0000000000000000000000000000000000000000..b51c95fceb6609927d01be2c3235dbb565d6bb42 GIT binary patch literal 390 zcmYjMyH3ME5S&e%7)-z+;Ze{~CKR!#gJ>+JGEgKk_1T=9OAZ^^XTA$65CtE=M%ZUYT-STfdG2%G_uS9(oZARTN6!ObrjDUo;%b0H z00Za&cs)~;9QHg~e!mp}paU4;n3!o1pzmQue@o_}M*JY-QRlH}y^E$uJbDe^-e!oC zLw2*{Jh%HA+*d&a=mze!0pA7L& zi8<$0uN5!gw^jIA=BMdW-$6TmuHuHz(Jipk?wTm6X(*^8uU@nB_I5LAGvPLdXcOWM zm13aGzy_RYAGlaY>gGK$`S8#1jKaIfLO5l7%pUr?B+p(b(#FYb4>(wjk-9j^v?XIs zxju!SKaGO(D$5N|`o7g%&-gldy zUx{fLOX<$S5$p^CGu_J%XHGSlGQB^4%&MlrhBY7@mN9CqL zqL=K*$ERF8t39Yln2@%|Ff^Ip|GY7{_cPf{R$XhCQ#>OHrIA2$};BhW!RqvSp%V&n2EvnAfIN0M{DFSEsqIN0I1eM4oVs=UJ8yrS&=)|R*QMcJF zBTD>7CEuF1pJTula><GwB>MgVO}FHPX3Qv?-X>JA1grED>Fa`CaKS zXLA&;>~4vAMX_1;gXih4HFp=+br=Xey{Ssi!5&>3uTGAV=C~`2{oC ztf78rx{K9VuCQ@>JlV6S6cbQ!cC)}f4Nl!_DXw50xp1t62=`UgLo6<SxgSr%6-o705^=N^ef6#7TA_Z ziK+;xAw-AATW?lk-9{1GoW1Nh_9fWw1#A~l*e8LC~xBf*N4W45+tYRxTH{cegb z_ZyZgl7;|TUHQAW$pP+LK&?+Q;sfqQa=Lt9zcD!za2q?74 zuNMzk+8&%gusTQ{+?;{|9`aY(GOGt{Ck<`SP!!LYDDzzb6-_NBoHq0ApXqa7u_m8o z^$az&>CiWzG?np`7$jgKdSDQ%!YHFuO$Q%w$mR7%FeLc#1UD0?^xCBEu)>2IUG(~* zNo$WjMkDX`d^*TXn!livJ`x&%{yOkk6qwS1vY_x_h^Sgelr(<0+57d><*xJ5^_480 z_R|U1#Nt7|8PIJB%A)f_%TespJCkISo=)I0$h?n$5uG~CS4@9 z$;Oqfp}3=vk;qcynA+vl3ERgluH>t?)GSQR`tpL=9NP7>l}h!qJ-VN01nNlp7A7!d zd;B&!OS*I=#6k0U*UbddsT(Uox@7+;PU0hO=j+zty&FL(nk8@c@zOTa`)bOqLr&{~VHjOqZtOV{v;z5lK({I{Z{Als26lY{-Gd&lry~k+hA8K_)i3Jj6b?`q0Tefm0j?DE9gd|2&5Enpo? z1{yi}JSDA_I{i5(MZL6)&r)V1b2D{_y=LyWaCH_ITD%J7m97F2p(w#yB@B$4HWHj+ zAL7@~2lcV7o`CR|+GP;@vQ)*Q;^zll{XkrUoiF76Y4C8`Q*OD{Yp{Rs%S9zk={Sv? z?8G9?TKQY7SjIi!^z8Ss zM^M~LPCxXfWxS5Gn+g{$1>Y#rorY9_C>N{r=@r?A|G@Zk%Uy6ej-_<+|ynpzKHJu2L( z)d&ApeLxTo;HV>_Uj7D}BRYy77Ki4KjBrP(hdm0-5B-ETb^3#P$Q>Pi0?o@DZu2xR z^Aio!=@Do1EA?AMk&!xxR4pK2+Sy;Z2rfzh literal 2452 zcmZ{m2{=^iAIHZw#$b$nG}IW`V+K){M3`*DWVnWiF$N<`jB&3JgBY5>P)eH^xt11W zNt7j|>?)P)AyeJZwPo#2-R>37|GwvW&w0-|@8|cP=lOo$-}&KeczD5pZ%rfusrP;G z<0QbjVl5m^HLUC~DBPB5)f$1sJ)GCyy2Q`Zu%>oa7z@0kCKiJw22p&-)G&=-$e~n9 zaF78)OA`$?3ndf7$le-kDi!Z5e<^>8kg~xbFxcUS-7N*-I3vQpQe9Z9JpRz{}q5vmXp*F`Y?UW|75rq z=JcbUQvumoRs&(F8HW6=YdyXoO+xA1>Y ztqFctK_OhlyeVlGK%Z4k5S-kgUTF0hS0#EK-QZXxhgDy(6 zB7wq0^lwO=qzFEBe!th`Lh=(!;oOq29J_hpHiQ{0ut#+g7y(}1M}CGGmfB;GcQAgI(RKPJ@!eS@Yb|!`1U~6W7K!{3IU}B=g3dm^9*= z?9=_^{CdO=5z7H7W$zUoD2L4?^o-OceY~F%X|~xSZeAC(+*WQcR+tS1YVabcJWDbNgITE+Je1 zfC|UGVw=w09ZCz*`rE$bv`*_L6N%H^yUWV7DqTN*wYM-I*mH}P$70~1=0}dGvfC;k ziurbmfl)AzhRPmf^(@Jf7_!zb7tozjN!POz1xs{DI?wnYruvx;X#ijC*2sgJ5R0KF}8?4yuCvHTBtktbtdM9tF{DmwS$497i-r_Far72 z{62xQ`rWJ=)b#G;^N3qX^PJ$zNTO#P?!~$!PI>G-w;lpwR+sjc*ym}!J@I-lKsSgl zu{RC{eAH=8vYgS1H9!fn8w#r2Z*!j{2NkB1m}(uyEZfqu#rV4efU+oKOoj)6MpT* zwADPbhQD7udvB+A3d}QE^MbyxlefiPH8; zoUS(l0U?OyMmZ5_s?h$~%#qh(=;xPMv6arX7a+FHZsud)=F}*~vrPjTLR~R_N>i%{ z^u!}fiLr1kJHBb`WL~&3)PC1Gtu|ZLARt9xzi%a4r9Ik%bSk(aN3PrmXAO*WDmiwM z27f-^AB1owp=}sX@9_hx7W~;sXTIxGvVQCLOMF!OMLr&TquF3BjH_3w)-dHjfIQvt zWdJh0^0K8d>tN((W&$lg(|7l-I^&u&0k2pi_gf)z2J&ziIlED5AszBtYU}$3#QwQ#Lus@D1Xctm6C%jdlqiUFYE}R`S!Rgy}kj~!% zS)^g@xJ{v_J#-oX5Eg@_;?EQ$%Wv#?(F{}QO<+#r0?Xm_QF`9h>D<_|s#A)i-IX)myg)Ch z$DRVs;M5F@nL4GR52()3C>S?h$~K|maupPl&~zv6OAYJUC} z@#%9-FUz^a2yL+FW}OXVv2KRXok+%NFfBi+`T5cmC<6&p>1ojq))aF%lo29Ie(9Sy zDp~VlGzX}RnG=0USDQi=WxO!%@CrJ?axW;2?GeG*aB+hH|6L1k^4U-Ar^;X}w!Jpk zWRy9>f3cq`h0TTk|Nnn8!fDQMOEs_^-JXCq(StnyqCchM?fmxqu*r{dijf~nf8&2- ii|zb&`)=}d;1>RenQ=CJoaX=lkaL7_EDr{KyZZ}hfWnFZ diff --git a/libjava/testsuite/libjava.lang/PR27908.java b/libjava/testsuite/libjava.lang/PR27908.java index 09f96546f98..addb1d7720f 100644 --- a/libjava/testsuite/libjava.lang/PR27908.java +++ b/libjava/testsuite/libjava.lang/PR27908.java @@ -13,7 +13,8 @@ class PR27908 (t2 = new Thread (r2)).start(); (t3 = new Thread (r3)).start(); - Thread.yield(); + while (! (r1.isRunning() && r2.isRunning() && r3.isRunning())) + Thread.yield(); r1.stop(); r2.stop(); @@ -45,6 +46,11 @@ class PR27908 { running = false; } + + public boolean isRunning() + { + return running; + } } private static class run2 implements Runnable @@ -64,6 +70,11 @@ class PR27908 { running = false; } + + public boolean isRunning() + { + return running; + } } static class run3 implements Runnable @@ -83,5 +94,10 @@ class PR27908 { running = false; } + + public boolean isRunning() + { + return running; + } } } diff --git a/libjava/testsuite/libjava.lang/WalkerTest.jar b/libjava/testsuite/libjava.lang/WalkerTest.jar new file mode 100644 index 0000000000000000000000000000000000000000..64faf04df20c31b896ece24d3e926d44846ca574 GIT binary patch literal 1210 zcmWIWW@Zs#-~hr|jVk60NPv@pg~8V~#8KDN&rSc|DFy~+h5&DN4v-2asImZ@nni#r z;F^6M{XE@VgG2Ou-9G!CIql=Et9OytTUYDcne&^246YbIcv__A<*VcAd$DvC3+Ig2 zk{TH-)1PVnNK+GkDjqI2eaSO1?TTlruQNXteJo-GyP`a5)qEGA9UzQw#hgl1F9-l- z!xM9|Q;R}Ui%ay9a}tY-a|2F$9d;10y&Rs?^DXuD@4sHL5i#y1fiJXH1gz{>?J4`} zij9gVcil9-sDKa5e>6U-i7vVndB?i=o$d2`mhDFFhS_`Td!cBI_?pZyUdwYvZ*-L*xI=)qiDL z4qe>Pp!N0%Z^qGAEjoLTi5faT;(jN=CAM;Nt83ZDzT0 zENxx9Ihr??yb|%`y?rAwV4l*6WqVie`gz|#*{t*TUd2qGpQ4rbzOmJXZ%Ik$v7#a;Vfh_AKy+;{3@eA=-Nv z{ph>(R>E6Zr+>pdj+Ij!k0@Of+9*`E(S2s3{X3f5-_<_Mj&}?Yc6&VILCewRFBgvG@ynKQ)-5Tj++FFDvQwaQT8m@I5~t&fLcZPW=!;y{ zb)nND>(pVPK%ut9g^S4Xvk`OqzsYZB7SdCDcV8FQ1dJ-LxS=wDu8D~P!2}dikyo;ITitIflRnor2LC)0w}j3M=&V2A;4iE6Fu)C j>jotPWN(2I0Rm(JeFRSu0p6@^ASo6g`~;*oF@tyjTc4z5 literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/WalkerTest.java b/libjava/testsuite/libjava.lang/WalkerTest.java new file mode 100644 index 00000000000..f4e41fecfa0 --- /dev/null +++ b/libjava/testsuite/libjava.lang/WalkerTest.java @@ -0,0 +1,15 @@ +class Foo +{ + Class bar() + { + return gnu.classpath.VMStackWalker.getCallingClass(); + } +} + +public class WalkerTest +{ + public static void main(String[] argv) + { + System.out.println(new Foo().bar()); + } +} diff --git a/libjava/testsuite/libjava.lang/WalkerTest.out b/libjava/testsuite/libjava.lang/WalkerTest.out new file mode 100644 index 00000000000..9b8eb003024 --- /dev/null +++ b/libjava/testsuite/libjava.lang/WalkerTest.out @@ -0,0 +1 @@ +class WalkerTest -- 2.30.2