diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/crypto/key/JavaKeyStoreProvider.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/crypto/key/JavaKeyStoreProvider.java index 5beda0d2d2e..a41e36a2023 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/crypto/key/JavaKeyStoreProvider.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/crypto/key/JavaKeyStoreProvider.java @@ -23,6 +23,7 @@ import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataInputStream; import org.apache.hadoop.fs.FSDataOutputStream; +import org.apache.hadoop.fs.FileContext; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; @@ -103,6 +104,7 @@ public class JavaKeyStoreProvider extends KeyProvider { private final Path path; private final FileSystem fs; private FsPermission permissions; + private FileContext context; private KeyStore keyStore; private char[] password; private boolean changed = false; @@ -130,6 +132,7 @@ public class JavaKeyStoreProvider extends KeyProvider { this.uri = uri; path = ProviderUtils.unnestUri(uri); fs = path.getFileSystem(conf); + context = FileContext.getFileContext(conf); locateKeystore(); ReadWriteLock lock = new ReentrantReadWriteLock(true); readLock = lock.readLock(); @@ -638,10 +641,7 @@ public class JavaKeyStoreProvider extends KeyProvider { private void renameOrFail(Path src, Path dest) throws IOException { - if (!fs.rename(src, dest)) { - throw new IOException("Rename unsuccessful : " - + String.format("'%s' to '%s'", src, dest)); - } + context.rename(src, dest, org.apache.hadoop.fs.Options.Rename.NONE); } @Override