Bug 260944 - Compiler Exception thrown on incremental builds with generic ITD constructor
Summary: Compiler Exception thrown on incremental builds with generic ITD constructor
Status: RESOLVED INVALID
Alias: None
Product: AspectJ
Classification: Tools
Component: Compiler (show other bugs)
Version: unspecified   Edit
Hardware: All All
: P2 major (vote)
Target Milestone: 1.6.4   Edit
Assignee: aspectj inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-01-13 18:27 EST by Andrew Eisenberg CLA
Modified: 2009-01-29 18:13 EST (History)
1 user (show)

See Also:


Attachments
Project to reproduce this bug (3.77 KB, application/octet-stream)
2009-01-13 18:28 EST, Andrew Eisenberg CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Andrew Eisenberg CLA 2009-01-13 18:27:27 EST
Steps to reproduce:

1. import project
2. clean build
3. edit and save Java file and exception 1 is thrown
4. edit and save AJ file and exception 2 is thrown



EXCEPTION 1

org.aspectj.weaver.BCException: Couldn't find ITD holder member 'void bug2.AspectWithITDConstructor.ajc$postInterConstructor$bug2_AspectWithITDConstructor$bug2_ConstructorOn(bug2.ConstructorOn, java.lang.Object)' on aspect bug2.AspectWithITDConstructor
when type munging with (BcelTypeMunger ResolvedTypeMunger(Constructor, void bug2.ConstructorOn.<init>(TT;)))
when weaving type bug2.ConstructorOn
when weaving classes 
when weaving 
when incrementally building BuildConfig[/Users/andrew/Eclipse/Installations/Eclipse3.4/Eclipse.app/Contents/MacOS/Constructor ITD Bug] #Files=2

	at org.aspectj.weaver.bcel.BcelTypeMunger.mungeNewConstructor(BcelTypeMunger.java:1479)
	at org.aspectj.weaver.bcel.BcelTypeMunger.munge(BcelTypeMunger.java:108)
	at org.aspectj.weaver.bcel.BcelClassWeaver.weave(BcelClassWeaver.java:448)
	at org.aspectj.weaver.bcel.BcelClassWeaver.weave(BcelClassWeaver.java:99)
	at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1739)
	at org.aspectj.weaver.bcel.BcelWeaver.weaveWithoutDump(BcelWeaver.java:1700)
	at org.aspectj.weaver.bcel.BcelWeaver.weaveAndNotify(BcelWeaver.java:1466)
	at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1273)
	at org.aspectj.ajdt.internal.compiler.AjPipeliningCompilerAdapter.weaveQueuedEntries(AjPipeliningCompilerAdapter.java:435)
	at org.aspectj.ajdt.internal.compiler.AjPipeliningCompilerAdapter.queueForWeaving(AjPipeliningCompilerAdapter.java:371)
	at org.aspectj.ajdt.internal.compiler.AjPipeliningCompilerAdapter.afterProcessing(AjPipeliningCompilerAdapter.java:358)
	at org.aspectj.ajdt.internal.compiler.CompilerAdapter.ajc$after$org_aspectj_ajdt_internal_compiler_CompilerAdapter$5$6b855184(CompilerAdapter.aj:98)
	at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:652)
	at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:392)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performCompilation(AjBuildManager.java:975)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performBuild(AjBuildManager.java:301)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.incrementalBuild(AjBuildManager.java:183)
	at org.aspectj.ajde.core.internal.AjdeCoreBuildManager.performBuild(AjdeCoreBuildManager.java:126)
	at org.aspectj.ajde.core.AjCompiler.build(AjCompiler.java:88)
	at org.eclipse.ajdt.core.builder.AJBuilder.build(AJBuilder.java:223)
	at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:633)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:170)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:201)
	at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:253)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:256)
	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:309)
	at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:341)
	at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:140)
	at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:238)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)


EXCEPTION 2
java.lang.NullPointerException
	at org.aspectj.weaver.NewConstructorTypeMunger.equals(NewConstructorTypeMunger.java:46)
	at org.aspectj.weaver.ConcreteTypeMunger.equivalentTo(ConcreteTypeMunger.java:38)
	at org.aspectj.weaver.CrosscuttingMembers.replaceWith(CrosscuttingMembers.java:366)
	at org.aspectj.weaver.CrosscuttingMembersSet.addOrReplaceAspect(CrosscuttingMembersSet.java:77)
	at org.aspectj.ajdt.internal.compiler.lookup.AjLookupEnvironment.addCrosscuttingStructures(AjLookupEnvironment.java:454)
	at org.aspectj.ajdt.internal.compiler.lookup.AjLookupEnvironment.collectAllITDsAndDeclares(AjLookupEnvironment.java:380)
	at org.aspectj.ajdt.internal.compiler.lookup.AjLookupEnvironment.completeTypeBindings(AjLookupEnvironment.java:194)
	at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.internalBeginToCompile(Compiler.java:616)
	at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.beginToCompile(Compiler.java:357)
	at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:371)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performCompilation(AjBuildManager.java:975)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performBuild(AjBuildManager.java:301)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.incrementalBuild(AjBuildManager.java:183)
	at org.aspectj.ajde.core.internal.AjdeCoreBuildManager.performBuild(AjdeCoreBuildManager.java:126)
	at org.aspectj.ajde.core.AjCompiler.build(AjCompiler.java:88)
	at org.eclipse.ajdt.core.builder.AJBuilder.build(AJBuilder.java:223)
	at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:633)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:170)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:201)
	at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:253)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
	at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:256)
	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:309)
	at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:341)
	at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:140)
	at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:238)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Comment 1 Andrew Eisenberg CLA 2009-01-13 18:28:15 EST
Created attachment 122472 [details]
Project to reproduce this bug
Comment 2 Andrew Eisenberg CLA 2009-01-13 18:30:57 EST
Oh, and this is the title of the first exception in Eclipse:

trouble in: 
public class bug2.ConstructorOn extends java.lang.Object:
  public void <init>():
                    ALOAD_0     // Lbug2/ConstructorOn; this   (line 3)
                    INVOKESPECIAL java.lang.Object.<init> ()V
                    RETURN
  end public void <init>()
end public class bug2.ConstructorOn
Comment 3 Andrew Clement CLA 2009-01-29 17:10:52 EST
this is not failing for me.

I imported the project - it did have a dependency on another project I dont have, so I removed the dependency (possibly a factor?)

whitespace change to either file and the compile is fine.

I think the NPE was addressed by another bug you raised, bug 262218, and that is already fixed.

However, I don't believe I have fixed the bceltypemunger exception, but I cant recreate it.
Comment 4 Andrew Eisenberg CLA 2009-01-29 18:13:22 EST
Hmmmm...funny.  I can't recreate this now either.

Guess you fixed it!  Thanks for looking into this.