Bug 60862 - NullPointerLocation at EclipseAdapterUtils.makeLocationContext:50
Summary: NullPointerLocation at EclipseAdapterUtils.makeLocationContext:50
Status: RESOLVED DUPLICATE of bug 59596
Alias: None
Product: AspectJ
Classification: Tools
Component: Compiler (show other bugs)
Version: 1.2.1   Edit
Hardware: PC Windows XP
: P3 major (vote)
Target Milestone: ---   Edit
Assignee: Jim Hugunin CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-05-04 08:23 EDT by Gerard Davison CLA
Modified: 2004-05-13 05:23 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Gerard Davison CLA 2004-05-04 08:23:50 EDT
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.
Comment 1 Andrew Clement CLA 2004-05-04 08:32:44 EDT
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.  
Comment 2 Adrian Colyer CLA 2004-05-13 05:23:20 EDT

*** This bug has been marked as a duplicate of 59596 ***