You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2019/11/25 17:07:11 UTC

[commons-io] branch master updated: [IO-644] NPE in org.apache.commons.io.FileUtils.contentEqualsIgnoreEOL(File, File) when only one input is null.

This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-io.git


The following commit(s) were added to refs/heads/master by this push:
     new 7fed4a3  [IO-644] NPE in org.apache.commons.io.FileUtils.contentEqualsIgnoreEOL(File, File) when only one input is null.
7fed4a3 is described below

commit 7fed4a30e3cab9171de459bd24fb3b8d838cd126
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Mon Nov 25 12:07:08 2019 -0500

    [IO-644] NPE in
    org.apache.commons.io.FileUtils.contentEqualsIgnoreEOL(File, File) when
    only one input is null.
---
 src/changes/changes.xml                                    | 4 ++--
 src/main/java/org/apache/commons/io/FileUtils.java         | 6 ++++++
 src/test/java/org/apache/commons/io/FileUtilsTestCase.java | 3 +++
 3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 03b7894..c709b31 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -174,8 +174,8 @@ The <action> type attribute can be add,update,fix,remove.
       <action issue="IO-643" dev="ggregory" type="add" due-to="Gary Gregory">
         NPE in org.apache.commons.io.IOUtils.contentEqualsIgnoreEOL(Reader, Reader) when only one input is null.
       </action>
-      <action issue="IO-643" dev="ggregory" type="add" due-to="Gary Gregory">
-        NPE in org.apache.commons.io.FileUtils.contentEquals(File, File) when only one input is null.
+      <action issue="IO-644" dev="ggregory" type="add" due-to="Gary Gregory">
+        NPE in org.apache.commons.io.FileUtils.contentEqualsIgnoreEOL(File, File) when only one input is null.
       </action>
     </release>
 
diff --git a/src/main/java/org/apache/commons/io/FileUtils.java b/src/main/java/org/apache/commons/io/FileUtils.java
index 25c6c7b..4a2aa27 100644
--- a/src/main/java/org/apache/commons/io/FileUtils.java
+++ b/src/main/java/org/apache/commons/io/FileUtils.java
@@ -445,6 +445,12 @@ public class FileUtils {
      */
     public static boolean contentEqualsIgnoreEOL(final File file1, final File file2, final String charsetName)
             throws IOException {
+        if (file1 == null && file2 == null) {
+            return true;
+        }
+        if (file1 == null ^ file2 == null) {
+            return false;
+        }
         final boolean file1Exists = file1.exists();
         if (file1Exists != file2.exists()) {
             return false;
diff --git a/src/test/java/org/apache/commons/io/FileUtilsTestCase.java b/src/test/java/org/apache/commons/io/FileUtilsTestCase.java
index 924a3df..95f5343 100644
--- a/src/test/java/org/apache/commons/io/FileUtilsTestCase.java
+++ b/src/test/java/org/apache/commons/io/FileUtilsTestCase.java
@@ -630,6 +630,9 @@ public class FileUtilsTestCase {
         // Non-existent files
         final File file1 = new File(temporaryFolder, getName());
         final File file2 = new File(temporaryFolder, getName() + "2");
+        assertTrue(FileUtils.contentEqualsIgnoreEOL(null, null, null));
+        assertFalse(FileUtils.contentEqualsIgnoreEOL(null, file1, null));
+        assertFalse(FileUtils.contentEqualsIgnoreEOL(file1, null, null));
         // both don't  exist
         assertTrue(FileUtils.contentEqualsIgnoreEOL(file1, file1, null));
         assertTrue(FileUtils.contentEqualsIgnoreEOL(file1, file2, null));