Critical failures reported by ajc (e.g. reweaving already weaved code) are not
handled by the plugin
----------------------------------------------------------------------------------------------------
Key: MASPECTJ-74
URL: http://jira.codehaus.org/browse/MASPECTJ-74
Project: Mojo AspectJ Plugin
Issue Type: Bug
Affects Versions: 1.2
Reporter: Torsten Juergeleit
Priority: Blocker
The ApsectJ plugin currently only handles errors with the severity level
{{IMessage.ERROR}}. This leads to successful builds despite of an ajc bailed
out badly (severity level greater than {{IMessage.ERROR}}), e.g. if already
woven code should be rewoven. This stated of reweaving already woven code can
easily be reproduced by changing the AspectJ plugins setting in the POM. This
leads to an modified ajc argument file and and {{isBuildNeeded()}} return
{{true}}.
{code}
D:\vk\trunk-9.2\backend\flow>mvn process-classes
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building VK Backend: Flow Engine
[INFO] task-segment: [process-classes]
[INFO] ------------------------------------------------------------------------
[INFO] [enforcer:enforce {execution: Enforcing build rules}]
[INFO] [resources:resources {execution: default-resources}]
[INFO] Using 'ISO-8859-1' encoding to copy filtered resources.
[INFO] Copying 6 resources
[INFO] [compiler:compile {execution: default-compile}]
[INFO] Nothing to compile - all classes are up to date
[INFO] [aspectj:compile {execution: Weaving .class files}]
[INFO] Compiling and weaving 4 aspects to
D:\vk\trunk-9.2\backend\flow\target\classes
[ERROR] ABORT
20.08.2009 19:01:41 org.aspectj.weaver.tools.Jdk14Trace info
INFO: Dumping to D:\vk\trunk-9.2\backend\flow\.\ajcore.20090820.190141.346.txt
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3 seconds
[INFO] Finished at: Thu Aug 20 19:01:41 CEST 2009
[INFO] Final Memory: 16M/29M
[INFO] ------------------------------------------------------------------------
{code}
This can be fixed easily within in a single line of
{{AbstractAjcCompiler.execute()}}:
{code}
Index: src/main/java/org/codehaus/mojo/aspectj/AbstractAjcCompiler.java
===================================================================
--- src/main/java/org/codehaus/mojo/aspectj/AbstractAjcCompiler.java
(revision 10299)
+++ src/main/java/org/codehaus/mojo/aspectj/AbstractAjcCompiler.java
(working copy)
@@ -358,7 +358,7 @@
main.setHolder( mavenMessageHandler );
main.runMain( (String[]) ajcOptions.toArray( new String[0] ), false );
- IMessage[] errors = mavenMessageHandler.getErrors();
+ IMessage[] errors = mavenMessageHandler.getMessages(IMessage.ERROR,
true);
if ( errors.length > 0 )
{
throw new CompilationFailedException( errors );
{code}
After applying this patch the aforementioned "successful" build is now aborting
correctly:
{code}
D:\vk\trunk-9.2\backend\flow>mvn process-classes
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building VK Backend: Flow Engine
[INFO] task-segment: [process-classes]
[INFO] ------------------------------------------------------------------------
[INFO] [enforcer:enforce {execution: Enforcing build rules}]
[INFO] [resources:resources {execution: default-resources}]
[INFO] Using 'ISO-8859-1' encoding to copy filtered resources.
[INFO] Copying 6 resources
[INFO] [compiler:compile {execution: default-compile}]
[INFO] Nothing to compile - all classes are up to date
[INFO] [aspectj:compile {execution: Weaving .class files}]
[INFO] Compiling and weaving 4 aspects to
D:\vk\trunk-9.2\backend\flow\target\classes
[INFO] directory classpath entry does not exist:
D:\develop\jdk1.6.0_16\jre\lib\sunrsasign.jar
[INFO] zipfile classpath entry does not exist:
D:\develop\jdk1.6.0_16\jre\classes
[ERROR] ABORT
20.08.2009 19:33:29 org.aspectj.weaver.tools.Jdk14Trace info
INFO: Dumping to D:\vk\trunk-9.2\backend\flow\.\ajcore.20090820.193329.464.txt
[INFO] Compiler took 265ms
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Compiler errors :
abort ABORT -- (RuntimeException) bad WeaverState.Kind: -115. File was
:<Unknown>::0
bad WeaverState.Kind: -115. File was :<Unknown>::0
java.lang.RuntimeException: bad WeaverState.Kind: -115. File was :<Unknown>::0
at org.aspectj.weaver.WeaverStateInfo.read(WeaverStateInfo.java:133)
at org.aspectj.weaver.AjAttribute.read(AjAttribute.java:100)
at org.aspectj.weaver.bcel.Utility.readAjAttributes(Utility.java:98)
at
org.aspectj.weaver.bcel.BcelObjectType.ensureAspectJAttributesUnpacked(BcelObjectType.java:355)
at
org.aspectj.weaver.bcel.BcelObjectType.<init>(BcelObjectType.java:146)
at
org.aspectj.weaver.bcel.BcelWorld.buildBcelDelegate(BcelWorld.java:371)
at
org.aspectj.weaver.bcel.BcelWorld.addSourceObjectType(BcelWorld.java:434)
at org.aspectj.weaver.bcel.BcelWeaver.addClassFile(BcelWeaver.java:450)
at org.aspectj.weaver.bcel.BcelWeaver.addClassFile(BcelWeaver.java:474)
at
org.aspectj.ajdt.internal.core.builder.AjBuildManager.initBcelWorld(AjBuildManager.java:879)
at
org.aspectj.ajdt.internal.core.builder.AjBuildManager.performBuild(AjBuildManager.java:244)
at
org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(AjBuildManager.java:181)
at org.aspectj.ajdt.ajc.AjdtCommand.doCommand(AjdtCommand.java:112)
at org.aspectj.ajdt.ajc.AjdtCommand.runCommand(AjdtCommand.java:60)
at org.aspectj.tools.ajc.Main.run(Main.java:355)
at org.aspectj.tools.ajc.Main.runMain(Main.java:234)
at
org.codehaus.mojo.aspectj.AbstractAjcCompiler.execute(AbstractAjcCompiler.java:396)
at
org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
at
org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3 seconds
[INFO] Finished at: Thu Aug 20 19:33:29 CEST 2009
[INFO] Final Memory: 16M/29M
[INFO] ------------------------------------------------------------------------
{code}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email