Bug 17922 - ClassCastException on rename temp
Summary: ClassCastException on rename temp
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 2.0   Edit
Hardware: PC Windows 2000
: P2 normal (vote)
Target Milestone: 2.0 F2   Edit
Assignee: Olivier Thomann CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2002-05-27 09:58 EDT by Adam Kiezun CLA
Modified: 2002-06-03 14:09 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Adam Kiezun CLA 2002-05-27 09:58:21 EDT
should try to reproduce and isolate a test case

java.lang.reflect.InvocationTargetException: java.lang.ClassCastException: 
org.eclipse.jdt.internal.compiler.lookup.ArrayBinding
	at 
org.eclipse.jdt.core.dom.DefaultBindingResolver.returnBindingForQualifiedNamePar
t(DefaultBindingResolver.java:738)
	at 
org.eclipse.jdt.core.dom.DefaultBindingResolver.internalResolveNameForSimpleName
(DefaultBindingResolver.java(Compiled Code))
	at org.eclipse.jdt.core.dom.DefaultBindingResolver.resolveName
(DefaultBindingResolver.java(Compiled Code))
	at 
org.eclipse.jdt.internal.corext.refactoring.rename.TempOccurrenceFinder$TempOccu
rrenceAnalyzer.visitNameReference(TempOccurrenceFinder.java(Compiled Code))
	at 
org.eclipse.jdt.internal.corext.refactoring.rename.TempOccurrenceFinder$TempOccu
rrenceAnalyzer.visitNameReference(TempOccurrenceFinder.java(Compiled Code))
	at 
org.eclipse.jdt.internal.corext.refactoring.rename.TempOccurrenceFinder$TempOccu
rrenceAnalyzer.visit(TempOccurrenceFinder.java(Compiled Code))
	at org.eclipse.jdt.core.dom.SimpleName.accept0(SimpleName.java(Compiled 
Code))
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java(Compiled Code))
	at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java(Compiled 
Code))
	at org.eclipse.jdt.core.dom.QualifiedName.accept0(QualifiedName.java:88)
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java(Compiled Code))
	at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java(Compiled 
Code))
	at org.eclipse.jdt.core.dom.SimpleType.accept0(SimpleType.java:73)
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java(Compiled Code))
	at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java(Compiled 
Code))
	at org.eclipse.jdt.core.dom.ArrayType.accept0(ArrayType.java:76)
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java(Compiled Code))
	at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java(Compiled 
Code))
	at org.eclipse.jdt.core.dom.FieldDeclaration.accept0
(FieldDeclaration.java:119)
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java(Compiled Code))
	at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java
(Compiled Code))
	at org.eclipse.jdt.core.dom.TypeDeclaration.accept0
(TypeDeclaration.java:160)
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java(Compiled Code))
	at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java
(Compiled Code))
	at org.eclipse.jdt.core.dom.CompilationUnit.accept0
(CompilationUnit.java:145)
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java(Compiled Code))
	at 
org.eclipse.jdt.internal.corext.refactoring.rename.TempOccurrenceFinder.findTemp
OccurrenceOffsets(TempOccurrenceFinder.java:27)
	at 
org.eclipse.jdt.internal.corext.refactoring.rename.RenameTempRefactoring.getAllR
enameEdits(RenameTempRefactoring.java:201)
	at 
org.eclipse.jdt.internal.corext.refactoring.rename.RenameTempRefactoring.analyze
AST(RenameTempRefactoring.java:176)
	at 
org.eclipse.jdt.internal.corext.refactoring.rename.RenameTempRefactoring.checkIn
put(RenameTempRefactoring.java:162)
	at org.eclipse.jdt.internal.ui.refactoring.CheckConditionsOperation.run
(CheckConditionsOperation.java:58)
	at org.eclipse.jdt.internal.ui.refactoring.CreateChangeOperation.run
(CreateChangeOperation.java:93)
	at org.eclipse.jface.operation.ModalContext$ModalContextThread.run
(ModalContext.java:98)
Comment 1 Adam Kiezun CLA 2002-05-28 05:18:09 EDT
before i forget: it happened in the editor pref page (create...Page methods)
Comment 2 Adam Kiezun CLA 2002-05-28 08:09:56 EDT
ok, found it:
public class A {
	Bar.B[] field= new Bar.B[]{
		new Bar.B()
	};
	void f(){
		int temp;
	}
}

class Bar{
	static class B{}
}

selecting the temp, invoking 'rename element' and pressing next results in the 
same CCE
seems like jcore binding problem
Comment 3 Olivier Thomann CLA 2002-05-28 11:51:57 EDT
The problem came from the QualifiedTypeReference. I need to take the 
binding.leafComponentType() instead of the binding only. Regression tests added.
Fixed and 
released.
Comment 4 Olivier Thomann CLA 2002-06-03 14:08:48 EDT
Verified in F2.
Comment 5 Olivier Thomann CLA 2002-06-03 14:09:05 EDT
Verified.