Bug 41701 Cannot open AntEditor due to NPE in ExtendedTextEditor
in 20030819: java.lang.NullPointerException at java.lang.Throwable.<init>(Throwable.java) at java.lang.Throwable.<init>(Throwable.java) at java.lang.NullPointerException.<init>(NullPointerException.java:63) at org.eclipse.ui.texteditor.ExtendedTextEditor.initializeChangeRulerColumn(ExtendedTextEditor.java:509) at org.eclipse.ui.texteditor.ExtendedTextEditor.createChangeRulerColumn(ExtendedTextEditor.java:595) at org.eclipse.ui.texteditor.ExtendedTextEditor.createCompositeRuler(ExtendedTextEditor.java:619) at org.eclipse.ui.texteditor.ExtendedTextEditor.createVerticalRuler(ExtendedTextEditor.java:603) at org.eclipse.ui.texteditor.AbstractTextEditor.createPartControl(AbstractTextEditor.java:2047) at org.eclipse.ui.texteditor.StatusTextEditor.createPartControl(StatusTextEditor.java:53) at org.eclipse.ui.texteditor.ExtendedTextEditor.createPartControl(ExtendedTextEditor.java:259) at org.eclipse.ui.internal.PartPane$4.run(PartPane.java:141) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java) at org.eclipse.core.runtime.Platform.run(Platform.java) at org.eclipse.ui.internal.PartPane.createChildControl(PartPane.java:137) at org.eclipse.ui.internal.PartPane.createControl(PartPane.java:186) at org.eclipse.ui.internal.EditorWorkbook.createPage(EditorWorkbook.java:404) at org.eclipse.ui.internal.EditorWorkbook.add(EditorWorkbook.java:123) at org.eclipse.ui.internal.EditorArea.addEditor(EditorArea.java:55) at org.eclipse.ui.internal.EditorPresentation.openEditor(EditorPresentation.java:351) at org.eclipse.ui.internal.EditorManager$2.run(EditorManager.java:585) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java) at org.eclipse.ui.internal.EditorManager.createEditorTab(EditorManager.java:574) at org.eclipse.ui.internal.EditorManager.openInternalEditor(EditorManager.java:668) at org.eclipse.ui.internal.EditorManager.openEditorFromDescriptor(EditorManager.java:459) at org.eclipse.ui.internal.EditorManager.openEditor(EditorManager.java:431) at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2069) at org.eclipse.ui.internal.WorkbenchPage.access$6(WorkbenchPage.java:2019) at org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.java:2006) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java) at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2001) at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:1894) at org.eclipse.ui.actions.OpenWithMenu.openEditor(OpenWithMenu.java:237) at org.eclipse.ui.actions.OpenWithMenu.access$0(OpenWithMenu.java:231) at org.eclipse.ui.actions.OpenWithMenu$2.handleEvent(OpenWithMenu.java:155) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1676) at org.eclipse.ui.internal.Workbench.run(Workbench.java:1659) at org.eclipse.core.internal.boot.InternalBootLoader.run(InternalBootLoader.java:858) at org.eclipse.core.boot.BootLoader.run(BootLoader.java:461) at java.lang.reflect.AccessibleObject.invokeL(AccessibleObject.java:207) at java.lang.reflect.Method.invoke(Method.java:271) at org.eclipse.core.launcher.Main.basicRun(Main.java:291) at org.eclipse.core.launcher.Main.run(Main.java:747) at org.eclipse.core.launcher.Main.main(Main.java:583)
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javaeditor/JavaEditor.java
/**
		 * Installs this selection changed listener with the given selection provider. If
		 * the selection provider is a post selection provider, post selection changed
		 * events are the preferred choice, otherwise normal selection changed events
		 * are requested.
		 * 
		 * @param selectionProvider
		 */
		public void install(ISelectionProvider selectionProvider) {
			if (selectionProvider == null)
				return;
				
			if (selectionProvider instanceof IPostSelectionProvider)  {
				IPostSelectionProvider provider= (IPostSelectionProvider) selectionProvider;
				provider.addPostSelectionChangedListener(this);
			} else  {
				selectionProvider.addSelectionChangedListener(this);
			}
		}
		/**
		 * Removes this selection changed listener from the given selection provider.
		 * 
		 * @param selectionProvider
		 */
		public void uninstall(ISelectionProvider selectionProvider) {
			if (selectionProvider == null)
				return;
			
			if (selectionProvider instanceof IPostSelectionProvider)  {
				IPostSelectionProvider provider= (IPostSelectionProvider) selectionProvider;