Bug 87498 - StackOverflowError when marking occurrences of Comparable in Collections.min(..)
Summary: StackOverflowError when marking occurrences of Comparable in Collections.min(..)
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.1   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.1 M6   Edit
Assignee: Olivier Thomann CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-03-09 09:55 EST by Markus Keller CLA
Modified: 2005-03-30 23:23 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Markus Keller CLA 2005-03-09 09:55:51 EST
v_540

- open binary type java.util.Collections from an 1.5 jdk
- go to declaration of method
<T extends Object & Comparable<? super T>> T min(Collection<? extends T> coll)
- set caret to Comparable

=> boom:

Error 2005-03-09 14:45:34.632 An internal error occurred during: "Requesting
Java AST from selection".
java.lang.StackOverflowError
	at org.eclipse.jdt.core.dom.BindingComparator.isEqual(BindingComparator.java:73)
	at org.eclipse.jdt.core.dom.BindingComparator.isEqual(BindingComparator.java:242)
	at org.eclipse.jdt.core.dom.BindingComparator.isEqual(BindingComparator.java:264)
	at org.eclipse.jdt.core.dom.BindingComparator.isEqual(BindingComparator.java:216)
	at org.eclipse.jdt.core.dom.BindingComparator.isEqual(BindingComparator.java:162)
	at org.eclipse.jdt.core.dom.BindingComparator.isEqual(BindingComparator.java:201)
	at org.eclipse.jdt.core.dom.BindingComparator.isEqual(BindingComparator.java:162)
	at org.eclipse.jdt.core.dom.BindingComparator.isEqual(BindingComparator.java:244)
	at org.eclipse.jdt.core.dom.BindingComparator.isEqual(BindingComparator.java:264)
	at org.eclipse.jdt.core.dom.BindingComparator.isEqual(BindingComparator.java:216)
	at org.eclipse.jdt.core.dom.BindingComparator.isEqual(BindingComparator.java:162)
...
	at org.eclipse.jdt.core.dom.BindingComparator.isEqual(BindingComparator.java:201)
	at org.eclipse.jdt.core.dom.BindingComparator.isEqual(BindingComparator.java:162)
	at org.eclipse.jdt.core.dom.BindingComparator.isEqual(BindingComparator.java:244)
	at org.eclipse.jdt.core.dom.BindingComparator.isEqual(BindingComparator.java:264)
	at org.eclipse.jdt.core.dom.BindingComparator.isEqual(BindingComparator.java:216)
	at org.eclipse.jdt.core.dom.BindingComparator.isEqual(BindingComparator.java:162)
	at org.eclipse.jdt.core.dom.BindingComparator.isEqual(BindingComparator.java:201)
	at org.eclipse.jdt.core.dom.BindingComparator.isEqual(BindingComparator.java:162)
	at org.eclipse.jdt.core.dom.BindingComparator.isEqual(BindingComparator.java:244)
	at org.eclipse.jdt.core.dom.BindingComparator.isEqual(BindingComparator.java:264)
	at org.eclipse.jdt.core.dom.BindingComparator.isEqual(BindingComparator.java:216)
	at org.eclipse.jdt.core.dom.BindingComparator.isEqual(BindingComparator.java:162)
	at org.eclipse.jdt.core.dom.BindingComparator.isEqual(BindingComparator.java:201)
	at org.eclipse.jdt.core.dom.BindingComparator.isEqual(BindingComparator.java:264)
	at org.eclipse.jdt.core.dom.TypeBinding.isEqualTo(TypeBinding.java:839)
	at org.eclipse.jdt.internal.corext.dom.Bindings.equals(Bindings.java:88)
	at
org.eclipse.jdt.internal.ui.search.OccurrencesFinder.match(OccurrencesFinder.java:236)
	at
org.eclipse.jdt.internal.ui.search.OccurrencesFinder.visit(OccurrencesFinder.java:174)
	at org.eclipse.jdt.core.dom.SimpleName.accept0(SimpleName.java:147)
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2450)
	at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java:2497)
	at org.eclipse.jdt.core.dom.SimpleType.accept0(SimpleType.java:136)
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2450)
	at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java:2497)
	at org.eclipse.jdt.core.dom.ParameterizedType.accept0(ParameterizedType.java:182)
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2450)
	at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java:2497)
	at
org.eclipse.jdt.core.dom.SingleVariableDeclaration.accept0(SingleVariableDeclaration.java:371)
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2450)
	at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2520)
	at org.eclipse.jdt.core.dom.MethodDeclaration.accept0(MethodDeclaration.java:501)
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2450)
	at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2520)
	at org.eclipse.jdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:486)
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2450)
	at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2520)
	at org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:299)
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2450)
	at
org.eclipse.jdt.internal.ui.search.OccurrencesFinder.perform(OccurrencesFinder.java:91)
	at
org.eclipse.jdt.internal.ui.javaeditor.JavaEditor.updateOccurrenceAnnotations(JavaEditor.java:2940)
	at
org.eclipse.jdt.internal.ui.javaeditor.JavaEditor$5.selectionChanged(JavaEditor.java:2969)
	at
org.eclipse.jdt.internal.ui.viewsupport.SelectionListenerWithASTManager$PartListenerGroup.calculateASTandInform(SelectionListenerWithASTManager.java:173)
	at
org.eclipse.jdt.internal.ui.viewsupport.SelectionListenerWithASTManager$3.run(SelectionListenerWithASTManager.java:142)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:67)
Comment 1 Olivier Thomann CLA 2005-03-09 11:13:18 EST
I cannot reproduce using latest. Do I need to enable some options to get it?
Comment 2 Olivier Thomann CLA 2005-03-09 11:56:44 EST
Update title
Comment 3 Olivier Thomann CLA 2005-03-09 14:32:06 EST
Reproduced.
Comment 4 Olivier Thomann CLA 2005-03-09 14:44:30 EST
Fixed and released in HEAD.
Regression test added in ASTConverter15Test.test0147. The check is done during
the ASTConverterBindingsTest execution.
Comment 5 Olivier Thomann CLA 2005-03-30 23:23:57 EST
Verified in 20050330-0500