From 3824b1c24717b79d48bd5f965bd2d34569dc2195 Mon Sep 17 00:00:00 2001 From: aclement Date: Tue, 7 Jun 2005 12:17:30 +0000 Subject: [PATCH] Fix and tests for PR94167: NPE in reflection API. Fix submitted by Ron Bodkin. --- lib/aspectj/lib/aspectjrt.jar | Bin 68675 -> 73096 bytes lib/test/aspectjrt.jar | Bin 71688 -> 73096 bytes .../runtime/reflect/AdviceSignatureImpl.java | 2 +- .../runtime/reflect/MethodSignatureImpl.java | 2 +- tests/bugs150/PR94167.java | 26 ++++++++++++++++++ .../systemtest/ajc150/Ajc150Tests.java | 6 +++- .../org/aspectj/systemtest/ajc150/ajc150.xml | 5 ++++ 7 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 tests/bugs150/PR94167.java diff --git a/lib/aspectj/lib/aspectjrt.jar b/lib/aspectj/lib/aspectjrt.jar index 0f28a7e197bb3650b3faf5fdac8518871101090d..03cb6fba145013c0785f85d466ad46edf585133d 100644 GIT binary patch delta 20569 zcmZ6z1ymeCvo?&oySux)1P|`+?(Vw5CHSJjf?IHcLvVL@cXtbrpOE{0_rCw0GyBw5 z)pqZx?yc(Sd1iXjAR<~J5S3)XA>cs%z9=jP5)dgU-+}Gp^Z&d-yrZLwCG&qfYEXm! z_5Z@~0aY9yu+RJ#fH^Qe)4!2 zdjGV}sFz>vw?E^OHM-vQroQ-YwCtu~G5wYnv6nFpIF8VofiBOHew z8y2q!aW^n;9(phHqEj(WJ4Z~eqHqiljn$0&4BH;TNxkJ605oC5w2!O?*gg2&-HI45 z7{cg18Eor`SFVuIkY9rzC18GG+^oR0IFW|bcQ&JSSDC%&fV@(Ll#9B_GX&swUjWS7 z$aBrj{OGcH*)!z|R4mbEW+J0QF4>3bmL)2Li}wzGhr8WQ2|w?SY75$;3nhJ)cb?gW?bw?swi_9oP~G6L+lOyR zX;idnrqmbhu_D{+Aj@T>=OIFKBm}%4F3LxGUx*P)N4$MS8eL zJKDIx?C3V;yG}=miH+=7P?sQ2(iJALMh7KCP``CpG?~$~F1~xaC-IupHMwtXEkfT^ zlT^)4;#W*bu%3ut4BkTw(-fX7e?_zJwlb=ya|9{7V1Zu9aBrX8XHwhm?%S1FD0_F1 zMeQudwe%AxSsbOzh;QrJ2iS{GQkP$X6!fiZ3t-bB{Iia8fe6=W#fw@IP$~3uE>kPC z#uZ+nsC0p4CZW?tHA$#6#+e%X`LIk)F6|!Hl~(vf_=YnTO3QPgmba=tIjPyq{0=>= zM0<{YtO-Qr%2x@i8NVdNe~%HpsP3pq=)j?tVJ7jaGD>(ejt=b+2*3$b^8?4lMBbri zd;77??4>9=Avjwf0?p-?3_C+9Tpybm^`PHFT)hM328uZmG}hEyOQR-0jU&XI#Av=3 zZ@upp_(4jwYt zo~O2n1IS*BYJhusOE)jhQp-b5O2q6QSJ5`yVCamb=7$;QoA4FhxecdT`;ZPQ)Wui( zh;!-QrZEu0d%T{i{^q$wyryFmdlg<{3l@i(*WLj8wUYnP2VjR-hHapKHb?jEr^RJb z7WppuR7?fyW-OB37+Z7mswpT!BIp}W{VeW-fOjfym3G4-mI>j)5-5Xz!)F&35ci#h zp`w^_+k7Tv8IP-O8@fXe?O|B~pXDuUj29Jkv+hjJeS|eSp8A2sE^s?v-$keB?j+Yt zh~2cy#Ka`eTEOwoJ_$iZX5WkHvlmE`4kEjmFl)lcX{UiiCMkSx+V0bxS-q zn^zK|!cs8(gC0?n=PX>7B`MVXO zoz&J4c><|Ktp@zg#@H(UhI{ zk?d|xf1(n{2=1>}4zyfJrRXWY z#e6NXQdvMvzw=NbO?J^Ghjb-1KjEi_y{}}yIXGu1Qi}FZ3f!-W28%Mucc?R{!eqI` z%1i+CLt*W0fAIM=s&9O1?^}T1u)fhGF711z6q=>{p*cc|Yf&MI7=Pv$Ip4zCyx8-?TvVMZOJ3VOeCKJ+${)Fzry zwLTYM-idkTzO_Vr2ewWCf6)?ok9n$aA1^ZyqtZne`{q9Gn6ynF8}hX({*Sf5PR~W& z=@Q*zmipDk?#q12RZe-(uVT8lmCPzT+#F(BqBmIsa=hrd3M1wb(+&00?Ro%WLb;Vo z4w4?ACvfF(c(uQ4ln&{xIzqz<@W>L5DNr4Cn5C7jm=@8go-)O0aYk6{wJ=~iX$*c~ z?WeyEQFRdfa(=(ZsB!e*o4K)3yP<>mGG6vb?DA$c^2n}!`JmSKC+#MNamVskeA}H} zVx#WpO7Z9lp0-~@Ut4G|cFurp_YJ?CC8aYUf6l_H(gE{f&H1=3_L1|Xa@e1e{;sWe zpXK6n&nZD1SfTGC%~~sVCKO`yLO|@gd3{~+t%Z$a-i7cYQEXMNa9wl^#S^0{Q2+&V8Z{i#9(232*3jD z(+>|I&eI3R;og5>1YX|$i|}5#qz=3)SR5lPV1u z^oK@^IT!Lnc;TS@*B=GfzxF7&^S_<_!P5yivcTbt=+Hvf}sSjz$i&;jF7)flkAnhhFAJ zedix9(dx{@3BaJTl`cF4{O)cf=#GNX!iGq-cp$OS+N%x+) zAPs3IG3{su*-E%P%Nm+nH1`qO(;5Ax6fxcF;=j=zCl6x;7ae#+GZ=1;7bTnGSi{wL zcMR4k3}@vpZo2nyWM&{}FsxxTZZC#ur`do5+D8jfq!PQ8n9P0+)o3j!i=I@Py31uhireBMpgY^wIrpHZ-AKDk>cTW~ZJOu{3-2XX07D%T7m6)1`g92Ww86f)iQ4A4%S_}$-?jllE!P5JhfOmL0=LNk z-Ch{up<*;5+=j4IhVC~GEfqPVX5^CMH_3(m~&4Em$Qf09nOyGJ{gg%EyCIklix| z%dT6gx^N3N3QvZGQ;Wvd3t5xHF4zPYQoVOjM7;+oJJD99rxNFEOBT^^%NB71=0w-n zKfEmHg7f7I@ez(-qUqJ4{0 z!IP%c@4_kffEGx+9SM>aZg@nOlb+!cEfPQV%w(@!t)YT!DCY(EE=@NuB=;0@TU2uuzpANVwsz^pxA1TeEo!M&hJ~Vf7jTe*ZY=6{bkg1h)brW z-4n;J(Em4ZSIP_S?A+uw@#pL`Z)Aw(MM0H%W$7W+GNA7V{eixiNpW*Z10L1jocxN9 zjK`pLeeZe7-MNV-Q#Svj-ugX{d|ZX$T8C4%&||(44?Ho+H)KKoJoKs7-~dyvU<>B> zJ9dnaLqhpX1qE^NsaPu~Vumh*&eRAx=FLCyO#Z-ZRER^~C?Vd z@M#&NOu%Mna=|Y~A!~V+dP5!BHp+y&rjSO;EShyvLnWP{A7r!!m8xyBFkt!YtQ~P* z3Oqg^CqWRBr;(N#BSQ3!rAA*&*6N%T&S;FZigabf2!@m7& zsEJsNMY)oVwMGS7NM$C&r0DZ5u(9D378a-$7T(D}Edc z?9h~6@h#Z%M>EcX7)*qa$YV@&Ry1oRo#m=Dj+$0h?sQ)zQ47mxQdgYJg9ybjEr`FM zl$1nsZ+K-YMdeF1L>-J+vaA>Hg25a);`=G$J=r+OFaM_ftyyf2cY~*@?zThTRW7?o zHbOc2v;Dr|{}u!C_goCA&iawo>v*-M!NC7&kaPtgJ_LEgLAVbA$4362#>&C`pD^ii z2>M}ab*lmY5FEWQ{$=Md|7K96_jcIaO?4Uy|DIF+&6yNHKYT=B0004?txB$r@rEbL z2RnuZRvTT%oP`pxQ&KWI%!Y)A17XHRXrCx+MRgRLHIC54T=fPD2&^)llPj5~Gb|qF z{u95)+n9lpNYo3RJMDkod=T)!zajWQ0eE{|A+{Re35edpvB<;eW6*VFUG4RybLg84 z^d@Q}?tvb>b|RITH;D#_I@UST1|jnrr4!SiYR7Dn6a8SFCcIxYKOxe6z}*79xN%0v z+02bnRQD_DR;sBa(L*~g%F<*>Tw^1`PtP;PWQ$#-iOS5-j(1gsGl_L7kNw%AiUs$K zM`jr%Stts+HBw~WqKUcq?ALP}b&{rGTxQ-CEGGC?Hvb(<%0(U^V%0y6UY`BKIPHrPlx>*l^`d9ks(fAErpdeq9B#f!5l17N!ko)kqSdf(AA=TDA>+R6 z9@!oa)4+c_&=05B&n~X~a);?UzHJK)d*QWKnJ{LihMF%xc)WuTlsORDwhOJ0JqVjv!!fQ$0nC63}CXRdLE6#t`WPwJyg&w`zQ&wQhR zGXb@lU-6dj%lFORUj-#3H^j0AU601}kIS5WCoxx`QYy%rmzRG|(e-{0iOHUmTqx9> z@kx%~IY^2Ea*$i_&iHz4^!$JOf61JMWg@6)JDN{E)HnR)IRu4tuJud6IA0G7YtEbR zFzDAyl-oCrO0BW4_zHo(bN+c_zg>L3)>>xG=yJl7P0B8f6P=nxTBL@jO@f1(b;!nQ zvt?$zZVt_##U&DNmDab0Pf5+IsH#$;iP)>NU&j=31J>z^s`Q*FuM}M63AttB%QIqM zLrx=fFH!{MPulyk^~ioL{H%n|wCJ2?zOb7GNFJT&ca>Y^1CGHrg^y)!PrpxCXXY-| znY}__qWVy)kQ5FoGmd`z?z{X&f7N8Xj5GBJ#|l;IFy-r3|V@pyFhoB*67z?xJF7} z;EM9ldn5QLyAv6=iL|O}yZ*kdv4{j`$CncnTY+~gRB7MB6HOxL&*m~dIn39?(Y?`l zS|pX*wkN(~#&b5fzc_4a{CX+s!=N6lBUTW02*|3jjChSUI6CjyX{#^w6 z;i4+(B7%Sf5df=6@qj3au)v~Mw7TFBbHtAnc#`n#-}*5k2?qLOKMa_`@`3#soFDj> z@#zCaG6g>{Fq0GgV>|A@_Tlh=Tc8*e)(&pwE)K?a|GgdeUyj6o9r6F4qn)wC|8CyF z{N3fNYt7UIMf|(ZhvZiyP6rACatkERW(J6xo7x$>m`gZnGQA6~uA#~!GCiL#1ZOmD z{O5EaQI++QJWMAm=yOpaZ3|=ITE2zJrp1pZ4HZlpx^6)~DsNXrs53OB@nWBQcQ!j- zFjs*n)SMWvh|ToGe&H@+0J6eztYl?~D-`C)5dIdkOpcv^EJM$)|LQWJmkc?N2cTE7 z^UQ{@5d*G7FsTn;hsotJNtD)OqzwR@ft~9l3koquBIY(p)1mYI(#6r^5U~LTLl>dK zBvL*?&K}-$GnwtWf0Qod%JOjG+qz!uz1H9%kWyqttxa7<1q?cnRq*O8c`{IdbnPT< z$DWYm(dIf_xr3BK3nCgLw{ee}n&4n}5~6^lYPC%#>%+X1lrNtG4HJ;n8DNu?pm697 z4|9hzz%+#Z;A!AKcluQg*!gOQd5&!R;_#4;0b`u%e_qaa4AH2Za3>+YT zHu`_!tLkXs_CEnm5RnCEMF};uS*e(_`FTe|78Ra{jeT_}eHs zgYmw~`x5#wzgHW1-lR*6O>95oVRLWi=8Uit*F(V0*UH-pp5u@+ub0-gTU!*YVh7l& zrBGN^i2GYp$6_h;6JyPA6M)7O>vQrLZ87FJv5 zISIFd{GqhDO~KJL&WYJpCM?0*bdoSQ;8U#JRE?N9o%{H97GM&(T%BVF((%%Zc>NwM z@O6(qS8iZ8O+ZHonL}Qy4kj$uh8f23SwGMkF>Ty^r!EzF)R$9xloapiLTEn9L>q8|5XgYda1xOYWlJ_=^n7mN25|y8mZ+ z@^=DbW`71n{Tt{vEoi@LFc6SrNDvUVzkyEu4GM|~1dKx^pMb&vlGXGT(M8^8u)~sv zHiV3bc;S~%EB3|`m+0d7d66~WVIj~rip&{w8(YWDQx5ZmdjPqSMz>v$yTQW4UY5GD z323Yt;{$8Hd&k3FK zn2l)|OZgNI#+$y;o4m5%`cjGsqS_ zVY!scuD}D>e%-~o01+2lf@IjeZi}{HHyZWAgY+ZLI_om&%}7_; zU}8Ky5b}Hfv<<*ouQ<$Ur?xSc%d?U z`QjV+ryK5msO|I!eW=|GheY*j780&T%MF*^`S0>I%O!hBOKE6K{!I_n_)DDpbE7_J!V!b%+H!8RCTIsscDBK*Br%Bp5 zY^VcKoA%_%B8%(s`mPHaemZFw0zuIqNs9M`BK~o1YzB!ns1&i^{iRImF2QxS;Gc12 zo_5&KmDFGcNfn;M6R1NW$qc^_Ajm4Bz9Kw3Bi0#1Tj+`t;G(6%{haXJb$iHrSsQVg zFkmy*xaa=wR5DgnK~#+o0>Z5Je`k2A1Slv9pijWsNNsNJV0Cnt5-0_>#9|Du3o`_P z0m<2A^@SvXB7}kg6g7N^LXN;uu?6W<*Rm!Y&*B4_UtVuIJ4UNH5nj&=269%H2Cb{FmEugWVU- z09RPPt|D7?ai)UG_^{L18+_C-3;B}8jcqh!yUktSz1pt?ENh~gMl zGSvsHT?nF>dz1HsAq16bvlLbN));;r&K^)fzHQ}^yg-O6&AEsT|Tc$`v*Kj9cD zfaUlsMiPap!VV_1waAxDP{^@fHv{9|9qQ2D2O;|Ep|{vuZ@0LlPGGSXjDpldf@3l ziK>4>on1uf^y$ZQw}>K1Wb%1~ykN((yC5i52|Ixfb!2Tf8VY)R?8{+KH=e5N6i9PD zGehR|-d8T~`6sRCQVmH@)K7H-zG1~*jo{FXZjJ8|z{)Hg_yi3M0pi;_)>{~Kft+D{ zFIfSGY2T-Zi{@>EE7}D+oRStL(>_x`ac3vRuvgoLtqaevY?MZt@e_%vd;z_u zshZk4kk*Xt0ovNq0c`F=Ve7d?gA2t<2fvu+Oq19Ii$s+NstR-&(HuuUi*+6SbkXZq z&s4}3ROM7=$O8e5ZQiO0%r>K2)M3c-;{g63~q?HwA% zM$4RbP$y;^fFYK$yf&!_*e#DrecF#~)_BXpx|dKj%W(j51Mp7!nvAv4+fEN_1I<)^ z>wCme%aO`&mF&3B+2206)U=>gKXBS4m6=iPP3M&4>#L zvtpnu$gDoi;9eyC{aUt*pW-_das+KYvzY567%RvXLcum7LLNuh-1ZHpW$eV&KMDkP z7A>b?m<~hbjPo)~P?-Oi|HLytZFz=4n-`w=Ag=q}8X#z3!uu7yU4&;NC@Vtl&%I4S zI(Sm5k48*~T*e`*MObhea%l4)SfTFtoa(sfbr4=59_k*OPGQF%J@^Ujaw@%U0 zo^IM`)PRQGPsnqOT$^E`d^`1pTYLDeD5>8YvSg$NM-N;gv+T&r{*-{ZUllJ-j`n=z z4BkUfqzKy%nK($l@)wC~bTCDJGTz5Cw4^z$Qx+Uc_>vf-Fl^`&Cb5_yiy3CRkc_V5 zSFa40_`{`$|4z;nOfv>eVrALMN(@0v!UloWOB+BLCf44C#IK$Q@k3!$?#}+km@FCjY^!QH7ju@x<-M5@*+GyHF$%C1?VZCS)Q|jtvsL>Met);@5>jUk~ zO@$pJ<%Bs<2=P_+;Qf6vVY|X{_dNDLC$>2}^04;WYZ1ddwg?0+J853}qF=pCBcnfe#P$H7o0iZYz!jQQP6irVBYh zg}Kyw&wKup4njz7FS$~13`2HBj;nI_rPQu;R)8J%D6#eJ)zkO4%182_Th*4p%z1+Q zsvD`-6Kfr)7+K6IDmE@kuJ1B~cL8vO#DxWJ8|m%YAUVmQ^KL-w@H|`pq&W6@A2QpY zrbEw5_Uhog6}UWRJ4)Sic*lsow93~2ZBvC85@$Se)m&uDvTFEqbz^Sshptz;)2)4l zCRtQd^+(tjwa}cd3H3)v0+lUPuOz=0Cj|y|R)r)K(#7(qtIH-h#ZDld0OT)?K8R-$ zDwW`jgv9lb*%!hG*SsU4T;h;QGrOdX?|h=XXTyL zuo|m+Qh8ob2Mo7BS(FTG%&)5nsjQ#gOa&HoTuIm2c7^1%Xo?G%! z#DH!hwZ3Q^E5G=XIQ)2B>)#l6xTToJX4ljF#S6rTMsc_jCh9(gdXxplXmCABnv;N( zs{E*1pL!liO!g%of0GorU*V|$H7`s9)h&0M-WsQfh+-#Vb%Fsd0RFo2mcEx_D8S{y z|J)zs&$erd!v#f1jWbe)Xhr+_PnVyZ;!0cOk7+Vry}FZ83+x4l&#GKu%ssGqBnYaa z=vE7&Z0;8lz|o`3lrii2VCnd_OfhGam06K*(B<+X^VK7qy(jyswM)nV1gwh<;(dB= zLPO&o+@S}y{HV+Og{vS1N|xJP!5Vlg{84H(v=1nBvE5Vk@yN$&-?&UwGH$hlb}D*h zg^a%QSx!@^&qkorW&k(j>rfw`)fmqeRU|6XdO%rIHSq8=+$2U-C9=}0qJVvV5)4Wb z?K~2w@aj_}cqeBs-EK*}mEA>!)!|_y;v)(ksjl^>9a{C(lDg_s zl7clMY_VFy?dGct*o;wDntgCJDwxGCbuyWf>Y^?xVkK{2=Irc%YP?(u_1q|yoy)JP zn3~mc#W!f2O>B(bs;tqdnE8w4+diw`wg^5Zqm$>R281Uq>$|*JjhpsUhOgFCz06P|bXDRW!(&AudRWdc@ zc)C2&_De?kx|010dcV-yi$=ypcVo|}6r9Jpt%{>y@IwB15zQ$N_3rV+p| z%EKr#=|(m_1Kehzz^-yo1{Gb!K(Ru(gQu^g*L1uTaIeqT{ot~<5Fzu4gfE0=4ra#; zXH}%+mNQqldO@o~W9-(z;yE*a-mDz!H1%`KL=f=Sw-i>|OUt606J7h-7ubu8U}_{_)ni}z*m4Ie;92$C7lxj54E)CwB z1v&N$5MYeJ@CEwFHa86Qd5aWe$ydvzNqB1obZ12n>H)e`DnrR8z0v!&pn}*eX#@Gl z|NALh)92J3`NVH!U5B&x)X^-6yMz^-{n2L8vUVl~XEmJtqh`^?%e|j{?QNqg`GG7x z_9lJ^0i~vTpKqRY6@<-x+G@?UvoNI3IiPQ6f&wC35qf_G4OD24DfD|4$!p|%p{`)v zr!ZZ$Lf=unw6%@y0kURWqVG5&xL4*so%TxL^`jzUhLdEd>x#&%!6HQiouoVAVaFtj z25F{;%sOGb_-NUp+=7-HEh%m$@Cw=^3tUwbJCacJxnPbC5T?KVkO=$nEA)Uf$cr}A z7Y`8Qud@#Ay|O7*lmY$ZujGVsjZb$kLMoci?`cL%P=gruAg27=fo7br8C&wqc%TGHl8TQ7+8Z7)lR%t~v&7 z(1QoDl3KVOl&dFZwiUJmnH!kmn2WLjTGeHL3A@U~s3OV(zd3OU*7kXs2(haBf~KY} zS%`2mJO{7gNwBSezlTiF-Lh7h?s>ChSI)U{=rUcBYdl1l0#|6}(;HhG8_adkZWCb1 ze{s-|@`%yYMUw5@pUd?6u8V~zEBflYe6(XHv3vB2RZ(y@CSJcO9^Jh#0z3YUO@GtF z23+VlE8A)R==V`-(P`tcTq6CjA& z+)EwDm^Xo7o4Hq%tD*=H+W5KMnF~OV!1adMQT9GF)ik?qaoCkA-W=3+$aO#dV3cwq z9eQA@4(gx>OaS+rbKsDzi!+XNr@>B`B8#q%eEJqA5V6XdwQV0`l$7WG8!wNZ&luP} z9xwMfCu7(G%Pb7;NptW~?q2y!581RB`;js0QEupMb=vKuq>mOr)JN<2=b^~uT}EX% z^c|%K?_R5h;2iJF`H#Wi1|co96K2l4)b!^O`Bx8BfW(iBCU$9jdJ=q1QPymkWi3ed zOOEM&o5Wo=ttg@yn~v4X=RFnX{W(8xyS_d!hS{DoOYzV%ZF%3qsgx5})g7BC$xPeEt|p z;D_elVLGsNC2D@cmdNFyfM=y4FlJ56DtG`qEPul_m9p z+Hz_0h4|sh*IKo(9VA6_hzUA$zlDl}riVzfi=P5I8aD(X4U!L}R(nYcYNgce*2&Gb z&z<}u%G#Sw*#=9{JI~)kIy^2(j+9psw3DqN6^PED0fxSmg>MQ`JfhQgAV1dN-}H;} zqg-TqzbuGht%LA-k<*@1;RH8!nyre+v?eEc;M1N#SL1ogNX(%G1C7ZP;>(PZ<&(+= z!$aAcnhI`lKo6!=$^MKiNl%k+gC0blVanRHtTb#R z5TzCv4~@tpHjgW7_CB*k5h~}C^F#<4lU)$TIcP&?=7%xdi+R=Wj!TEL(#nPr%}+tY z0U4ZS))WDXdG`7NVxbE&YF>h3h5dCbh&jPavpK;NJ!F2M8k=9kREnm$8^V+FCPzi{ z5%{NRdR8TIu@sf*W7vMo(ez*)A4k%g7b^QPawMr(AJHm|sm^Bz^gUsE57WPFfW{ZM zNoHU3c@Nw6t`ZNazKLgF?=S4q)^*q@0-S4$c`5|=7_XClB^0;GXI~?E4{r>qu2U&` zrwZ%|UMB$p7_)mT1@fo=gopZH3EW8&144!@^ z_d_P9(GnM|gjLJFaeG=&G3x~&2XLV7w)HifDuCg4Eq&%n&Jc$;H9cY zZmghSAYdybl7ixQD2aKJOxKK+Ssq5FXQeE{FReVyh%0j&X%&4hu1H-Q%~dUpy>o2r z2lhd7@MugJ_E3@w5i69~Dm}ffUve}0Z$jPU-kXRfPXszAnN6}QZpx*#NwUd70X&WE zL2XY0A!|-=28(U7E0L(3wMD}?01(I*Zrn{>zD^g|>b7C!T^@*Ji6rVqlIj4riZTH= zP~@Q_iSae3T%n)(3ig(pVoLpZ?Gc++mRB%id5w-Y8C>-K+*JHmh?K*8NaOIIS%QzET3N>P%2>M?2_3{xkA=Ie7>q>${C0FWV9Vmvuz z(R?AyLpet!-!fK)h>JAwl8^4wZQ%h zqY`_0^BE#TkJ~6ewmdZ3I;CkpW86?)Pu5^+Q(fzNIpnL#^|Bdo!2-XH={Hy#Q$yE@ zjcyxRgORO_!Gg{WUnl;L%f_w5q_+FTUH4K%1MUD&gVd$XJHL!JCcuCPVyai}~qWyP!FiUDJ?HM1lHwe=j6#Lz|`O5dU!AO6nCy}N+nWONE zvrMZhaT=BB`)+l0TucdE9ol;I6!u!a$VTN0wDp#rPG8O)cZwZ%^}-7XOZ65#gYxK| zZ%tbA&NY?E)IkHs`T!k@%Dp|Yo&ZAQ;sLI+8p1$W+ADB4$zS{)pPc>4tAh3VnmrRb zs5@0JIqc#m4z}>t-g!T2B6<+G+bb+0e%N$ydG=UIh#q8m`xbv?lN!Vj?ZaFp(UO_BGQ zU}b4I#*wnY@w5xJd*hw=P$J;(N=T906hse90Eda@fXU>?3Di|Zd7PvQyn&h-vLC_` zt}6xJK=(YpQbb!Haj`mZvDB(wHnu%Ft|DpElh~)hdar}*dP7}17ENC^h`{Ww%w9Gk zfXTX_e+6*XKYc?HJ`B!>%6ATll)M7L>w}76lw1tC>zUk+%K0?!;XUDjQj51HE`xq@ z&x7clp2-EpHq$TavCN|?t!CG&%4$HeLyNE07T+I2`T7;=xB2O~StQj`ZS!P+ZS+R} z#o&SGpZ~+t{(H&WgEA|o|D9Lx1sog%MC5<3c?&IJ0;KJo?EX;;3RUDCXFj3$o3=`4 zwA3fne_DZn6Qp1&gIoZ^ra@Er{#l}QcBP-ef_$K19%)v1G6EhK(7KgryZja5+nLD)oSUE1L2DMDmjn0xYikBpA;$;Sxis9 zN;!aIow_NXjA~Zh`MY}&tea?wphhWO4jNxpc~beHbfe;Bw)q8xadWZClaB!2=T{8` zH0vUZgwM~S^sd=~22UcGA=K@11GzLVxXC?Ag@v=FpNqD2Iuvn`azkSKrGA^=RZ#cQ-{L4&A6Vlci4oDUw$ShYm@;<{J7$CjlX9cqzhS&I#;z5_*}p+? zUhZ^;nhIQ7I!DWAEYVuVU8Fk2?6Bpa^$U)VZL-rWW_7|6$!$Vaz_z)L=xjBOw{$u{ zc{JFJh-ULV&^pbGjf?alk>5>+ZVQKtEcd>vj1j zAg$h)JX_XXn=%^ zi=)f`kYeH$WqUrM^li-cTD>krVWTPwB>B{M-BWOcioS~BwRJm_ld)_}$$V?Z>sB__vH)mSjRcN*GOmNO7$nV4R=&!EJE)1NPttILx+%xf9& zJW%_jFKSEpn5u~qdG3`&%Z(eHzpYVudP*-CsC(ELcjQ_X9{ zUY^da|7HNx`3$N48x!})a~FvBxHW?QzcKk2Jxya52Wtn*|HM!BJ$@LW6BVUX&t-8j z5j0FuEmlrvGFEV*&m=J|PMnCTY{q=FKJqi~30Q*%>UfnE-Py+m-o=_hhFF4Ny*YhW;#jl=p5m1|fayXaypEcN%i)vml#m(XtmBmkw0pY)8LIj>5hA$!y7Vu`*Iudj4yN5# z*PqK)BiiFFM_v~%wfJV1LLkdLeVu=aH8Er=?S-)C{E2*dW65o%=^)-mBh6&U`nf3j z^;5}^cEZ|w1eLJWdyW?fP2@?|$(2vKA)=wUs(DkHN&2xGghBu7Z&Nop{C-Qz->Hv1 zD*i8)U?LH>5ARdo`6HHq{~ue<&e+uav!k7v`Txwx7^NOE}IO$Vu*<~)Z1jv>t2FiHPlJ!M#F;ShCzBHu4s5;e(45p-MEwezEtMw{VzFZLstGydD@R2F`}Ke~~6{ z(P`&kebRZF<~`ts{}eT0->A$&@-?K^x}6Ju5Rg8@GaOSuOOdRXbJb$aDx$+|+Uq`m z0cH*SymD{jv1UP_P3eZIOE%86E)?^CtC2R^1kHcE?S_w#@AYu z7yC}y3Jd}Hg?z`7AjB`pLgCCOJOKXX zF$-5Sv+gJUztl-8Hyxqm22)8BzsXCJ9JU|2s*sD^jS~#?VgJ-RS;Xop;A7^;MI#cV1@C-M_t0SYbed>qm}bB=Ew0QV z4~b3BvOJ$I72{CmTkXX;p%IIU)RbXGnR^m{)JV`+jpEs{$@9Ud>1-2W%X3~fU1Jto z&ZPylnksD|vP94wTV9q$~~F0E4=I- zw)~x0?!+f~8D$$lQ=#4Tn{w77tB0f~LTm=W`3(x~&!8`CXLWF$N;5=K*(ICi>b`#= z4p22E9RU{&y3oa7vH1c@eR)9f=6mnd`vuht9>f`gEyR@NeNPRxTRIIuCIDFsJJHFp zg^)>^slMY1H_;`qwcLOUa4ctrqkfybCQvHzDj`l^GRFj4x&*J;3SVr~De<;~dApcm_GxJ|QiVjd?vGs#( zU7PSVw&lI%JOYW9_yP8@f^c9W2%&~iBbOGCH%yvxMMnyAvHJ<~}ZP#f%OjrZF(fYIH z^M*x>Nq_qp`Hz~*z8Rpl{9-r}qcY0+RI;f)_Zf@?%xu1+E>;UeRLlo*jQYQdD{y(K z{%=(PCM>sppyEp9Urb!x`}lac+Vz1y)`maOdwu0E)@g1u{Hw_*TP^?MG`4;9Vd>hj z0{;*g4kZ3r+zvk;Faaz-{P%>3wL|WYwy=)`K2YOG`~$O&ggHp*Sjs=0{aR2eGIU)ReJ1TJM1Rv}N{68%+5akr%LrZ*$4`zY%R|`};rTI|# zysIiuK2&9=lpp;Ro8lh)e|205Oq53y-v8H?W7ic|V1a+xU0@Z#3lBi?0K`BQ4@eWz z7Eno}O^Z$Oh&E^nYpBMyNOX$7rbuc^L@ipHs%e80j^MnA#bosZA0Gv?xw#Got?Hpa&Z+ zf}RfaXLI_=zOuzlkmx^1lgc&;9jF03&T9M!ONQ2ihfJ8_DX> zlNy~9*#gL{0EWEc=S>+rXlyffrYld8qIMrKQ6M!h4ve zXFLx(f)IJvkaGU~|F*>t$dECeLFn81PDwNvm@HTCO|oq<{|4lXjU+YCm$Y{3;6Ko= z&npRt=?#G=q&zsgL~sETNq(1!Ebn50^sMV_JqQ>N_=S`?9Bz9Ev2-m(yH#D1xOO^x zH51XwLTa)~Vo*4WvaC8p?FP}bxgau;OIAHL?UUM+W3-!Np__R2>L>sjNqD4oW=gUk zdXJ;O(87K;B{TWMp>p_k8_HrR_E(w38ckBWSE8}w-I8D>5k1RDPPB#`>{g?_ACk6w za1B~h;sMWwc0G76vlPUTxjpL;w6%GO`X~smLRrLtPR5d~r;%i{Rf{%SdL*$p4n>vy zZe;&}7WE77&wfM~IXa&bIsMP$ZD19d8Rt%}^s@1Lt5*_lE_YOUC1^=TywmARSwG^# z?1~8rMHwi=@IBf1G>TOA zt4Q1`_b~zYO^WGmg2(M)a3Gd*pkNJ9t-)41Z-T>fIS0C$3M0<|cfIuRvCq z-%W3X(N_eFF&wx$jm&-a5{7rrGf5nN6}}qDrDwtPCJ|`@(fte*ElCe_&@ISa6X1pnQ9nqCsnSadqJ*EVInDd&PGi~ZA|E! zVDub>g^yoy9;tesfQ-(oqplz~3ou60h+ypA8j{43_t8jB!4yZJ?(Im6Oa=pYz$<>K zFDD4j)oX~?urG3i4NKyRBPhP`@#ImXV(iT;E-i&k!0-ZX-ux~K zokFxNK4bhe+N~(4nJ*a7I_#&!Lk)QjuC|sI`wPLS>9{}!eYen|NtcwwPiYIGJ(?x1 z_sT{uX*5jSZ7GiAmlJjp`D=F}kT$h=nIMUYpV{OFxlSdh(G~705XW+;thh>uLlAeH zf(Mn$L4pnCOtHEyl!vZ?VKaeTD@h&lMM^Fu$5CGVS+)p50;0H_9EUn`omj3!;f#Xj z$zdY2Z&fw)k5S$PpHZ7j)bZNC0upjLeJlvhw4Lk5R(A`4AvAx-DDOpF7HEP`0~3PZ zeAd=bB+2+mGiuah@6W40)f+<(K&L=)I_Jl=+vxG_ae|KalKdF#h;DaLICZ>D7&{(> zuiXQoLCzg7_+i_)j3CEZdLNNAK^Q$MLFhVsW}JOHSqTn(2W37-@Z@(p0h^D`1e$Af z;%n_lw?$kw&DB_Q^Xtb(z(@rc3+IfH2b6*gRcqu}rGOJ#UaN!#*ViHU0i|HZ20K$v zu3iMy19FP)1<5E9-{+07t)#4*8`wz)PI7X)QqUrG?;rW`^v?qMkoo1eg3Lxc+)GZL zV4E^r`i5&v`JW7a^R8Mh1vuJ0I|1xA{>^HJYWcGXoyZBV9Ieg)o{ymL$EpqgP_1CH zzs`%E%g|ZJ;}D?vk3coN8B03Qr^YjGAZnQG>iibKpv(o9al~$Z= zqaI80X-^>(U9ir7IFas>X)tG_fY|;jvux;KP?bsuL+FJl|6S*x-U@}EsroJkeMcoo z=tLoW5WTDpsfS#n64=^yvte}{&DQUQ5^A>w?`4+Vy$o+u3%;6cMYiJ0X$nPEAI1C! DpMUGc delta 16770 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 diff --git a/runtime/src/org/aspectj/runtime/reflect/AdviceSignatureImpl.java b/runtime/src/org/aspectj/runtime/reflect/AdviceSignatureImpl.java index e814a5add..6bf899a22 100644 --- a/runtime/src/org/aspectj/runtime/reflect/AdviceSignatureImpl.java +++ b/runtime/src/org/aspectj/runtime/reflect/AdviceSignatureImpl.java @@ -62,7 +62,7 @@ class AdviceSignatureImpl extends CodeSignatureImpl implements AdviceSignature { public Method getAdvice() { if (adviceMethod == null) { try { - adviceMethod = declaringType.getDeclaredMethod(getName(),getParameterTypes()); + adviceMethod = getDeclaringType().getDeclaredMethod(getName(),getParameterTypes()); } catch (Exception ex) { ; // nothing we can do, caller will see null } diff --git a/runtime/src/org/aspectj/runtime/reflect/MethodSignatureImpl.java b/runtime/src/org/aspectj/runtime/reflect/MethodSignatureImpl.java index 3331df08d..612d0ca0e 100644 --- a/runtime/src/org/aspectj/runtime/reflect/MethodSignatureImpl.java +++ b/runtime/src/org/aspectj/runtime/reflect/MethodSignatureImpl.java @@ -60,7 +60,7 @@ class MethodSignatureImpl extends CodeSignatureImpl implements MethodSignature { public Method getMethod() { if (method == null) { try { - method = declaringType.getDeclaredMethod(getName(),getParameterTypes()); + method = getDeclaringType().getDeclaredMethod(getName(),getParameterTypes()); } catch (NoSuchMethodException nsmEx) { ; // nothing we can do, user will see null return } diff --git a/tests/bugs150/PR94167.java b/tests/bugs150/PR94167.java new file mode 100644 index 000000000..b71f3dd59 --- /dev/null +++ b/tests/bugs150/PR94167.java @@ -0,0 +1,26 @@ +package reflect; + +import org.aspectj.lang.*; +import org.aspectj.lang.reflect.*; +import java.lang.reflect.*; + +aspect Test { + before() : call(* *(..)) && !within(Test) { + MethodSignature sig = (MethodSignature)thisJoinPoint.getSignature(); + //sig.getDeclaringType(); // uncomment to work-around + Method method = sig.getMethod(); + } +} + +public class PR94167 { + public static void main(String args[]) { + try { + Inner.foo(); + } catch (Throwable t) { + t.printStackTrace(); + } + } + public static class Inner { + public static void foo() {} + } +} \ No newline at end of file diff --git a/tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java b/tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java index 919621e80..7ee575f19 100644 --- a/tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java +++ b/tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java @@ -170,10 +170,14 @@ public class Ajc150Tests extends org.aspectj.testing.XMLBasedAjcTestCase { * IfPointcut.findResidueInternal() was modified to make this test complete in a short amount * of time - if you see it hanging, someone has messed with the optimization. */ - public void testIfEvaluationExplosiion_PR94086() { + public void testIfEvaluationExplosion_pr94086() { runTest("Exploding compile time with if() statements in pointcut"); } + public void testReflectNPE_pr94167() { + runTest("NPE in reflect implementation"); + } + // helper methods..... public SyntheticRepository createRepos(File cpentry) { diff --git a/tests/src/org/aspectj/systemtest/ajc150/ajc150.xml b/tests/src/org/aspectj/systemtest/ajc150/ajc150.xml index 94994b90a..863c39dae 100644 --- a/tests/src/org/aspectj/systemtest/ajc150/ajc150.xml +++ b/tests/src/org/aspectj/systemtest/ajc150/ajc150.xml @@ -1065,6 +1065,11 @@ + + + + + -- 2.39.5