Bug 98467 [WorkbenchLauncher] [Preferences] Workspace path with comma
If a workspace is opened which has a comma in the path (eg "C:\docs\clients\surname, firstname"), when eclipse is closed then re-opened, the workspace does not open correctly. It instead creates a new folder of "C:\docs\clients\surname" and creates a new workspace there. Noticed that recent workspaces are kept in eclipse\configuration\.settings\org.eclipse.ui.ide.prefs and that the list is comma separated. Reccommend either making the delimiter a character not usable in filenames/paths (eg. pipe character '|') or enclosing paths in quote marks.
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/ChooseWorkspaceData.java
/**
	 * The the preference for recent workspaces must be converted from the
	 * storage string into an array.
	 */
    private static String[] decodeStoredWorkspacePaths(int max, String prefValue) {
		String[] paths = new String[max];
		if (prefValue == null || prefValue.length() <= 0) {
			return paths;
		}
		StringTokenizer tokenizer = new StringTokenizer(prefValue, ","); 
		for (int i = 0; i < paths.length && tokenizer.hasMoreTokens(); ++i) {
			paths[i] = tokenizer.nextToken();
		}
		return paths;
	}
    /**
	 * Return true if the protocol used to encode the argument memento is
	 * compatible with the receiver's implementation and false otherwise.
	 */
    private static boolean compatibleFileProtocol(IMemento memento) {
        IMemento protocolMemento = memento.getChild(XML.PROTOCOL);
        if (protocolMemento == null) {
			return false;
		}
        Integer version = protocolMemento.getInteger(XML.VERSION);
        return version != null && version.intValue() == PERS_ENCODING_VERSION;
    }
    /**
     * The workspace data is stored in the well known file pointed to by the result
     * of this method.