in src/main/java/org/apache/commons/logging/LogFactory.java [1296:1337]
private static Properties getProperties(final URL url) {
final PrivilegedAction action =
new PrivilegedAction() {
@Override
public Object run() {
InputStream stream = null;
try {
// We must ensure that useCaches is set to false, as the
// default behavior of java is to cache file handles, and
// this "locks" files, preventing hot-redeploy on windows.
final URLConnection connection = url.openConnection();
connection.setUseCaches(false);
stream = connection.getInputStream();
if (stream != null) {
final Properties props = new Properties();
props.load(stream);
stream.close();
stream = null;
return props;
}
} catch (final IOException e) {
if (isDiagnosticsEnabled()) {
logDiagnostic("Unable to read URL " + url);
}
} finally {
if (stream != null) {
try {
stream.close();
} catch (final IOException e) {
// ignore exception; this should not happen
if (isDiagnosticsEnabled()) {
logDiagnostic("Unable to close stream for URL " + url);
}
}
}
}
return null;
}
};
return (Properties) AccessController.doPrivileged(action);
}