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
* This is the first version of the encode/decode protocol that uses the config area
     * preference store for persistence.  The only encoding done is to convert the recent
     * workspace list into a comma-separated list.
     */
    private static final int PERS_ENCODING_VERSION_CONFIG_PREFS = 2;
    private boolean showDialog = true;
    private String initialDefault;
    private String selection;
    private String[] recentWorkspaces;
    
    private static interface XML {
        public static final String PROTOCOL = "protocol"; 
        public static final String VERSION = "version"; 
        public static final String ALWAYS_ASK = "alwaysAsk"; 
        public static final String SHOW_DIALOG = "showDialog"; 
        public static final String WORKSPACE = "workspace"; 
        public static final String RECENT_WORKSPACES = "recentWorkspaces"; 
        public static final String MAX_LENGTH = "maxLength"; 
        public static final String PATH = "path"; 
    }
    /**
     * Creates a new instance, loading persistent data if its found.
     */
    public ChooseWorkspaceData(String initialDefault) {
        readPersistedData();
        setInitialDefault(initialDefault);
    }
    /**
     * Creates a new instance, loading persistent data if its found.
     */