Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 346548

Summary: StackOverFlowError processing file if supertype's file also contains subtype
Product: [WebTools] JSDT Reporter: Nitin Dahyabhai <thatnitind>
Component: GeneralAssignee: Nitin Dahyabhai <thatnitind>
Status: RESOLVED FIXED QA Contact: Nitin Dahyabhai <thatnitind>
Severity: major    
Priority: P3 CC: ccc
Version: 3.2.4   
Target Milestone: 3.2.4+   
Hardware: All   
OS: All   
Whiteboard: WI75473
Attachments:
Description Flags
patch none

Description Nitin Dahyabhai CLA 2011-05-19 17:42:45 EDT
Connecting type hierarchy in a.js asks for bindings of type fooType, the supertype of a type in a.js.
One of the files the compiler gets from the binding search is b.js , the completing of typebindings for which finds a type that also extends fooType.
Connecting type hierarchy in b.js asks for bindings of fooType.
One of the files the compiler gets from the binding search is b.js , the completing of typebindings for which finds a type that also extends fooType.
Connecting type hierarchy in b.js asks for bindings of fooType.
Lather, rinse, repeat.

Thread [Worker-9] (Suspended (breakpoint at line 251 in org.eclipse.wst.jsdt.internal.compiler.lookup.LookupEnvironment))	
	org.eclipse.wst.jsdt.internal.compiler.lookup.LookupEnvironment.askForBinding(org.eclipse.wst.jsdt.internal.compiler.lookup.PackageBindingchar[]int) line: 251	
	org.eclipse.wst.jsdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(char[]int) line: 249	
	org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope(org.eclipse.wst.jsdt.internal.compiler.lookup.Scope).getTypeOrPackage(char[]int) line: 2115	
	org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope(org.eclipse.wst.jsdt.internal.compiler.lookup.Scope).getType(char[]) line: 1878	
	org.eclipse.wst.jsdt.core.infer.InferredType.resolveSuperType(org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope) line: 367	
	org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope.findInferredSupertype(org.eclipse.wst.jsdt.core.infer.InferredType) line: 726	
	org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope.connectSuperclass() line: 483	
	org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope.connectTypeHierarchy() line: 595	
	org.eclipse.wst.jsdt.internal.compiler.lookup.CompilationUnitScope.connectTypeHierarchy(char[][]) line: 654	
	org.eclipse.wst.jsdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings(org.eclipse.wst.jsdt.internal.compiler.ast.CompilationUnitDeclarationchar[][]) line: 451	
	org.eclipse.wst.jsdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings(org.eclipse.wst.jsdt.internal.compiler.ast.CompilationUnitDeclaration) line: 435	
	org.eclipse.wst.jsdt.internal.compiler.Compiler.accept(org.eclipse.wst.jsdt.internal.compiler.env.ICompilationUnitorg.eclipse.wst.jsdt.internal.compiler.env.AccessRestriction) line: 240	
	org.eclipse.wst.jsdt.internal.compiler.lookup.LookupEnvironment.askForBinding(org.eclipse.wst.jsdt.internal.compiler.lookup.PackageBindingchar[]int) line: 282	
	org.eclipse.wst.jsdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(char[]int) line: 249	
	org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope(org.eclipse.wst.jsdt.internal.compiler.lookup.Scope).getTypeOrPackage(char[]int) line: 2115	
	org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope(org.eclipse.wst.jsdt.internal.compiler.lookup.Scope).getType(char[]) line: 1878	
	org.eclipse.wst.jsdt.core.infer.InferredType.resolveSuperType(org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope) line: 367	
	org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope.findInferredSupertype(org.eclipse.wst.jsdt.core.infer.InferredType) line: 726	
	org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope.connectSuperclass() line: 483	
	org.eclipse.wst.jsdt.internal.compiler.lookup.ClassScope.connectTypeHierarchy() line: 595	
	org.eclipse.wst.jsdt.internal.compiler.lookup.CompilationUnitScope.connectTypeHierarchy(char[][]) line: 654	
	org.eclipse.wst.jsdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings(org.eclipse.wst.jsdt.internal.compiler.ast.CompilationUnitDeclarationchar[][]) line: 451	
	org.eclipse.wst.jsdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings(org.eclipse.wst.jsdt.internal.compiler.ast.CompilationUnitDeclaration) line: 435	
	org.eclipse.wst.jsdt.internal.compiler.Compiler.accept(org.eclipse.wst.jsdt.internal.compiler.env.ICompilationUnitorg.eclipse.wst.jsdt.internal.compiler.env.AccessRestriction) line: 240	
	org.eclipse.wst.jsdt.internal.compiler.lookup.LookupEnvironment.askForBinding(org.eclipse.wst.jsdt.internal.compiler.lookup.PackageBindingchar[]int) line: 282	
	org.eclipse.wst.jsdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(char[]int) line: 249	
	org.eclipse.wst.jsdt.internal.compiler.lookup.MethodScope(org.eclipse.wst.jsdt.internal.compiler.lookup.Scope).getTypeOrPackage(char[]int) line: 2115	
	org.eclipse.wst.jsdt.internal.compiler.lookup.MethodScope(org.eclipse.wst.jsdt.internal.compiler.lookup.Scope).getType(char[]) line: 1878	
	org.eclipse.wst.jsdt.core.infer.InferredType.resolveType(org.eclipse.wst.jsdt.internal.compiler.lookup.Scopeorg.eclipse.wst.jsdt.internal.compiler.ast.ASTNode) line: 316	
	org.eclipse.wst.jsdt.internal.compiler.lookup.MethodScope.createMethod(org.eclipse.wst.jsdt.internal.compiler.ast.AbstractMethodDeclarationchar[]org.eclipse.wst.jsdt.internal.compiler.lookup.SourceTypeBindingbooleanboolean) line: 192	
	org.eclipse.wst.jsdt.internal.compiler.lookup.MethodScope.createMethod(org.eclipse.wst.jsdt.core.infer.InferredMethodorg.eclipse.wst.jsdt.internal.compiler.lookup.SourceTypeBinding) line: 166	
	org.eclipse.wst.jsdt.internal.compiler.lookup.SourceTypeBinding.buildMethods() line: 199	
	org.eclipse.wst.jsdt.internal.compiler.lookup.SourceTypeBinding.buildFieldsAndMethods() line: 77	
	org.eclipse.wst.jsdt.internal.compiler.lookup.CompilationUnitScope.buildFieldsAndMethods() line: 171	
	org.eclipse.wst.jsdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings(char[][]) line: 415	
	org.eclipse.wst.jsdt.internal.compiler.Compiler.internalBeginToCompile(org.eclipse.wst.jsdt.internal.compiler.env.ICompilationUnit[]int) line: 584	
	org.eclipse.wst.jsdt.internal.compiler.Compiler.beginToCompile(org.eclipse.wst.jsdt.internal.compiler.env.ICompilationUnit[]) line: 328	
	org.eclipse.wst.jsdt.internal.compiler.Compiler.compile(org.eclipse.wst.jsdt.internal.compiler.env.ICompilationUnit[]) line: 342	
	com.ibm.etools.webtools.json.internal.core.validation.SyntaxValidator.validate(org.eclipse.core.resources.IResourceintorg.eclipse.wst.validation.ValidationStateorg.eclipse.core.runtime.IProgressMonitor) line: 131	
	org.eclipse.wst.validation.Validator$V2.validate(org.eclipse.core.resources.IResourceintorg.eclipse.wst.validation.internal.ValOperationorg.eclipse.core.runtime.IProgressMonitororg.eclipse.wst.validation.ValidationEvent) line: 1159	
	org.eclipse.wst.validation.internal.ValManager.validate(org.eclipse.wst.validation.Validatororg.eclipse.wst.validation.internal.ValOperationorg.eclipse.core.resources.IResourceintorg.eclipse.core.runtime.IProgressMonitororg.eclipse.wst.validation.ValidationEvent) line: 704	
	org.eclipse.wst.validation.internal.ValManager$1.visit(org.eclipse.wst.validation.Validatororg.eclipse.core.resources.IProjectorg.eclipse.wst.validation.internal.ValTypeorg.eclipse.wst.validation.internal.ValOperationorg.eclipse.core.runtime.IProgressMonitor) line: 665	
	org.eclipse.wst.validation.internal.ValManager.accept(org.eclipse.wst.validation.internal.model.IValidatorVisitororg.eclipse.core.resources.IProjectorg.eclipse.core.resources.IResourceorg.eclipse.wst.validation.internal.ValTypeorg.eclipse.wst.validation.internal.ValOperationorg.eclipse.core.runtime.IProgressMonitor) line: 810	
	org.eclipse.wst.validation.internal.ValManager.validate(org.eclipse.core.resources.IProjectorg.eclipse.core.resources.IResourceintorg.eclipse.wst.validation.internal.ValTypeintorg.eclipse.wst.validation.internal.ValOperationorg.eclipse.core.runtime.IProgressMonitor) line: 669	
	org.eclipse.wst.validation.internal.ValBuilderJob$Visitor.visit(org.eclipse.core.resources.IResource) line: 299	
	org.eclipse.core.internal.resources.Resource$2.visit(org.eclipse.core.resources.IResourceProxy) line: 112	
	org.eclipse.core.internal.resources.Resource$1.visitElement(org.eclipse.core.internal.watson.ElementTreeorg.eclipse.core.internal.watson.IPathRequestorjava.lang.Object) line: 64	
	org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(org.eclipse.core.internal.dtree.DataTreeNodeorg.eclipse.core.internal.watson.IElementContentVisitor) line: 82	
	org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(org.eclipse.core.internal.dtree.DataTreeNodeorg.eclipse.core.internal.watson.IElementContentVisitor) line: 86	
	org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(org.eclipse.core.internal.dtree.DataTreeNodeorg.eclipse.core.internal.watson.IElementContentVisitor) line: 86	
	org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(org.eclipse.core.internal.dtree.DataTreeNodeorg.eclipse.core.internal.watson.IElementContentVisitor) line: 86	
	org.eclipse.core.internal.watson.ElementTreeIterator.iterate(org.eclipse.core.internal.watson.IElementContentVisitor) line: 127	
	org.eclipse.core.internal.resources.Project(org.eclipse.core.internal.resources.Resource).accept(org.eclipse.core.resources.IResourceProxyVisitorint) line: 74	
	org.eclipse.core.internal.resources.Project(org.eclipse.core.internal.resources.Resource).accept(org.eclipse.core.resources.IResourceVisitorintint) line: 110	
	org.eclipse.core.internal.resources.Project(org.eclipse.core.internal.resources.Resource).accept(org.eclipse.core.resources.IResourceVisitor) line: 94	
	org.eclipse.wst.validation.internal.ValBuilderJob.fullBuild(org.eclipse.wst.validation.internal.ValBuilderJob$ValidationRequestorg.eclipse.core.runtime.IProgressMonitor) line: 219	
	org.eclipse.wst.validation.internal.ValBuilderJob.run(org.eclipse.wst.validation.internal.ValBuilderJob$ValidationRequestorg.eclipse.core.runtime.IProgressMonitor) line: 178	
	org.eclipse.wst.validation.internal.ValBuilderJob.runInWorkspace(org.eclipse.core.runtime.IProgressMonitor) line: 126	
	org.eclipse.wst.validation.internal.ValBuilderJob(org.eclipse.core.internal.resources.InternalWorkspaceJob).run(org.eclipse.core.runtime.IProgressMonitor) line: 38	
	org.eclipse.core.internal.jobs.Worker.run() line: 54
Comment 1 Chris Jaun CLA 2011-05-20 14:03:02 EDT
Created attachment 196238 [details]
patch
Comment 2 Carl Anderson CLA 2011-05-23 12:57:46 EDT
Committed to R3_2_4_patches