Merge pull request #44467 from nosan
* pr/44467: Close InputStream when loading Log4j2 Configuration from a Resource Closes gh-44467
This commit is contained in:
commit
825ca76c36
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2012-2024 the original author or authors.
|
* Copyright 2012-2025 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
|
@ -17,6 +17,7 @@
|
||||||
package org.springframework.boot.logging.log4j2;
|
package org.springframework.boot.logging.log4j2;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.net.URLConnection;
|
import java.net.URLConnection;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
@ -278,13 +279,11 @@ public class Log4J2LoggingSystem extends AbstractLoggingSystem {
|
||||||
|
|
||||||
private Configuration load(String location, LoggerContext context) throws IOException {
|
private Configuration load(String location, LoggerContext context) throws IOException {
|
||||||
Resource resource = new ApplicationResourceLoader().getResource(location);
|
Resource resource = new ApplicationResourceLoader().getResource(location);
|
||||||
ConfigurationSource source = getConfigurationSource(resource);
|
ConfigurationFactory factory = ConfigurationFactory.getInstance();
|
||||||
return ConfigurationFactory.getInstance().getConfiguration(context, source);
|
|
||||||
}
|
|
||||||
|
|
||||||
private ConfigurationSource getConfigurationSource(Resource resource) throws IOException {
|
|
||||||
if (resource.isFile()) {
|
if (resource.isFile()) {
|
||||||
return new ConfigurationSource(resource.getInputStream(), resource.getFile());
|
try (InputStream inputStream = resource.getInputStream()) {
|
||||||
|
return factory.getConfiguration(context, new ConfigurationSource(inputStream, resource.getFile()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
URL url = resource.getURL();
|
URL url = resource.getURL();
|
||||||
AuthorizationProvider authorizationProvider = ConfigurationFactory
|
AuthorizationProvider authorizationProvider = ConfigurationFactory
|
||||||
|
|
@ -293,7 +292,10 @@ public class Log4J2LoggingSystem extends AbstractLoggingSystem {
|
||||||
? SslConfigurationFactory.getSslConfiguration() : null;
|
? SslConfigurationFactory.getSslConfiguration() : null;
|
||||||
URLConnection connection = UrlConnectionFactory.createConnection(url, 0, sslConfiguration,
|
URLConnection connection = UrlConnectionFactory.createConnection(url, 0, sslConfiguration,
|
||||||
authorizationProvider);
|
authorizationProvider);
|
||||||
return new ConfigurationSource(connection.getInputStream(), url, connection.getLastModified());
|
try (InputStream inputStream = connection.getInputStream()) {
|
||||||
|
return factory.getConfiguration(context,
|
||||||
|
new ConfigurationSource(inputStream, url, connection.getLastModified()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private CompositeConfiguration createComposite(List<Configuration> configurations) {
|
private CompositeConfiguration createComposite(List<Configuration> configurations) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue