Bug 81141 - CCE in ProblemBinding when using annotations
Summary: CCE in ProblemBinding when using annotations
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.1   Edit
Hardware: PC Linux-GTK
: P3 normal (vote)
Target Milestone: 3.1 M4   Edit
Assignee: Olivier Thomann CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 81148 (view as bug list)
Depends on:
Blocks:
 
Reported: 2004-12-15 09:10 EST by Tom Hofmann CLA
Modified: 2004-12-15 20:45 EST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Tom Hofmann CLA 2004-12-15 09:10:58 EST
M4 testing (I20041214-2000-gtk)

I was testing the refactoring annotation support and created the annotation
below. All of a sudden (When I first modified the source of the annotation CU,
which had been created by a refactoring), I get tons (ok, ~8) of the execptions
below.

I was unable to give focus to the editor until I turned off 'Mark Occurrences',
I guess the AST getter job was running into the problem.

-------- ThrowAwayMethod.java --------
package com.example.m4testing;

import java.lang.annotation.Retention;


@Retention(RetentionPolicy.SOURCE)
@Target(ElementType.METHOD)
@interface ThrowAwayMethod {

	/**
	 * Comment for <code>test</code>
	 */
	private final Test test;

	/**
	 * @param test
	 */
	ThrowAwayMethod(Test test) {
		this.test= test;
	}
	
}

-------- First Exception (Killed the reconciler) ---------


!ENTRY org.eclipse.jdt.core 4 4 2004-12-15 15:03:17.419
!MESSAGE Exception occurred during problem detection: 
!STACK 0
java.lang.ClassCastException:
org.eclipse.jdt.internal.compiler.lookup.ProblemBinding
	at
org.eclipse.jdt.internal.compiler.ast.NameReference.fieldBinding(NameReference.java:37)
	at
org.eclipse.jdt.internal.compiler.ast.Annotation.detectStandardAnnotation(Annotation.java:97)
	at
org.eclipse.jdt.internal.compiler.ast.Annotation.resolveType(Annotation.java:229)
	at
org.eclipse.jdt.internal.compiler.ast.ASTNode.resolveAnnotations(ASTNode.java:369)
	at
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:928)
	at
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1063)
	at
org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:280)
	at org.eclipse.jdt.internal.compiler.Compiler.resolve(Compiler.java:566)
	at
org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:175)
	at
org.eclipse.jdt.internal.core.CompilationUnit.buildStructure(CompilationUnit.java:142)
	at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:203)
	at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:547)
	at
org.eclipse.jdt.internal.core.CompilationUnit.makeConsistent(CompilationUnit.java:979)
	at
org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:60)
	at
org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:700)
	at
org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:739)
	at
org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1105)
	at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:91)
	at
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:133)
	at
org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.reconcile(CompositeReconcilingStrategy.java:86)
	at
org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.reconcile(JavaCompositeReconcilingStrategy.java:94)
	at org.eclipse.jface.text.reconciler.MonoReconciler.process(MonoReconciler.java:75)
	at org.eclipse.jdt.internal.ui.text.JavaReconciler.process(JavaReconciler.java:318)
	at
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:204)

---- second exception (and all following) --------



!ENTRY org.eclipse.jdt.ui 4 10001 2004-12-15 15:03:18.299
!MESSAGE Internal Error
!STACK 0
java.lang.reflect.InvocationTargetException
	at
org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:333)
	at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:269)
	at org.eclipse.jface.window.ApplicationWindow$1.run(ApplicationWindow.java:624)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
	at org.eclipse.jface.window.ApplicationWindow.run(ApplicationWindow.java:621)
	at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:1949)
	at
org.eclipse.ui.internal.progress.ProgressManager$5.run(ProgressManager.java:1061)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
	at
org.eclipse.ui.internal.progress.ProgressManager.runInUI(ProgressManager.java:1057)
	at
org.eclipse.jdt.internal.ui.javaeditor.AddImportOnSelectionAction.run(AddImportOnSelectionAction.java:109)
	at org.eclipse.jface.action.Action.runWithEvent(Action.java:989)
	at org.eclipse.ui.commands.ActionHandler.execute(ActionHandler.java:188)
	at org.eclipse.ui.internal.commands.Command.execute(Command.java:130)
	at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:445)
	at org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:724)
	at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:767)
	at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:536)
	at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$2(WorkbenchKeyboard.java:479)
	at
