Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] Missing stackmap generation for woven code

Hey Eric,

The error above is saying it can't find the asm rather than that there is an issue with missing stack maps. Although possibly the error is occurring because as a side effect of the missing stack maps, I'd need to check.

> Are there libraries to manipulate/generate a stackmap? 

This is exactly what AspectJ is using Asm for. We weave/modify the bytecode and rather than incrementally try and patch up the stack maps, we just generate entirely fresh ones at the end of the process. A very basic Asm visitor to read/write the bytecode will produce them.  Which is why I'm surprised about the message - we aren't looking for existing ones to fix up, we are just looking for that version of asm to write out entirely new ones.

cheers,
Andy


On 7 October 2017 at 05:49, Eric B <ebenzacar@xxxxxxxxx> wrote:
While I don't disagree with your answer, I dont have the first clue how to fix a legacy jdo library (circa 2004) that performs byte enhancement and does not write the stackmap.    Are there libraries to manipulate/generate a stackmap? 

Is there anything else can I do in the meantime to unblock the situation? 

Thanks
Eric


On Oct 7, 2017 12:11 AM, "Alexander Kriegisch" <alexander@xxxxxxxxxxxxxx> wrote:
I know that this is not the answer you are looking for, but my suggestion is to heal the illness instead of taking pills against its symptoms. Go fix your problem in the other module which requires noverify in the first place. Generating broken bytecode does not sound like a wise approach to me.

--
Alexander Kriegisch


> Am 07.10.2017 um 02:55 schrieb Eric B <ebenzacar@xxxxxxxxx>:
>
> I'm running into a problem with AspectJ 1.8.10, and not sure how to resolve this.
>
> I have a multi-module maven build.  One of my modules requires running an ant task (using the antrun-maven-plugin) with the jvm -noverify flag.  Consequently, I run the entire maven build using the -noverify flag.
>
> However, my last module in my build is an AspectJ module.  When I try to compile it using the aspectj-maven-plugin, I get the following error thrown:
>
> [ERROR] Failed to execute goal org.codehaus.mojo:aspectj-maven-plugin:1.10:compile (default) on project adams-aspects: AJC compiler errors:
> [ERROR] abort ABORT -- (BCException) Unable to find Asm for stackmap generation (Looking for 'aj.org.objectweb.asm.ClassReader'). Stackmap generation for woven code is required to avoid verify errors on a Java 1.7 or higher runtime
> [ERROR] when weaving type webapp.tiles.AthleteBasedForm
> [ERROR] when weaving classes
> [ERROR] when weaving
> [ERROR] when batch building BuildConfig[null] #Files=8 AopXmls=#0
> [ERROR]
>
>
> So I'm a bit in a bind.  I can't figure out any way to reconcile both requirements - that module1 needs to run a plugin with the -noverify parameter, and the aspectj plugin that needs to run it without.
>
> Is there anyway I can disable the need for the stackmap generation to exist in AJ 1.8.10?  I've looked for parameters I can pass to ajc but can't find any.
>
> Thanks,
>
> Eric
>
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> To change your delivery options, retrieve your password, or unsubscribe from this list, visit
> https://dev.eclipse.org/mailman/listinfo/aspectj-users

_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/aspectj-users


_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/aspectj-users


Back to the top