in src/main/java/org/apache/commons/configuration2/resolver/CatalogResolver.java [420:462]
public void parseCatalog(final String baseDir, final String fileName) throws IOException {
base = locate(fs, baseDir, fileName);
catalogCwd = base;
default_override = catalogManager.getPreferPublic();
catalogManager.debug.message(DEBUG_NORMAL, "Parse catalog: " + fileName);
boolean parsed = false;
for (int count = 0; !parsed && count < readerArr.size(); count++) {
final CatalogReader reader = (CatalogReader) readerArr.get(count);
InputStream inputStream;
try {
inputStream = fs.getInputStream(base);
} catch (final Exception ex) {
catalogManager.debug.message(DEBUG_NORMAL, "Unable to access " + base + ex.getMessage());
break;
}
try {
reader.readCatalog(this, inputStream);
parsed = true;
} catch (final CatalogException ce) {
catalogManager.debug.message(DEBUG_NORMAL, "Parse failed for " + fileName + ce.getMessage());
if (ce.getExceptionType() == CatalogException.PARSE_FAILED) {
break;
}
// try again!
continue;
} finally {
try {
inputStream.close();
} catch (final IOException ioe) {
// Ignore the exception.
inputStream = null;
}
}
}
if (parsed) {
parsePendingCatalogs();
}
}