You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by gg...@apache.org on 2017/02/16 21:27:24 UTC

logging-log4j2 git commit: Refactor common code into a new method FileUtils.makeParentDirs(Gile).

Repository: logging-log4j2
Updated Branches:
  refs/heads/master 62e348b3e -> 52c378bb0


Refactor common code into a new method FileUtils.makeParentDirs(Gile).

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

Branch: refs/heads/master
Commit: 52c378bb053eab93568227659360ced1f2aa6103
Parents: 62e348b
Author: ggregory <gg...@US-L-GG05.rocketsoftware.com>
Authored: Thu Feb 16 13:27:22 2017 -0800
Committer: ggregory <gg...@US-L-GG05.rocketsoftware.com>
Committed: Thu Feb 16 13:27:22 2017 -0800

----------------------------------------------------------------------
 .../logging/log4j/core/appender/FileManager.java     |  9 +++------
 .../log4j/core/appender/MemoryMappedFileManager.java |  6 ++----
 .../log4j/core/appender/RandomAccessFileManager.java |  6 ++----
 .../core/appender/rolling/RollingFileManager.java    |  6 ++----
 .../rolling/RollingRandomAccessFileManager.java      |  6 ++----
 .../apache/logging/log4j/core/util/FileUtils.java    | 15 +++++++++++++++
 6 files changed, 26 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/52c378bb/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileManager.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileManager.java
index 410e745..c0b8adb 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileManager.java
@@ -33,6 +33,7 @@ import org.apache.logging.log4j.core.Layout;
 import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.config.Configuration;
 import org.apache.logging.log4j.core.util.Constants;
