[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [aspectj-users] Oddity with @Around and proceed arguments
|
Hooray! So I'm not insane then. Thanks exceedingly for your patience
and persistence!
=Ron=
Matthew Webster wrote On 01/30/06 12:15,:
>
> Ron,
>
> You've nailed it. When I originally tried you testcase I use LTW which
> given the scenario does not inline around advice. A Bugzilla report
> will be opened shortly.
>
> Matthew Webster
> AOSD Project
> Java Technology Centre, MP146
> IBM Hursley Park, Winchester, SO21 2JN, England
> Telephone: +44 196 2816139 (external) 246139 (internal)
> Email: Matthew Webster/UK/IBM @ IBMGB, matthew_webster@xxxxxxxxxx
> http://w3.hursley.ibm.com/~websterm/
>
> Please respond to aspectj-users@xxxxxxxxxxx
>
> Sent by: aspectj-users-bounces@xxxxxxxxxxx
>
> To: aspectj-users@xxxxxxxxxxx
> cc:
> Subject: Re: [aspectj-users] Oddity with @Around and proceed
> arguments
>
>
> Matthew,
>
> The version is:
> AspectJ Compiler 1.5.0 built on Tuesday Dec 20, 2005 at 12:05:54 GMT
>
> =Ron=
>
>
> Matthew Webster wrote On 01/27/06 08:47,:
>
> >
> > Ron,
> >
> > Which version of _AspectJ_ are you using?
> >
> > Matthew Webster
> > AOSD Project
> > Java Technology Centre, MP146
> > IBM Hursley Park, Winchester, SO21 2JN, England
> > Telephone: +44 196 2816139 (external) 246139 (internal)
> > Email: Matthew Webster/UK/IBM @ IBMGB, matthew_webster@xxxxxxxxxx
> > http://w3.hursley.ibm.com/~websterm/
> >
> > Sent by: Ron.Mann@xxxxxxx
> >
> > To: Matthew Webster/UK/IBM@IBMGB
> > cc:
> > Subject: Re: [aspectj-users] Oddity with @Around and proceed
> > arguments
> >
> >
> > Matthew,
> >
> > Originally I was using build 1.5.0-b64. As a result of your mail I
> > switched to build 1.5.0_06-b05. I did a little more work that I'm at a
> > loss to explain.
> >
> > First, I tried the new Java install and had the same effect. Second, I
> > tried the -XnoInline option and everything worked fine no matter which
> > style I used!?!
> >
> > So I decide to change the A.java code to include both proceeds in the
> > same code just as a sanity check:
> >
> > @Around("fooOfC( i )")
> > public void foo2( ProceedingJoinPoint pjp, int i) {
> > pjp.proceed( new Object[] { pjp.getTarget(), i } );
> > pjp.proceed( new Object[] { i } );
> > }
> >
> > and with noInline it worked in both cases.
> >
> > runit
> > 42
> > 42
> >
> >
> > I removed all the classes, recompiled with the -XnoInline argument
> > removed as well :
> >
> > runit
> > 42
> > Exception in thread "main" java.lang.ClassCastException:
> > java.lang.Integer
> > at ron.interfacetest.M.bar_aroundBody1$advice(M.java:120)
> > at ron.interfacetest.M.main(M.java:10)
> >
> > Must say I'm getting a bit beyond my depth here. I've enclosed the
> > javap output from both tests (inline.out being the failure case and
> > noinline.out being the success (i guess) case. Perhaps this might give
> > you a clue as to whats up. Thanks again very much for the assistence!
> >
> > =Ron=
> >
> >
> >
> >
> >
> > Matthew Webster wrote On 01/27/06 06:02,:
> >
> > >
> > > Ron,
> > >
> > > Which version of the compiler are you using and which JDK? I have no
> > > problem using either AJDT or ajc with JDK 1.5.0_05 to build your code:
> > >
> > > C:\workspaces\temp\Test\src>c:\aspectj1.5\bin\ajc -version
> > > AspectJ Compiler 1.5.0 built on Tuesday Dec 20, 2005 at 12:05:54 GMT
> > >
> > >
> > > C:\workspaces\temp\Test\src>c:\aspectj1.5\bin\ajc -d c:\temp\test -1.5
> > > -showWeaveInfo -verbose -referenceInfo -argfile ..\files.lst
> > > zipfile classpath entry does not exist:
> C:\jdk1.5.0_05\jre\lib\i18n.jar
> > >
> > > zipfile classpath entry does not exist:
> > > C:\jdk1.5.0_05\jre\lib\sunrsasign.jar
> > >
> > > directory classpath entry does not exist: C:\jdk1.5.0_05\jre\classes
> > >
> > > compiling C:\workspaces\temp\Test\src\A.java
> > >
> > > compiling C:\workspaces\temp\Test\src\C.java
> > >
> > > compiling C:\workspaces\temp\Test\src\M.java
> > >
> > > weaver operating in reweavable mode. Need to verify any required
> > > types exist.
> > >
> > > Join point 'method-call(void C.bar(int))' in Type 'M' (M.java:4)
> > > advised by around advice from 'A' (A.java:13)
> > >
> > > Matthew Webster
> > > AOSD Project
> > > Java Technology Centre, MP146
> > > IBM Hursley Park, Winchester, SO21 2JN, England
> > > Telephone: +44 196 2816139 (external) 246139 (internal)
> > > Email: Matthew Webster/UK/IBM @ IBMGB, matthew_webster@xxxxxxxxxx
> > > http://w3.hursley.ibm.com/~websterm/
> > >
> > > Please respond to aspectj-users@xxxxxxxxxxx
> > >
> > > Sent by: aspectj-users-bounces@xxxxxxxxxxx
> > >
> > > To: aspectj-users@xxxxxxxxxxx
> > > cc:
> > > Subject: Re: [aspectj-users] Oddity with @Around and proceed
> > > arguments
> > >
> > >
> > > Hi Matthew!
> > >
> > > I haven't yet explored runtime weaving yet. At the moment I'm using
> > > 1.5.0 and doing static weaving. I was running ajc via a script which
> > > looks like this:
> > >
> > > #! /bin/sh
> > > build=.
> > >
> > > ajc -1.5\
> > > -cp $build:/files0/AOP/AspectJ/aspectj1.5/lib/aspectjrt.jar \
> > > -verbose \
> > > -showWeaveInfo \
> > > -referenceInfo \
> > > -d . -argfile files.lst
> > >
> > > with a list file containing:
> > > A.java
> > > C.java
> > > M.java
> > >
> > > and getting the following exception when run:
> > > Exception in thread "main" java.lang.ClassCastException:
> > java.lang.Integer
> > > at ron.interfacetest.M.bar_aroundBody1$advice(M.java:119)
> > > at ron.interfacetest.M.main(M.java:10)
> > >
> > > A javap -c -private ron.interfacetest.M shows where for some reason
> > > there seems to be expected a push of two arguments, not one, and
> on the
> > > first there is a checkcast (on type C):
> > >
> > > 0: aload 4
> > > 2: iconst_1
> > > 3: anewarray #4; //class java/lang/Object
> > > 6: dup
> > > 7: iconst_0
> > > 8: iload 5
> > > 10: invokestatic #53; //Method
> > > java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
> > > 13: aastore
> > > 14: astore 6
> > > 16: astore 7
> > > 18: aload 6
> > > 20: bipush 0
> > > 22: aaload
> > > 23: checkcast #18; //class ron/interfacetest/C
> > > 26: aload 6
> > > 28: bipush 1
> > > 30: aaload
> > > 31: invokestatic #73; //Method
> > >
> org/aspectj/runtime/internal/Conversions.intValue:(Ljava/lang/Object;)I
> > > 34: aload 7
> > > 36: invokestatic #75; //Method
> > > bar_aroundBody0:(Lron/interfacetest/C;ILorg/aspectj/lang/JoinPoint;)V
> > > 39: aconst_null
> > > 40: pop
> > > 41: return
> > >
> > > When I add in the pjp.getTarget() back I get the following which
> > > executes properly:
> > >
> > > 0: aload 4
> > > 2: iconst_2
> > > 3: anewarray #4; //class java/lang/Object
> > > 6: dup
> > > 7: iconst_0
> > > 8: aload 4
> > > 10: invokeinterface #53, 1; //InterfaceMethod
> > > org/aspectj/lang/ProceedingJoinPoint.getTarget:()Ljava/lang/Object;
> > > 15: aastore
> > > 16: dup
> > > 17: iconst_1
> > > 18: iload 5
> > > 20: invokestatic #59; //Method
> > > java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
> > > 23: aastore
> > > 24: astore 6
> > > 26: astore 7
> > > 28: aload 6
> > > 30: bipush 0
> > > 32: aaload
> > > 33: checkcast #18; //class ron/interfacetest/C
> > > 36: aload 6
> > > 38: bipush 1
> > > 40: aaload
> > > 41: invokestatic #77; //Method
> > >
> org/aspectj/runtime/internal/Conversions.intValue:(Ljava/lang/Object;)I
> > > 44: aload 7
> > > 46: invokestatic #79; //Method
> > > bar_aroundBody0:(Lron/interfacetest/C;ILorg/aspectj/lang/JoinPoint;)V
> > > 49: aconst_null
> > > 50: pop
> > > 51: return
> > >
> > > Hopefully this is helpful.
> > >
> > > =Ron=
> > >
> > >
> > > Matthew Webster wrote On 01/26/06 10:06,:
> > >
> > > >
> > > > Ron,
> > > >
> > > > How are you building and running the application? Which version of
> > > > AspectJ are you using? It works for me using a hand-coded
> aop.xml file
> > > > and load-time weaving support. I had to change the aspect a
> little to
> > > > cope with the fact that the "proceed()" method throws Throwable but
> > > > this is what I got:
> > > >
> > > > _Console_
> > > > 84
> > > > info AspectJ Weaver Version DEVELOPMENT built on Friday Jan 20, 2006
> > > > at 10:29:42 GMT
> > > > info register classloader
> > > > org.aspectj.weaver.loadtime.WeavingURLClassLoader
> > > > info using /C:/workspaces/temp/Test/bin/META-INF/aop.xml
> > > > info register aspect A
> > > > info weaving 'M'
> > > > info generating class 'M$AjcClosure1'
> > > > info weaving 'C'
> > > > info weaving 'A'
> > > >
> > > > _A.java_
> > > > import org.aspectj.lang.ProceedingJoinPoint;
> > > > import org.aspectj.lang.annotation.Around;
> > > > import org.aspectj.lang.annotation.Aspect;
> > > > import org.aspectj.lang.annotation.Pointcut;
> > > >
> > > > @Aspect
> > > > public class A {
> > > >
> > > > @Pointcut( "call(void C.bar( int )) && args( i ) " )
> > > > void fooOfC( int i ) {}
> > > >
> > > > @Around("fooOfC( i )")
> > > > public void foo2( ProceedingJoinPoint pjp, int i) throws
> > Throwable {
> > > > // pjp.proceed( new Object[] { pjp.getTarget(), i } );
> > > > pjp.proceed( new Object[] { i*2 } );
> > > > }
> > > > }
> > > >
> > > > _aop.xml_
> > > > <?xml version="1.0" encoding="UTF-8"?>
> > > > <aspectj>
> > > > <aspects>
> > > > <aspect name="A"/>
> > > > </aspects>
> > > > <weaver options="-verbose"/>
> > > > </aspectj>
> > > >
> > > > Cheers
> > > >
> > > > Matthew Webster
> > > > AOSD Project
> > > > Java Technology Centre, MP146
> > > > IBM Hursley Park, Winchester, SO21 2JN, England
> > > > Telephone: +44 196 2816139 (external) 246139 (internal)
> > > > Email: Matthew Webster/UK/IBM @ IBMGB, matthew_webster@xxxxxxxxxx
> > > > http://w3.hursley.ibm.com/~websterm/
> > > >
> > > > Please respond to aspectj-users@xxxxxxxxxxx
> > > >
> > > > Sent by: aspectj-users-bounces@xxxxxxxxxxx
> > > >
> > > > To: aspectj-users@xxxxxxxxxxx
> > > > cc:
> > > > Subject: [aspectj-users] Oddity with @Around and proceed
> > > arguments
> > > >
> > > >
> > > > Hi experts!
> > > >
> > > > I'm a newcomer to this technology, so forgive me if I've missed the
> > > > obvious. For various reasons, the project I'm working on is
> > interesting
> > > > in incorporating the annotation style for aspect declaration. I've
> > > > encountered an oddity which I'm unsure about. In essense I have
> > > > duplicated the @Around example in chapter 9 of the developers
> notebook
> > > >
> > >
> >
> (http://www.eclipse.org/aspectj/doc/released/adk15notebook/ataspectj-pcadvice.html)
> > > > where each of the following classes are in a separate .java file:
> > > >
> > > > public class M {
> > > > public static void main( String[] args ) {
> > > > C c = new C();
> > > > c.bar(42);
> > > > }
> > > > }
> > > >
> > > > public class C {
> > > > public void bar(int i) {
> > > > System.out.println( i );
> > > > }
> > > > }
> > > >
> > > > @Aspect
> > > > public class A {
> > > >
> > > > @Pointcut( "call(void C.bar( int )) && args( i ) " )
> > > > void fooOfC( int i ) {}
> > > >
> > > > @Around("fooOfC( i )")
> > > > public void foo2( ProceedingJoinPoint pjp, int i) {
> > > > pjp.proceed( new Object[] { pjp.getTarget(), i } );
> > > > /* Doc doesn't show this ---^^^^^^^^^^^^^^^
> > > > * Via the doc I should have passed just the int
> reference
> > > > thus:
> > > > * pjp.proceed( new Object[] { i } );
> > > > */
> > > > }
> > > > }
> > > >
> > > > When I followed the example by only including the int in the Object
> > > > array, I was getting a ClassCastException which after javap'ing
> > the file
> > > > indicated that the weaver appeared to be expecting two arguments
> > rather
> > > > than one. The first (and missing arg) appearing to be the
> instance of
> > > > object to proceed to. By getting the target from the pjp
> > reference and
> > > > adding it to the array of objects passed, the problem seems to be
> > solved
> > > > and everything worked fine. So, I'd just like to have
> confidence that
> > > > what I'm doing is in fact the correct methodology and that this is a
> > > > documentation oversight or alternately, that my limited
> understanding
> > > > has resulted in me completely bolluxing everything up and things
> > should
> > > > be specified in a different way.
> > > >
> > > > Thanks for your help!!!
> > > >
> > > > =Ron=
> > > >
> > > >
> > > > _______________________________________________
> > > > aspectj-users mailing list
> > > > aspectj-users@xxxxxxxxxxx
> > > > https://dev.eclipse.org/mailman/listinfo/aspectj-users
> > > >
> > >
> >
> >------------------------------------------------------------------------
> > > >
> > > >_______________________________________________
> > > >aspectj-users mailing list
> > > >aspectj-users@xxxxxxxxxxx
> > > >https://dev.eclipse.org/mailman/listinfo/aspectj-users
> > > >
> > > >
> > >
> > > _______________________________________________
> > > aspectj-users mailing list
> > > aspectj-users@xxxxxxxxxxx
> > > https://dev.eclipse.org/mailman/listinfo/aspectj-users
> > >
> >
> >------------------------------------------------------------------------
> > >
> > >_______________________________________________
> > >aspectj-users mailing list
> > >aspectj-users@xxxxxxxxxxx
> > >https://dev.eclipse.org/mailman/listinfo/aspectj-users
> > >
> > >
> > Compiled from "M.java"
> > public class ron.interfacetest.M extends java.lang.Object{
> > private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_0;
> >
> > public ron.interfacetest.M();
> > Code:
> > 0: aload_0
> > 1: invokespecial #9; //Method
> > java/lang/Object."<init>":()V
> > 4: return
> >
> > public static void main(java.lang.String[]);
> > Code:
> > 0: new #18; //class
> ron/interfacetest/C
> > 3: dup
> > 4: invokespecial #19; //Method
> > ron/interfacetest/C."<init>":()V
> > 7: astore_1
> > 8: aload_1
> > 9: bipush 42
> > 11: istore_2
> > 12: astore_3
> > 13: getstatic #33; //Field
> > ajc$tjp_0:Lorg/aspectj/lang/JoinPoint$StaticPart;
> > 16: aconst_null
> > 17: aload_3
> > 18: iload_2
> > 19: invokestatic #39; //Method
> > org/aspectj/runtime/internal/Conversions.intObject:(I)Ljava/lang/Object;
> > 22: invokestatic #45; //Method
> >
> org/aspectj/runtime/reflect/Factory.makeJP:(Lorg/aspectj/lang/JoinPoint$StaticPart;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lorg/aspectj/lang/JoinPoint;
> > 25: astore 4
> > 27: invokestatic #64; //Method
> > ron/interfacetest/A.aspectOf:()Lron/interfacetest/A;
> > 30: bipush 3
> > 32: anewarray #4; //class
> > java/lang/Object
> > 35: astore 5
> > 37: aload 5
> > 39: bipush 0
> > 41: aload_3
> > 42: aastore
> > 43: aload 5
> > 45: bipush 1
> > 47: iload_2
> > 48: invokestatic #39; //Method
> > org/aspectj/runtime/internal/Conversions.intObject:(I)Ljava/lang/Object;
> > 51: aastore
> > 52: aload 5
> > 54: bipush 2
> > 56: aload 4
> > 58: aastore
> > 59: new #49; //class
> > ron/interfacetest/M$AjcClosure1
> > 62: dup
> > 63: aload 5
> > 65: invokespecial #52; //Method
> > ron/interfacetest/M$AjcClosure1."<init>":([Ljava/lang/Object;)V
> > 68: invokevirtual #58; //Method
> >
> org/aspectj/runtime/internal/AroundClosure.linkClosureAndJoinPoint:()Lorg/aspectj/lang/ProceedingJoinPoint;
> > 71: iload_2
> > 72: invokevirtual #68; //Method
> > ron/interfacetest/A.foo2:(Lorg/aspectj/lang/ProceedingJoinPoint;I)V
> > 75: return
> >
> > static {};
> > Code:
> > 0: new #44; //class
> > org/aspectj/runtime/reflect/Factory
> > 3: dup
> > 4: ldc #71; //String M.java
> > 6: ldc #73; //String
> ron.interfacetest.M
> > 8: invokestatic #79; //Method
> > java/lang/Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
> > 11: invokespecial #82; //Method
> >
> org/aspectj/runtime/reflect/Factory."<init>":(Ljava/lang/String;Ljava/lang/Class;)V
> > 14: astore_0
> > 15: aload_0
> > 16: ldc #84; //String method-call
> > 18: aload_0
> > 19: ldc #86; //String 1
> > 21: ldc #87; //String bar
> > 23: ldc #89; //String
> > ron.interfacetest.C
> > 25: ldc #91; //String int:
> > 27: ldc #93; //String i:
> > 29: ldc #95; //String
> > 31: ldc #97; //String void
> > 33: invokevirtual #101; //Method
> >
> org/aspectj/runtime/reflect/Factory.makeMethodSig:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/lang/reflect/MethodSignature;
> > 36: bipush 10
> > 38: invokevirtual #105; //Method
> >
> org/aspectj/runtime/reflect/Factory.makeSJP:(Ljava/lang/String;Lorg/aspectj/lang/Signature;I)Lorg/aspectj/lang/JoinPoint$StaticPart;
> > 41: putstatic #33; //Field
> > ajc$tjp_0:Lorg/aspectj/lang/JoinPoint$StaticPart;
> > 44: return
> >
> > static final void bar_aroundBody0(ron.interfacetest.C, int,
> > org.aspectj.lang.JoinPoint);
> > Code:
> > 0: aload_0
> > 1: iload_1
> > 2: invokevirtual #23; //Method
> > ron/interfacetest/C.bar:(I)V
> > 5: return
> >
> > }
> >
> > Compiled from "M.java"
> > public class ron.interfacetest.M extends java.lang.Object{
> > private static final org.aspectj.lang.JoinPoint$StaticPart ajc$tjp_0;
> >
> > public ron.interfacetest.M();
> > Code:
> > 0: aload_0
> > 1: invokespecial #9; //Method
> > java/lang/Object."<init>":()V
> > 4: return
> >
> > public static void main(java.lang.String[]);
> > Code:
> > 0: new #18; //class
> ron/interfacetest/C
> > 3: dup
> > 4: invokespecial #19; //Method
> > ron/interfacetest/C."<init>":()V
> > 7: astore_1
> > 8: aload_1
> > 9: bipush 42
> > 11: istore_2
> > 12: astore_3
> > 13: getstatic #33; //Field
> > ajc$tjp_0:Lorg/aspectj/lang/JoinPoint$StaticPart;
> > 16: aconst_null
> > 17: aload_3
> > 18: iload_2
> > 19: invokestatic #39; //Method
> > org/aspectj/runtime/internal/Conversions.intObject:(I)Ljava/lang/Object;
> > 22: invokestatic #45; //Method
> >
> org/aspectj/runtime/reflect/Factory.makeJP:(Lorg/aspectj/lang/JoinPoint$StaticPart;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lorg/aspectj/lang/JoinPoint;
> > 25: astore 4
> > 27: aload_3
> > 28: iload_2
> > 29: aload 4
> > 31: invokestatic #69; //Method
> > ron/interfacetest/A.aspectOf:()Lron/interfacetest/A;
> > 34: aload 4
> > 36: iload_2
> > 37: invokestatic #73; //Method
> >
> bar_aroundBody1$advice:(Lron/interfacetest/C;ILorg/aspectj/lang/JoinPoint;Lron/interfacetest/A;Lorg/aspectj/lang/ProceedingJoinPoint;I)V
> > 40: return
> >
> > static {};
> > Code:
> > 0: new #44; //class
> > org/aspectj/runtime/reflect/Factory
> > 3: dup
> > 4: ldc #82; //String M.java
> > 6: ldc #84; //String
> ron.interfacetest.M
> > 8: invokestatic #90; //Method
> > java/lang/Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
> > 11: invokespecial #93; //Method
> >
> org/aspectj/runtime/reflect/Factory."<init>":(Ljava/lang/String;Ljava/lang/Class;)V
> > 14: astore_0
> > 15: aload_0
> > 16: ldc #95; //String method-call
> > 18: aload_0
> > 19: ldc #97; //String 1
> > 21: ldc #98; //String bar
> > 23: ldc #100; //String
> > ron.interfacetest.C
> > 25: ldc #102; //String int:
> > 27: ldc #104; //String i:
> > 29: ldc #106; //String
> > 31: ldc #108; //String void
> > 33: invokevirtual #112; //Method
> >
> org/aspectj/runtime/reflect/Factory.makeMethodSig:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/lang/reflect/MethodSignature;
> > 36: bipush 10
> > 38: invokevirtual #116; //Method
> >
> org/aspectj/runtime/reflect/Factory.makeSJP:(Ljava/lang/String;Lorg/aspectj/lang/Signature;I)Lorg/aspectj/lang/JoinPoint$StaticPart;
> > 41: putstatic #33; //Field
> > ajc$tjp_0:Lorg/aspectj/lang/JoinPoint$StaticPart;
> > 44: return
> >
> > private static final void bar_aroundBody0(ron.interfacetest.C, int,
> > org.aspectj.lang.JoinPoint);
> > Code:
> > 0: aload_0
> > 1: iload_1
> > 2: invokevirtual #23; //Method
> > ron/interfacetest/C.bar:(I)V
> > 5: return
> >
> > private static final void bar_aroundBody1$advice(ron.interfacetest.C,
> > int, org.aspectj.lang.JoinPoint, ron.interfacetest.A,
> > org.aspectj.lang.ProceedingJoinPoint, int);
> > Code:
> > 0: aload 4
> > 2: iconst_2
> > 3: anewarray #4; //class
> > java/lang/Object
> > 6: dup
> > 7: iconst_0
> > 8: aload 4
> > 10: invokeinterface #53, 1;
> > //InterfaceMethod
> > org/aspectj/lang/ProceedingJoinPoint.getTarget:()Ljava/lang/Object;
> > 15: aastore
> > 16: dup
> > 17: iconst_1
> > 18: iload 5
> > 20: invokestatic #59; //Method
> > java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
> > 23: aastore
> > 24: astore 6
> > 26: astore 7
> > 28: aload 6
> > 30: bipush 0
> > 32: aaload
> > 33: checkcast #18; //class
> > ron/interfacetest/C
> > 36: aload 6
> > 38: bipush 1
> > 40: aaload
> > 41: invokestatic #77; //Method
> > org/aspectj/runtime/internal/Conversions.intValue:(Ljava/lang/Object;)I
> > 44: aload 7
> > 46: invokestatic #79; //Method
> > bar_aroundBody0:(Lron/interfacetest/C;ILorg/aspectj/lang/JoinPoint;)V
> > 49: aconst_null
> > 50: pop
> > 51: aload 4
> > 53: iconst_1
> > 54: anewarray #4; //class
> > java/lang/Object
> > 57: dup
> > 58: iconst_0
> > 59: iload 5
> > 61: invokestatic #59; //Method
> > java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
> > 64: aastore
> > 65: astore 8
> > 67: astore 9
> > 69: aload 8
> > 71: bipush 0
> > 73: aaload
> > 74: checkcast #18; //class
> > ron/interfacetest/C
> > 77: aload 8
> > 79: bipush 1
> > 81: aaload
> > 82: invokestatic #77; //Method
> > org/aspectj/runtime/internal/Conversions.intValue:(Ljava/lang/Object;)I
> > 85: aload 9
> > 87: invokestatic #79; //Method
> > bar_aroundBody0:(Lron/interfacetest/C;ILorg/aspectj/lang/JoinPoint;)V
> > 90: aconst_null
> > 91: pop
> > 92: return
> >
> > }
> >
> >
> >------------------------------------------------------------------------
> >
> >_______________________________________________
> >aspectj-users mailing list
> >aspectj-users@xxxxxxxxxxx
> >https://dev.eclipse.org/mailman/listinfo/aspectj-users
> >
> >
>
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
>------------------------------------------------------------------------
>
>_______________________________________________
>aspectj-users mailing list
>aspectj-users@xxxxxxxxxxx
>https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
>