Create commons-io-2.4-RC2.
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/io/tags/2.4-RC2@1349498 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index a786b42..e24e1e1 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -25,7 +25,7 @@
o IO-320: Add XmlStreamReader support for UTF-32. Thanks to ggregory.
o IO-331: BOMInputStream wrongly detects UTF-32LE_BOM files as UTF-16LE_BOM files in method getBOM(). Thanks to ggregory.
o IO-327: Add byteCountToDisplaySize(BigInteger). Thanks to ggregory.
-o IO-326: Add new FileUtils.sizeOf[Directory] APIs to return BigInteger. Thanks to ggregory.
+o IO-326: Add new FileUtils.sizeOf[Directory] APIs to return BigInteger. Thanks to ggregory, kinow.
o IO-325: Add IOUtils.toByteArray methods to work with URL and URI. Thanks to raviprak.
o IO-324: Add missing Charset sister APIs to method that take a String charset name. Thanks to raviprak.
diff --git a/pom.xml b/pom.xml
index 5b0297a..99bdc7f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,7 +24,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
- <version>2.4-SNAPSHOT</version>
+ <version>2.4</version>
<name>Commons IO</name>
<inceptionYear>2002</inceptionYear>
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index d45b3a6..ee45498 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -80,7 +80,7 @@
<action issue="IO-327" dev="ggregory" type="add" due-to="ggregory">
Add byteCountToDisplaySize(BigInteger).
</action>
- <action issue="IO-326" dev="ggregory" type="add" due-to="ggregory">
+ <action issue="IO-326" dev="ggregory" type="add" due-to="ggregory, kinow">
Add new FileUtils.sizeOf[Directory] APIs to return BigInteger.
</action>
<action issue="IO-325" dev="ggregory" type="add" due-to="raviprak">
diff --git a/src/main/java/org/apache/commons/io/FileUtils.java b/src/main/java/org/apache/commons/io/FileUtils.java
index e1a281f..0372884 100644
--- a/src/main/java/org/apache/commons/io/FileUtils.java
+++ b/src/main/java/org/apache/commons/io/FileUtils.java
@@ -2511,7 +2511,7 @@
for (final File file : files) {
try {
if (!isSymlink(file)) {
- size.add(BigInteger.valueOf(sizeOf(file)));
+ size = size.add(BigInteger.valueOf(sizeOf(file)));
}
} catch (IOException ioe) {
// Ignore exceptions caught when asking if a File is a symlink.
diff --git a/src/test/java/org/apache/commons/io/FileUtilsTestCase.java b/src/test/java/org/apache/commons/io/FileUtilsTestCase.java
index 2acbf28..574f35d 100644
--- a/src/test/java/org/apache/commons/io/FileUtilsTestCase.java
+++ b/src/test/java/org/apache/commons/io/FileUtilsTestCase.java
@@ -64,6 +64,11 @@
private static final BigInteger TEST_DIRECTORY_SIZE_BI = BigInteger.ZERO;
/**
+ * Size (greater of zero) of test file.
+ */
+ private static final BigInteger TEST_DIRECTORY_SIZE_GT_ZERO_BI = BigInteger.valueOf(100);
+
+ /**
* List files recursively
*/
private static final ListDirectoryWalker LIST_WALKER = new ListDirectoryWalker();
@@ -796,7 +801,8 @@
try {
FileUtils.sizeOfDirectoryAsBigInteger(file);
fail("Exception expected.");
- } catch (IllegalArgumentException ex) {}
+ } catch (IllegalArgumentException ex) {
+ }
// Creates file
file.createNewFile();
@@ -806,7 +812,8 @@
try {
FileUtils.sizeOfDirectoryAsBigInteger(file);
fail("Exception expected.");
- } catch (IllegalArgumentException ex) {}
+ } catch (IllegalArgumentException ex) {
+ }
// Existing directory
file.delete();
@@ -814,10 +821,21 @@
this.createCircularSymLink(file);
- assertEquals(
- "Unexpected directory size",
- TEST_DIRECTORY_SIZE_BI,
- FileUtils.sizeOfDirectoryAsBigInteger(file));
+ assertEquals("Unexpected directory size", TEST_DIRECTORY_SIZE_BI, FileUtils.sizeOfDirectoryAsBigInteger(file));
+
+ // Existing directory which size is greater than zero
+ file.delete();
+ file.mkdir();
+
+ File nonEmptyFile = new File(file, "nonEmptyFile" + System.nanoTime());
+ this.createFile(nonEmptyFile, TEST_DIRECTORY_SIZE_GT_ZERO_BI.longValue());
+ nonEmptyFile.deleteOnExit();
+
+ assertEquals("Unexpected directory size", TEST_DIRECTORY_SIZE_GT_ZERO_BI,
+ FileUtils.sizeOfDirectoryAsBigInteger(file));
+
+ nonEmptyFile.delete();
+ file.delete();
}
/**