From c46ea94443ad86db302906689b6651d86a416807 Mon Sep 17 00:00:00 2001 From: hamlet-lee Date: Sun, 18 Dec 2016 00:38:41 +0800 Subject: [PATCH] FIX: not compatible with hadoop 2.7.1 --- .../src/main/java/org/apache/hadoop/fs/HadoopFsWrapper.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/extensions-core/hdfs-storage/src/main/java/org/apache/hadoop/fs/HadoopFsWrapper.java b/extensions-core/hdfs-storage/src/main/java/org/apache/hadoop/fs/HadoopFsWrapper.java index 041417219d82..00290b20b076 100644 --- a/extensions-core/hdfs-storage/src/main/java/org/apache/hadoop/fs/HadoopFsWrapper.java +++ b/extensions-core/hdfs-storage/src/main/java/org/apache/hadoop/fs/HadoopFsWrapper.java @@ -22,6 +22,7 @@ import io.druid.java.util.common.logger.Logger; import java.io.IOException; +import java.lang.reflect.Method; /** * This wrapper class is created to be able to access some of the the "protected" methods inside Hadoop's @@ -48,10 +49,11 @@ private HadoopFsWrapper() {} public static boolean rename(FileSystem fs, Path from, Path to) throws IOException { try { - fs.rename(from, to, Options.Rename.NONE); + Method renameMethod = fs.getClass().getMethod("rename", Path.class, Path.class, Options.Rename[].class); + renameMethod.invoke(fs, from, to, new Options.Rename[]{Options.Rename.NONE}); return true; } - catch (IOException ex) { + catch (Exception ex) { log.warn(ex, "Failed to rename [%s] to [%s].", from, to); return false; }