diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/DFSStripedOutputStream.java b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/DFSStripedOutputStream.java index 8320cc9a40866..a6f703fcd43cf 100644 --- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/DFSStripedOutputStream.java +++ b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/DFSStripedOutputStream.java @@ -73,9 +73,6 @@ import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.TimeUnit; -import static org.apache.hadoop.hdfs.client.HdfsClientConfigKeys.Write.RECOVER_LEASE_ON_CLOSE_EXCEPTION_DEFAULT; -import static org.apache.hadoop.hdfs.client.HdfsClientConfigKeys.Write.RECOVER_LEASE_ON_CLOSE_EXCEPTION_KEY; - /** * This class supports writing files in striped layout and erasure coded format. * Each stripe contains a sequence of cells. @@ -1200,9 +1197,7 @@ void setClosed() { @Override protected synchronized void closeImpl() throws IOException { - boolean recoverLeaseOnCloseException = dfsClient.getConfiguration() - .getBoolean(RECOVER_LEASE_ON_CLOSE_EXCEPTION_KEY, - RECOVER_LEASE_ON_CLOSE_EXCEPTION_DEFAULT); + boolean recoverLeaseOnCloseException = dfsClient.getConf().getRecoverLeaseOnCloseException(); try { if (isClosed()) { exceptionLastSeen.check(true); diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/client/impl/DfsClientConf.java b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/client/impl/DfsClientConf.java index 445612f2f8397..dfc89adeab3bd 100644 --- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/client/impl/DfsClientConf.java +++ b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/client/impl/DfsClientConf.java @@ -166,6 +166,7 @@ public class DfsClientConf { private final boolean deadNodeDetectionEnabled; private final long leaseHardLimitPeriod; + private final boolean recoverLeaseOnCloseException; public DfsClientConf(Configuration conf) { // The hdfsTimeout is currently the same as the ipc timeout @@ -315,6 +316,11 @@ public DfsClientConf(Configuration conf) { HdfsClientConfigKeys.DFS_CLIENT_PIPELINE_RECOVERY_MAX_RETRIES, HdfsClientConfigKeys.DFS_CLIENT_PIPELINE_RECOVERY_MAX_RETRIES_DEFAULT ); + + recoverLeaseOnCloseException = conf.getBoolean( + Write.RECOVER_LEASE_ON_CLOSE_EXCEPTION_KEY, + Write.RECOVER_LEASE_ON_CLOSE_EXCEPTION_DEFAULT + ); } private ByteArrayManager.Conf loadWriteByteArrayManagerConf( @@ -745,6 +751,10 @@ public int getMaxPipelineRecoveryRetries() { return maxPipelineRecoveryRetries; } + public boolean getRecoverLeaseOnCloseException() { + return recoverLeaseOnCloseException; + } + /** * Configuration for short-circuit reads. */