Bug 44840

Summary: NullPointerException when using the excludes option
Product: [Tools] AspectJ Reporter: Stig <s-paul>
Component: CompilerAssignee: Adrian Colyer <adrian.colyer>
Status: RESOLVED WONTFIX QA Contact:
Severity: normal    
Priority: P3    
Version: 1.1.1   
Target Milestone: 1.2.1   
Hardware: PC   
OS: Windows XP   
Whiteboard:

Description Stig CLA 2003-10-14 14:37:49 EDT
Description

I'm developing an monitor function. I'm using an ANT build script for building 
the application. 
to avoid recursieve behaviour the monitor package is excluded from the aspect 
build and is built javac earlier.
The error description is as followed:
When i'm including the monitor package in my aspect (this is the same package 
that is excluded from the buildin ajc) the compiler goes into a 
NullPointerException.

Interrime solution:
I'm compiling everything with aspectJ and overwrites the excluded pakages with 
a new compiling using javac

The exception can be reconstructed using the following code
Aspect Java source extract
package com.radix.core;

import org.aspectj.lang.*;
import org.aspectj.lang.reflect.*;

//import com.radix.core.monitor.*;
//import com.radix.core.test.*;
import com.radix.core.monitor.RadixMonitor;

public aspect RadixObjectTraceAspect {
	private int _indent = -1;
	private RadixMonitor radixMonitor = new RadixMonitor();
//	private RadixTestAspectObject radixMonitor = new RadixTestAspectObject
();


Ant file extract
		<ajc destdir="${radix.runtime.dir}"
			srcdir="${radix.src.root.dir}"
			includes="java/**/*.java, 
aspect/com/radix/core/RadixObjectTraceAspect.java"
			excludes="**/monitor/**, 
java/com/radix/core/RadixObjectReference.java, 
java/com/radix/core/guid/RadixGUID.java, **/test/**"
		    >
			<classpath>
			    <pathelement location="${aspectjrt.jar}"/>
			    <pathelement path="${radix.src.java.dir}"/>
			    <pathelement path="${radix.runtime.dir}"/>
		   </classpath>



Compiler Exception
      [ajc] Compiling 10 source and 0 arg files to 
C:\Dev\workspaces\Radix\Radix
Core\runtime
      [ajc] java.lang.NullPointerException
      [ajc]     at 
org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.ge
tExactConstructor(SourceTypeBinding.java:419)
      [ajc]     at 
org.eclipse.jdt.internal.compiler.lookup.BlockScope.getConstr
uctor(BlockScope.java:797)
      [ajc]     at 
org.eclipse.jdt.internal.compiler.ast.AllocationExpression.re
solveType(AllocationExpression.java:233)
      [ajc]     at 
org.eclipse.jdt.internal.compiler.ast.FieldDeclaration.resolv
e(FieldDeclaration.java:177)
      [ajc]     at 
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve
(TypeDeclaration.java:788)
      [ajc]     at 
org.aspectj.ajdt.internal.compiler.ast.AspectDeclaration.reso
lve(AspectDeclaration.java:73)
      [ajc]     at 
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve
(TypeDeclaration.java:845)
      [ajc]     at 
org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclarat
ion.resolve(CompilationUnitDeclaration.java:251)
      [ajc]     at org.eclipse.jdt.internal.compiler.Compiler.process
(Compiler.j
ava:538)
      [ajc]     at org.aspectj.ajdt.internal.compiler.AjCompiler.process
(AjCompi
ler.java:65)
      [ajc]     at org.eclipse.jdt.internal.compiler.Compiler.compile
(Compiler.j
ava:338)
      [ajc]     at 
org.aspectj.ajdt.internal.core.builder.AjBuildManager.perform
Compilation(AjBuildManager.java:373)
      [ajc]     at 
org.aspectj.ajdt.internal.core.builder.AjBuildManager.doBuild
(AjBuildManager.java:125)
      [ajc]     at 
org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBu
ild(AjBuildManager.java:70)
      [ajc]     at org.aspectj.ajdt.ajc.AjdtCommand.doCommand
(AjdtCommand.java:9
9)
      [ajc]     at org.aspectj.ajdt.ajc.AjdtCommand.runCommand
(AjdtCommand.java:
53)
      [ajc]     at org.aspectj.tools.ajc.Main.run(Main.java:217)
      [ajc]     at org.aspectj.tools.ant.taskdefs.Ajc10.spoon(Ajc10.java:598)
      [ajc]     at org.aspectj.tools.ant.taskdefs.Ajc10.execute(Ajc10.java:484)
      [ajc]     at org.apache.tools.ant.UnknownElement.execute
(UnknownElement.ja
va:193)
      [ajc]     at org.apache.tools.ant.Task.perform(Task.java:341)
      [ajc]     at org.apache.tools.ant.Target.execute(Target.java:309)
      [ajc]     at org.apache.tools.ant.Target.performTasks(Target.java:336)
      [ajc]     at org.apache.tools.ant.Project.executeTarget
(Project.java:1339)

      [ajc]     at org.apache.tools.ant.Project.executeTargets
(Project.java:1255
)
      [ajc]     at org.apache.tools.ant.Main.runBuild(Main.java:609)
      [ajc]     at org.apache.tools.ant.Main.start(Main.java:196)
      [ajc]     at org.apache.tools.ant.Main.main(Main.java:235)
      [ajc] 
C:\Dev\workspaces\Radix\RadixCore\src\aspect\com\radix\core\RadixObj
ectTraceAspect.java:0 Internal compiler error
      [ajc] java.lang.NullPointerException
      [ajc]     at 
org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.ge
tExactConstructor(SourceTypeBinding.java:419)
      [ajc]     at 
org.eclipse.jdt.internal.compiler.lookup.BlockScope.getConstr
uctor(BlockScope.java:797)
      [ajc]     at 
org.eclipse.jdt.internal.compiler.ast.AllocationExpression.re
solveType(AllocationExpression.java:233)
      [ajc]     at 
org.eclipse.jdt.internal.compiler.ast.FieldDeclaration.resolv
e(FieldDeclaration.java:177)
      [ajc]     at 
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve
(TypeDeclaration.java:788)
      [ajc]     at 
org.aspectj.ajdt.internal.compiler.ast.AspectDeclaration.reso
lve(AspectDeclaration.java:73)
      [ajc]     at 
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve
(TypeDeclaration.java:845)
      [ajc]     at 
org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclarat
ion.resolve(CompilationUnitDeclaration.java:251)
      [ajc]     at org.eclipse.jdt.internal.compiler.Compiler.process
(Compiler.j
ava:538)
      [ajc]     at org.aspectj.ajdt.internal.compiler.AjCompiler.process
(AjCompi
ler.java:65)
      [ajc]     at org.eclipse.jdt.internal.compiler.Compiler.compile
(Compiler.j
ava:338)
      [ajc]     at 
org.aspectj.ajdt.internal.core.builder.AjBuildManager.perform
Compilation(AjBuildManager.java:373)
      [ajc]     at 
org.aspectj.ajdt.internal.core.builder.AjBuildManager.doBuild
(AjBuildManager.java:125)
      [ajc]     at 
org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBu
ild(AjBuildManager.java:70)
      [ajc]     at org.aspectj.ajdt.ajc.AjdtCommand.doCommand
(AjdtCommand.java:9
9)
      [ajc]     at org.aspectj.ajdt.ajc.AjdtCommand.runCommand
(AjdtCommand.java:
53)
      [ajc]     at org.aspectj.tools.ajc.Main.run(Main.java:217)
      [ajc]     at org.aspectj.tools.ant.taskdefs.Ajc10.spoon(Ajc10.java:598)
      [ajc]     at org.aspectj.tools.ant.taskdefs.Ajc10.execute(Ajc10.java:484)
      [ajc]     at org.apache.tools.ant.UnknownElement.execute
(UnknownElement.ja
va:193)
      [ajc]     at org.apache.tools.ant.Task.perform(Task.java:341)
      [ajc]     at org.apache.tools.ant.Target.execute(Target.java:309)
      [ajc]     at org.apache.tools.ant.Target.performTasks(Target.java:336)
      [ajc]     at org.apache.tools.ant.Project.executeTarget
(Project.java:1339)

      [ajc]     at org.apache.tools.ant.Project.executeTargets
(Project.java:1255
)
      [ajc]     at org.apache.tools.ant.Main.runBuild(Main.java:609)
      [ajc]     at org.apache.tools.ant.Main.start(Main.java:196)
      [ajc]     at org.apache.tools.ant.Main.main(Main.java:235)


      [ajc] !! no source information available !!
      [ajc] ABORT
      [ajc] Exception thrown from AspectJ 1.1.1

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

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

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

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

      [ajc] at http://bugs.eclipse.org/bugs/enter_bug.cgi?product=AspectJ
      [ajc] To make the bug a priority, please include a test program
      [ajc] that can reproduce this exception.
      [ajc] null
      [ajc] java.lang.NullPointerException
      [ajc]     at 
org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.ge
tExactConstructor(SourceTypeBinding.java:419)
      [ajc]     at 
org.eclipse.jdt.internal.compiler.lookup.BlockScope.getConstr
uctor(BlockScope.java:797)
      [ajc]     at 
org.eclipse.jdt.internal.compiler.ast.AllocationExpression.re
solveType(AllocationExpression.java:233)
      [ajc]     at 
org.eclipse.jdt.internal.compiler.ast.FieldDeclaration.resolv
e(FieldDeclaration.java:177)
      [ajc]     at 
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve
(TypeDeclaration.java:788)
      [ajc]     at 
org.aspectj.ajdt.internal.compiler.ast.AspectDeclaration.reso
lve(AspectDeclaration.java:73)
      [ajc]     at 
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve
(TypeDeclaration.java:845)
      [ajc]     at 
org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclarat
ion.resolve(CompilationUnitDeclaration.java:251)
      [ajc]     at org.eclipse.jdt.internal.compiler.Compiler.process
(Compiler.j
ava:538)
      [ajc]     at org.aspectj.ajdt.internal.compiler.AjCompiler.process
(AjCompi
ler.java:65)
      [ajc]     at org.eclipse.jdt.internal.compiler.Compiler.compile
(Compiler.j
ava:338)
      [ajc]     at 
org.aspectj.ajdt.internal.core.builder.AjBuildManager.perform
Compilation(AjBuildManager.java:373)
      [ajc]     at 
org.aspectj.ajdt.internal.core.builder.AjBuildManager.doBuild
(AjBuildManager.java:125)
      [ajc]     at 
org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBu
ild(AjBuildManager.java:70)
      [ajc]     at org.aspectj.ajdt.ajc.AjdtCommand.doCommand
(AjdtCommand.java:9
9)
      [ajc]     at org.aspectj.ajdt.ajc.AjdtCommand.runCommand
(AjdtCommand.java:
53)
      [ajc]     at org.aspectj.tools.ajc.Main.run(Main.java:217)
      [ajc]     at org.aspectj.tools.ant.taskdefs.Ajc10.spoon(Ajc10.java:598)
      [ajc]     at org.aspectj.tools.ant.taskdefs.Ajc10.execute(Ajc10.java:484)
      [ajc]     at org.apache.tools.ant.UnknownElement.execute
(UnknownElement.ja
va:193)
      [ajc]     at org.apache.tools.ant.Task.perform(Task.java:341)
      [ajc]     at org.apache.tools.ant.Target.execute(Target.java:309)
      [ajc]     at org.apache.tools.ant.Target.performTasks(Target.java:336)
      [ajc]     at org.apache.tools.ant.Project.executeTarget
(Project.java:1339)

      [ajc]     at org.apache.tools.ant.Project.executeTargets
(Project.java:1255
)
      [ajc]     at org.apache.tools.ant.Main.runBuild(Main.java:609)
      [ajc]     at org.apache.tools.ant.Main.start(Main.java:196)
      [ajc]     at org.apache.tools.ant.Main.main(Main.java:235)
Comment 1 George Harley CLA 2003-10-15 09:21:11 EDT
Is there any chance that a more general test case for this problem can be 
provided ?
Comment 2 Andrew Clement CLA 2004-08-06 03:38:35 EDT
We have recently upgraded the compiler in AspectJ to the Eclipse JDT 3.0 final
version.  Please could you try to recreate this bug at that level?  The new
version is available at :

http://download.eclipse.org/technology/ajdt/dev/aspectj-DEVELOPMENT.jar

If that still fails, can you include the stack trace it produces.  Unfortunately
all the stack frames attached to this report right now have moved with the
compiler upgrade :(

thanks.
Comment 3 Andrew Clement CLA 2004-08-27 08:34:20 EDT
I'm closing this bug - it is getting quite old now and we have since entirely
replaced the compiler.  If you find the problem still exists - please reopen it.
thanks.
Comment 4 Adrian Colyer CLA 2004-10-21 04:32:11 EDT
Fix released as part of AspectJ 1.2.1