You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ma...@apache.org on 2018/03/10 05:40:09 UTC

[02/14] logging-chainsaw git commit: Use try-with-resources

Use try-with-resources


Project: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/commit/a088cd69
Tree: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/tree/a088cd69
Diff: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/diff/a088cd69

Branch: refs/heads/master
Commit: a088cd696e32b9f56db541d9211c821d69924b2a
Parents: 3d91bdd
Author: Matt Sicker <bo...@gmail.com>
Authored: Fri Mar 9 23:01:47 2018 -0600
Committer: Matt Sicker <bo...@gmail.com>
Committed: Fri Mar 9 23:01:47 2018 -0600

----------------------------------------------------------------------
 .../chainsaw/LogFilePatternLayoutBuilder.java   | 109 +++++++++----------
 .../java/org/apache/log4j/db/DBReceiverJob.java |  21 ++--
 .../org/apache/log4j/db/FullCycleDBTest.java    |  65 ++++++-----
 .../java/org/apache/log4j/util/Compare.java     |  26 ++---
 4 files changed, 102 insertions(+), 119 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/a088cd69/src/main/java/org/apache/log4j/chainsaw/LogFilePatternLayoutBuilder.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/LogFilePatternLayoutBuilder.java b/src/main/java/org/apache/log4j/chainsaw/LogFilePatternLayoutBuilder.java
