You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2023/04/28 20:05:18 UTC
[commons-io] branch master updated: Missing throw in org.apache.commons.io.FileUtils.copyFile(File, File, boolean, CopyOption...)
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-io.git
The following commit(s) were added to refs/heads/master by this push:
new 4d8dcd26 Missing throw in org.apache.commons.io.FileUtils.copyFile(File, File, boolean, CopyOption...)
4d8dcd26 is described below
commit 4d8dcd264fd700c96062d661ac3b0bcf87164467
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Fri Apr 28 16:05:14 2023 -0400
Missing throw in org.apache.commons.io.FileUtils.copyFile(File, File,
boolean, CopyOption...)
---
src/main/java/org/apache/commons/io/FileUtils.java | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/src/main/java/org/apache/commons/io/FileUtils.java b/src/main/java/org/apache/commons/io/FileUtils.java
index 51746461..6c832768 100644
--- a/src/main/java/org/apache/commons/io/FileUtils.java
+++ b/src/main/java/org/apache/commons/io/FileUtils.java
@@ -813,8 +813,10 @@ public class FileUtils {
Files.copy(srcFile.toPath(), destFile.toPath(), copyOptions);
// On Windows, the last modified time is copied by default.
- if(preserveFileDate) {
- setTimes(srcFile, destFile);
+ if (preserveFileDate) {
+ if (!setTimes(srcFile, destFile)) {
+ throw new IOException("Cannot set the file time.");
+ }
}
}
@@ -2836,11 +2838,13 @@ public class FileUtils {
*
* @param sourceFile The source file to query.
* @param targetFile The target file or directory to set.
+ * @return {@code true} if and only if the operation succeeded;
+ * {@code false} otherwise
* @throws NullPointerException if sourceFile is {@code null}.
* @throws NullPointerException if targetFile is {@code null}.
* @throws IOException if setting the last-modified time failed.
*/
- private static void setTimes(final File sourceFile, final File targetFile) throws IOException {
+ private static boolean setTimes(final File sourceFile, final File targetFile) throws IOException {
Objects.requireNonNull(sourceFile, "sourceFile");
Objects.requireNonNull(targetFile, "targetFile");
try {
@@ -2849,9 +2853,10 @@ public class FileUtils {
final BasicFileAttributeView destAttrView = Files.getFileAttributeView(targetFile.toPath(), BasicFileAttributeView.class);
// null guards are not needed; BasicFileAttributes.setTimes(...) is null safe
destAttrView.setTimes(srcAttr.lastModifiedTime(), srcAttr.lastAccessTime(), srcAttr.creationTime());
- } catch (IOException unused) {
+ return true;
+ } catch (IOException ignored) {
// Fallback: Only set modified time to match source file
- targetFile.setLastModified(sourceFile.lastModified());
+ return targetFile.setLastModified(sourceFile.lastModified());
}
// TODO: (Help!) Determine historically why setLastModified(File, File) needed PathUtils.setLastModifiedTime() if