Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-dev] exception during compilation

I can't tell what's happening just from the stack trace, but it does
look like a bug.   Perhaps the properties in your maven project are
forcing a different compiler level that is not compatible with your
code.  Any chance you can send over the project?

Also, it would be good to raise a bugzilla issue for this.

On Wed, Mar 14, 2012 at 7:52 AM, Steve Ash <stevemash@xxxxxxxxx> wrote:
> Anyone have any thoughts about this?
>
>
> On Mon, Mar 5, 2012 at 11:14 AM, Steve Ash <stevemash@xxxxxxxxx> wrote:
>>
>> I'm trying to build two aspects such that one or the other will be woven
>> depending on a boolean value in an attribute.  So if logArgs is true then it
>> will weave TraceAspect and if logArgs is false it will weave
>> TraceWithoutArgsAspect.
>>
>> @Trace(logArgs=true)
>> public void someMethod(String someArg) {
>>    ...
>> }
>>
>> And I have the aspects setup like so:
>>
>> public abstract aspect AbstractTraceAspect {
>>
>>     abstract pointcut MethodsToLog();
>>
>>     pointcut MethodsMarkedTraceAndLevel(TraceLevel level) :
>>         MethodsToLog() && @annotation(Trace(level));
>>
>> }
>>
>> public aspect TraceWithoutArgsAspect extends AbstractTraceAspect {
>>
>>     pointcut MethodsToLog() : execution(@Trace(logArgs=false) * *.*(..));
>>
>>     before(TraceLevel level) : MethodsMarkedTraceAndLevel(level) {
>>        ...
>>     }
>>     ...
>> }
>>
>> Note that my annotation definition is like:
>>
>> public @interface Trace {
>>     TraceLevel value() default TraceLevel.INFO;
>>     boolean logArgs() default true;
>> }
>>
>> Everything works wonderfully with AJDT -- everything compiles all of my
>> unit tests work perfectly.  The correct aspect is woven and the behaviors
>> work as expected.
>>
>> When I try to do a maven build, it blows up in the compiler producing the
>> dump which I have attached.
>>
>> Here is the beginning of the stack trace from the compiler (for future
>> googlers):
>>
>> [ERROR] -- (RuntimeException) Dont call getValueString() on a non STRING
>> ElementValue
>> [ERROR] Dont call getValueString() on a non STRING ElementValue
>> [ERROR] java.lang.RuntimeException: Dont call getValueString() on a non
>> STRING ElementValue
>> [ERROR] at
>> org.aspectj.apache.bcel.classfile.annotation.SimpleElementValue.getValueString(SimpleElementValue.java:204)
>> [ERROR] at
>> org.aspectj.weaver.bcel.AnnotationAccessFieldVar.appendLoadAndConvert(AnnotationAccessFieldVar.java:79)
>> [ERROR] at
>> org.aspectj.weaver.bcel.BcelAdvice.getAdviceArgSetup(BcelAdvice.java:605)
>> [ERROR] at
>> org.aspectj.weaver.bcel.BcelAdvice.getAdviceInstructions(BcelAdvice.java:476)
>> [ERROR] at
>> org.aspectj.weaver.bcel.BcelShadow.weaveBefore(BcelShadow.java:1667)
>> [ERROR] at
>> org.aspectj.weaver.bcel.BcelAdvice.implementOn(BcelAdvice.java:316)
>> [ERROR] at org.aspectj.weaver.Shadow.implementMungers(Shadow.java:630)
>> [ERROR] at org.aspectj.weaver.Shadow.implement(Shadow.java:544)
>> [ERROR] at
>> org.aspectj.weaver.bcel.BcelClassWeaver.implement(BcelClassWeaver.java:3147)
>>
>> I have tried this with the 1.6.11 release, the 1.6.12 release, and the
>> 1.7.0 snapshot build from the spring repo and all fail with this.
>>
>> Here are my AJDT version numbers:
>>
>>    AJDT version: 2.2.0.e37x-20120302-1100
>>    AspectJ Compiler version: DEVELOPMENT
>>
>>
>> Any clues as to what going wrong here?
>>
>> Thanks,
>>
>> Steve Ash
>
>
>
> _______________________________________________
> aspectj-dev mailing list
> aspectj-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-dev
>


Back to the top