Author: ggregory
Date: Fri Jan 4 15:57:10 2013
New Revision: 1428941
URL: http://svn.apache.org/viewvc?rev=1428941&view=rev
Log:
[IO-362] IOUtils.contentEquals* methods returns false if input1 == input2,
should return true.
Modified:
commons/proper/io/trunk/src/changes/changes.xml
commons/proper/io/trunk/src/main/java/org/apache/commons/io/IOUtils.java
commons/proper/io/trunk/src/test/java/org/apache/commons/io/IOUtilsTestCase.java
Modified: commons/proper/io/trunk/src/changes/changes.xml
URL:
http://svn.apache.org/viewvc/commons/proper/io/trunk/src/changes/changes.xml?rev=1428941&r1=1428940&r2=1428941&view=diff
==============================================================================
--- commons/proper/io/trunk/src/changes/changes.xml (original)
+++ commons/proper/io/trunk/src/changes/changes.xml Fri Jan 4 15:57:10 2013
@@ -46,7 +46,10 @@ The <action> type attribute can be add,u
<body>
<!-- The release date is the date RC is cut -->
- <release version="2.5" date="201?-??-??" description="New features and bug
fixes.">
+ <release version="2.5" date="2013-??-??" description="New features and bug
fixes.">
+ <action issue="IO-362" dev="ggregory" type="fix" due-to="mmadson,
ggregory">
+ IOUtils.contentEquals* methods returns false if input1 == input2,
should return true.
+ </action>
<action issue="IO-361" dev="ggregory" type="add">
Add API FileUtils.forceMkdirsParent().
</action>
Modified:
commons/proper/io/trunk/src/main/java/org/apache/commons/io/IOUtils.java
URL:
http://svn.apache.org/viewvc/commons/proper/io/trunk/src/main/java/org/apache/commons/io/IOUtils.java?rev=1428941&r1=1428940&r2=1428941&view=diff
==============================================================================
--- commons/proper/io/trunk/src/main/java/org/apache/commons/io/IOUtils.java
(original)
+++ commons/proper/io/trunk/src/main/java/org/apache/commons/io/IOUtils.java
Fri Jan 4 15:57:10 2013
@@ -2212,6 +2212,9 @@ public class IOUtils {
*/
public static boolean contentEquals(InputStream input1, InputStream input2)
throws IOException {
+ if (input1 == input2) {
+ return true;
+ }
if (!(input1 instanceof BufferedInputStream)) {
input1 = new BufferedInputStream(input1);
}
@@ -2249,7 +2252,10 @@ public class IOUtils {
*/
public static boolean contentEquals(Reader input1, Reader input2)
throws IOException {
-
+ if (input1 == input2) {
+ return true;
+ }
+
input1 = toBufferedReader(input1);
input2 = toBufferedReader(input2);
@@ -2282,6 +2288,9 @@ public class IOUtils {
*/
public static boolean contentEqualsIgnoreEOL(final Reader input1, final
Reader input2)
throws IOException {
+ if (input1 == input2) {
+ return true;
+ }
final BufferedReader br1 = toBufferedReader(input1);
final BufferedReader br2 = toBufferedReader(input2);
Modified:
commons/proper/io/trunk/src/test/java/org/apache/commons/io/IOUtilsTestCase.java
URL:
http://svn.apache.org/viewvc/commons/proper/io/trunk/src/test/java/org/apache/commons/io/IOUtilsTestCase.java?rev=1428941&r1=1428940&r2=1428941&view=diff
==============================================================================
---
commons/proper/io/trunk/src/test/java/org/apache/commons/io/IOUtilsTestCase.java
(original)
+++
commons/proper/io/trunk/src/test/java/org/apache/commons/io/IOUtilsTestCase.java
Fri Jan 4 15:57:10 2013
@@ -16,6 +16,7 @@
*/
package org.apache.commons.io;
+import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -205,7 +206,36 @@ public class IOUtilsTestCase extends Fil
}
}
+ public void testContentEquals_InputStream_InputStream() throws Exception {
+ {
+ final ByteArrayInputStream input1 = new
ByteArrayInputStream("".getBytes(Charsets.UTF_8));
+ assertTrue(IOUtils.contentEquals(input1, input1));
+ }
+ {
+ final ByteArrayInputStream input1 = new
ByteArrayInputStream("ABC".getBytes(Charsets.UTF_8));
+ assertTrue(IOUtils.contentEquals(input1, input1));
+ }
+ assertTrue(IOUtils
+ .contentEquals(new
ByteArrayInputStream("".getBytes(Charsets.UTF_8)), new
ByteArrayInputStream("".getBytes(Charsets.UTF_8))));
+ assertTrue(IOUtils.contentEquals(new BufferedInputStream(new
ByteArrayInputStream("".getBytes(Charsets.UTF_8))), new BufferedInputStream(
+ new ByteArrayInputStream("".getBytes(Charsets.UTF_8)))));
+ assertTrue(IOUtils.contentEquals(new
ByteArrayInputStream("ABC".getBytes(Charsets.UTF_8)),
+ new ByteArrayInputStream("ABC".getBytes(Charsets.UTF_8))));
+ assertFalse(IOUtils.contentEquals(new
ByteArrayInputStream("ABCD".getBytes(Charsets.UTF_8)),
+ new ByteArrayInputStream("ABC".getBytes(Charsets.UTF_8))));
+ assertFalse(IOUtils.contentEquals(new
ByteArrayInputStream("ABC".getBytes(Charsets.UTF_8)),
+ new ByteArrayInputStream("ABCD".getBytes(Charsets.UTF_8))));
+ }
+
public void testContentEquals_Reader_Reader() throws Exception {
+ {
+ final StringReader input1 = new StringReader("");
+ assertTrue(IOUtils.contentEquals(input1, input1));
+ }
+ {
+ final StringReader input1 = new StringReader("ABC");
+ assertTrue(IOUtils.contentEquals(input1, input1));
+ }
assertTrue(IOUtils.contentEquals(new StringReader(""), new
StringReader("")));
assertTrue(IOUtils.contentEquals(new BufferedReader(new
StringReader("")), new BufferedReader(new StringReader(""))));
assertTrue(IOUtils.contentEquals(new StringReader("ABC"), new
StringReader("ABC")));
@@ -214,6 +244,15 @@ public class IOUtilsTestCase extends Fil
}
public void testContentEqualsIgnoreEOL() throws Exception {
+ {
+ final Reader input1 = new CharArrayReader("".toCharArray());
+ assertTrue(IOUtils.contentEqualsIgnoreEOL(input1, input1));
+ }
+ {
+ final Reader input1 = new
CharArrayReader("321\r\n".toCharArray());
+ assertTrue(IOUtils.contentEqualsIgnoreEOL(input1, input1));
+ }
+
Reader r1;
Reader r2;