[jira] [Commented] (IO-721) FileUtils.copyDirectory() tries to set last modified on source dir after update to 2.8.0

2021-05-02 Thread Dirk Heinrichs (Jira)


[ 
https://issues.apache.org/jira/browse/IO-721?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17338200#comment-17338200
 ] 

Dirk Heinrichs commented on IO-721:
---

Yes, think so.

> FileUtils.copyDirectory() tries to set last modified on source dir after 
> update to 2.8.0
> 
>
> Key: IO-721
> URL: https://issues.apache.org/jira/browse/IO-721
> Project: Commons IO
>  Issue Type: Bug
>  Components: Utilities
>Affects Versions: 2.8.0
> Environment: Ubuntu 20.04 LTS
> Groovy 3.0.x
> Java 11 (from Ubuntu packages)
>Reporter: Dirk Heinrichs
>Priority: Major
>
> A simple
> {code:java}
> FileUtils.copyDirectory(source, dest, glob) {code}
> works fine when using Commons-IO 2.7, but fails with
> {code:java}
> Caught: java.io.IOException: Failed setLastModified on /path/to/source
> java.io.IOException: Failed setLastModified on /path/to/source
>     at 
> org.apache.commons.io.FileUtils.setLastModified(FileUtils.java:2561)
>     at 
> org.apache.commons.io.FileUtils.doCopyDirectory(FileUtils.java:1361)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:733)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:659)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:606)
> {code}
> after update to 2.8.0. From reading the documentation, it's also my 
> understanding that "setLastModified()" should be executed on "dest" to set 
> the same modification time as "source", but *not* on "source".



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IO-721) FileUtils.copyDirectory() tries to set last modified on source dir after update to 2.8.0

2021-05-01 Thread Gary D. Gregory (Jira)


[ 
https://issues.apache.org/jira/browse/IO-721?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17337885#comment-17337885
 ] 

Gary D. Gregory commented on IO-721:


Ok to resolve this issue then? [~Heinrichs]

> FileUtils.copyDirectory() tries to set last modified on source dir after 
> update to 2.8.0
> 
>
> Key: IO-721
> URL: https://issues.apache.org/jira/browse/IO-721
> Project: Commons IO
>  Issue Type: Bug
>  Components: Utilities
>Affects Versions: 2.8.0
> Environment: Ubuntu 20.04 LTS
> Groovy 3.0.x
> Java 11 (from Ubuntu packages)
>Reporter: Dirk Heinrichs
>Priority: Major
>
> A simple
> {code:java}
> FileUtils.copyDirectory(source, dest, glob) {code}
> works fine when using Commons-IO 2.7, but fails with
> {code:java}
> Caught: java.io.IOException: Failed setLastModified on /path/to/source
> java.io.IOException: Failed setLastModified on /path/to/source
>     at 
> org.apache.commons.io.FileUtils.setLastModified(FileUtils.java:2561)
>     at 
> org.apache.commons.io.FileUtils.doCopyDirectory(FileUtils.java:1361)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:733)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:659)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:606)
> {code}
> after update to 2.8.0. From reading the documentation, it's also my 
> understanding that "setLastModified()" should be executed on "dest" to set 
> the same modification time as "source", but *not* on "source".



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IO-721) FileUtils.copyDirectory() tries to set last modified on source dir after update to 2.8.0

2021-04-27 Thread Dirk Heinrichs (Jira)


[ 
https://issues.apache.org/jira/browse/IO-721?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17334467#comment-17334467
 ] 

Dirk Heinrichs commented on IO-721:
---

Looks better :)

> FileUtils.copyDirectory() tries to set last modified on source dir after 
> update to 2.8.0
> 
>
> Key: IO-721
> URL: https://issues.apache.org/jira/browse/IO-721
> Project: Commons IO
>  Issue Type: Bug
>  Components: Utilities
>Affects Versions: 2.8.0
> Environment: Ubuntu 20.04 LTS
> Groovy 3.0.x
> Java 11 (from Ubuntu packages)
>Reporter: Dirk Heinrichs
>Priority: Major
>
> A simple
> {code:java}
> FileUtils.copyDirectory(source, dest, glob) {code}
> works fine when using Commons-IO 2.7, but fails with
> {code:java}
> Caught: java.io.IOException: Failed setLastModified on /path/to/source
> java.io.IOException: Failed setLastModified on /path/to/source
>     at 
> org.apache.commons.io.FileUtils.setLastModified(FileUtils.java:2561)
>     at 
> org.apache.commons.io.FileUtils.doCopyDirectory(FileUtils.java:1361)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:733)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:659)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:606)
> {code}
> after update to 2.8.0. From reading the documentation, it's also my 
> understanding that "setLastModified()" should be executed on "dest" to set 
> the same modification time as "source", but *not* on "source".



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IO-721) FileUtils.copyDirectory() tries to set last modified on source dir after update to 2.8.0

2021-04-27 Thread Gary D. Gregory (Jira)


[ 
https://issues.apache.org/jira/browse/IO-721?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17333290#comment-17333290
 ] 

Gary D. Gregory commented on IO-721:


[~Heinrichs] and all,

Please look at git master.

Gary

> FileUtils.copyDirectory() tries to set last modified on source dir after 
> update to 2.8.0
> 
>
> Key: IO-721
> URL: https://issues.apache.org/jira/browse/IO-721
> Project: Commons IO
>  Issue Type: Bug
>  Components: Utilities
>Affects Versions: 2.8.0
> Environment: Ubuntu 20.04 LTS
> Groovy 3.0.x
> Java 11 (from Ubuntu packages)
>Reporter: Dirk Heinrichs
>Priority: Major
>
> A simple
> {code:java}
> FileUtils.copyDirectory(source, dest, glob) {code}
> works fine when using Commons-IO 2.7, but fails with
> {code:java}
> Caught: java.io.IOException: Failed setLastModified on /path/to/source
> java.io.IOException: Failed setLastModified on /path/to/source
>     at 
> org.apache.commons.io.FileUtils.setLastModified(FileUtils.java:2561)
>     at 
> org.apache.commons.io.FileUtils.doCopyDirectory(FileUtils.java:1361)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:733)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:659)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:606)
> {code}
> after update to 2.8.0. From reading the documentation, it's also my 
> understanding that "setLastModified()" should be executed on "dest" to set 
> the same modification time as "source", but *not* on "source".



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IO-721) FileUtils.copyDirectory() tries to set last modified on source dir after update to 2.8.0

2021-04-25 Thread Dirk Heinrichs (Jira)


[ 
https://issues.apache.org/jira/browse/IO-721?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17331765#comment-17331765
 ] 

Dirk Heinrichs commented on IO-721:
---

Yes, that should work.

BTW: I mentioned that new method already, see above. Please note that the 
exception message is wrong, that line should actually be
{code:java}
 throw new IOException("Failed setLastModified on " + targetFile);{code}
Because it's NOT "sourceFile" whose last modified time it tries to change.

> FileUtils.copyDirectory() tries to set last modified on source dir after 
> update to 2.8.0
> 
>
> Key: IO-721
> URL: https://issues.apache.org/jira/browse/IO-721
> Project: Commons IO
>  Issue Type: Bug
>  Components: Utilities
>Affects Versions: 2.8.0
> Environment: Ubuntu 20.04 LTS
> Groovy 3.0.x
> Java 11 (from Ubuntu packages)
>Reporter: Dirk Heinrichs
>Priority: Major
>
> A simple
> {code:java}
> FileUtils.copyDirectory(source, dest, glob) {code}
> works fine when using Commons-IO 2.7, but fails with
> {code:java}
> Caught: java.io.IOException: Failed setLastModified on /path/to/source
> java.io.IOException: Failed setLastModified on /path/to/source
>     at 
> org.apache.commons.io.FileUtils.setLastModified(FileUtils.java:2561)
>     at 
> org.apache.commons.io.FileUtils.doCopyDirectory(FileUtils.java:1361)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:733)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:659)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:606)
> {code}
> after update to 2.8.0. From reading the documentation, it's also my 
> understanding that "setLastModified()" should be executed on "dest" to set 
> the same modification time as "source", but *not* on "source".



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IO-721) FileUtils.copyDirectory() tries to set last modified on source dir after update to 2.8.0

