if (location != null) { repositories.put(location, SVNRepositoryLocation.fromString(location));
if (location != null && !exactMatchExists(location)) { ISVNRepositoryLocation repos = SVNRepositoryLocation.fromString(location); try { repos.validateConnection(new NullProgressMonitor()); } catch(SVNException swallow){} addToRepositoriesCache(repos);
    public ISVNRepositoryLocation[] getKnownRepositories() {    	IEclipsePreferences prefs = (IEclipsePreferences) SVNRepositoryLocation.getParentPreferences();		try {			String[] keys = prefs.childrenNames();			for (int i = 0; i < keys.length; i++) {				String key = keys[i];				try {					IEclipsePreferences node = (IEclipsePreferences) prefs.node(key);					String location = node.get(SVNRepositoryLocation.PREF_LOCATION, null);					if (location != null) {						repositories.put(location, SVNRepositoryLocation.fromString(location));					} else {						node.removeNode();						prefs.flush();					}				} catch (SVNException e) {					// Log and continue					SVNProviderPlugin.log(e);				}			}		} catch (BackingStoreException e) {			// Log and continue (although all repos will be missing)			SVNProviderPlugin.log(SVNException.wrapException(e)); 		}		return (ISVNRepositoryLocation[])repositories.values().toArray(new ISVNRepositoryLocation[repositories.size()]);    }