You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by jk...@apache.org on 2010/05/23 00:00:52 UTC
svn commit: r947339 - in /ant/core/trunk: WHATSNEW
src/main/org/apache/tools/ant/util/ResourceUtils.java
Author: jkf
Date: Sat May 22 22:00:52 2010
New Revision: 947339
URL: http://svn.apache.org/viewvc?rev=947339&view=rev
Log:
pr 49326. Sun JVM tries to mmap the entire file during a copy. For large files this is not feasible. We now explicitly request to copy at most 16 MiB per request.
Modified:
ant/core/trunk/WHATSNEW
ant/core/trunk/src/main/org/apache/tools/ant/util/ResourceUtils.java
Modified: ant/core/trunk/WHATSNEW
URL: http://svn.apache.org/viewvc/ant/core/trunk/WHATSNEW?rev=947339&r1=947338&r2=947339&view=diff
==============================================================================
--- ant/core/trunk/WHATSNEW (original)
+++ ant/core/trunk/WHATSNEW Sat May 22 22:00:52 2010
@@ -17,6 +17,11 @@ Changes that could break older environme
Fixed bugs:
-----------
+ * The Sun JVM tries to mmap the entire file during a copy.
+ For large files this is not feasible.
+ We now explicitly request to copy at most 16 MiB per request.
+ Bugzilla Report 49326.
+
* DemuxInputStream.read() should return unsigned values
Bugzilla Report 49279.
Modified: ant/core/trunk/src/main/org/apache/tools/ant/util/ResourceUtils.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/util/ResourceUtils.java?rev=947339&r1=947338&r2=947339&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/util/ResourceUtils.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/util/ResourceUtils.java Sat May 22 22:00:52 2010
@@ -72,6 +72,8 @@ public class ResourceUtils {
*/
public static final String ISO_8859_1 = "ISO-8859-1";
+ private static final long MAX_IO_CHUNCK_SIZE = 16*1024*1024; // 16 MB
+
/**
* Tells which source files should be reprocessed based on the
* last modification date of target files.
@@ -526,8 +528,9 @@ public class ResourceUtils {
long position = 0;
long count = srcChannel.size();
while (position < count) {
+ long chunck = Math.min(MAX_IO_CHUNCK_SIZE, count - position);
position +=
- srcChannel.transferTo(position, count - position,
+ srcChannel.transferTo(position, chunck,
destChannel);
}
} finally {