Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
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
>  
>



Back to the top