Bug 61509 [Preferences] Preferences.OK should be in a SafeRunnable.
1. I downloaded the latest integration build (200405060200) 2. Updated to org.eclipse.jdt.cheetah04 (0.0.4). 3. Upon restart, I imported a .java file with generic class and generic methods, to test generic usage in Eclipse. 4. I went into the preferences menu, and selected Java/Compiler. On the Compliance and Classfiles page I chose Compiler compliance level: 1.5. I pressed the "Apply" button and the "OK" button is immediatly highlighted. I press the "OK" button and the button lights up as if the command is recieved but does nothing (preference pane remains open). The only way to exit is to press the "Cancel" button or to close the window. Expected Results: Expected source to recompile file and remove source errors. Actual Results: Forced to close preference window, applying source change to 1.5 has no effect.
bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceDialog.java
import org.eclipse.jface.dialogs.IMessageProvider;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.jface.resource.JFaceColors;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.jface.util.Assert;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.jface.util.SafeRunnable;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TreeViewer;
/**
 * A preference dialog is a hierarchical presentation of preference pages. Each
 * page is represented by a node in the tree shown on the left hand side of the
 * dialog; when a node is selected, the corresponding page is shown on the right
 * hand side.
 */
public class PreferenceDialog extends Dialog
		implements
			IPreferencePageContainer {
	/**
	 * Layout for the page container.
	 *  
	 */
	private class PageLayout extends Layout {