From efa97243ecb84b3b468e732897cd685e3869f480 Mon Sep 17 00:00:00 2001 From: cnauroth Date: Wed, 22 Jul 2015 11:16:49 -0700 Subject: [PATCH] HADOOP-12239. StorageException complaining " no lease ID" when updating FolderLastModifiedTime in WASB. Contributed by Duo Xu. --- hadoop-common-project/hadoop-common/CHANGES.txt | 3 +++ .../org/apache/hadoop/fs/azure/NativeAzureFileSystem.java | 8 ++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index 3d101d4f5a..c0e5c92a91 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -995,6 +995,9 @@ Release 2.8.0 - UNRELEASED HADOOP-12017. Hadoop archives command should use configurable replication factor when closing (Bibin A Chundatt via vinayakumarb) + HADOOP-12239. StorageException complaining " no lease ID" when updating + FolderLastModifiedTime in WASB. (Duo Xu via cnauroth) + Release 2.7.2 - UNRELEASED INCOMPATIBLE CHANGES diff --git a/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/NativeAzureFileSystem.java b/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/NativeAzureFileSystem.java index a567b331a0..bb9941bf6e 100644 --- a/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/NativeAzureFileSystem.java +++ b/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/NativeAzureFileSystem.java @@ -1360,8 +1360,12 @@ private FSDataOutputStream create(Path f, FsPermission permission, String parentKey = pathToKey(parentFolder); FileMetadata parentMetadata = store.retrieveMetadata(parentKey); if (parentMetadata != null && parentMetadata.isDir() && - parentMetadata.getBlobMaterialization() == BlobMaterialization.Explicit) { - store.updateFolderLastModifiedTime(parentKey, parentFolderLease); + parentMetadata.getBlobMaterialization() == BlobMaterialization.Explicit) { + if (parentFolderLease != null) { + store.updateFolderLastModifiedTime(parentKey, parentFolderLease); + } else { + updateParentFolderLastModifiedTime(key); + } } else { // Make sure that the parent folder exists. // Create it using inherited permissions from the first existing directory going up the path