Bug 5075 Class cast extception in JavaOutliner
* Using latest code (204++) * Using Junit as a test case * Put a breakpoint in VectorTest#testElementAt(), on the second line of the method * Open a class file editor in the Java Perspective, and make it the active editor (I openned Vector.class) * Debug to the breakpoint * Try to inspect or display "i.intValue == 1" * ClassCastException this= Workbench (id=49) e= SWTException (id=190) backtrace= Object[10] (id=192) code= 46 detailMessage= "Failed to execute runnable" throwable= ClassCastException (id=193) backtrace= Object[11] (id=194) [0]= int[10] (id=196) [1]= Class (org.eclipse.jdt.internal.ui.javaeditor.JavaOutlinePage$1) (id=74) [2]= Class (org.eclipse.swt.widgets.RunnableLock) (id=75) [3]= Class (org.eclipse.swt.widgets.Synchronizer) (id=76) [4]= Class (org.eclipse.swt.widgets.Display) (id=77) [5]= Class (org.eclipse.swt.widgets.Display) (id=77) [6]= Class (org.eclipse.ui.internal.Workbench) (id=40) [7]= Class (org.eclipse.ui.internal.Workbench) (id=40) [8]= Class (org.eclipse.core.internal.boot.InternalBootLoader) (id=46) [9]= Class (org.eclipse.core.boot.BootLoader) (id=47) [10]= Class (SlimLauncher) (id=48) detailMessage= "org.eclipse.jdt.internal.core.ClassFile" msg= "Failed to execute runnable (org.eclipse.jdt.internal.core.ClassFile)"
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javaeditor/JavaOutlinePage.java
fEditor= editor;
	}
	
	private void fireSelectionChanged(ISelection selection) {
		SelectionChangedEvent event= new SelectionChangedEvent(this, selection);
		Object[] listeners= fSelectionChangedListeners.getListeners();
		for (int i= 0; i < listeners.length; ++i)
			((ISelectionChangedListener) listeners[i]).selectionChanged(event);
	}
	
	/**
	 * @see IPage#createControl
	 */
	public void createControl(Composite parent) {
		
		Tree tree= new Tree(parent, SWT.MULTI);
		JavaElementLabelProvider lprovider= new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_PARAMETERS | JavaElementLabelProvider.SHOW_OVERLAY_ICONS | JavaElementLabelProvider.SHOW_TYPE);
		
		fOutlineViewer= new JavaOutlineViewer(tree);		
		fOutlineViewer.setContentProvider(new ChildrenProvider());
		fOutlineViewer.setLabelProvider(lprovider);
			
		MenuManager manager= new MenuManager(fContextMenuID, fContextMenuID);
		manager.setRemoveAllWhenShown(true);
		manager.addMenuListener(new IMenuListener() {
			public void menuAboutToShow(IMenuManager manager) {
				contextMenuAboutToShow(manager);
			}
		});
		fMenu= manager.createContextMenu(tree);