org.eclipse.ui.internal.keys.WorkbenchKeyboard$1.handleEvent(WorkbenchKeyboard.java:221)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
	at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1067)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:995)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1020)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1005)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1032)
	at org.eclipse.swt.widgets.Widget.gtk_key_press_event(Widget.java:596)
	at org.eclipse.swt.widgets.Control.gtk_key_press_event(Control.java:1886)
	at org.eclipse.swt.widgets.Composite.gtk_key_press_event(Composite.java:527)
	at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1332)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:3241)
	at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method)
	at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:4633)
	at org.eclipse.swt.widgets.Display.eventProc(Display.java:907)
	at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method)
	at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:1095)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2395)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1569)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1540)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:285)
	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:273)
	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:185)
	at org.eclipse.core.launcher.Main.run(Main.java:710)
	at org.eclipse.core.launcher.Main.main(Main.java:694)
Caused by: java.lang.ClassCastException:
org.eclipse.jdt.internal.compiler.lookup.ProblemBinding
	at
org.eclipse.jdt.internal.compiler.ast.NameReference.fieldBinding(NameReference.java:37)
	at
org.eclipse.jdt.internal.compiler.ast.Annotation.detectStandardAnnotation(Annotation.java:97)
	at
org.eclipse.jdt.internal.compiler.ast.Annotation.resolveType(Annotation.java:229)
	at
org.eclipse.jdt.internal.compiler.ast.ASTNode.resolveAnnotations(ASTNode.java:369)
	at
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:928)
	at
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1063)
	at
org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:280)
	at
org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:651)
	at
org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:443)
	at org.eclipse.jdt.core.dom.ASTParser.internalCreateAST(ASTParser.java:708)
	at org.eclipse.jdt.core.dom.ASTParser.createAST(ASTParser.java:574)
	at
org.eclipse.jdt.internal.ui.javaeditor.ASTProvider.createAST(ASTProvider.java:563)
	at org.eclipse.jdt.internal.ui.javaeditor.ASTProvider.getAST(ASTProvider.java:494)
	at
org.eclipse.jdt.internal.corext.codemanipulation.AddImportsOperation.run(AddImportsOperation.java:134)
	at
org.eclipse.jdt.internal.core.BatchOperation.executeOperation(BatchOperation.java:34)
	at
org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:700)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1674)
	at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:3672)
	at
org.eclipse.jdt.internal.ui.actions.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:65)
	at
org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:322)
	... 50 more
Root exception:
java.lang.ClassCastException:
org.eclipse.jdt.internal.compiler.lookup.ProblemBinding
	at
org.eclipse.jdt.internal.compiler.ast.NameReference.fieldBinding(NameReference.java:37)
	at
org.eclipse.jdt.internal.compiler.ast.Annotation.detectStandardAnnotation(Annotation.java:97)
	at
org.eclipse.jdt.internal.compiler.ast.Annotation.resolveType(Annotation.java:229)
	at
org.eclipse.jdt.internal.compiler.ast.ASTNode.resolveAnnotations(ASTNode.java:369)
	at
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:928)
	at
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1063)
	at
org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:280)
	at
org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:651)
	at
org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:443)
	at org.eclipse.jdt.core.dom.ASTParser.internalCreateAST(ASTParser.java:708)
	at org.eclipse.jdt.core.dom.ASTParser.createAST(ASTParser.java:574)
	at
org.eclipse.jdt.internal.ui.javaeditor.ASTProvider.createAST(ASTProvider.java:563)
	at org.eclipse.jdt.internal.ui.javaeditor.ASTProvider.getAST(ASTProvider.java:494)
	at
org.eclipse.jdt.internal.corext.codemanipulation.AddImportsOperation.run(AddImportsOperation.java:134)
	at
org.eclipse.jdt.internal.core.BatchOperation.executeOperation(BatchOperation.java:34)
	at
org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:700)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1674)
	at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:3672)
	at
org.eclipse.jdt.internal.ui.actions.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:65)
	at
org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:322)
	at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:269)
	at org.eclipse.jface.window.ApplicationWindow$1.run(ApplicationWindow.java:624)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
	at org.eclipse.jface.window.ApplicationWindow.run(ApplicationWindow.java:621)
	at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:1949)
	at
org.eclipse.ui.internal.progress.ProgressManager$5.run(ProgressManager.java:1061)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
	at
org.eclipse.ui.internal.progress.ProgressManager.runInUI(ProgressManager.java:1057)
	at
org.eclipse.jdt.internal.ui.javaeditor.AddImportOnSelectionAction.run(AddImportOnSelectionAction.java:109)
	at org.eclipse.jface.action.Action.runWithEvent(Action.java:989)
	at org.eclipse.ui.commands.ActionHandler.execute(ActionHandler.java:188)
	at org.eclipse.ui.internal.commands.Command.execute(Command.java:130)
	at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:445)
	at org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:724)
	at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:767)
	at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:536)
	at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$2(WorkbenchKeyboard.java:479)
	at
org.eclipse.ui.internal.keys.WorkbenchKeyboard$1.handleEvent(WorkbenchKeyboard.java:221)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
	at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1067)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:995)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1020)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1005)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1032)
	at org.eclipse.swt.widgets.Widget.gtk_key_press_event(Widget.java:596)
	at org.eclipse.swt.widgets.Control.gtk_key_press_event(Control.java:1886)
	at org.eclipse.swt.widgets.Composite.gtk_key_press_event(Composite.java:527)
	at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1332)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:3241)
	at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method)
	at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:4633)
	at org.eclipse.swt.widgets.Display.eventProc(Display.java:907)
	at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method)
	at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:1095)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2395)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1569)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1540)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:285)
	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:273)
	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:185)
	at org.eclipse.core.launcher.Main.run(Main.java:710)
	at org.eclipse.core.launcher.Main.main(Main.java:694)

!ENTRY org.eclipse.core.runtime 4 2 2004-12-15 15:03:18.399
!MESSAGE An internal error occurred during: "Java AST creation".
!STACK 0
java.lang.ClassCastException:
org.eclipse.jdt.internal.compiler.lookup.ProblemBinding
	at
org.eclipse.jdt.internal.compiler.ast.NameReference.fieldBinding(NameReference.java:37)
	at
org.eclipse.jdt.internal.compiler.ast.Annotation.detectStandardAnnotation(Annotation.java:97)
	at
org.eclipse.jdt.internal.compiler.ast.Annotation.resolveType(Annotation.java:229)
	at
org.eclipse.jdt.internal.compiler.ast.ASTNode.resolveAnnotations(ASTNode.java:369)
	at
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:928)
	at
org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1063)
	at
org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:280)
	at
org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:651)
	at
org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:443)
	at org.eclipse.jdt.core.dom.ASTParser.internalCreateAST(ASTParser.java:708)
	at org.eclipse.jdt.core.dom.ASTParser.createAST(ASTParser.java:574)
	at
org.eclipse.jdt.internal.ui.javaeditor.ASTProvider.createAST(ASTProvider.java:563)
	at org.eclipse.jdt.internal.ui.javaeditor.ASTProvider.getAST(ASTProvider.java:494)
	at
org.eclipse.jdt.internal.ui.viewsupport.SelectionListenerWithASTManager$PartListenerGroup.calculateASTandInform(SelectionListenerWithASTManager.java:165)
	at
org.eclipse.jdt.internal.ui.viewsupport.SelectionListenerWithASTManager$3.run(SelectionListenerWithASTManager.java:142)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:66)
Comment 1 Olivier Thomann CLA 2004-12-15 10:18:21 EST
*** Bug 81148 has been marked as a duplicate of this bug. ***
Comment 2 Olivier Thomann CLA 2004-12-15 10:19:03 EST
Fixed and released in HEAD.
Regression tests added in ASTConverter15Test and AnnotationTest.
Comment 3 Olivier Thomann CLA 2004-12-15 20:45:31 EST
Verified in 200412160010