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
protected IPreferenceNode getSingleSelection(ISelection selection) {
		if (!selection.isEmpty())
			return (IPreferenceNode) ((IStructuredSelection) selection).getFirstElement();
		return null;
	}
	/** 
	 * @return the <code>TreeViewer</code> for this dialog.
	 * @since 3.0
	 */
	protected TreeViewer getTreeViewer() {
		return treeViewer;
	}
	/**
	 * Save the values specified in the pages.
	 * <p>
	 * The default implementation of this framework method saves all
	 * pages of type <code>PreferencePage</code> (if their store needs saving
	 * and is a <code>PreferenceStore</code>).
	 * </p>
	 * <p>
	 * Subclasses may override.
	 * </p>
	 */
	protected void handleSave() {
		Iterator nodes = preferenceManager.getElements(PreferenceManager.PRE_ORDER).iterator();
		while (nodes.hasNext()) {
			IPreferenceNode node = (IPreferenceNode) nodes.next();
			IPreferencePage page = node.getPage();
			if (page instanceof PreferencePage) {