2021-04-24 Thread Darius Cooper (Jira)


[ 
https://issues.apache.org/jira/browse/IO-721?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17331273#comment-17331273
 ] 

Darius Cooper commented on IO-721:
--

Looking at the diff between 2.7 and 2.8.0
This code: destDir.setLastModified(srcDir.lastModified());

was replaced by 
{code:java}
private static void setLastModified(final File sourceFile, final File 
targetFile) throws IOException {
  if (!targetFile.setLastModified(sourceFile.lastModified())) {
throw new IOException("Failed setLastModified on " + sourceFile);
  }
}{code}
thus throwing an IOException in a situation where it previously did not.

There are comments in the code that show this was intentional.

It seems that the work-around  (which would work in both 2.7 and 2.8.0) is to 
call the overriddedn copyDirectory() method, and explicitly pass
pass
{noformat}
preserveFileDate=false{noformat}

> FileUtils.copyDirectory() tries to set last modified on source dir after 
> update to 2.8.0
> 
>
> Key: IO-721
> URL: https://issues.apache.org/jira/browse/IO-721
> Project: Commons IO
>  Issue Type: Bug
>  Components: Utilities
>Affects Versions: 2.8.0
> Environment: Ubuntu 20.04 LTS
> Groovy 3.0.x
> Java 11 (from Ubuntu packages)
>Reporter: Dirk Heinrichs
>Priority: Major
>
> A simple
> {code:java}
> FileUtils.copyDirectory(source, dest, glob) {code}
> works fine when using Commons-IO 2.7, but fails with
> {code:java}
> Caught: java.io.IOException: Failed setLastModified on /path/to/source
> java.io.IOException: Failed setLastModified on /path/to/source
>     at 
> org.apache.commons.io.FileUtils.setLastModified(FileUtils.java:2561)
>     at 
> org.apache.commons.io.FileUtils.doCopyDirectory(FileUtils.java:1361)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:733)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:659)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:606)
> {code}
> after update to 2.8.0. From reading the documentation, it's also my 
> understanding that "setLastModified()" should be executed on "dest" to set 
> the same modification time as "source", but *not* on "source".



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IO-721) FileUtils.copyDirectory() tries to set last modified on source dir after update to 2.8.0

2021-04-22 Thread Dirk Heinrichs (Jira)


[ 
https://issues.apache.org/jira/browse/IO-721?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17329991#comment-17329991
 ] 

Dirk Heinrichs commented on IO-721:
---

So do I. However, that doesn't change the fact that the script above throws an 
exception when using 2.8.0 and option "-t /tmp", but doesn't with "-t /tmp/foo".

> FileUtils.copyDirectory() tries to set last modified on source dir after 
> update to 2.8.0
> 
>
> Key: IO-721
> URL: https://issues.apache.org/jira/browse/IO-721
> Project: Commons IO
>  Issue Type: Bug
>  Components: Utilities
>Affects Versions: 2.8.0
> Environment: Ubuntu 20.04 LTS
> Groovy 3.0.x
> Java 11 (from Ubuntu packages)
>Reporter: Dirk Heinrichs
>Priority: Major
>
> A simple
> {code:java}
> FileUtils.copyDirectory(source, dest, glob) {code}
> works fine when using Commons-IO 2.7, but fails with
> {code:java}
> Caught: java.io.IOException: Failed setLastModified on /path/to/source
> java.io.IOException: Failed setLastModified on /path/to/source
>     at 
> org.apache.commons.io.FileUtils.setLastModified(FileUtils.java:2561)
>     at 
> org.apache.commons.io.FileUtils.doCopyDirectory(FileUtils.java:1361)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:733)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:659)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:606)
> {code}
> after update to 2.8.0. From reading the documentation, it's also my 
> understanding that "setLastModified()" should be executed on "dest" to set 
> the same modification time as "source", but *not* on "source".



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IO-721) FileUtils.copyDirectory() tries to set last modified on source dir after update to 2.8.0

