Bug 70609 - [1.5] NPE compiling Container
Summary: [1.5] NPE compiling Container
Status: RESOLVED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.0   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.1 M1   Edit
Assignee: Philipe Mulet CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-07-22 07:25 EDT by Philipe Mulet CLA
Modified: 2005-01-11 11:02 EST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Philipe Mulet CLA 2004-07-22 07:25:14 EDT
When compiling awt Container, the following failure occurs:

!MESSAGE java.lang.NullPointerException encountered while running Java Builder.
!STACK 0
java.lang.NullPointerException
	at org.eclipse.jdt.internal.compiler.lookup.ClassScope.detectCycle
(ClassScope.java:786)
	at 
org.eclipse.jdt.internal.compiler.ast.ParameterizedSingleTypeReference.internal
ResolveType(ParameterizedSingleTypeReference.java:122)
	at 
org.eclipse.jdt.internal.compiler.ast.ParameterizedSingleTypeReference.resolveT
ype(ParameterizedSingleTypeReference.java:183)
	at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveSuperType
(TypeReference.java:100)
	at org.eclipse.jdt.internal.compiler.lookup.ClassScope.findSupertype
(ClassScope.java:919)
	at 
org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectSuperInterfaces
(ClassScope.java:681)
	at 
org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectTypeHierarchy
(ClassScope.java:740)
	at 
org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.connectTypeHierar
chy(CompilationUnitScope.java:236)
	at 
org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings
(LookupEnvironment.java:183)
	at 
org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings
(LookupEnvironment.java:212)
	at org.eclipse.jdt.internal.compiler.Compiler.accept(Compiler.java:227)
	at 
org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType
(LookupEnvironment.java:116)
	at 
org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage
(PackageBinding.java:169)
	at 
org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findOnDemandImpor
t(CompilationUnitScope.java:355)
	at 
org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findSingleTypeImp
ort(CompilationUnitScope.java:413)
	at 
org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInImports
(CompilationUnitScope.java:291)
	at 
org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInTypes
(CompilationUnitScope.java:341)
	at org.eclipse.jdt.internal.compiler.Compiler.process
(Compiler.java:501)
	at org.eclipse.jdt.internal.compiler.Compiler.compile
(Compiler.java:335)
	at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile
(AbstractImageBuilder.java:209)
	at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile
(AbstractImageBuilder.java:182)
	at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.build
(BatchImageBuilder.java:49)
	at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildAll
(JavaBuilder.java:212)
	at org.eclipse.jdt.internal.core.builder.JavaBuilder.build
(JavaBuilder.java:135)
	at org.eclipse.core.internal.events.BuildManager$2.run
(BuildManager.java:564)
	at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:615)
	at org.eclipse.core.runtime.Platform.run(Platform.java:747)
	at org.eclipse.core.internal.events.BuildManager.basicBuild
(BuildManager.java:157)
	at org.eclipse.core.internal.events.BuildManager.basicBuild
(BuildManager.java:249)
	at org.eclipse.core.internal.events.BuildManager.basicBuild
(BuildManager.java:202)
	at org.eclipse.core.internal.events.BuildManager$1.run
(BuildManager.java:229)
	at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:615)
	at org.eclipse.core.runtime.Platform.run(Platform.java:747)
	at org.eclipse.core.internal.events.BuildManager.basicBuild
(BuildManager.java:232)
	at org.eclipse.core.internal.events.BuildManager.basicBuildLoop
(BuildManager.java:268)
	at org.eclipse.core.internal.events.BuildManager.build
(BuildManager.java:297)
	at org.eclipse.core.internal.resources.Workspace.build
(Workspace.java:198)
	at org.eclipse.ui.actions.GlobalBuildAction$1.run
(GlobalBuildAction.java:182)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:66)
Comment 1 Philipe Mulet CLA 2004-07-22 07:27:07 EDT
This is a scenario where argType is a source type binding, but its scope is 
null.

if (argType instanceof SourceTypeBinding)
  // ensure if this is a source superclass that it has already been checked
  ((SourceTypeBinding) argType).scope.connectTypeHierarchyWithoutMembers();
Comment 2 Philipe Mulet CLA 2004-07-22 07:41:39 EDT
Scope may be null if associated unit already got processed at this stage.
Added null checks.
Kent - pls figure proper testcase and add regression test.

Fixed.