Bug 65688

Summary: Compiler crash
Product: [Tools] AspectJ Reporter: Hristo Stoyanov <hr_stoyanov>
Component: CompilerAssignee: Adrian Colyer <adrian.colyer>
Status: RESOLVED DUPLICATE QA Contact:
Severity: blocker    
Priority: P3    
Version: 1.2   
Target Milestone: 1.2.1   
Hardware: PC   
OS: Windows XP   
Whiteboard:

Description Hristo Stoyanov CLA 2004-06-04 05:41:48 EDT
Hi-,
 I was trying to add a new constructor to the Point class like that:
----------------------------
public aspect PerstGeometry
{
	declare parents: com.vividsolutions.jts.geom.* implements AutoPersist;
	declare parents: com.vividsolutions.jts.geom.PrecisionModel.* 
implements AutoPersist;
	//public  PrecisionModel.Type.new (){}
	//public  Coordinate.new (){}
	public Point.new(){}
}
-----------------------------
and I got the following stack trace:
     [iajc] compiling C:\projects\<...some path...>\
PerstGeometry.aj
     [iajc]
     [iajc] weaver operating in reweavable mode.  Need to verify any required 
ty
pes exist.
     [iajc]
     [iajc] trouble in:
     [iajc] ABORT
     [iajc]
     [iajc] Exception thrown from AspectJ 1.2

     [iajc] This might be logged as a bug already -- find current bugs at
     [iajc]   http://bugs.eclipse.org/bugs/buglist.cgi?
product=AspectJ&component
=Compiler

     [iajc] Bugs for exceptions thrown have titles File:line from the top 
stack,

     [iajc] e.g., "SomeFile.java:243"

     [iajc] If you don't find the exception below in a bug, please add a new 
bug

     [iajc] at http://bugs.eclipse.org/bugs/enter_bug.cgi?product=AspectJ
     [iajc] To make the bug a priority, please include a test program
     [iajc] that can reproduce this exception.
     [iajc] null
     [iajc] java.lang.NullPointerException
     [iajc]     at org.aspectj.weaver.patterns.SignaturePattern.matches
(Signatur
ePattern.java:87)
     [iajc]     at org.aspectj.weaver.patterns.WithincodePointcut.match
(Withinco
dePointcut.java:42)
     [iajc]     at org.aspectj.weaver.patterns.NotPointcut.match
(NotPointcut.jav
a:45)
     [iajc]     at org.aspectj.weaver.patterns.AndPointcut.match
(AndPointcut.jav
a:42)
     [iajc]     at org.aspectj.weaver.patterns.AndPointcut.match
(AndPointcut.jav
a:42)
     [iajc]     at org.aspectj.weaver.patterns.AndPointcut.match
(AndPointcut.jav
a:42)
     [iajc]     at org.aspectj.weaver.patterns.AndPointcut.match
(AndPointcut.jav
a:42)
     [iajc]     at org.aspectj.weaver.ShadowMunger.match(ShadowMunger.java:62)
     [iajc]     at org.aspectj.weaver.Advice.match(Advice.java:91)
     [iajc]     at org.aspectj.weaver.bcel.BcelClassWeaver.match
(BcelClassWeaver
.java:1121)
     [iajc]     at org.aspectj.weaver.bcel.BcelClassWeaver.matchInit
(BcelClassWe
aver.java:895)
     [iajc]     at org.aspectj.weaver.bcel.BcelClassWeaver.match
(BcelClassWeaver
.java:793)
     [iajc]     at org.aspectj.weaver.bcel.BcelClassWeaver.weave
(BcelClassWeaver
.java:343)
     [iajc]     at org.aspectj.weaver.bcel.BcelClassWeaver.weave
(BcelClassWeaver
.java:80)
     [iajc]     at org.aspectj.weaver.bcel.BcelWeaver.weave
(BcelWeaver.java:724)

     [iajc]     at org.aspectj.weaver.bcel.BcelWeaver.weaveWithoutDump
(BcelWeave
r.java:689)
     [iajc]     at org.aspectj.weaver.bcel.BcelWeaver.weaveAndNotify
(BcelWeaver.
java:615)
     [iajc]     at org.aspectj.weaver.bcel.BcelWeaver.weave
(BcelWeaver.java:563)

     [iajc]     at org.aspectj.ajdt.internal.compiler.AjCompilerAdapter.weave
(Aj
CompilerAdapter.java:239)
     [iajc]     at 
org.aspectj.ajdt.internal.compiler.AjCompilerAdapter.afterCom
piling(AjCompilerAdapter.java:114)
     [iajc]     at org.eclipse.jdt.internal.compiler.Compiler.compile
(Compiler.j
ava:376)
     [iajc]     at 
org.aspectj.ajdt.internal.core.builder.AjBuildManager.perform
Compilation(AjBuildManager.java:601)
     [iajc]     at 
org.aspectj.ajdt.internal.core.builder.AjBuildManager.doBuild
(AjBuildManager.java:160)
     [iajc]     at 
org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBu
ild(AjBuildManager.java:94)
     [iajc]     at org.aspectj.ajdt.ajc.AjdtCommand.doCommand
(AjdtCommand.java:1
02)
     [iajc]     at org.aspectj.ajdt.ajc.AjdtCommand.runCommand
(AjdtCommand.java:
53)
     [iajc]     at org.aspectj.tools.ajc.Main.run(Main.java:280)
     [iajc]     at org.aspectj.tools.ajc.Main.runMain(Main.java:217)
     [iajc]     at org.aspectj.tools.ant.taskdefs.AjcTask.executeInSameVM
(AjcTas
k.java:1157)
     [iajc]     at org.aspectj.tools.ant.taskdefs.AjcTask.execute
(AjcTask.java:9
54)
     [iajc]     at org.apache.tools.ant.UnknownElement.execute
(UnknownElement.ja
va:269)
     [iajc]     at org.apache.tools.ant.Task.perform(Task.java:364)
     [iajc]     at org.apache.tools.ant.Target.execute(Target.java:301)
     [iajc]     at org.apache.tools.ant.Target.performTasks(Target.java:328)
     [iajc]     at org.apache.tools.ant.Project.executeTarget
(Project.java:1215)

     [iajc]     at org.apache.tools.ant.Project.executeTargets
(Project.java:1063
)
     [iajc]     at org.apache.tools.ant.Main.runBuild(Main.java:632)
     [iajc]     at org.apache.tools.ant.Main.startAnt(Main.java:183)
     [iajc]     at org.apache.tools.ant.launch.Launcher.run(Launcher.java:197)
     [iajc]     at org.apache.tools.ant.launch.Launcher.main(Launcher.java:56)


BUILD FAILED
C:\projects\marketedge\build.xml:301: fail due to NullPointerException"ABORT" 
(1
 exceptions)
Comment 1 Andrew Clement CLA 2004-07-28 12:20:53 EDT
I've started work on 67774 and discovered this one is a dup.  I'll carry on
working with it on 67774.  The problem is that an intertype declared constructor
is being defined *and* a withincode pointcut is in use.  When the withincode
pointcut attempts to match on the shadows in the ITD'd ctor, you get an NPE. 
Changing the visibility of the ITD'd ctor can make a difference (bizarrely!)

*** This bug has been marked as a duplicate of 67774 ***
Comment 2 Adrian Colyer CLA 2004-10-21 04:31:49 EDT
Fix released as part of AspectJ 1.2.1