2021-04-22 Thread Darius Cooper (Jira)


[ 
https://issues.apache.org/jira/browse/IO-721?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17329934#comment-17329934
 ] 

Darius Cooper commented on IO-721:
--

Why does one directory work, but not another? Is it permissions? I can run   
touch   on my  /tmp directory.

> FileUtils.copyDirectory() tries to set last modified on source dir after 
> update to 2.8.0
> 
>
> Key: IO-721
> URL: https://issues.apache.org/jira/browse/IO-721
> Project: Commons IO
>  Issue Type: Bug
>  Components: Utilities
>Affects Versions: 2.8.0
> Environment: Ubuntu 20.04 LTS
> Groovy 3.0.x
> Java 11 (from Ubuntu packages)
>Reporter: Dirk Heinrichs
>Priority: Major
>
> A simple
> {code:java}
> FileUtils.copyDirectory(source, dest, glob) {code}
> works fine when using Commons-IO 2.7, but fails with
> {code:java}
> Caught: java.io.IOException: Failed setLastModified on /path/to/source
> java.io.IOException: Failed setLastModified on /path/to/source
>     at 
> org.apache.commons.io.FileUtils.setLastModified(FileUtils.java:2561)
>     at 
> org.apache.commons.io.FileUtils.doCopyDirectory(FileUtils.java:1361)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:733)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:659)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:606)
> {code}
> after update to 2.8.0. From reading the documentation, it's also my 
> understanding that "setLastModified()" should be executed on "dest" to set 
> the same modification time as "source", but *not* on "source".



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IO-721) FileUtils.copyDirectory() tries to set last modified on source dir after update to 2.8.0

2021-03-15 Thread Dirk Heinrichs (Jira)


[ 
https://issues.apache.org/jira/browse/IO-721?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17301545#comment-17301545
 ] 

Dirk Heinrichs commented on IO-721:
---

Indeed. Works if I change it to /tmp/foo.

OK, in this case the only remaining issue is the wrong file being printed by 
the exception message...

> FileUtils.copyDirectory() tries to set last modified on source dir after 
> update to 2.8.0
> 
>
> Key: IO-721
> URL: https://issues.apache.org/jira/browse/IO-721
> Project: Commons IO
>  Issue Type: Bug
>  Components: Utilities
>Affects Versions: 2.8.0
> Environment: Ubuntu 20.04 LTS
> Groovy 3.0.x
> Java 11 (from Ubuntu packages)
>Reporter: Dirk Heinrichs
>Priority: Major
>
> A simple
> {code:java}
> FileUtils.copyDirectory(source, dest, glob) {code}
> works fine when using Commons-IO 2.7, but fails with
> {code:java}
> Caught: java.io.IOException: Failed setLastModified on /path/to/source
> java.io.IOException: Failed setLastModified on /path/to/source
>     at 
> org.apache.commons.io.FileUtils.setLastModified(FileUtils.java:2561)
>     at 
> org.apache.commons.io.FileUtils.doCopyDirectory(FileUtils.java:1361)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:733)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:659)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:606)
> {code}
> after update to 2.8.0. From reading the documentation, it's also my 
> understanding that "setLastModified()" should be executed on "dest" to set 
> the same modification time as "source", but *not* on "source".



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IO-721) FileUtils.copyDirectory() tries to set last modified on source dir after update to 2.8.0

2021-03-15 Thread Dirk Heinrichs (Jira)


[ 
https://issues.apache.org/jira/browse/IO-721?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17301540#comment-17301540
 ] 

Dirk Heinrichs commented on IO-721:
---

BTW: The destination directory in my test was /tmp. Maybe that's also part of 
the problem...

