commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Igor Smereka (JIRA)" <j...@apache.org>
Subject [jira] Created: (IO-266) FileUtils.copyFile() throws IOException when copying large files to a shared directory (on Windows)
Date Fri, 18 Mar 2011 18:59:31 GMT
FileUtils.copyFile() throws IOException when copying large files to a shared directory (on
Windows)
---------------------------------------------------------------------------------------------------

                 Key: IO-266
                 URL: https://issues.apache.org/jira/browse/IO-266
             Project: Commons IO
          Issue Type: Bug
            Reporter: Igor Smereka



java.io.IOException: Insufficient system resources exist to complete the requested service
	at sun.nio.ch.FileDispatcher.pwrite0(Native Method)
	at sun.nio.ch.FileDispatcher.pwrite(Unknown Source)
	at sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source)
	at sun.nio.ch.IOUtil.write(Unknown Source)
	at sun.nio.ch.FileChannelImpl.write(Unknown Source)
	at sun.nio.ch.FileChannelImpl.transferFromFileChannel(Unknown Source)
	at sun.nio.ch.FileChannelImpl.transferFrom(Unknown Source)
	at org.apache.commons.io.FileUtils.doCopyFile(FileUtils.java:813)
	at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:783)
	at org.test.igor.TestFileUtils.main(TestFileUtils.java:55)

NOTE: the issue is cased by the function doCopyFile(File srcFile, File destFile, boolean preserveFileDate)
using hardcoded data chunks of FIFTY_MB in the transferFrom() call.
Reducing this chunk from 50M to 31M solves the issue for my situation (32M still fails).

Here is a test program to reproduce the issue:

package org.test.igor;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;

public class TestFileUtils {

    public static void main(String[] args){
        
        
        File src = new File("D:\\2011.1-dev\\test\\test");
        File dest = new File("\\\\ismerek1\\Shared");
        
        String filename = "jdk-6u19-windows-x64.exe";
        
        File file = new File(src, filename);
        File toFile = new File(dest, filename);
        
        try {
            FileUtils.copyFile(file, toFile, true);
            System.out.println("Successful copy");
        }
        catch (IOException e1) {
            e1.printStackTrace();
        }
    }
}








--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message