Bug 83300 - [1.5] ClassCastException in #getJavaElement() on binding of annotation element
Summary: [1.5] ClassCastException in #getJavaElement() on binding of annotation element
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 M5   Edit
Assignee: Jerome Lanneluc CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-01-20 08:35 EST by Markus Keller CLA
Modified: 2005-02-15 10:01 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-01-20 08:35:07 EST
I20050118-1015

@Annot(value="Hello", count=-1)
@interface Annot {
    String value();
    int count();
}

#getJavaElement() on the the method binding of 'value' in 'value="Hello"' yields
a ClassCastException:

java.lang.ClassCastException:
org.eclipse.jdt.core.dom.AnnotationTypeMemberDeclaration
at org.eclipse.jdt.core.dom.MethodBinding.getJavaElement(MethodBinding.java:206)
at org.eclipse.jdt.astview.views.Binding.getChildren(Binding.java:171)
at
org.eclipse.jdt.astview.views.ASTViewContentProvider.getChildren(ASTViewContentProvider.java:92)
at
org.eclipse.jface.viewers.AbstractTreeViewer.getRawChildren(AbstractTreeViewer.java:750)
at
org.eclipse.jface.viewers.StructuredViewer.getFilteredChildren(StructuredViewer.java:708)
at
org.eclipse.jface.viewers.StructuredViewer.getSortedChildren(StructuredViewer.java:823)
at org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:381)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
at
org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:363)
at
org.eclipse.jface.viewers.AbstractTreeViewer.handleTreeExpand(AbstractTreeViewer.java:799)
at
org.eclipse.jface.viewers.AbstractTreeViewer$4.treeExpanded(AbstractTreeViewer.java:810)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:179)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:833)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:857)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:842)
at org.eclipse.swt.widgets.Tree.wmNotifyChild(Tree.java:3449)
at org.eclipse.swt.widgets.Control.WM_NOTIFY(Control.java:3547)
at org.eclipse.swt.widgets.Composite.WM_NOTIFY(Composite.java:991)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:3069)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:3377)
at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method)
at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:1502)
at org.eclipse.swt.widgets.Tree.callWindowProc(Tree.java:218)
at org.eclipse.swt.widgets.Tree.WM_LBUTTONDOWN(Tree.java:2671)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:3051)
at org.eclipse.swt.widgets.Tree.windowProc(Tree.java:2257)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:3377)
at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:1578)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2453)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1575)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1541)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:287)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:144)
at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:102)
at
org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:220)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:274)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:129)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.eclipse.core.launcher.Main.basicRun(Main.java:255)
at org.eclipse.core.launcher.Main.run(Main.java:811)
at org.eclipse.core.launcher.Main.main(Main.java:795)
Comment 1 Jerome Lanneluc CLA 2005-01-24 11:52:27 EST
Fixed MethodBinding#getJavaElement() to handle AnnotationTypeMemberDeclarations.
Added regression test ASTModelBridgeTests#testMethod6()
Comment 2 David Audel CLA 2005-02-15 10:01:36 EST
Verified in I20050214-0927