Bug 85311 [KeyBindings] misc: NPE from KeyBinding preference page
eclipse.buildId=I20050215-1200 java.version=1.4.2_05 java.vendor=Apple Computer, Inc. BootLoader constants: OS=macosx, ARCH=ppc, WS=carbon, NL=en_US Framework arguments: -keyring /Users/vikki/.eclipse_keyring -showlocation Command-line arguments: -os macosx -ws carbon -arch ppc -keyring /Users/vikki/.eclipse_keyring -consoleLog -showlocation Opened the Window -> Preferences Dialog. Gave focus to the tree on the left. Used the arrow keys to traverse through the tree. Got the following error: java.lang.NullPointerException at org.eclipse.jface.bindings.BindingManager.addReverseLookup(BindingManager.java:91) at org.eclipse.jface.bindings.BindingManager.computeBindings(BindingManager.java:549) at org.eclipse.jface.bindings.BindingManager.getActiveBindingsDisregardingContext(BindingManager.java: 853) at org.eclipse.jface.bindings.BindingManager.getActiveBindingsDisregardingContextFlat(BindingManager.j ava:874) at org.eclipse.ui.internal.commands.KeysPreferencePage.updateViewTab(KeysPreferencePage.java:2204) at org.eclipse.ui.internal.commands.KeysPreferencePage.update(KeysPreferencePage.java:1908) at org.eclipse.ui.internal.commands.KeysPreferencePage.setVisible(KeysPreferencePage.java:1894) at org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog.java:1194) at org.eclipse.ui.internal.dialogs.WorkbenchPreferenceDialog.showPage(WorkbenchPreferenceDialog.java: 682) at org.eclipse.jface.preference.PreferenceDialog$9.selectionChanged(PreferenceDialog.java:628) at org.eclipse.jface.viewers.StructuredViewer$3.run(StructuredViewer.java:681) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1015) at org.eclipse.core.runtime.Platform.run(Platform.java:757) at org.eclipse.jface.viewers.StructuredViewer.firePostSelectionChanged(StructuredViewer.java:679) at org.eclipse.jface.viewers.StructuredViewer.handlePostSelect(StructuredViewer.java:950) at org.eclipse.jface.viewers.StructuredViewer$5.widgetSelected(StructuredViewer.java:970) at org.eclipse.jface.util.OpenStrategy.firePostSelectionEvent(OpenStrategy.java:231) at org.eclipse.jface.util.OpenStrategy.access$4(OpenStrategy.java:226) at org.eclipse.jface.util.OpenStrategy$4.run(OpenStrategy.java:384) at org.eclipse.swt.widgets.Display.runTimers(Display.java:3038) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2531) at org.eclipse.jface.window.Window.runEventLoop(Window.java:718) at org.eclipse.jface.window.Window.open(Window.java:696) at org.eclipse.ui.internal.OpenPreferencesAction.run(OpenPreferencesAction.java:66) 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:1237) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1261) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1246) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1094) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2903) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2571) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1612) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1578) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:293) 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:228) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:333) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:150) 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:324) 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)
bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/BindingManager.java
System.out.println("BINDINGS >> Cache hit"); 
			}
			return Collections.unmodifiableMap(commandIdsByTrigger);
		}
		
		if (DEBUG) {
			System.out.println("BINDINGS >> Cache miss"); 
		}
		
		commandIdsByTrigger = new HashMap();
		computeBindings(null, commandIdsByTrigger, null);
		existingCache.setCommandIdsByTrigger(commandIdsByTrigger);
		return Collections.unmodifiableMap(commandIdsByTrigger);
	}
	/**
	 * <p>
	 * Computes the bindings for the current state of the application, but
	 * disregarding the current contexts. This can be useful when trying to
	 * display all the possible bindings.
	 * </p>
	 * <p>
	 * This method completes in <code>O(n)</code>, where <code>n</code> is
	 * the number of bindings.
	 * </p>
	 * 
	 * @return All of the active bindings (<code>Binding</code>), not sorted
	 *         in any fashion. This collection may be empty, but it is never
	 *         <code>null</code>.
	 */
	public final Collection getActiveBindingsDisregardingContextFlat() {