Bug 288621

Summary: [1.5][compiler] Creating type hierarchy failed when pressing F4
Product: [Eclipse Project] JDT Reporter: butthep <but.thep>
Component: CoreAssignee: Kent Johnson <kent_johnson>
Status: VERIFIED FIXED QA Contact:
Severity: major    
Priority: P3 CC: but.thep, HGMarais, markus.kell.r, michschn, Olivier_Thomann, owong, remy.suen, srikanth_sankaran
Version: 3.5   
Target Milestone: 3.6 M3   
Hardware: PC   
OS: Windows 7   
Whiteboard:
Attachments:
Description Flags
Error when Opening Type Hierarchy in Eclipse JDT
none
Proposed patch none

Description butthep CLA 2009-09-04 06:12:41 EDT
User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 GTB5 (.NET CLR 3.5.30729)
Build Identifier: 20090619-0625

I cannot Open Type Hierarchy of the attached source package (by selecting the `src` package and press F4) even the package is very simple.

Reproducible: Always

Steps to Reproduce:
1. Select the `src` package
2. Press F4 or use Open Type Hierarchy in the context menu.
3. Get an error message: "Creating type hierarchy failed. See log for details."
Comment 1 butthep CLA 2009-09-04 06:17:22 EDT
Created attachment 146488 [details]
Error when Opening Type Hierarchy in Eclipse JDT
Comment 2 Markus Keller CLA 2009-09-04 10:04:03 EDT
Already fails when I open a type hierarchy for package icas.error, not only only the whole project.

The root exception in HEAD is:
java.lang.NullPointerException
	at org.eclipse.jdt.internal.compiler.lookup.TypeBinding.findSuperTypeOriginatingFrom(TypeBinding.java:301)
	at org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isTypeArgumentContainedBy(TypeBinding.java:928)
	at org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.isEquivalentTo(ParameterizedTypeBinding.java:725)
	at org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.implementsInterface(ReferenceBinding.java:905)
	at org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.isCompatibleWith0(ReferenceBinding.java:1032)
	at org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.isCompatibleWith(ReferenceBinding.java:983)
	at org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding.boundCheck(TypeVariableBinding.java:142)
	at org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.boundCheck(ParameterizedTypeBinding.java:74)
	at org.eclipse.jdt.internal.compiler.ast.ParameterizedSingleTypeReference.checkBounds(ParameterizedSingleTypeReference.java:41)
	at org.eclipse.jdt.internal.compiler.lookup.ClassScope.checkParameterizedTypeBounds(ClassScope.java:827)
	at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.checkParameterizedTypes(CompilationUnitScope.java:215)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings(LookupEnvironment.java:254)
	at org.eclipse.jdt.internal.core.hierarchy.HierarchyResolver.resolve(HierarchyResolver.java:766)
	at org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder.createTypeHierarchyBasedOnRegion(RegionBasedHierarchyBuilder.java:90)
	at org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder.build(RegionBasedHierarchyBuilder.java:59)
	at org.eclipse.jdt.internal.core.hierarchy.RegionBasedTypeHierarchy.compute(RegionBasedTypeHierarchy.java:97)
	at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.refresh(TypeHierarchy.java:1255)
	at org.eclipse.jdt.internal.core.CreateTypeHierarchyOperation.executeOperation(CreateTypeHierarchyOperation.java:90)
	at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728)
	at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:788)
	at org.eclipse.jdt.internal.core.JavaProject.newTypeHierarchy(JavaProject.java:2323)
	at org.eclipse.jdt.internal.core.JavaProject.newTypeHierarchy(JavaProject.java:2305)
	at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyLifeCycle.createTypeHierarchy(TypeHierarchyLifeCycle.java:158)
	at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyLifeCycle.doHierarchyRefresh(TypeHierarchyLifeCycle.java:172)
	at org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyLifeCycle$1.run(TypeHierarchyLifeCycle.java:113)
	at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Comment 3 Markus Keller CLA 2009-09-04 10:07:56 EDT
*** Bug 266983 has been marked as a duplicate of this bug. ***
Comment 4 Markus Keller CLA 2009-09-04 10:08:33 EDT
*** Bug 265143 has been marked as a duplicate of this bug. ***
Comment 5 butthep CLA 2009-09-07 05:17:05 EDT
You are right. The icas.error package is what really causes an exception. Please inform me with any fixes, when they are available.

Thanks in advance.


(In reply to comment #2)
> Already fails when I open a type hierarchy for package icas.error, not only
> only the whole project.
> 
> The root exception in HEAD is:
> java.lang.NullPointerException
>     at
> org.eclipse.jdt.internal.compiler.lookup.TypeBinding.findSuperTypeOriginatingFrom(TypeBinding.java:301)
>     at
> org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isTypeArgumentContainedBy(TypeBinding.java:928)
>     at
> org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.isEquivalentTo(ParameterizedTypeBinding.java:725)
>     at
> org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.implementsInterface(ReferenceBinding.java:905)
>     at
> org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.isCompatibleWith0(ReferenceBinding.java:1032)
>     at
> org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.isCompatibleWith(ReferenceBinding.java:983)
>     at
> org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding.boundCheck(TypeVariableBinding.java:142)
>     at
> org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.boundCheck(ParameterizedTypeBinding.java:74)
>     at
> org.eclipse.jdt.internal.compiler.ast.ParameterizedSingleTypeReference.checkBounds(ParameterizedSingleTypeReference.java:41)
>     at
> org.eclipse.jdt.internal.compiler.lookup.ClassScope.checkParameterizedTypeBounds(ClassScope.java:827)
>     at
> org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.checkParameterizedTypes(CompilationUnitScope.java:215)
>     at
> org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings(LookupEnvironment.java:254)
>     at
> org.eclipse.jdt.internal.core.hierarchy.HierarchyResolver.resolve(HierarchyResolver.java:766)
>     at
> org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder.createTypeHierarchyBasedOnRegion(RegionBasedHierarchyBuilder.java:90)
>     at
> org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder.build(RegionBasedHierarchyBuilder.java:59)
>     at
> org.eclipse.jdt.internal.core.hierarchy.RegionBasedTypeHierarchy.compute(RegionBasedTypeHierarchy.java:97)
>     at
> org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.refresh(TypeHierarchy.java:1255)
>     at
> org.eclipse.jdt.internal.core.CreateTypeHierarchyOperation.executeOperation(CreateTypeHierarchyOperation.java:90)
>     at
> org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728)
>     at
> org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:788)
>     at
> org.eclipse.jdt.internal.core.JavaProject.newTypeHierarchy(JavaProject.java:2323)
>     at
> org.eclipse.jdt.internal.core.JavaProject.newTypeHierarchy(JavaProject.java:2305)
>     at
> org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyLifeCycle.createTypeHierarchy(TypeHierarchyLifeCycle.java:158)
>     at
> org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyLifeCycle.doHierarchyRefresh(TypeHierarchyLifeCycle.java:172)
>     at
> org.eclipse.jdt.internal.ui.typehierarchy.TypeHierarchyLifeCycle$1.run(TypeHierarchyLifeCycle.java:113)
>     at
> org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Comment 6 Olivier Thomann CLA 2009-09-11 11:14:18 EDT
One of the source type binding is not properly initialized when its super interfaces are retrieved.
Comment 7 Kent Johnson CLA 2009-09-16 14:50:02 EDT
Created attachment 147364 [details]
Proposed patch

We need to complete the bindings for all known files together, instead of 1 at a time.
Comment 8 Kent Johnson CLA 2009-09-17 13:49:25 EDT
Released in HEAD for 3.6M3
Comment 9 Srikanth Sankaran CLA 2009-10-27 04:01:29 EDT
Verified for 3.6M3 using build I20091025-2000