[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] (no subject)

Looks like a bug to me, if you raise it in bugzilla I will look into it.

Andy

On 06/11/2007, Jean-Louis PASTUREL <jean-louis.pasturel@xxxxxxxxx> wrote:
>  Hi,
> Sorry for the lengh of this post !
> I create an abstract Aspect like this :
>
> package iep.perf;
>
> import java.util.Calendar;
> import java.io.File;
>
> public abstract aspect AbstractDurationMethod {
>    private static String rootTrace = "";
>
>    private static Trace outDurationMethods;
>    static {
>        rootTrace = System.getProperty("rootTrace");
>
>        outDurationMethods = new Trace(rootTrace + File.separator
>                + "outDurationMethods.log");
>    }
>
>    public abstract pointcut methods();
>
>    Object around(): methods() {
>        long deb = Calendar.getInstance().getTimeInMillis();
>
>        Object retour= proceed();
>        long fin = Calendar.getInstance().getTimeInMillis();
>        outDurationMethods.append(outDurationMethods.getSdf().format(
>                Calendar.getInstance().getTime())
>                + ";JointPoint ="
>                + thisJoinPoint.getSignature().getDeclaringTypeName()
>                + "."
>                + thisJoinPoint.getSignature().getName()
>                + ";duration="
>                + (fin - deb) + " ms\n");
>        outDurationMethods.flush();
>        return retour;
>          }
>
> }
>
> I use classes Square and Circle found in eclipse documentation to test my
> aspects
>
> When i try this aspect with concrete-aspect tag in aop.xml :
>
> <concrete-aspect name="iep.perf.DurationMethod"
>            extends="iep.perf.AbstractDurationMethod">
>            <pointcut name="methods"
>                expression="within(jlp.exemple1.*) &amp;&amp;  call (public *
> jlp..*(..))" />
>        </concrete-aspect>
>
> I get this error :
> Exception in thread "main" java.lang.IllegalAccessError: tried to access
> method
> iep.perf.AbstractDurationMethod.ajc$around$iep_perf_AbstractDurationMethod$1$cd1
> 02c33proceed(Lorg/aspectj/runtime/internal/AroundClosure;)Ljava/lang/Object;
> fro
> m class jlp.exemple1.Main
>        at
> jlp.exemple1.Main.perimeter_aroundBody1$advice(Main.java:124)
>        at
> jlp.exemple1.Main.perimeter_aroundBody2(Main.java:1)
>        at jlp.exemple1.Main$AjcClosure3.run(Main.java:1)
>        at
> iep.perf.AbstractDurationMethod.ajc$around$iep_perf_AbstractDurationMethod$1$cd102c33proceed(AbstractDurationMethod.aj:1)
>        at
> iep.perf.AbstractDurationMethod.ajc$around$iep_perf_AbstractDurationMethod$1$cd102c33(AbstractDurationMethod.aj:24)
>        at jlp.exemple1.Main.main(Main.java:8)
>
> When I extend my Abstract Aspect like this :
> package iep.perf;
>
> public aspect ConcreteDurationMethod extends AbstractDurationMethod {
>
>    public pointcut methods():within(jlp.exemple1.*) &&  call (public *
> jlp..*(..));
>
> }
>
> and modify my aop.xml like below :
> <aspect name="iep.perf.ConcreteCounterInstances"/>
> it runs fine !
> But that i want is to use concrete-aspect tag.
> I use AspectJ 1.5.4 embedded in Eclipse Europa 3.3.1  Build id:
> M20070921-1145
>
> Do you think that is a bug, or otherwise what did i miss ?
> Thanks
> JLP
>
>
>
>
>
>
>
>
>
>
>
>
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
>