ayushtkn commented on code in PR #5990:
URL: https://github.com/apache/hive/pull/5990#discussion_r2234915947
##########
common/src/java/org/apache/hadoop/hive/common/FileUtils.java:
##########
@@ -830,7 +830,14 @@ public static boolean copy(FileSystem srcFS, Path[] srcs,
FileSystem dstFS, Path
throw new IOException("copying multiple files, but last argument `"
+ dst + "' is not a directory");
}
} catch (FileNotFoundException var16) {
- throw new IOException("`" + dst + "': specified destination directory
does not exist", var16);
+ // Create a new FileNotFoundException with the custom message and the
original message
+ FileNotFoundException e = new FileNotFoundException("'" + dst + "':
specified destination directory does not exist");
Review Comment:
Mostly these copy functions are used by replication for data copy, but I
think they got used somewhere else as well. But this method I remember was
written for copying with Preserving Xattrs during Replication. Ideally we
should not catch FNF just let it propagate back to the client rather than
wrapping it in IOE. It shouldn't by incompatible FNF is a child class of IOE.
But if think there can be issues in that case @harshal-16 maybe the
CopyUtils.retryableFxn() can be improved as well.
Maybe something like
```
private void isNonRetryableException(Exception e) throws IOException {
Throwable current = e;
while (current != null) {
final Throwable curr = current;
if (failOnParentExceptionList.stream().anyMatch(k ->
k.isAssignableFrom(curr.getClass()))) {
throw new IOException(e);
}
current = current.getCause();
}
}
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]