Bug 62095 Compiler pref page should be more resilient
Build 20040513 When patching with latest JDTCore, with adjusted constant value for EmptyStatement optional warning, I saw the following entry in console. 1. it shouldn't be shown by default I suspect, only when in trace mode. 2. when option isn't readable it shouldn't be promoted to ERROR as observed when then looking at pref page. It should rather be turned back to IGNORE. !ENTRY org.eclipse.jdt.ui 4 10001 May 13, 2004 15:37:08.30 !MESSAGE preference option missing: org.eclipse.jdt.core.compiler.problem.superfluousSemicolon (org.eclipse.jdt.internal.ui.preferences.CompilerConfigurationBlo ck) !ENTRY org.eclipse.jdt.ui 4 10001 May 13, 2004 15:37:15.721 !MESSAGE preference option missing: org.eclipse.jdt.core.compiler.problem.superfluousSemicolon (org.eclipse.jdt.internal.ui.preferences.CompilerConfigurationBlo ck)
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/OptionsConfigurationBlock.java
/* (non-javadoc)
	 * Update fields and validate.
	 * @param changedKey Key that changed, or null, if all changed.
	 */	
	protected abstract void validateSettings(String changedKey, String newValue);
	
	
	protected String[] getTokens(String text, String separator) {
		StringTokenizer tok= new StringTokenizer(text, separator); 
		int nTokens= tok.countTokens();
		String[] res= new String[nTokens];
		for (int i= 0; i < res.length; i++) {
			res[i]= tok.nextToken().trim();
		}
		return res;
	}	
	
	public boolean performOk(boolean enabled) {
		String[] allKeys= fAllKeys;
		Map actualOptions= getOptions(false);
		
		
		boolean hasChanges= false;
		for (int i= 0; i < allKeys.length; i++) {
			String key= allKeys[i];
			String oldVal= (String) actualOptions.get(key);
			String val= null;
			if (enabled) {
				val= (String) fWorkingValues.get(key);