} finally {
wcAccess.close();
}
if (!isIgnoreExternals() && info != null) {
Collection processedDirs = new SVNHashSet();
Map externals = info.getOldExternals();
// update both old and new externals.
for (Iterator paths = externals.keySet().iterator(); paths.hasNext();) {
String path = (String) paths.next();
String value = (String) externals.get(path);
if (value == null) {
continue;
}
SVNExternal[] externalDefs = SVNExternal.parseExternals("", value);
for (int i = 0; i < externalDefs.length; i++) {
String externalPath = externalDefs[i].getPath();
File externalDir = new Resource(info.getAnchor().getRoot(), SVNPathUtil.append(path, externalPath));
if (processedDirs.add(externalDir)) {
//if externalDir is an empty unversioned dir SVNFileType won't help us to avoid
//getting in an infinite loop
try {
wcAccess.open(externalDir, false, 0);
} catch (SVNException svne) {
if (svne.getErrorMessage().getErrorCode() == SVNErrorCode.WC_NOT_DIRECTORY) {
continue;
}
throw svne;
} finally {
wcAccess.close();
}
try {
doSetWCFormat(externalDir, format);
} catch (SVNException e) {
if (e.getErrorMessage().getErrorCode() == SVNErrorCode.WC_NOT_DIRECTORY) {
continue;
}
throw e;
}
}
}
}
externals = info.getNewExternals();
for (Iterator paths = externals.keySet().iterator(); paths.hasNext();) {
String path = (String) paths.next();
String value = (String) externals.get(path);
SVNExternal[] externalDefs = SVNExternal.parseExternals("", value);
for (int i = 0; i < externalDefs.length; i++) {
String externalPath = externalDefs[i].getPath();
File externalDir = new Resource(info.getAnchor().getRoot(), SVNPathUtil.append(path, externalPath));
if (processedDirs.add(externalDir)) {
//if externalDir is an empty unversioned dir SVNFileType won't help us to avoid
//getting in an infinite loop
try {
wcAccess.open(externalDir, false, 0);
} catch (SVNException svne) {