> FileUtils.copyDirectory() tries to set last modified on source dir after 
> update to 2.8.0
> 
>
> Key: IO-721
> URL: https://issues.apache.org/jira/browse/IO-721
> Project: Commons IO
>  Issue Type: Bug
>  Components: Utilities
>Affects Versions: 2.8.0
> Environment: Ubuntu 20.04 LTS
> Groovy 3.0.x
> Java 11 (from Ubuntu packages)
>Reporter: Dirk Heinrichs
>Priority: Major
>
> A simple
> {code:java}
> FileUtils.copyDirectory(source, dest, glob) {code}
> works fine when using Commons-IO 2.7, but fails with
> {code:java}
> Caught: java.io.IOException: Failed setLastModified on /path/to/source
> java.io.IOException: Failed setLastModified on /path/to/source
>     at 
> org.apache.commons.io.FileUtils.setLastModified(FileUtils.java:2561)
>     at 
> org.apache.commons.io.FileUtils.doCopyDirectory(FileUtils.java:1361)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:733)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:659)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:606)
> {code}
> after update to 2.8.0. From reading the documentation, it's also my 
> understanding that "setLastModified()" should be executed on "dest" to set 
> the same modification time as "source", but *not* on "source".



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IO-721) FileUtils.copyDirectory() tries to set last modified on source dir after update to 2.8.0

2021-03-15 Thread Dirk Heinrichs (Jira)


[ 
https://issues.apache.org/jira/browse/IO-721?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17301535#comment-17301535
 ] 

Dirk Heinrichs commented on IO-721:
---

Looking at the code I see that doCopyDirectory() calls a new method 
FileUtils.setLastModified() in 2.8.0 which throws an exception (with a wrong 
message, BTW.)
{code:java}
    private static void setLastModified(final File sourceFile, final File 
targetFile) throws IOException {
    if (!targetFile.setLastModified(sourceFile.lastModified())) {
    throw new IOException("Failed setLastModified on " + sourceFile);
    }
    }
{code}
while in 2.7 it calls "destFile.setLastModified()" directly w/o throwing an 
exception. If that isn't an obvious issue...

> FileUtils.copyDirectory() tries to set last modified on source dir after 
> update to 2.8.0
> 
>
> Key: IO-721
> URL: https://issues.apache.org/jira/browse/IO-721
> Project: Commons IO
>  Issue Type: Bug
>  Components: Utilities
>Affects Versions: 2.8.0
> Environment: Ubuntu 20.04 LTS
> Groovy 3.0.x
> Java 11 (from Ubuntu packages)
>Reporter: Dirk Heinrichs
>Priority: Major
>
> A simple
> {code:java}
> FileUtils.copyDirectory(source, dest, glob) {code}
> works fine when using Commons-IO 2.7, but fails with
> {code:java}
> Caught: java.io.IOException: Failed setLastModified on /path/to/source
> java.io.IOException: Failed setLastModified on /path/to/source
>     at 
> org.apache.commons.io.FileUtils.setLastModified(FileUtils.java:2561)
>     at 
> org.apache.commons.io.FileUtils.doCopyDirectory(FileUtils.java:1361)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:733)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:659)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:606)
> {code}
> after update to 2.8.0. From reading the documentation, it's also my 
> understanding that "setLastModified()" should be executed on "dest" to set 
> the same modification time as "source", but *not* on "source".



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IO-721) FileUtils.copyDirectory() tries to set last modified on source dir after update to 2.8.0

2021-03-14 Thread Dirk Heinrichs (Jira)


[ 
https://issues.apache.org/jira/browse/IO-721?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17301421#comment-17301421
 ] 

Dirk Heinrichs commented on IO-721:
---

My use case is a simple Groovy script for copying files from one directory to 
another:
{code:java}
// Copy a directory to a destination directory

// Get dependencies
@GrabConfig(systemClassLoader=true)
@Grab('commons-io:commons-io:2.8.0')
@Grab('info.picocli:picocli-groovy:4.6.1')

// Import external modules
import groovy.cli.picocli.CliBuilder
import org.apache.commons.io.FileUtils
import org.apache.commons.io.filefilter.WildcardFileFilter

// Parse command line options
def cli = new CliBuilder(name: 'copyDir.groovy')
cli.h(type: Boolean, longOpt: 'help', usageHelp: true, required: false, 'Show 
usage information')
cli.f(type: File, longOpt: 'from', required: true, args: 1, 'The directory that 
should be copied (required)')
cli.p(type: String, longOpt: 'pattern', required: false, args: 1, defaultValue: 
'*', 'Glob pattern to specify which files to copy (optional, default: "*")')
cli.t(type: File, longOpt: 'to', required: true, args: 1, 'The destination 
directory (required)')
def opts = cli.parse(args)
opts || System.exit(1)
if(opts.h) {
  cli.usage()
  System.exit(0)
}

// Copy directory to its destination
println('Copying directory ' + opts.f + ' to ' + opts.t + ' using glob pattern 
"' + opts.p + '"...')
def glob = new WildcardFileFilter(opts.p)
FileUtils.copyDirectory(opts.f,opts.t, glob as FileFilter)
println('Directory copied.')
{code}
Executing this results in above error. Changing the version of commons-io to 
2.7 will make it work.

> FileUtils.copyDirectory() tries to set last modified on source dir after 
> update to 2.8.0
> 
>
> Key: IO-721
> URL: https://issues.apache.org/jira/browse/IO-721
> Project: Commons IO
>  Issue Type: Bug
>  Components: Utilities
>Affects Versions: 2.8.0
> Environment: Ubuntu 20.04 LTS
> Groovy 3.0.x
> Java 11 (from Ubuntu packages)
>Reporter: Dirk Heinrichs
>Priority: Major
>
> A simple
> {code:java}
> FileUtils.copyDirectory(source, dest, glob) {code}
> works fine when using Commons-IO 2.7, but fails with
> {code:java}
> Caught: java.io.IOException: Failed setLastModified on /path/to/source
> java.io.IOException: Failed setLastModified on /path/to/source
>     at 
> org.apache.commons.io.FileUtils.setLastModified(FileUtils.java:2561)
>     at 
> org.apache.commons.io.FileUtils.doCopyDirectory(FileUtils.java:1361)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:733)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:659)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:606)
> {code}
> after update to 2.8.0. From reading the documentation, it's also my 
> understanding that "setLastModified()" should be executed on "dest" to set 
> the same modification time as "source", but *not* on "source".



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Commented] (IO-721) FileUtils.copyDirectory() tries to set last modified on source dir after update to 2.8.0

2021-03-14 Thread Gary D. Gregory (Jira)


[ 
https://issues.apache.org/jira/browse/IO-721?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17301195#comment-17301195
 ] 

Gary D. Gregory commented on IO-721:


A quick scan for the git master and 2.8.0 does not reveal an obvious issue.

May you please demonstrate your use case in a PR on GitHub? You can create a 
new class or append to one of the many {{FileUtils*TestCase}} classes.

> FileUtils.copyDirectory() tries to set last modified on source dir after 
> update to 2.8.0
> 
>
> Key: IO-721
> URL: https://issues.apache.org/jira/browse/IO-721
> Project: Commons IO
>  Issue Type: Bug
>  Components: Utilities
>Affects Versions: 2.8.0
> Environment: Ubuntu 20.04 LTS
> Groovy 3.0.x
> Java 11 (from Ubuntu packages)
>Reporter: Dirk Heinrichs
>Priority: Major
>
> A simple
> {code:java}
> FileUtils.copyDirectory(source, dest, glob) {code}
> works fine when using Commons-IO 2.7, but fails with
> {code:java}
> Caught: java.io.IOException: Failed setLastModified on /path/to/source
> java.io.IOException: Failed setLastModified on /path/to/source
>     at 
> org.apache.commons.io.FileUtils.setLastModified(FileUtils.java:2561)
>     at 
> org.apache.commons.io.FileUtils.doCopyDirectory(FileUtils.java:1361)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:733)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:659)
>     at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:606)
> {code}
> after update to 2.8.0. From reading the documentation, it's also my 
> understanding that "setLastModified()" should be executed on "dest" to set 
> the same modification time as "source", but *not* on "source".



--
This message was sent by Atlassian Jira
(v8.3.4#803005)