You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "jonny (JIRA)" <ji...@apache.org> on 2013/03/07 00:26:14 UTC

[jira] [Created] (IO-371) FileUtils.copyDirectory and copyFile fail on AIX hosts over CIFS mounted directory

jonny created IO-371:
------------------------

             Summary: FileUtils.copyDirectory and copyFile fail on AIX hosts over CIFS mounted directory
                 Key: IO-371
                 URL: https://issues.apache.org/jira/browse/IO-371
             Project: Commons IO
          Issue Type: Bug
          Components: Utilities
    Affects Versions: 2.4
         Environment: Java 1.6, AIX, FileUtils, Groovy 2.1.1, cifs
            Reporter: jonny
            Priority: Minor


In a groovy script that imports org.apache.commons.io.FileUtils, I'm trying to copy a directory from one location to another. Both locations are accessed through a mounted CIFS directory. When I try, I get this exception:
{code}
java.io.IOException: A system call received a parameter that is not valid.
	at sun.nio.ch.FileChannelImpl.map0(Native Method)
	at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:768)
	at sun.nio.ch.FileChannelImpl.transferFromFileChannel(FileChannelImpl.java:552)
	at sun.nio.ch.FileChannelImpl.transferFrom(FileChannelImpl.java:615)
	at org.apache.commons.io.FileUtils.doCopyFile(FileUtils.java:1147)
	at org.apache.commons.io.FileUtils.doCopyDirectory(FileUtils.java:1428)
	at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:1389)
	at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:1261)
	at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:1230)
	at org.apache.commons.io.FileUtils$copyDirectory.call(Unknown Source)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
	at plutarch.archiveOldFilesOnSabrina(plutarch.groovy:111)
	at plutarch$archiveOldFilesOnSabrina.callCurrent(Unknown Source)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:49)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:149)
	at plutarch.run(plutarch.groovy:47)
	at groovy.lang.GroovyShell.runScriptOrMainOrTestOrRunnable(GroovyShell.java:257)
	at groovy.lang.GroovyShell.run(GroovyShell.java:220)
	at groovy.lang.GroovyShell.run(GroovyShell.java:150)
	at groovy.ui.GroovyMain.processOnce(GroovyMain.java:588)
	at groovy.ui.GroovyMain.run(GroovyMain.java:375)
	at groovy.ui.GroovyMain.process(GroovyMain.java:361)
	at groovy.ui.GroovyMain.processArgs(GroovyMain.java:120)
	at groovy.ui.GroovyMain.main(GroovyMain.java:100)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
	at java.lang.reflect.Method.invoke(Method.java:611)
	at org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:106)
	at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:128)
{code}

This executes normally on Windows using the same version of Java (1.6). Another user has a similar experience that makes me think this is an issue specific to AIX: http://stackoverflow.com/questions/15092855/howto-copy-a-folder-and-all-its-content-in-java-recursively-including-symbolic

Given the stack trace, this is probably something that Java 1.7 addressed, but it may be worthwhile for the copyDirectory and copyFile methods to provide a switch to handle symbolic links.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira