Bug 33512 NPE in JavaOutlinePage.getMainType
Build: 2.1 RC1 I found the following in my log file today. I don't know how it happened, and it only happened the once: java.lang.NullPointerException at org.eclipse.jdt.internal.ui.javaeditor.JavaOutlinePage.getMainType(JavaOutlinePage.java:795) at org.eclipse.jdt.internal.ui.javaeditor.JavaOutlinePage$1.run(JavaOutlinePage.java:150) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java(Compiled Code)) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java(Compiled Code)) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java(Compiled Code)) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java(Compiled Code)) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java(Compiled Code)) at org.eclipse.ui.internal.Workbench.run(Workbench.java:1254) at org.eclipse.core.internal.boot.InternalBootLoader.run(InternalBootLoader.java:845) at org.eclipse.core.boot.BootLoader.run(BootLoader.java:461) at java.lang.reflect.Method.invoke(Native Method) at org.eclipse.core.launcher.Main.basicRun(Main.java:247) at org.eclipse.core.launcher.Main.run(Main.java:703) at org.eclipse.core.launcher.Main.main(Main.java:539)
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javaeditor/JavaOutlinePage.java
private CompositeActionGroup fActionGroups;
	private CCPActionGroup fCCPActionGroup;
	private IPropertyChangeListener fPropertyChangeListener;
	
	public JavaOutlinePage(String contextMenuID, JavaEditor editor) {
		super();
		
		Assert.isNotNull(editor);
		
		fContextMenuID= contextMenuID;
		fEditor= editor;
		
		fTogglePresentation= new TogglePresentationAction();
		fPreviousError= new GotoErrorAction("PreviousError.", false); 
		fPreviousError.setImageDescriptor(JavaPluginImages.DESC_TOOL_GOTO_PREV_ERROR);
		fNextError= new GotoErrorAction("NextError.", true); 
		fNextError.setImageDescriptor(JavaPluginImages.DESC_TOOL_GOTO_NEXT_ERROR);
		fShowJavadoc= (TextEditorAction) fEditor.getAction("ShowJavaDoc"); 
		fUndo= (TextOperationAction) fEditor.getAction(ITextEditorActionConstants.UNDO);
		fRedo= (TextOperationAction) fEditor.getAction(ITextEditorActionConstants.REDO);
		
		fTogglePresentation.setEditor(editor);
		fPreviousError.setEditor(editor);
		fNextError.setEditor(editor);	
		
		fPropertyChangeListener= new IPropertyChangeListener() {
			public void propertyChange(PropertyChangeEvent event) {
				doPropertyChange(event);
			}