You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rp...@apache.org on 2016/08/23 13:42:27 UTC
[09/23] logging-log4j2 git commit: [LOG4J2-1541] Fix file handle
resource leak in XmlConfiguration.XmlConfiguration(ConfigurationSource).
[LOG4J2-1541] Fix file handle resource leak in
XmlConfiguration.XmlConfiguration(ConfigurationSource).
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/b7da5e73
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/b7da5e73
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/b7da5e73
Branch: refs/heads/LOG4J2-1349-gcfree-threadcontext
Commit: b7da5e73cf30afd1ab130c5157fbb2bc59bbb90d
Parents: de319af
Author: Gary Gregory <gg...@apache.org>
Authored: Mon Aug 22 19:18:14 2016 -0700
Committer: Gary Gregory <gg...@apache.org>
Committed: Mon Aug 22 19:18:14 2016 -0700
----------------------------------------------------------------------
.../log4j/core/config/xml/XmlConfiguration.java | 40 ++++++++++----------
src/changes/changes.xml | 3 ++
2 files changed, 22 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/b7da5e73/log4j-core/src/main/java/org/apache/logging/log4j/core/config/xml/XmlConfiguration.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/xml/XmlConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/xml/XmlConfiguration.java
index ea3f753..799a49e 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/xml/XmlConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/xml/XmlConfiguration.java
@@ -147,31 +147,29 @@ public class XmlConfiguration extends AbstractConfiguration implements Reconfigu
LOGGER.error("Error parsing " + configSource.getLocation(), e);
}
if (strict && schemaResource != null && buffer != null) {
- InputStream is = null;
- try {
- is = Loader.getResourceAsStream(schemaResource, XmlConfiguration.class.getClassLoader());
- } catch (final Exception ex) {
- LOGGER.error("Unable to access schema {}", this.schemaResource, ex);
- }
- if (is != null) {
- final Source src = new StreamSource(is, LOG4J_XSD);
- final SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
- Schema schema = null;
- try {
- schema = factory.newSchema(src);
- } catch (final SAXException ex) {
- LOGGER.error("Error parsing Log4j schema", ex);
- }
- if (schema != null) {
- final Validator validator = schema.newValidator();
+ try (InputStream is = Loader.getResourceAsStream(schemaResource, XmlConfiguration.class.getClassLoader())) {
+ if (is != null) {
+ final Source src = new StreamSource(is, LOG4J_XSD);
+ final SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
+ Schema schema = null;
try {
- validator.validate(new StreamSource(new ByteArrayInputStream(buffer)));
- } catch (final IOException ioe) {
- LOGGER.error("Error reading configuration for validation", ioe);
+ schema = factory.newSchema(src);
} catch (final SAXException ex) {
- LOGGER.error("Error validating configuration", ex);
+ LOGGER.error("Error parsing Log4j schema", ex);
+ }
+ if (schema != null) {
+ final Validator validator = schema.newValidator();
+ try {
+ validator.validate(new StreamSource(new ByteArrayInputStream(buffer)));
+ } catch (final IOException ioe) {
+ LOGGER.error("Error reading configuration for validation", ioe);
+ } catch (final SAXException ex) {
+ LOGGER.error("Error validating configuration", ex);
+ }
}
}
+ } catch (final Exception ex) {
+ LOGGER.error("Unable to access schema {}", this.schemaResource, ex);
}
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/b7da5e73/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 93eeef0..f44d7ac 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -24,6 +24,9 @@
</properties>
<body>
<release version="2.7" date="2016-MM-DD" description="GA Release 2.7">
+ <action issue="LOG4J2-1541" dev="ggregory" type="fix" due-to="Gary Gregory">
+ Fix file handle resource leak in XmlConfiguration.XmlConfiguration(ConfigurationSource).
+ </action>
<action issue="LOG4J2-1538" dev="ggregory" type="fix" due-to="Igor Karpov">
Dynamic removal of filter may cause NPE.
</action>