Bug 288621 - [1.5][compiler] Creating type hierarchy failed when pressing F4
Summary: [1.5][compiler] Creating type hierarchy failed when pressing F4
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.5   Edit
Hardware: PC Windows 7
: P3 major with 1 vote (vote)
Target Milestone: 3.6 M3   Edit
Assignee: Kent Johnson CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 265143 266983 (view as bug list)
Depends on:
Blocks:
 
Reported: 2009-09-04 06:12 EDT by butthep CLA
Modified: 2009-10-27 04:01 EDT (History)
8 users (show)

See Also:


Attachments
Error when Opening Type Hierarchy in Eclipse JDT (3.00 KB, application/x-zip-compressed)
2009-09-04 06:17 EDT, butthep CLA
no flags Details
Proposed patch (3.95 KB, patch)
2009-09-16 14:50 EDT, Kent Johnson CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
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