+import org.apache.logging.log4j.core.util.FileUtils;
 
 
 /**
@@ -281,13 +282,9 @@ public class FileManager extends OutputStreamManager {
         @Override
         public FileManager createManager(final String name, final FactoryData data) {
             final File file = new File(name);
-            final File parent = file.getParentFile();
-            if (null != parent && !parent.exists()) {
-                parent.mkdirs();
-            }
-
-            final boolean writeHeader = !data.append || !file.exists();
             try {
+                FileUtils.makeParentDirs(file);
+                final boolean writeHeader = !data.append || !file.exists();
                 final int actualSize = data.bufferedIo ? data.bufferSize : Constants.ENCODER_BYTE_BUFFER_SIZE;
                 final ByteBuffer byteBuffer = ByteBuffer.wrap(new byte[actualSize]);
                 final FileOutputStream fos = data.createOnDemand ? null : new FileOutputStream(file, data.append);

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/52c378bb/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/MemoryMappedFileManager.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/MemoryMappedFileManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/MemoryMappedFileManager.java
index 6fea619..99f3b06 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/MemoryMappedFileManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/MemoryMappedFileManager.java
@@ -35,6 +35,7 @@ import java.util.Objects;
 
 import org.apache.logging.log4j.core.Layout;
 import org.apache.logging.log4j.core.util.Closer;
+import org.apache.logging.log4j.core.util.FileUtils;
 import org.apache.logging.log4j.core.util.NullOutputStream;
 
 //Lines too long...
@@ -332,10 +333,6 @@ public class MemoryMappedFileManager extends OutputStreamManager {
         @Override
         public MemoryMappedFileManager createManager(final String name, final FactoryData data) {
             final File file = new File(name);
-            final File parent = file.getParentFile();
-            if (null != parent && !parent.exists()) {
-                parent.mkdirs();
-            }
             if (!data.append) {
                 file.delete();
             }
@@ -344,6 +341,7 @@ public class MemoryMappedFileManager extends OutputStreamManager {
             final OutputStream os = NullOutputStream.getInstance();
             RandomAccessFile raf = null;
             try {
+                FileUtils.makeParentDirs(file);
                 raf = new RandomAccessFile(name, "rw");
                 final long position = (data.append) ? raf.length() : 0;
                 raf.setLength(position + data.regionLength);

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/52c378bb/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileManager.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileManager.java
index 45740f1..5148ee5 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/RandomAccessFileManager.java
@@ -28,6 +28,7 @@ import java.util.Map;
 import org.apache.logging.log4j.core.Layout;
 import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.config.Configuration;
+import org.apache.logging.log4j.core.util.FileUtils;
 import org.apache.logging.log4j.core.util.NullOutputStream;
 
 /**
@@ -186,10 +187,6 @@ public class RandomAccessFileManager extends OutputStreamManager {
         @Override
         public RandomAccessFileManager createManager(final String name, final FactoryData data) {
             final File file = new File(name);
-            final File parent = file.getParentFile();
-            if (null != parent && !parent.exists()) {
-                parent.mkdirs();
-            }
             if (!data.append) {
                 file.delete();
             }
@@ -198,6 +195,7 @@ public class RandomAccessFileManager extends OutputStreamManager {
             final OutputStream os = NullOutputStream.getInstance();
             RandomAccessFile raf;
             try {
+                FileUtils.makeParentDirs(file);
                 raf = new RandomAccessFile(name, "rw");
                 if (data.append) {
                     raf.seek(raf.length());

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/52c378bb/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
index 5205cf8..6e83abb 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
@@ -42,6 +42,7 @@ import org.apache.logging.log4j.core.appender.rolling.action.AbstractAction;
 import org.apache.logging.log4j.core.appender.rolling.action.Action;
 import org.apache.logging.log4j.core.config.Configuration;
 import org.apache.logging.log4j.core.util.Constants;
+import org.apache.logging.log4j.core.util.FileUtils;
 import org.apache.logging.log4j.core.util.Log4jThreadFactory;
 
 /**
@@ -565,14 +566,11 @@ public class RollingFileManager extends FileManager {
             File file = null;
             if (data.fileName != null) {
                 file = new File(data.fileName);
-                final File parent = file.getParentFile();
-                if (null != parent && !parent.exists()) {
-                    parent.mkdirs();
-                }
                 // LOG4J2-1140: check writeHeader before creating the file
                 writeHeader = !data.append || !file.exists();
 
                 try {
+                    FileUtils.makeParentDirs(file);
                     final boolean created = data.createOnDemand ? false : file.createNewFile();
                     LOGGER.trace("New file '{}' created = {}", name, created);
                 } catch (final IOException ioe) {

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/52c378bb/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java
index 6481972..21c8918 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java
@@ -29,6 +29,7 @@ import org.apache.logging.log4j.core.appender.AppenderLoggingException;
 import org.apache.logging.log4j.core.appender.ConfigurationFactoryData;
 import org.apache.logging.log4j.core.appender.ManagerFactory;
 import org.apache.logging.log4j.core.config.Configuration;
+import org.apache.logging.log4j.core.util.FileUtils;
 import org.apache.logging.log4j.core.util.NullOutputStream;
 
 /**
@@ -165,10 +166,6 @@ public class RollingRandomAccessFileManager extends RollingFileManager {
         @Override
         public RollingRandomAccessFileManager createManager(final String name, final FactoryData data) {
             final File file = new File(name);
-            final File parent = file.getParentFile();
-            if (null != parent && !parent.exists()) {
-                parent.mkdirs();
-            }
 
             if (!data.append) {
                 file.delete();
@@ -179,6 +176,7 @@ public class RollingRandomAccessFileManager extends RollingFileManager {
             final boolean writeHeader = !data.append || !file.exists();
             RandomAccessFile raf = null;
             try {
+                FileUtils.makeParentDirs(file);
                 raf = new RandomAccessFile(name, "rw");
                 if (data.append) {
                     final long length = raf.length();

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/52c378bb/log4j-core/src/main/java/org/apache/logging/log4j/core/util/FileUtils.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/FileUtils.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/FileUtils.java
index 5a1c839..2baa278 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/FileUtils.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/FileUtils.java
@@ -24,6 +24,7 @@ import java.net.URI;
 import java.net.URL;
 import java.net.URLDecoder;
 import java.nio.charset.StandardCharsets;
+import java.util.Objects;
 
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.status.StatusLogger;
@@ -122,4 +123,18 @@ public final class FileUtils {
             throw new IOException("File " + dir + " exists and is not a directory. Unable to create directory.");
         }
     }
+    
+    /**
+     * Creates the parent directories for the given File.
+     * 
+     * @param file
+     * @throws IOException
+     */
+    public static void makeParentDirs(final File file) throws IOException {
+        File parent = Objects.requireNonNull(file, "file").getCanonicalFile().getParentFile();
+        if (parent != null) {
+            mkdir(parent, true);
+        }
+    }
+
 }