Skip to main content

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

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


Back to the top