summaryrefslogtreecommitdiff
path: root/hadoop-hdfs-project/hadoop-hdfs/src/main
diff options
context:
space:
mode:
authorInigo Goiri <inigoiri@apache.org>2018-04-28 09:05:30 -0700
committerInigo Goiri <inigoiri@apache.org>2018-04-28 09:05:30 -0700
commiteb7fe1d588de903be2ff6e20384c25c184881532 (patch)
treea3ae06658af81d0d9ba1b2a33cc1f786639997fb /hadoop-hdfs-project/hadoop-hdfs/src/main
parent2c95eb8111a7b03fd4683f740123cd4720b62c3e (diff)
HDFS-13509. Bug fix for breakHardlinks() of ReplicaInfo/LocalReplica, and fix TestFileAppend failures on Windows. Contributed by Xiao Liang.
Diffstat (limited to 'hadoop-hdfs-project/hadoop-hdfs/src/main')
-rw-r--r--hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/LocalReplica.java18
1 files changed, 10 insertions, 8 deletions
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/LocalReplica.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/LocalReplica.java
index 2c5af11d0d..68126a5eb3 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/LocalReplica.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/LocalReplica.java
@@ -186,16 +186,18 @@ abstract public class LocalReplica extends ReplicaInfo {
final FileIoProvider fileIoProvider = getFileIoProvider();
final File tmpFile = DatanodeUtil.createFileWithExistsCheck(
getVolume(), b, DatanodeUtil.getUnlinkTmpFile(file), fileIoProvider);
- try (FileInputStream in = fileIoProvider.getFileInputStream(
- getVolume(), file)) {
- try (FileOutputStream out = fileIoProvider.getFileOutputStream(
- getVolume(), tmpFile)) {
- IOUtils.copyBytes(in, out, 16 * 1024);
+ try {
+ try (FileInputStream in = fileIoProvider.getFileInputStream(
+ getVolume(), file)) {
+ try (FileOutputStream out = fileIoProvider.getFileOutputStream(
+ getVolume(), tmpFile)) {
+ IOUtils.copyBytes(in, out, 16 * 1024);
+ }
}
if (file.length() != tmpFile.length()) {
- throw new IOException("Copy of file " + file + " size " + file.length()+
- " into file " + tmpFile +
- " resulted in a size of " + tmpFile.length());
+ throw new IOException("Copy of file " + file + " size " + file.length()
+ + " into file " + tmpFile + " resulted in a size of "
+ + tmpFile.length());
}
fileIoProvider.replaceFile(getVolume(), tmpFile, file);
} catch (IOException e) {