Browse Source

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.

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@947339 13f79535-47bb-0310-9956-ffa450edef68
master
Jacobus Martinus Kruithof 15 years ago
parent
commit
4fd2002344
2 changed files with 9 additions and 1 deletions
  1. +5
    -0
      WHATSNEW
  2. +4
    -1
      src/main/org/apache/tools/ant/util/ResourceUtils.java

+ 5
- 0
WHATSNEW View File

@@ -17,6 +17,11 @@ Changes that could break older environments:
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.



+ 4
- 1
src/main/org/apache/tools/ant/util/ResourceUtils.java View File

@@ -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 {


Loading…
Cancel
Save