[abc-users] abc's AspectJ compatibility

From: Thomas Pawlitzki <mailinglist_at_pawlitzki.name>
Date: Sun, 9 Mar 2008 22:13:12 +0100

Hallo,

i'm testing the HEAD branch of the ab compiler at the moment.

In doing so i tried to compile AJHotDraw [1]. This is a aspectual
refactoring of the JHotDraw framework.

I had no difficulties by compiling AJHotDraw with the ajc. It finished
without any errors.

During the compilation with the abc the following error is thrown:

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

abc:
     [java] abc started on Sun Mar 09 20:53:43 GMT 2008
     [java] /home/thomas/workspace/java/abc-head/../abc-head-ajhotdraw/AJHotDraw/src/aspects/org/jhotdraw/ccconcerns/commands/undo/DeleteCommandUndo.aj:56:
     [java] Invalid application of around advice from aspect
     [java] org.jhotdraw.ccconcerns.commands.undo.UndoRedoActivity
     [java]
(/home/thomas/workspace/java/abc-head/../abc-head-ajhotdraw/AJHotDraw/src/aspects/org/jhotdraw/ccconcerns/commands/undo/UndoRedoActivity.aj,
     [java] line 138) : Can't apply around advice with non-object
non-void return type
     [java] to a void shadow (shadow type: void; advice return
type: boolean)
     [java] setRedoable(true);
     [java] ^---------------^
     [java]
     [java] 1 error.
     [java] Java Result: 5
<<<<<<<<<<<<<<<<<<<<<<<<<

The source code of the indicated position is:

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        boolean around(Undoable undoable, boolean newIsRedoable) :
callUndoableSetRedoable(undoable, newIsRedoable) {
                return proceed(undoable, newIsRedoable);
        }
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

After commenting this posistion out the compiler throws the next error:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
abc:
     [java] abc started on Sun Mar 09 21:06:13 GMT 2008
     [java] Exception in thread "main"
polyglot.util.InternalCompilerError: unhandled exception during
weaving/optimisation
     [java] at
abc.main.CompileSequence.runSequence(CompileSequence.java:121)
     [java] at abc.main.Main.run(Main.java:487)
     [java] at abc.main.Main.main(Main.java:144)
     [java] Caused by: polyglot.util.InternalCompilerError:
/home/thomas/workspace/java/abc-head/../abc-head-ajhotdraw/AJHotDraw/src/aspects/org/jhotdraw/ccconcerns/commands/UndoableCommand.aj:102,1-128:2:
Error during matching
     [java] at
abc.weaving.matching.AdviceApplication.doShadows(AdviceApplication.java:208)
     [java] at
abc.main.AbcExtension.findMethodShadows(AbcExtension.java:542)
     [java] at
abc.weaving.matching.AdviceApplication.doMethod(AdviceApplication.java:274)
     [java] at
abc.weaving.matching.AdviceApplication.computeAdviceLists(AdviceApplication.java:312)
     [java] at
abc.weaving.aspectinfo.GlobalAspectInfo.computeAdviceLists(GlobalAspectInfo.java:492)
     [java] at abc.main.CompileSequence.weave(CompileSequence.java:426)
     [java] at abc.main.CompileSequence.runSequence(CompileSequence.java:94)
     [java] ... 2 more
     [java] Caused by: java.lang.RuntimeException:
     [java] Aborting: can't find classfile
org.aspectbench.runtime.reflect.Factory
     [java] at soot.Scene.getSootClass(Scene.java:412)
     [java] at abc.weaving.matching.AbcSJPInfo.<init>(AbcSJPInfo.java:48)
     [java] at abc.main.AbcExtension.createSJPInfo(AbcExtension.java:351)
     [java] at
abc.weaving.matching.MethodCallShadowMatch.makeSJPInfo(MethodCallShadowMatch.java:141)
     [java] at
abc.weaving.matching.ShadowMatch.recordSJPInfo(ShadowMatch.java:75)
     [java] at
abc.weaving.matching.ShadowMatch.getSJPInfo(ShadowMatch.java:81)
     [java] at
abc.weaving.residues.JoinPointInfo.<init>(JoinPointInfo.java:59)
     [java] at
abc.weaving.aspectinfo.AdviceDecl.postResidue(AdviceDecl.java:214)
     [java] at
abc.weaving.matching.AdviceApplication$4.run(AdviceApplication.java:131)
     [java] at
abc.weaving.matching.AdviceApplication.doShadows(AdviceApplication.java:191)
     [java] ... 8 more
     [java] Java Result: 1
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

For me it seems as if the abc act diffrent as the ajc.
Is this issue known or occured this problem in previous tests?

Greetings,
Thomas

[1] http://sourceforge.net/projects/ajhotdraw
Received on Sun Mar 09 2008 - 21:13:15 GMT

This archive was generated by hypermail 2.2.0 : Sun Mar 09 2008 - 21:50:10 GMT