Community
Participate
Working Groups
Summary: When trying to process a directory of classes with a set of aspectj I found that the aspectj compiler would fail. With the exception shown here: D:\ade\gdavison_ct\modelers\src\oracle\bm\diagrammer\ui\shape\HintPagePanel.jav a:90 warning call to print*, use oracle.ide.Assert.print* instead (no source information available) method-call(void java.lang.Exception.printStackTrace()) see also: D:\ade\gdavison_ct\modelers\ajsrc\oracle\ide\util\DontAllowPrintln.aj:27 see also: D:\ade\gdavison_ct\modelers\classes\oracle\bm\diagrammer\ui\shape\HintPagePanel .c ass ABORT Exception thrown from AspectJ 1.2rc1 This might be logged as a bug already -- find current bugs at http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&component=Compiler Bugs for exceptions thrown have titles File:line from the top stack, e.g., "SomeFile.java:243" If you don't find the exception below in a bug, please add a new bug at http://bugs.eclipse.org/bugs/enter_bug.cgi?product=AspectJ To make the bug a priority, please include a test program that can reproduce this exception. null java.lang.NullPointerException at org.aspectj.ajdt.internal.core.builder.EclipseAdapterUtils.makeLocationContext (EclipseAd pterUtils.java:50) at org.aspectj.ajdt.internal.core.builder.EclipseAdapterUtils.makeSourceLocation (EclipseAda terUtils.java:120) at org.aspectj.ajdt.internal.core.builder.EclipseAdapterUtils.makeMessage (EclipseAdapterUti s.java:129) at org.aspectj.ajdt.internal.core.builder.AjBuildManager$4.acceptResult (AjBuildManager.java 663) at org.aspectj.ajdt.internal.compiler.AjCompilerAdapter.acceptResult (AjCompilerAdapter.java 178) at org.aspectj.ajdt.internal.compiler.WeaverAdapter.finishedWith (WeaverAdapter.java:203) at org.aspectj.ajdt.internal.compiler.WeaverAdapter.next (WeaverAdapter.java:113) at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:559) at org.aspectj.ajdt.internal.compiler.AjCompilerAdapter.weave (AjCompilerAdapter.java:239) at org.aspectj.ajdt.internal.compiler.AjCompilerAdapter.afterCompiling (AjCompilerAdapter.ja a:114) at org.eclipse.jdt.internal.compiler.Compiler.compile (Compiler.java:376) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performCompilation (AjBuildManager. ava:600) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.doBuild (AjBuildManager.java:160) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild (AjBuildManager.java:94) at org.aspectj.ajdt.ajc.AjdtCommand.doCommand(AjdtCommand.java:102) at org.aspectj.ajdt.ajc.AjdtCommand.runCommand(AjdtCommand.java:53) at org.aspectj.tools.ajc.Main.run(Main.java:280) at org.aspectj.tools.ajc.Main.runMain(Main.java:217) at org.aspectj.tools.ajc.Main.main(Main.java:79) 1 fail|abort, 270 warnings gmake: *** [aj_post_process] Error -1 The command line I am running can be seen here, note that some entries on the classpath appear to be missing; but this would have built if I was using javac: @d:\ade\gdavison_ct\oracle\jdk\bin\java.exe -Xmx180M -classpath d:\ade\gdavison_ct\jtbuild\buildtools\aspectj\aspectjtools.jar org.aspectj.tools.ajc.Main -inpath d:\ade\gdavison_ct\modelers\classes -d d:\ade\gdavison_ct\modelers\ajclasses -sourceroots d:\ade\gdavison_ct\modelers\ajsrc -classpath d:\ade\gdavison_ct\jtbuild\buildtools\aspectj\aspectjrt.jar;d:\ade\gdavison_ct\ oracle\jdev\classes;d:\ade\gdavison_ct\oracle\jdev\..\ide\lib\javatools.jar;d:\ ade\gdavison_ct\oracle\jdev\..\ide\lib\ide.jar;d:\ade\gdavison_ct\oracle\jdev\l ib\jdev.jar;d:\ade\gdavison_ct\oracle\jdev\lib\xmleditor.jar;d:\ade\gdavison_ct \oracle\jdev\lib\xmladdin.jar;d:\ade\gdavison_ct\oracle\jdev\lib\ojc.jar;d:\ade \gdavison_ct\oracle\jdev\..\rdbms\jlib\ojdi.jar;d:\ade\gdavison_ct\oracle\jdev\ ..\apache-ant-1.6.0\lib\ant.jar;d:\ade\gdavison_ct\oracle\jdev\..\apache-ant- 1.6.0\lib\ant-nodeps.jar;d:\ade\gdavison_ct\oracle\jdev\lib\batik- ext.jar;d:\ade\gdavison_ct\oracle\jdev\..\lib\xmlparserv2.jar;d:\ade\gdavison_c t\oracle\jdev\lib\jgl3.1.0.jar;d:\ade\gdavison_ct\oracle\jdev\..\jlib\jewt4.jar ;d:\ade\gdavison_ct\oracle\jdev\..\jlib\share.jar;d:\ade\gdavison_ct\oracle\jde v\..\jlib\help4.jar;d:\ade\gdavison_ct\oracle\jdev\..\jlib\inspect4.jar;d:\ade\ gdavison_ct\oracle\jdev\..\vbroker4 \lib\vbjorb.jar;d:\ade\gdavison_ct\oracle\jdev\..\javavm\lib\aurora.zip;d:\ade\ gdavison_ct\oracle\jdev\..\jdbc\lib\ojdbc14.jar;d:\ade\gdavison_ct\oracle\jdev\ ..\jdbc\lib\orai18n.jar;d:\ade\gdavison_ct\oracle\jdev\..\j2ee\home\lib\ojsp.ja r;d:\ade\gdavison_ct\oracle\jdev\..\j2ee\home\jsp\lib\taglib\ojsputil.jar;d:\ad e\gdavison_ct\oracle\jdev\..\jsp\lib\ojspicons.jar;d:\ade\gdavison_ct\oracle\jd ev\..\jlib\oracle_ice.jar;d:\ade\gdavison_ct\oracle\jdev\..\sqlj\lib\translator .jar;d:\ade\gdavison_ct\oracle\jdev\..\sqlj\lib\runtime12.jar;d:\ade\gdavison_c t\oracle\jdev\..\j2ee\home\lib\servlet.jar;d:\ade\gdavison_ct\oracle\jdev\..\jl ib\regexp.jar;d:\ade\gdavison_ct\oracle\jdev\..\soap\lib\soap.jar;d:\ade\gdavis on_ct\oracle\jdev\..\webservices\lib\wsdl.jar;d:\ade\gdavison_ct\oracle\jdev\.. \webservices\lib\orawsdl.jar;d:\ade\gdavison_ct\oracle\jdev\..\webservices\lib\ wsdl- api.jar;d:\ade\gdavison_ct\oracle\jdev\..\webservices\lib\wsa.jar;d:\ade\gdavis on_ct\oracle\jdev\..\webservices\lib\wsclient.jar;d:\ade\gdavison_ct\oracle\jde v\..\j2ee\home\lib\http_client.jar;d:\ade\gdavison_ct\oracle\jdev\..\jlib\jssl- 1_2.jar;d:\ade\gdavison_ct\oracle\jdev\..\j2ee\home\oc4j.jar;d:\ade\gdavison_ct \oracle\jdev\..\j2ee\home\lib\oc4j- internal.jar;d:\ade\gdavison_ct\oracle\jdev\..\lib\xmlcomp.jar;d:\ade\gdavison_ ct\oracle\jdev\..\uddi\lib\uddiclient.jar;d:\ade\gdavison_ct\oracle\jdev\..\jli b\uix2.jar;d:\ade\gdavison_ct\oracle\jdev\lib\jr_cmd.jar;d:\ade\gdavison_ct\ora cle\jdev\lib\jr_cws.jar;d:\ade\gdavison_ct\oracle\jdev\lib\jr_dav.jar;d:\ade\gd avison_ct\oracle\jdev\lib\jr_diff.jar;d:\ade\gdavison_ct\oracle\jdev\lib\jr_fil e.jar;d:\ade\gdavison_ct\oracle\jdev\lib\jr_jol.jar;d:\ade\gdavison_ct\oracle\j dev\lib\jr_vhv.jar;d:\ade\gdavison_ct\oracle\jdev\lib\tsgdtj50.jar;d:\ade\gdavi son_ct\oracle\jdev\lib\tsgetj50.jar;d:\ade\gdavison_ct\oracle\jdev\lib\tsgltjav a50.jar;d:\ade\gdavison_ct\oracle\jdev\lib\tsgmtj50.jar;d:\ade\gdavison_ct\orac le\jdev\..\toplink\jlib\toplink.jar;d:\ade\gdavison_ct\oracle\jdev\..\j2ee\home \lib\ejb.jar;d:\ade\gdavison_ct\oracle\jdev\lib\tl_mappingeditor.jar;d:\ade\gda vison_ct\oracle\jdev\..\jakarta-commons-el\commons- el.jar;d:\ade\gdavison_ct\oracle\jdev\..\jakarta-commons-el\jsp-el- api.jar;d:\ade\gdavison_ct\oracle\jdev\..\jakarta-commons-el\oracle- el.jar;d:\ade\gdavison_ct\oracle\jdev\lib\looks- 1.2.1.jar;d:\ade\gdavison_ct\oracle\jdev\..\j2ee\home\lib\javax88.jar;d:\ade\gd avison_ct\oracle\jdev\..\xdoclet-1.2\lib\commons- logging.jar;d:\ade\gdavison_ct\oracle\jdev\..\xdoclet-1.2\lib\xdoclet- 1.2.jar;d:\ade\gdavison_ct\oracle\jdev\..\xdoclet-1.2\lib\xjavadoc- 1.0.2.jar;d:\ade\gdavison_ct\oracle\jdev\lib\batik-awt- util.jar;d:\ade\gdavison_ct\oracle\jdev\lib\batik- dom.jar;d:\ade\gdavison_ct\oracle\jdev\lib\batik- svggen.jar;d:\ade\gdavison_ct\oracle\jdev\lib\batik- transcoder.jar;d:\ade\gdavison_ct\oracle\jdev\lib\batik- util.jar;d:\ade\gdavison_ct\oracle\jdev\lib\batik- xml.jar;d:\ade\gdavison_ct\oracle\jdev\lib\batik- bridge.jar;d:\ade\gdavison_ct\oracle\jdev\lib\batik- css.jar;d:\ade\gdavison_ct\oracle\jdev\lib\batik-gui- util.jar;d:\ade\gdavison_ct\oracle\jdev\lib\batik- gvt.jar;d:\ade\gdavison_ct\oracle\jdev\lib\batik- parser.jar;d:\ade\gdavison_ct\oracle\jdev\lib\batik- script.jar;d:\ade\gdavison_ct\oracle\jdev\lib\batik-svg- dom.jar;d:\ade\gdavison_ct\oracle\jdev\lib\modelers.jar;d:\ade\gdavison_ct\orac le\jdev\lib\jdukshare.jar; -verbose The only aspect that is on the ajsrc path is just this simple one in ...\oracle\ide\util: package oracle.ide.util; /** * This aspect warns when calls are made to println * or printStackTrace. Assert.print* should be used instead * * @author Gerard M. Davison */ public aspect DontAllowPrintln { /** * Trap all calls to println and printStackTrace */ pointcut printCalls() : call(void java.io.PrintStream.println(String)) || call(void java.lang.Throwable.printStackTrace(..)); /** * Warn if used */ declare warning : printCalls(): "call to print*, use oracle.ide.Assert.print* instead" ; } Unfortunately because of the location of the error it was not possible to work out which class file it failed on even with verbose turned on. I would be glad to look into this if you can point me at some flags that you provide me with a little bit more input. Then I can provide a more focused test case for you.
I think this is another case of bug 59596 (and part of bug 60015) which is now fixed in CVS. From the comprehensive description provided in this bug (thanks!) of what caused the problem - I am almost certain it is the same thing. Fix will be in 1.2 RC2 - due later this week.
*** This bug has been marked as a duplicate of 59596 ***