[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] Corbetura + LTW

Sorry I didn't reply sooner - at a conference right now.

Yes, we can work with cobertura but you have to be careful on ordering
when running it and AJ together.  There is at least one open bug in
this area:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=325362

cheers,
Andy

On 16 May 2012 08:09, Steve Ash <stevemash@xxxxxxxxx> wrote:
> Just for anyone that runs across this in the googles-- this was just
> me being stupid.  I had not cleaned the workspace and the class files
> that corbetura was instrumenting were already woven at compile time.
> So compile time ajc -> corbetura instrumentation -> LTW caused this
> blow up.  You can see the ajc stuff already in the class file that I
> attached to my previous message.
>
> Once I cleaned and re-ran letting javac build the original class files
> then having corbetura instrument those and do LTW on the corbetura
> classes  --- everything worked fine.
>
> So to answer my original question -- it appears that with corbetura
> 2.5.1 and AspectJ Weaver 1.7.0.M1 -- LTW can weave into corbetura
> instrumented classes.
>
> Steve
>
> On Tue, May 15, 2012 at 11:45 AM, Steve Ash <stevemash@xxxxxxxxx> wrote:
>> I have run across a number of things on google so I know that this has
>> come up in the past, but I couldn't get a clear answer.  So sorry for
>> the re-post.
>>
>> I am trying to use corbetura + aspectJ LTW and the weaver is blowing
>> up on the corbetura instrumented classes.  I am trying to dig in to
>> the class file to see if I can spot the exact problem, but wanted to
>> post and see if the expectation was that this would work or not.  I am
>> using the 1.7.0.M1 weaver and this is the stack trace:
>>
>> SEVERE: com/argodata/empi/database/util/InsertIfMissingEntityLoader
>> org.aspectj.apache.bcel.classfile.ClassFormatException: File:
>> 'com.argodata.empi.database.util.InsertIfMissingEntityLoader': Invalid
>> byte tag in constant pool: 0
>>        at org.aspectj.apache.bcel.classfile.ClassParser.readConstantPool(ClassParser.java:192)
>>        at org.aspectj.apache.bcel.classfile.ClassParser.parse(ClassParser.java:131)
>>        at org.aspectj.weaver.bcel.Utility.makeJavaClass(Utility.java:467)
>>        at org.aspectj.weaver.bcel.BcelWeaver.processReweavableStateIfPresent(BcelWeaver.java:1387)
>>        at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1097)
>>        at org.aspectj.weaver.tools.WeavingAdaptor.getWovenBytes(WeavingAdaptor.java:472)
>>        at org.aspectj.weaver.tools.WeavingAdaptor.weaveClass(WeavingAdaptor.java:323)
>>        at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:99)
>>        at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:54)
>>
>> I have a few spring-aspects @Transactional annotations in there
>> weaving the before, after, and throwing advice for
>> TransactionalAspect.
>>
>> I have attached the cobetura instrumented class file to this message
>> if that helps at all.
>>
>> But I guess the main question is: should this work?  Or is this a
>> known limitation?
>>
>> Thanks,
>>
>> Steve
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-users