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
IPreferenceStore store = ((PreferencePage) page).getPreferenceStore();
				if (store != null
					&& store.needsSaving()
					&& store instanceof IPersistentPreferenceStore) {
					try {
						((IPersistentPreferenceStore) store).save();
					} catch (IOException e) {
						MessageDialog.openError(getShell(), JFaceResources.getString("PreferenceDialog.saveErrorTitle"), 
						JFaceResources.format("PreferenceDialog.saveErrorMessage", new Object[] { page.getTitle(), e.getMessage()})); 
					}
				}
			}
		}
	}
	/**
	 * Notifies that the window's close button was pressed, 
	 * the close menu was selected, or the ESCAPE key pressed.
	 * <p>
	 * The default implementation of this framework method
	 * sets the window's return code to <code>CANCEL</code>
	 * and closes the window using <code>close</code>.
	 * Subclasses may extend or reimplement.
	 * </p>
	 */
	protected void handleShellCloseEvent() {
		
		cancelPressed();
	}
	/**
	 * Notifies of the pressing of the Help button.