Bug 49274 [Activities] Cannot open preference dialog if previous selected node not in fitlered list
M6 You cannot open the preference dialog if the previously selected preference is in the filtered list due to a walkback STEPS 1) Open the preference dialog 2) Select a raw entry that is not in the filtered list 3) Cancel 4) Attempt to reopen - it will try to select a non-esistant node. It should just drop the selection if it isn't there (or not save a selection from the raw list to start with). org.eclipse.jface.util.Assert$AssertionFailedException: Assertion failed: at org.eclipse.jface.util.Assert.isTrue(Assert.java:168) at org.eclipse.jface.util.Assert.isTrue(Assert.java:154) at org.eclipse.jface.preference.PreferenceNode.findSubNode (PreferenceNode.java:177) at org.eclipse.jface.preference.PreferenceContentProvider.findParent (PreferenceContentProvider.java:42) at org.eclipse.jface.preference.PreferenceContentProvider.getParent (PreferenceContentProvider.java:80) at org.eclipse.jface.viewers.AbstractTreeViewer.internalExpand (AbstractTreeViewer.java:893) at org.eclipse.jface.viewers.AbstractTreeViewer.internalExpand (AbstractTreeViewer.java:895) at org.eclipse.jface.viewers.AbstractTreeViewer.internalExpand (AbstractTreeViewer.java:895) at org.eclipse.jface.viewers.AbstractTreeViewer.setSelectionToWidget (AbstractTreeViewer.java:1370) at org.eclipse.jface.viewers.StructuredViewer.setSelectionToWidget (StructuredViewer.java:1066) at org.eclipse.jface.viewers.StructuredViewer.setSelection (StructuredViewer.java:1031) at org.eclipse.jface.preference.PreferenceDialog.selectSavedItem (PreferenceDialog.java:818) at org.eclipse.jface.preference.PreferenceDialog$3.run (PreferenceDialog.java:332) at org.eclipse.swt.custom.BusyIndicator.showWhile (BusyIndicator.java:84) at org.eclipse.jface.preference.PreferenceDialog.createContents (PreferenceDialog.java:327) at org.eclipse.jface.window.Window.create(Window.java:305) at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:883) at org.eclipse.ui.internal.OpenPreferencesAction.run (OpenPreferencesAction.java:70) at org.eclipse.jface.action.Action.runWithEvent(Action.java:842) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection (ActionContributionItem.java:509) at org.eclipse.jface.action.ActionContributionItem.access$2 (ActionContributionItem.java:461) at org.eclipse.jface.action.ActionContributionItem$5.handleEvent (ActionContributionItem.java:408) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:847) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2311) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1992) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1506) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1482) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench (Workbench.java:246) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:139) at org.eclipse.ui.internal.ide.IDEApplication.run (IDEApplication.java:47) at org.eclipse.core.internal.runtime.PlatformActivator$1.run (PlatformActivator.java:226) at org.eclipse.core.runtime.adaptor.EclipseStarter.run (EclipseStarter.java:85) 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.basicRun(Main.java:279) at org.eclipse.core.launcher.Main.run(Main.java:742) at org.eclipse.core.launcher.Main.main(Main.java:581)
bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceDialog.java
}
		});
		
		viewer.getControl().addHelpListener(new HelpListener() {
			public void helpRequested(HelpEvent event) {
				
				if (currentPage != null) {
					currentPage.performHelp();
				}
			}
		});
		return viewer;
	}
	/**
	 * Find the <code>IPreferenceNode</code> that has data the same id as the 
	 * supplied value.
	 * @param nodeId the id to search for.
	 * @return <code>IPreferenceNode</code> or <code>null</code> if not found.
	 */
	private IPreferenceNode findNodeMatching(String nodeId) {
		List nodes = preferenceManager.getElements(PreferenceManager.POST_ORDER);
		for (Iterator i = nodes.iterator(); i.hasNext();) {
			IPreferenceNode node = (IPreferenceNode) i.next();
			if (node.getId().equals(nodeId))
				return node;
		}
		return null;
	}
	/**
	 * Get the last known tree width.