Bug 71852 - ClassCastException in HandleFactory.createElement(...)
Summary: ClassCastException in HandleFactory.createElement(...)
Status: RESOLVED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.0   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.1 M1   Edit
Assignee: David Audel CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-08-12 05:29 EDT by Christof Marti CLA
Modified: 2005-01-11 11:02 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 Christof Marti CLA 2004-08-12 05:29:02 EDT
I200408101200

Not sure when this happened.

java.lang.ClassCastException
        at org.eclipse.jdt.internal.core.util.HandleFactory.createElement(Handle
Factory.java:310)
        at org.eclipse.jdt.internal.core.util.HandleFactory.createElement(Handle
Factory.java:300)
        at org.eclipse.jdt.internal.core.SelectionRequestor.acceptLocalVariable(
SelectionRequestor.java:220)
        at org.eclipse.jdt.internal.codeassist.SelectionEngine.selectFrom(Select
ionEngine.java:720)
        at org.eclipse.jdt.internal.codeassist.SelectionEngine.select(SelectionE
ngine.java:533)
        at org.eclipse.jdt.internal.core.Openable.codeSelect(Openable.java:143)
        at org.eclipse.jdt.internal.core.CompilationUnit.codeSelect(CompilationU
nit.java:303)
        at org.eclipse.jdt.internal.core.CompilationUnit.codeSelect(CompilationU
nit.java:297)
        at org.eclipse.jdt.internal.ui.infoviews.TextSelectionConverter.codeReso
lve(TextSelectionConverter.java:90)
        at org.eclipse.jdt.internal.ui.infoviews.TextSelectionConverter.codeReso
lve(TextSelectionConverter.java:52)
        at org.eclipse.jdt.internal.ui.infoviews.AbstractInfoView.findSelectedJa
vaElement(AbstractInfoView.java:333)
        at org.eclipse.jdt.internal.ui.infoviews.JavadocView.findSelectedJavaEle
ment(JavadocView.java:500)
        at org.eclipse.jdt.internal.ui.infoviews.AbstractInfoView$2.run(Abstract
InfoView.java:448)
java.lang.ClassCastException
        at org.eclipse.jdt.internal.core.util.HandleFactory.createElement(Handle
Factory.java:310)
        at org.eclipse.jdt.internal.core.util.HandleFactory.createElement(Handle
Factory.java:300)
        at org.eclipse.jdt.internal.core.SelectionRequestor.acceptLocalVariable(
SelectionRequestor.java:220)
        at org.eclipse.jdt.internal.codeassist.SelectionEngine.selectFrom(Select
ionEngine.java:720)
        at org.eclipse.jdt.internal.codeassist.SelectionEngine.select(SelectionE
ngine.java:533)
        at org.eclipse.jdt.internal.core.Openable.codeSelect(Openable.java:143)
        at org.eclipse.jdt.internal.core.CompilationUnit.codeSelect(CompilationU
nit.java:303)
        at org.eclipse.jdt.internal.core.CompilationUnit.codeSelect(CompilationU
nit.java:297)
        at org.eclipse.jdt.internal.ui.infoviews.TextSelectionConverter.codeReso
lve(TextSelectionConverter.java:90)
        at org.eclipse.jdt.internal.ui.infoviews.TextSelectionConverter.codeReso
lve(TextSelectionConverter.java:52)
        at org.eclipse.jdt.internal.ui.infoviews.AbstractInfoView.findSelectedJa
vaElement(AbstractInfoView.java:333)
        at org.eclipse.jdt.internal.ui.infoviews.AbstractInfoView$2.run(Abstract
InfoView.java:448)
Comment 1 David Audel CLA 2004-08-12 12:19:15 EDT
I can reproduce the stack trace with the following test case

1) create a new java project
2) set compiler compliance level to 1.5 (Properties>Java Compiler>Compliance 
and Classfiles>Compiler compliance level)
3) create X.java
/**
 */
public enum X {;
  void foo() {
    int var;
    var = 0;
  }

}
4) select "var" inside "var = 0;"
The ClassCastException occurs

Christof - Did you write similar Java code to cause the ClassCastException ?
Comment 2 Christof Marti CLA 2004-08-12 14:45:13 EDT
Yes, I experimented with an enum and members therein. I'm not sure if the
exception was thrown when I did so, but it's plausible.
Comment 3 David Audel CLA 2004-08-16 06:35:50 EDT
HandleFactory#createElement(...) use an ASTVisitor but does not visit the 
EnumDeclaration node.

Fixed ( visit() and endVisit() methods added).
Test added (ResolveTest_1_5#test0015())