From 135173acd2c893e5bfbb420e9cccf493ba150bfe Mon Sep 17 00:00:00 2001 From: acolyer Date: Fri, 18 Aug 2006 14:51:00 +0000 Subject: [PATCH] fix for pr153572 LTWWorld with Annotation finding and boot classes --- .../bcel/util/ClassLoaderRepository.java | 13 +++++++++++-- lib/bcel/bcel-src.zip | Bin 879087 -> 879171 bytes lib/bcel/bcel.jar | Bin 607706 -> 607821 bytes .../ReflectionBasedReferenceTypeDelegate.java | 6 +++++- ...5ReflectionBasedReferenceTypeDelegate.java | 2 +- 5 files changed, 17 insertions(+), 4 deletions(-) diff --git a/bcel-builder/src/org/aspectj/apache/bcel/util/ClassLoaderRepository.java b/bcel-builder/src/org/aspectj/apache/bcel/util/ClassLoaderRepository.java index 1c1f0c359..6c30dade8 100644 --- a/bcel-builder/src/org/aspectj/apache/bcel/util/ClassLoaderRepository.java +++ b/bcel-builder/src/org/aspectj/apache/bcel/util/ClassLoaderRepository.java @@ -59,6 +59,7 @@ import java.io.InputStream; import java.lang.ref.Reference; import java.lang.ref.SoftReference; import java.net.URL; +import java.net.URLClassLoader; import java.util.HashMap; import java.util.Map; import java.util.WeakHashMap; @@ -75,11 +76,12 @@ import org.aspectj.apache.bcel.classfile.JavaClass; * * @see org.aspectj.apache.bcel.Repository * - * @version $Id: ClassLoaderRepository.java,v 1.6 2006/08/08 11:26:28 aclement Exp $ + * @version $Id: ClassLoaderRepository.java,v 1.7 2006/08/18 14:51:00 acolyer Exp $ * @author M. Dahm * @author David Dixon-Peugh */ public class ClassLoaderRepository implements Repository { + private static java.lang.ClassLoader bootClassLoader = null; private java.lang.ClassLoader loader; private WeakHashMap /**/loadedClassesLocalCache = new WeakHashMap(); private static Map /**/loadedUrlsSharedCache = new HashMap(); @@ -99,7 +101,14 @@ public class ClassLoaderRepository implements Repository { } public ClassLoaderRepository( java.lang.ClassLoader loader ) { - this.loader = loader; + this.loader = (loader != null) ? loader : getBootClassLoader(); + } + + private static synchronized java.lang.ClassLoader getBootClassLoader() { + if (bootClassLoader == null) { + bootClassLoader = new URLClassLoader(new URL[0]); + } + return bootClassLoader; } /** diff --git a/lib/bcel/bcel-src.zip b/lib/bcel/bcel-src.zip index bf7670c8c46d70db9429d01325213824c59aa672..1d7d84805e76678cfd398a566b81678847a70951 100644 GIT binary patch delta 5620 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 diff --git a/lib/bcel/bcel.jar b/lib/bcel/bcel.jar index 5bcbec16bbc1ea78d42c7ece19438ed025581e05..493ffe6a2a13e8251ca6094502c99d6c3f329d19 100644 GIT binary patch delta 17186 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 WJy@@OH|)qNH(EioU>|&-;{6Y_!?yDP delta 17173 zcmZu&2V9O_|G)3+Uf0#$OH(S^QQ8V6Dzs!IvNBSXnU(C7Bz24kp^TR34y6*3j53Qt zs7FR3^RfQtI_F$HPtW^*Kd;yK{hi9;r~zN^L+$&Lg`dL{!nF>fHaW*F$5_gl<~hb?_nkC z_})SUv?)gnLMT_|-T#p_Nu5IV0iB0wu^i_Y%aZzl8Y%=V;Pd-}h<1s3>I8uda;a#R z;894#^l97kWXm02vSv;yZ zwTx)4n5#B71-ni%*(Aa6Y_XdWm2cCv@J@Gb0ZdSFIL1HD(9{(F`#(7O+pY@ zB-T&ek*ER=9;X#j!?r0DIW6x+VJl--$`i?1iAn^mSic&Np5CN@mC1H?g&IO-NkU-v zm{WF=RxAqJW=<4s-ky)eQ{7VEVBHqG*2rO0crXSls{d(x{h@%zi=;uUy$E?#6n^v# zNs|BZ91`-kd<7D+%-I43tmIT;2SukY;QX&IZ=hNy%Z)&!Z5SHCa zCYt2$iwV+vY)r~GsI^^*xcJ3ef^=5R`|5F6#N&C&bB@WRhJTSMD)@BGnZny-f@PO zEB4{nF^EG0>^Q$2c61pJ*exa;Z_m&&Kq-*F8>>4N$j=hVv+Byc1g}2vc|3ElJ)SZE z0T*aluzCicktUDjYfzZ`_;`LhAE|!!;n$RKSV1ijP?n1H|6vDzifNJbVHkfgkqMl{ zKSJR52>ua1)^unpKZj69&fuRCVCt_~{6&PiIEw$3z}Oi6YXT?7^4Aazt#SMrggR;w z-%Ji`h)?7<2vIy?8&|dm!U`m&j^y$DJ=Qw-1wV@f{;G|yL8DcutL|I$O1%Mg~^Szrtb04$dt$R+irsSL6ikJf0dS(Zm^{ul4h9F zpISuGtauRBbOGFMq%5T}4%A^XTriLtL(;~$QmUkF4Be?13TeI*X%?6Q_L~VTq?bIX zY$6psm>NT&w2q3ObTt7^qly0vh zqdJAi#(D8%(G47zMJe$fqlHheK;Zk%_hMlpd;2FzV5khSw-usQG z()g&o7x^i+{DKqEA1Ln-n1S6lXho@U7$qTgttU~{MCSWc>Z=5~aLp*qgSc@1CRA)2 z1zkW{yBt437t9NSS#yb|TJaQLq&V%)->`u0GT;ypn1Xq?poyvTC?U~1X91;2rpo$w z$`1$7CTdb>gR96(0f_MA>x21qw31YA1tlh_(O5+tC9r%o)n5;#_uStn$MuFnEqrzX zHU;ljQ?%6T0OgAF1LkH@&k^I2nVQY+u)VJ?Ty)ROlgc?y!Sqo5RuH=6@4h~(W ztfiMPQTNI4{>zjEw_E=WK~6wy z%Lqu6Zd0e3fC{z}wav7QG+9n?i}O@Lpn@wgdY8;jT#1!WU?y^cC^hLdCBbFFxI;w{ zOQ9*ZUaw%LC7g2UAhw<|0~IO)q10Jj;7$_0OjGbT?wNUduSCeIG^ZEmiBQEM3$07Q z?HOE&%k=~R7vh`4>1~*KiveUt6 zO$2Jhi`{0BijNBcn{%J9;nu*eCDJYKCaduT8PC!W&^(h3W~bVb~3eO(1- z$yV0lDaaEbO8# zlt7ulvLFFG8L}(1^j4@KMS#57ZnGfL4>m~(1-D^+P&Y~dr)n#$Ce4{37(?>UpD5rO zU49aTs1?#DEY(4+02Kd%)B6ECKUYTx4&s!qn-wg=jS@1oyHRYWbHW?156)&A#abF2 zDR_XB<$27ql9KmzUzF}z=S0KH1$bMul$G&*JzSV8C zNlCL~1Z^aUl=*@tGI3)U3J&8S4(C3650qCxKSnGOcw?G=sKAz`*?{KPv_yI%zPr8T zR|uA19#w0Lqeu>HdqdNpWUW9AJc}3TNxN1FCQjq|>0E!2SF_w|A` z1SV_}EGO{y7C|DG|MlLs9;EDqZXACHH;PM1f+2Xop#FFiJ1{`%u|wcXBe2Nkdac!1TfM+J9qsY}|jdx29qg8tHx*@Ceo+c`OcB+?1Lmj1$%YxW6l zCi2zctpi!OR5rKc|yQhfkJ=g-6q1S_MXwe`zis%3B z@6r7-;0k+`f$k&0F_ia9V|)s>Yr@@lQ0gI1eaxZs4Q}I-$AaCO z3hW24){S4`!{Lmt7Xy!pLObb`kAmp}d3I!C*NvHua7K>=&$8hfsrZeS1#nabbbO=5 z(v&ZP!F;4)je2D1M0hgXsRZh0(*IbI0VBV|L#Wv|K_rbnvCpOm&nO}!9ib$I=P}kw z(>AkB=X$}T=*WLX0ezH_HmeBhdSUiLYhfjW*kkYhT;mKE?khrkzA*R+Pcmnngz(J5 zYLh5-jd)_n<4p-d#YQPH{0Y~^p{~LXL!=BiOcZ{?YOTVB3?HBHT_y?ph>(h3Wvlj9 z!-Q<3K|!p@RJwDT5N_10a_Rh;!XyIuQ9^$L17n16RYMHn^M!B+V`1%RvpHbOe4({; zZ=CQxAJI;wEwOR%fDld}WFz+=XTz4x7TFPxWeXcI5I-K=!a&A-tMFS=e`57(?8XzayMW z;L3Z#5Uj*s+%{Ja_9XoHLmw@tWEmx?dXum}X+giIF!flKZi_I|3eDg09l0rKaD9MV zn7zmh6f1~|FiW(eNR}90p(@%W!cs&Dh$q~Y zn6DRLHY!!wmE9DKRD_-2-$!(XBtqR%2Zf{H7O=)v)PlVSGwnr> zk+Mts(|xx=k1zA^8G=1BRwyy*V5@^D9dRUY>a}P9`^_$k`+Cek(Jw;U_#BSsE67dx-m3m3mm6+E3P)L`T72p1i}OCE5F6um}_j}O?tTn|@M3jywf zh)9t4AV=3?og<5ar?ZTI*ST z-Ep}4&Q}8E+U(`TZjqXF-Z9Y)G1lghE1FC4n_nmjA#qBiqGG~OStj~QsHIh+b8=WL zzD~4J0XgwdZT9y>H6CxEJ@}(3HU^UnU`mHP6>U|+ob_FzyUG~mh{R7w0k=rR@OBc- zy%I+3tbpNXO>rfyU^tC-_@W+h*+iDdGu6Vo(heiWFd=O$vqE=__Mh_Usg2G4dkdmv z`b8I6S>5a~9lxG(XfZcxxN3jJbmWM^uNDp%Q9O5XRmWUsuL{}GGKX_QMg<0V$@ObK z<7HhLr{-On)+;2Ww8W<0&!_tujrR$MuWF2+_vFWuufLuyxxMyB%mu;GS!(xne1!@l z`baJfo71puT-c?As|Cv1_Er0gBP}zE4;Rjlx-tByi^{OfJridtm<0t|q_~Bx^*gw1 zYvFymdfPY8rSICT+;R_1jA&dQS6igiH@ROP^<&9PXZ1}{E!%sy2X8e6#=}mHiMz2s z(BElBl@of2+Q!uzEl5&M zR>+>VK|M+F)Z~XL&qG~pET!i++$=HS$N5!g)(i=DQf)8sesq7AMvCQFZ!5{Vid94F zcXizo(5rFs*JHS$uBak#qY@Uq47{y&Pq7_n79!Y3nx_n|>Sp zu(4mQ?wt?H_Oc;zyB}<>xm>X4%qtU%*RrKqwZ1{`tWw8Psi4$J#V5*X&SAr|*)I~b zbZZxNZ9Ajvm#e?YY-i-jl*5vH{zg^>fi9!%V-_FVIB;K0%(MmDb`6@5p>M36_WsuM z(!Xa6`Ue=;`==uO_<0OqkMkK7F>caGAMMwW&NaDQ<}M(N7C^ zj);2THHvytnrRnxqwd@*J~dnKP2H6vJM1^AghhwmnLo4LsaHtwxw2bc_GzjkC#iIP z@_DgR;YeEW`XAc@d@cWKcbYu4-_g6Xzu9lSYj6JPIkh5GB_ScN!KCX|@A&-BBgNIv zckV7paUGv_VeEs`KI-EaM>?in9hAI!y7QuYtCvy9Grmyn=XQ`xXRYDVPW9rmpU ztCQZ>f7si**e0g>vr9~cV###5BIj4ZMt}I`yOPG#TnMaAp8hB<9T#`*@;FfN^VglAk(1_Dot-qjz%QXnt1Hsz z?Dpo8q|llDwx{l&EmwcGD5lrQbz`gdIJ`^JV7_I$#8m51MX~|8{xe34kNG%m1{L8h z7uVTDebXM$@?&}Kog15n^*4!5aO_BH`w>6rtonz{>&HGetaRz97Wh|I?M(G7S#|83 zXGH$?yUJb9HA@1kY>sa&J=IY;{keZaquH!)V-^qX9kx#v%>9~7JKlk+kMMmBx3D5?n9(mQineOK+vX9ni89{oBUHSf!X4~mgWJO8fpF3rmg5>4xdM#Y4U6Lt9nO1sw`Ko%W((#LBn+wTJtv?lt}9K5oqA;hHgf z+U?uu@vVKt`P=iKPt=*SGhlr9*P0<`l4s}mnW(uAY#Z6wIIyN`+~uw5AIFOIOiqW1 zola-By-LgU&`ogv_`;{G>#k4I4`*YK<@cPbwWBg(^K|^C`{Z2}+#5Hti+n|u7F$FjOK-p<{8&(Gp|N{4sKYjV*4<1qw0s) zMU^f`L(iX_drM|rdfY_Y?Hy0*w3a;(&bx9VKwKuTol$J0cEj+F?M~J9EZc}p>6=nl zuCd&Z*0=m-AG0}pZN;E<8xsy5Zn$*Uq<@vmkPCW;E(Yo@bdF4#8kjT1af5H6QG#ZWTt>Ci5g9%qkDQPddNv|hGoV+?ZUg2?E_09x`g#o?x?bx&ag?H1U57GO)#y`)l*P1fbJLmjy zmyAl2s5SSR99?>SJ?LwGBHa8$S?qMpi}CCH;?px9z0ELD7W~@YSG<~y7L|kE8KPG zuk#81Yio?hg$>%^YEl}XMURMHKdjJFT7D|USFW~oe(skiysNQG=H(6>eKET+{LQV1 z(K8EDVw&F`+BD&|mVQRX5;cB}L!Hx|w>$l#!nNJ{GzMfXDw!$HOy4 zF~^oPUGnPhdqOTfLhfCI_v5#b&1Fe5zAg@GN|ZDt#JR6o-nqPKtLA)zC#KawZ`CKc z^;z+D|Le|zaaTk8t@iPv%R@EZOW&oRb(*=|af@wy_;9r`M?hfE7L&uh*AGPU2Ca2pT5PEIZqcsy$J!@Vy)oA-OLW{XR0@6XxyLIuIAN6kxd|&q71l>n z89U-Vy2{3B>bwOr)6Dm| zZ1l;>3Q-LH5ED2)hre$#unS0en73nP;O3lVn%uh%nupHZIhNvI;P2tj7_p30%}+dx`@kA021Mq2fOsgOdIpP65ZEzByhR6p zBCMD%9!$O#Dp!eZ@kemRf?W^YHQ?`51JDZrP$v?LK!O>gDRo{g_R&D!DRax?{U*T= zp)a!NJ4ITUE{-RkIM(~cugJ%hPL6mQ`8G>DF22NIqdrAqDgKDgShwbs1H4Tbni{dv zAnloi0b1san$)L6>>(7gPgA5@O2uuI0t^3K3Heb2zm@If*sp2C+{7}UD;M7tVdfoI z#9aamH`a*P$YKcJMZgO!q)q#wm`|X7qgX_s*<-PgK%3@n==fADAk;xE;&mFxiKEkh zSIR(#pVR2G7kZ&36@L@!2+`X0{><5d7{_Dmn?7c+@I z5zy+_ZT*C~B!f_WEhX?*Vpd~f?7m)3P|W}eKfW+@gm)DOtR?XN8yWm=BRMLTXQ9Ri zFK{jO)?WfEg$lEMcTpu98iJ^PHRH z5^0u%!IJ$XV}{-mc$30DYLd?JmE>As*lVfeBaNYQqGXW}!!7G2hvhM}O_dzg$FQ+b zvPT)i#Z{6-Sqy*NlK3fL=-VtgNlbiyE`gUV$eKc{#FXfDYL~e2{B*3tGCS9q5;kIS;YNASM1uaJ+Fx*1-RuZPONgB47?k_^G(!h#L+8U$0 zOnM+juQF+O^o|JhJ4g?~Xx>5EAKmAJ@`LnP_Q4v^K12s&()>fTFPiP(;vsqrMw*9d zAB?6Rru|SufWpJ{XpDqeP?pUQt4;?j%Hk{*XVHP!qU;fR0!Fis&_NiLAECoBGCWF8 z!)W7CIt-(>qx2Mv{EpF)7@a-FNoZu#p_n#5o1To(-E7W=T@F1F(^7J{(N8&a1g4EU zPEWSc=QJ|~^jK_ddI6`Ux`3XAX#)y5eW`__ zb1*tv%#E5!IkZPg&%>i~B^*j9q2n;^a|yi=qv&&-2aV_G*_bx$JROVCh4WlQIv2Qz zmR;byYPi5f?I`g34~x?;`9gL`%I0`H*a9HyT+^ z&&0Hna(V$qHWgfKhq{q!CFkj;O3wSwm0X4*FL9AKUZR&`En}+aM2sF)akS9O^kPh_ zyG-N9KOp!DU5kDd#IKhUZ_?_(?JA95nt~NqVQ(OxA6})y(2srSnbP2gv<3*Mrd{!1 zay1v)+iFh0=NcV`6yqmKbs~7NU2%;lPOsr=KcNQpI5252-QiNO;||woU3a*~m~@w(f&63N^IQfAZ7}ebyRgrypyYeB zGa|9Cd4Sz3NNT%ByC5BorIE*K0V?vK`&^M%-REl7cpt9C$fy1fIJETv9g5Ux^tnD5 zq%=cye;&{-n9cnmJq8UX%I&y@Z52G^20I?oA!v|&#)AhV8o0p&4fI$vxS)BA0=O+= zG=OR&?S@EKhe*S*rRYYE|70V#bx@D!5Nv(IBckJ8fa_*3=@E48_9L!xN{_jgnA43e zKjs>tPZJ%1GQvL1Az3}##AWqq6Ui!inS-(#(98`cHIuL!)z>Y@J@luU%caK?E|+_s zkkqh`Z@_^k&^h_1+=TIeN|K5m+@PdZJmo_D{ggQ(!GsK<+3)esPzz`day5GNIi!9 z#qlNlMe2bbz#t`^-Gf%INJiNAF1Q|4m zgRfz=CcWm;l<}GjW~}Y%573~(8*b454H-l)SJ2?a?!ljM5N9srEtjRjx1{z@Pp_H) zo^?P|ChuqulqB?e1(DWpB=l|tk)Cp-?3*P^u%KH9?Sb_tba48cAVSK}Qxzl`{GRCF zadU_=mMnlIEZOy*1h97X#+3lA>@zyKMm^HW_46NyklJqoAoEW5Zlxvh(9u6JFe-a>P}59n-XtMQ3bobib` zf}WiqtID6b!O@>dy_LV}+US;JgT>r{B z67?0H;?ROv{}t}{?AJW7{RWq2g!X-d3pYZ-?{pMK3%EmxWl@OoJADAE(9lUIlMz(@Oe_(>pXbU&WzQ4emVOlWbjt0|qF(DYdWkNCg zFg`U!oXSEXx-#A?Te5dOm^5xInbQGLQ(Yne(pb4 z1?ulXZ60E7bfuVc{ehUo3alkeIF?QBMx7F7Jf@AL8B)6fnu)+PHHMjm(Q1aHy=1s} zykr>CM_DoqshvocA$=4h%S2+?23gLAgB-^PRDp{~QISJ46*(G3qGI>ayqfr_hEmDKa=@kvmQ(aAl zY-npWp=Okq=5FMu1!F_By;__HAGJ7rq1sRu&4)5=W;RCVI?Py%*6T0}G5V#$ReE+W zhRpS*ZZuk#iNkzXbeTCA4bWp^5Rx9%V|4K)9=M{R2 zIcI(wGUNXH6aI7~PD_OmqeGclg3jJdKk(F2ECF)88T_UI==O$VeQogAGaEQI3yvAG zVgGYA$>UkW2P)iujwDk3F+aShR5f5(SKig0Aq%f7j>A6#IX?LJkwh_g-<$D9`Z|+l zMvLHEn04?%(6$HD34Vey1J%i0%Y^kGzt*a*6BOX0EYUsc|`8Se6h0S zf8}Z>c3Rzq{DCl$Lwm@1t^yHej4d!QV~kM!{<+JAH>W*V7lO%V%uvMi&t>j^`#}II z%@}u-$8~E%&mDrkx51m?o_Wm8K+fs|_r8oS4nDju41P~Gq3?!tBX%}cm@P0!hEJK= zmHu0O-f_a4cU-Iu3XB*zpw*Aj7rZDS^s)UIE#ybIR@w3yu$EKdGbN`U5nVkk2FfMk z-e75wSQ8|fGjd3v`;r+7IP?%mlp=wFh!@{NxtT-9nNp%?xjCbc>HArF*F{2y7te-> zo^AoVQ}GITW&tN)^%b!SY8ONHf^%KJp_iTEo11$0V6|s)#WgIy1*oVIi;-yqmjATf z&}(O5L8ripI7%_IWP1QHr_@FkKS^N?lEa?g*9fD4%k{8^&sJnSdvsXz~CU!-yF?PtyT{9T2| zGlnbgfF7>B7WEX8fcLhH3TlqL{`FrPp{3E#l6MawdthkCgrJ~M@$Z7#uhxE_~AGIOYGJT02kQ+!E=0`1Mq5}D)@Xz2L{Cf;A z|7b&r?mzsV4ogmULB4#*-_u_iBg|i6Br!z%IPI;krY&+7qWv#7 zbsV6Zpf6?!cVGr1U7vE+Phu1A2eawlLsvg@%=*+^V)idJx&xt_8Vfu&c_5>Wldys% zKexi<@_~#QCckFMOKrNzVqkA8F-GdZR7XaiZvhe=nMr(A@XQhJN~nzuouG`-Kv3zy zn1BOL5;1^3uBiOeg;j%Yc-cdD)8PE=xevc~>=sf5%}(6Bc*iP?bHQWQ&ZIzY{dgB= z!NvFs{6)gEN90a!-K-Lj!SQE~uGlyPnmhnEfx$iae|z@imjfCuj3y4o&IQ`e^ui3I zmclZIdrK7Ys*Qdz*vB%okLYGl1D!66p&>g~zTwixB)Ia=fZLW|4~u)3bo2KGxANeD z1L;a~g}QdE#$&f!87EAZaf4)LeYc1zs9O)S%I-4APG>y-m7PBPr`qFqya_$*r9WT7lBl-%RT3TWrjC{a_uLtM zYVwVLjTsDrClVBy>mX=x*)4X=1}JziN?`bHiC&LYjpd77ptW@rTxaem{MTkpQ@3ny z6!hqWHi2hg;-x5{zcwODn@@yn5s(=_Sh=gt)fPo2aj5 zz~gO(@1}byl)hrQ?7)(Ci5jYw5$kK+>Ga~;P^&N0+Ve1A3IF|3iyUnYUeh%EhaR4= zk5LjjJmE$jD2E0;f!|<`9yS=#&&m^_V}s%3L;UqD{c-@I>keW1z#l7H?X%@N2h4^| zYz0p;JsUY5Odi4nAn*S9t?s`&*5C;=sGmT40;Qpx1BOGPq4U#-p{SvZ6Vl<8<)s)2 zw~O^~yXa|X*vx-;71F)nPQg01qP44_A1ujeIJw<>p~i Sr(J;KFh)uI{Q#VSy#E6PmZ8D` diff --git a/weaver/src/org/aspectj/weaver/reflect/ReflectionBasedReferenceTypeDelegate.java b/weaver/src/org/aspectj/weaver/reflect/ReflectionBasedReferenceTypeDelegate.java index ba208c751..bc0ca7bfd 100644 --- a/weaver/src/org/aspectj/weaver/reflect/ReflectionBasedReferenceTypeDelegate.java +++ b/weaver/src/org/aspectj/weaver/reflect/ReflectionBasedReferenceTypeDelegate.java @@ -15,6 +15,8 @@ import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Member; import java.lang.reflect.Method; +import java.net.URL; +import java.net.URLClassLoader; import java.util.Collection; import java.util.Collections; @@ -40,6 +42,8 @@ import org.aspectj.weaver.patterns.PerClause; */ public class ReflectionBasedReferenceTypeDelegate implements ReferenceTypeDelegate { + private static final ClassLoader BootClassLoader = new URLClassLoader(new URL[0]); + protected Class myClass = null; protected ClassLoader classLoader = null; private World world; @@ -59,7 +63,7 @@ public class ReflectionBasedReferenceTypeDelegate implements ReferenceTypeDelega this.myClass = aClass; this.resolvedType = aType; this.world = aWorld; - this.classLoader = aClassLoader; + this.classLoader = (aClassLoader != null) ? aClassLoader : BootClassLoader; } protected Class getBaseClass() { diff --git a/weaver5/java5-src/org/aspectj/weaver/reflect/Java15ReflectionBasedReferenceTypeDelegate.java b/weaver5/java5-src/org/aspectj/weaver/reflect/Java15ReflectionBasedReferenceTypeDelegate.java index b6156fc5c..b5d63d7d1 100644 --- a/weaver5/java5-src/org/aspectj/weaver/reflect/Java15ReflectionBasedReferenceTypeDelegate.java +++ b/weaver5/java5-src/org/aspectj/weaver/reflect/Java15ReflectionBasedReferenceTypeDelegate.java @@ -63,7 +63,7 @@ public class Java15ReflectionBasedReferenceTypeDelegate extends myType = AjTypeSystem.getAjType(aClass); annotationFinder = new Java15AnnotationFinder(); argNameFinder = annotationFinder; - annotationFinder.setClassLoader(classLoader); + annotationFinder.setClassLoader(this.classLoader); this.typeConverter = new JavaLangTypeToResolvedTypeConverter(aWorld); } -- 2.39.5