index 8b5d039..344b2fd 100644
--- a/src/main/java/org/apache/log4j/chainsaw/LogFilePatternLayoutBuilder.java
+++ b/src/main/java/org/apache/log4j/chainsaw/LogFilePatternLayoutBuilder.java
@@ -224,69 +224,66 @@ public class LogFilePatternLayoutBuilder
   }
 
   private static Map getXMLFileAppenderConfiguration(File file) throws IOException, ParserConfigurationException, SAXException {
-    InputStream stream = file.toURI().toURL().openStream();
-    Map result = new HashMap();
-    try {
-      InputSource src = new InputSource(stream);
-      src.setSystemId(file.toURI().toURL().toString());
-      DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
-      DocumentBuilder docBuilder = dbf.newDocumentBuilder();
+      Map result = new HashMap();
+      try (InputStream stream = file.toURI().toURL().openStream()) {
+          InputSource src = new InputSource(stream);
+          src.setSystemId(file.toURI().toURL().toString());
+          DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+          DocumentBuilder docBuilder = dbf.newDocumentBuilder();
 
-      docBuilder.setErrorHandler(new SAXErrorHandler());
-      docBuilder.setEntityResolver(new Log4jEntityResolver());
-      Document doc = docBuilder.parse(src);
-      NodeList appenders = doc.getElementsByTagName("appender");
-      for (int i = 0; i < appenders.getLength(); i++) {
-        Node appender = appenders.item(i);
-        NamedNodeMap appenderAttributes = appender.getAttributes();
+          docBuilder.setErrorHandler(new SAXErrorHandler());
+          docBuilder.setEntityResolver(new Log4jEntityResolver());
+          Document doc = docBuilder.parse(src);
+          NodeList appenders = doc.getElementsByTagName("appender");
+          for (int i = 0; i < appenders.getLength(); i++) {
+              Node appender = appenders.item(i);
+              NamedNodeMap appenderAttributes = appender.getAttributes();
 //        Class appenderClass = Class.forName(map.getNamedItem("class").getNodeValue());
-        Node appenderClass = appenderAttributes.getNamedItem("class");
-        if (appenderAttributes.getNamedItem("name") != null && appenderClass != null && appenderClass.getNodeValue() != null) {
-          //all log4j fileappenders end in fileappender..if a custom fileappender also ends in fileappender and uses the same dom nodes to be loaded,
-          //try to parse the nodes as well
-          if (appenderClass.getNodeValue().toLowerCase(Locale.ENGLISH).endsWith("fileappender")) {
-            String appenderName = appenderAttributes.getNamedItem("name").getNodeValue();
-            //subclass of FileAppender - add it
-            Map entry = new HashMap();
-            NodeList appenderChildren = appender.getChildNodes();
-            for (int j = 0; j < appenderChildren.getLength(); j++) {
-              Node appenderChild = appenderChildren.item(j);
-              if (appenderChild.getNodeName().equals("param") && appenderChild.hasAttributes()) {
-                Node fileNameNode = appenderChild.getAttributes().getNamedItem("name");
-                if (fileNameNode != null && fileNameNode.getNodeValue().equalsIgnoreCase("file")) {
-                  Node fileValueNode = appenderChild.getAttributes().getNamedItem("value");
-                  if (fileValueNode != null) {
-                    entry.put("file", fileValueNode.getNodeValue());
-                  }
-                }
-              }
-              if (appenderChild.getNodeName().equalsIgnoreCase("layout") && appenderChild.hasAttributes()) {
-                NamedNodeMap layoutAttributes = appenderChild.getAttributes();
-                Node layoutNode = layoutAttributes.getNamedItem("class");
-                if (layoutNode != null && layoutNode.getNodeValue() != null && layoutNode.getNodeValue().equalsIgnoreCase("org.apache.log4j.PatternLayout")) {
-                  NodeList layoutChildren = appenderChild.getChildNodes();
-                  for (int k = 0; k < layoutChildren.getLength(); k++) {
-                    Node layoutChild = layoutChildren.item(k);
-                    if (layoutChild.getNodeName().equals("param") && layoutChild.hasAttributes()) {
-                      Node layoutName = layoutChild.getAttributes().getNamedItem("name");
-                      if (layoutName != null && layoutName.getNodeValue() != null && layoutName.getNodeValue().equalsIgnoreCase("conversionpattern")) {
-                        Node conversionValue = layoutChild.getAttributes().getNamedItem("value");
-                        if (conversionValue != null) {
-                          entry.put("conversion", conversionValue.getNodeValue());
-                        }
+              Node appenderClass = appenderAttributes.getNamedItem("class");
+              if (appenderAttributes.getNamedItem("name") != null && appenderClass != null && appenderClass.getNodeValue() != null) {
+                  //all log4j fileappenders end in fileappender..if a custom fileappender also ends in fileappender and uses the same dom nodes to be loaded,
+                  //try to parse the nodes as well
+                  if (appenderClass.getNodeValue().toLowerCase(Locale.ENGLISH).endsWith("fileappender")) {
+                      String appenderName = appenderAttributes.getNamedItem("name").getNodeValue();
+                      //subclass of FileAppender - add it
+                      Map entry = new HashMap();
+                      NodeList appenderChildren = appender.getChildNodes();
+                      for (int j = 0; j < appenderChildren.getLength(); j++) {
+                          Node appenderChild = appenderChildren.item(j);
+                          if (appenderChild.getNodeName().equals("param") && appenderChild.hasAttributes()) {
+                              Node fileNameNode = appenderChild.getAttributes().getNamedItem("name");
+                              if (fileNameNode != null && fileNameNode.getNodeValue().equalsIgnoreCase("file")) {
+                                  Node fileValueNode = appenderChild.getAttributes().getNamedItem("value");
+                                  if (fileValueNode != null) {
+                                      entry.put("file", fileValueNode.getNodeValue());
+                                  }
+                              }
+                          }
+                          if (appenderChild.getNodeName().equalsIgnoreCase("layout") && appenderChild.hasAttributes()) {
+                              NamedNodeMap layoutAttributes = appenderChild.getAttributes();
+                              Node layoutNode = layoutAttributes.getNamedItem("class");
+                              if (layoutNode != null && layoutNode.getNodeValue() != null && layoutNode.getNodeValue().equalsIgnoreCase("org.apache.log4j.PatternLayout")) {
+                                  NodeList layoutChildren = appenderChild.getChildNodes();
+                                  for (int k = 0; k < layoutChildren.getLength(); k++) {
+                                      Node layoutChild = layoutChildren.item(k);
+                                      if (layoutChild.getNodeName().equals("param") && layoutChild.hasAttributes()) {
+                                          Node layoutName = layoutChild.getAttributes().getNamedItem("name");
+                                          if (layoutName != null && layoutName.getNodeValue() != null && layoutName.getNodeValue().equalsIgnoreCase("conversionpattern")) {
+                                              Node conversionValue = layoutChild.getAttributes().getNamedItem("value");
+                                              if (conversionValue != null) {
+                                                  entry.put("conversion", conversionValue.getNodeValue());
+                                              }
+                                          }
+                                      }
+                                  }
+                              }
+                          }
                       }
-                    }
+                      result.put(appenderName, entry);
                   }
-                }
               }
-            }
-            result.put(appenderName, entry);
           }
-        }
       }
-    } finally {
-      stream.close();
-    }
     MessageCenter.getInstance().getLogger().info("getXMLFileAppenderConfiguration for file: " + file + ", result: " + result);
     return result;
   }

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/a088cd69/src/main/java/org/apache/log4j/db/DBReceiverJob.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/db/DBReceiverJob.java b/src/main/java/org/apache/log4j/db/DBReceiverJob.java
index 1e29663..19d3fe0 100644
--- a/src/main/java/org/apache/log4j/db/DBReceiverJob.java
+++ b/src/main/java/org/apache/log4j/db/DBReceiverJob.java
@@ -174,19 +174,16 @@ class DBReceiverJob extends ComponentBase implements Job {
   void getProperties(Connection connection, long id, LoggingEvent event)
       throws SQLException {
 
-    PreparedStatement statement = connection.prepareStatement(sqlProperties);
-    try {
-      statement.setLong(1, id);
-      ResultSet rs = statement.executeQuery();
-
-      while (rs.next()) {
-        String key = rs.getString(1);
-        String value = rs.getString(2);
-        event.setProperty(key, value);
+      try (PreparedStatement statement = connection.prepareStatement(sqlProperties)) {
+          statement.setLong(1, id);
+          ResultSet rs = statement.executeQuery();
+
+          while (rs.next()) {
+              String key = rs.getString(1);
+              String value = rs.getString(2);
+              event.setProperty(key, value);
+          }
       }
-    } finally {
-      statement.close();
-    }
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/a088cd69/src/test/java/org/apache/log4j/db/FullCycleDBTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/log4j/db/FullCycleDBTest.java b/src/test/java/org/apache/log4j/db/FullCycleDBTest.java
index b4e9223..6f4334e 100644
--- a/src/test/java/org/apache/log4j/db/FullCycleDBTest.java
+++ b/src/test/java/org/apache/log4j/db/FullCycleDBTest.java
@@ -85,40 +85,37 @@ public class FullCycleDBTest
     //      will throw exception if already defined.
     //
         Class.forName("org.hsqldb.jdbcDriver");
-        Connection connection = DriverManager.getConnection("jdbc:hsqldb:mem:testdb");
-        try {
-            Statement s = connection.createStatement();
-            s.executeUpdate("CREATE TABLE logging_event " +
-              "( sequence_number   BIGINT NOT NULL, " +
-               " timestamp         BIGINT NOT NULL, " +
-               " rendered_message  LONGVARCHAR NOT NULL, " +
-               " logger_name       VARCHAR NOT NULL, " +
-               " level_string      VARCHAR NOT NULL, " +
-               " ndc               LONGVARCHAR, " +
-               " thread_name       VARCHAR, " +
-               " reference_flag    SMALLINT, " +
-               " caller_filename   VARCHAR, " +
-               " caller_class      VARCHAR, " +
-               " caller_method     VARCHAR, " +
-               " caller_line       CHAR(4), " +
-               " event_id          INT NOT NULL IDENTITY)");
-            s.executeUpdate("CREATE TABLE logging_event_property " +
-              "( event_id	      INT NOT NULL, " +
-               " mapped_key        VARCHAR(254) NOT NULL, " +
-               " mapped_value      LONGVARCHAR, " +
-               " PRIMARY KEY(event_id, mapped_key), " +
-               " FOREIGN KEY (event_id) REFERENCES logging_event(event_id))");
-            s.executeUpdate("CREATE TABLE logging_event_exception" +
-                    "  ( event_id         INT NOT NULL, " +
-                    "    i                SMALLINT NOT NULL," +
-                    "    trace_line       VARCHAR NOT NULL," +
-                    "    PRIMARY KEY(event_id, i)," +
-                    "    FOREIGN KEY (event_id) REFERENCES logging_event(event_id))");
-        } catch(SQLException ex) {
-            String s = ex.toString();
-        } finally {
-            connection.close();
-        }
+      try (Connection connection = DriverManager.getConnection("jdbc:hsqldb:mem:testdb")) {
+          Statement s = connection.createStatement();
+          s.executeUpdate("CREATE TABLE logging_event " +
+                  "( sequence_number   BIGINT NOT NULL, " +
+                  " timestamp         BIGINT NOT NULL, " +
+                  " rendered_message  LONGVARCHAR NOT NULL, " +
+                  " logger_name       VARCHAR NOT NULL, " +
+                  " level_string      VARCHAR NOT NULL, " +
+                  " ndc               LONGVARCHAR, " +
+                  " thread_name       VARCHAR, " +
+                  " reference_flag    SMALLINT, " +
+                  " caller_filename   VARCHAR, " +
+                  " caller_class      VARCHAR, " +
+                  " caller_method     VARCHAR, " +
+                  " caller_line       CHAR(4), " +
+                  " event_id          INT NOT NULL IDENTITY)");
+          s.executeUpdate("CREATE TABLE logging_event_property " +
+                  "( event_id	      INT NOT NULL, " +
+                  " mapped_key        VARCHAR(254) NOT NULL, " +
+                  " mapped_value      LONGVARCHAR, " +
+                  " PRIMARY KEY(event_id, mapped_key), " +
+                  " FOREIGN KEY (event_id) REFERENCES logging_event(event_id))");
+          s.executeUpdate("CREATE TABLE logging_event_exception" +
+                  "  ( event_id         INT NOT NULL, " +
+                  "    i                SMALLINT NOT NULL," +
+                  "    trace_line       VARCHAR NOT NULL," +
+                  "    PRIMARY KEY(event_id, i)," +
+                  "    FOREIGN KEY (event_id) REFERENCES logging_event(event_id))");
+      } catch (SQLException ex) {
+          String s = ex.toString();
+      }
 
   }
 

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/a088cd69/src/test/java/org/apache/log4j/util/Compare.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/log4j/util/Compare.java b/src/test/java/org/apache/log4j/util/Compare.java
index 9fe7ae6..b68ea31 100644
--- a/src/test/java/org/apache/log4j/util/Compare.java
+++ b/src/test/java/org/apache/log4j/util/Compare.java
@@ -56,15 +56,11 @@ public class Compare {
                                 final String file1,
                                 final String file2)
     throws IOException {
-    BufferedReader in1 = new BufferedReader(new FileReader(file1));
-    BufferedReader in2 = new BufferedReader(new InputStreamReader(
-            open(testClass, file2)));
-    try {
-      return compare(testClass, file1, file2, in1, in2);
-    } finally {
-      in1.close();
-      in2.close();
-    }
+      try (BufferedReader in1 = new BufferedReader(new FileReader(file1));
+           BufferedReader in2 = new BufferedReader(new InputStreamReader(
+              open(testClass, file2)))) {
+          return compare(testClass, file1, file2, in1, in2);
+      }
   }
     
  public static boolean compare(
@@ -153,14 +149,10 @@ public class Compare {
           throw new FileNotFoundException("Could not locate resource " + resourceName);
       }
 
-      BufferedReader in1 = new BufferedReader(new InputStreamReader(new GZIPInputStream(new FileInputStream(actual))));
-      BufferedReader in2 = new BufferedReader(new InputStreamReader(new GZIPInputStream(resourceStream)));
-      try {
-        return gzCompare(testClass, actual, expected, in1, in2);
-      } finally {
-        in1.close();
-        in2.close();
-      }
+        try (BufferedReader in1 = new BufferedReader(new InputStreamReader(new GZIPInputStream(new FileInputStream(actual))));
+             BufferedReader in2 = new BufferedReader(new InputStreamReader(new GZIPInputStream(resourceStream)))) {
+            return gzCompare(testClass, actual, expected, in1, in2);
+        }
     }
 
     public static boolean gzCompare(Class testClass, String file1, String file2, BufferedReader in1, BufferedReader in2) throws IOException {