Bug 88941 [Dialogs] CCE on ContainerCheckedTreeViewer in OverrideMethodDialog
build I20050323 + latest UI and JDT UI from head - In a java editor, chose Source > Override/Implement methods !ENTRY org.eclipse.ui 4 4 2005-03-23 16:54:47.117 !MESSAGE Unhandled event loop exception !ENTRY org.eclipse.ui 4 0 2005-03-23 16:54:47.157 !MESSAGE org/eclipse/ui/dialogs/ContainerCheckedTreeViewer incompatible with org/eclipse/ui/internal/dialogs/ContainerCheckedTreeViewer !STACK 0 java.lang.ClassCastException: org/eclipse/ui/dialogs/ContainerCheckedTreeViewer incompatible with org/eclipse/ui/internal/dialogs/ContainerCheckedTreeViewer at org.eclipse.jdt.internal.ui.dialogs.OverrideMethodDialog$OverrideMethodContentProvider.inputChanged(OverrideMethodDialog.java:186) at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:244) at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1324) at org.eclipse.ui.dialogs.CheckedTreeSelectionDialog.createTreeViewer(CheckedTreeSelectionDialog.java:316) at org.eclipse.jdt.internal.ui.dialogs.OverrideMethodDialog.createTreeViewer(OverrideMethodDialog.java:356) at org.eclipse.jdt.internal.ui.dialogs.SourceActionDialog.createDialogArea(SourceActionDialog.java:358) at org.eclipse.jface.dialogs.Dialog.createContents(Dialog.java:685) at org.eclipse.jface.window.Window.create(Window.java:416) at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:994) at org.eclipse.ui.dialogs.SelectionStatusDialog.create(SelectionStatusDialog.java:149) at org.eclipse.ui.dialogs.CheckedTreeSelectionDialog.access$superCreate(CheckedTreeSelectionDialog.java:232) at org.eclipse.ui.dialogs.CheckedTreeSelectionDialog.access$0(CheckedTreeSelectionDialog.java:231) at org.eclipse.ui.dialogs.CheckedTreeSelectionDialog$1.run(CheckedTreeSelectionDialog.java:257) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69) at org.eclipse.ui.dialogs.CheckedTreeSelectionDialog.create(CheckedTreeSelectionDialog.java:255) at org.eclipse.jdt.internal.ui.dialogs.SourceActionDialog.create(SourceActionDialog.java:501) at org.eclipse.jface.window.Window.open(Window.java:768) at org.eclipse.ui.dialogs.CheckedTreeSelectionDialog.open(CheckedTreeSelectionDialog.java:227) at org.eclipse.jdt.ui.actions.OverrideMethodsAction.run(OverrideMethodsAction.java:199) at org.eclipse.jdt.ui.actions.OverrideMethodsAction.run(OverrideMethodsAction.java:181) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:216) at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:188) at org.eclipse.jface.action.Action.runWithEvent(Action.java:1003) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:557) at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:507) at org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:421) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:842) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2894) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2527) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1571) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1535) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:312) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:103) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:228) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:338) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:151) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:58) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:60) at java.lang.reflect.Method.invoke(Method.java:391) at org.eclipse.core.launcher.Main.invokeFramework(Main.java:268) at org.eclipse.core.launcher.Main.basicRun(Main.java:260) at org.eclipse.core.launcher.Main.run(Main.java:887) at org.eclipse.core.launcher.Main.main(Main.java:871)
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/dialogs/OverrideMethodDialog.java
}
			if (count == 0)
				return new StatusInfo(IStatus.ERROR, ""); 
			return new StatusInfo(IStatus.INFO, JavaUIMessages.getFormattedString("OverrideMethodDialog.selectioninfo.more", new String[] { String.valueOf(count), String.valueOf(fNumMethods)})); 
		}
	}
	private CompilationUnit fUnit= null;
	public OverrideMethodDialog(Shell parent, CompilationUnitEditor editor, IType type, boolean isSubType) throws JavaModelException {
		super(parent, new BindingLabelProvider(), new OverrideMethodContentProvider(), editor, type, false);
		RefactoringASTParser parser= new RefactoringASTParser(AST.JLS3);
		fUnit= parser.parse(type.getCompilationUnit(), true);
		ITypeBinding binding= null;
		if (type.isAnonymous()) {
			final IJavaElement element= type.getParent();
			if (element instanceof IField) {
				final IField field= (IField) element;
				final EnumConstantDeclaration declaration= (EnumConstantDeclaration) NodeFinder.perform(fUnit, field.getSourceRange());
				final AnonymousClassDeclaration decl= declaration.getAnonymousClassDeclaration();
				if (decl != null)
					binding= decl.resolveBinding();
			} else {
				final ClassInstanceCreation creation= (ClassInstanceCreation) ASTNodes.getParent(NodeFinder.perform(fUnit, type.getNameRange()), ClassInstanceCreation.class);
				if (creation != null)
					binding= creation.resolveTypeBinding();
			}
		} else {
			final AbstractTypeDeclaration declaration= (AbstractTypeDeclaration) ASTNodes.getParent(NodeFinder.perform(fUnit, type.getNameRange()), AbstractTypeDeclaration.class);
			if (declaration != null)
				binding= declaration.resolveBinding();
		}