HADOOP-14609. NPE in AzureNativeFileSystemStore.checkContainer() if StorageException lacks an error code. Contributed by Steve Loughran
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/990aa34d Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/990aa34d Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/990aa34d Branch: refs/heads/YARN-5734 Commit: 990aa34de23c625163745ebc338483065d955bbe Parents: e9d8bdf Author: Mingliang Liu <[email protected]> Authored: Wed Jun 28 14:18:59 2017 -0700 Committer: Mingliang Liu <[email protected]> Committed: Wed Jun 28 14:18:59 2017 -0700 ---------------------------------------------------------------------- .../hadoop/fs/azure/AzureNativeFileSystemStore.java | 10 +++++----- .../org/apache/hadoop/fs/azure/SelfRenewingLease.java | 4 ++-- .../apache/hadoop/fs/azure/TestBlobDataValidation.java | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/990aa34d/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/AzureNativeFileSystemStore.java ---------------------------------------------------------------------- diff --git a/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/AzureNativeFileSystemStore.java b/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/AzureNativeFileSystemStore.java index d026220..5fa964a 100644 --- a/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/AzureNativeFileSystemStore.java +++ b/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/AzureNativeFileSystemStore.java @@ -1194,8 +1194,8 @@ public class AzureNativeFileSystemStore implements NativeFileSystemStore { container.downloadAttributes(getInstrumentedContext()); currentKnownContainerState = ContainerState.Unknown; } catch (StorageException ex) { - if (ex.getErrorCode().equals( - StorageErrorCode.RESOURCE_NOT_FOUND.toString())) { + if (StorageErrorCode.RESOURCE_NOT_FOUND.toString() + .equals(ex.getErrorCode())) { currentKnownContainerState = ContainerState.DoesntExist; } else { throw ex; @@ -1596,7 +1596,7 @@ public class AzureNativeFileSystemStore implements NativeFileSystemStore { if (t != null && t instanceof StorageException) { StorageException se = (StorageException) t; // If we got this exception, the blob should have already been created - if (!se.getErrorCode().equals("LeaseIdMissing")) { + if (!"LeaseIdMissing".equals(se.getErrorCode())) { throw new AzureException(e); } } else { @@ -2427,7 +2427,7 @@ public class AzureNativeFileSystemStore implements NativeFileSystemStore { // 2. It got there after one-or-more retries THEN // we swallow the exception. if (e.getErrorCode() != null && - e.getErrorCode().equals("BlobNotFound") && + "BlobNotFound".equals(e.getErrorCode()) && operationContext.getRequestResults().size() > 1 && operationContext.getRequestResults().get(0).getException() != null) { LOG.debug("Swallowing delete exception on retry: {}", e.getMessage()); @@ -2478,7 +2478,7 @@ public class AzureNativeFileSystemStore implements NativeFileSystemStore { Throwable t = e.getCause(); if(t != null && t instanceof StorageException) { StorageException se = (StorageException) t; - if(se.getErrorCode().equals(("LeaseIdMissing"))){ + if ("LeaseIdMissing".equals(se.getErrorCode())){ SelfRenewingLease lease = null; try { lease = acquireLease(key); http://git-wip-us.apache.org/repos/asf/hadoop/blob/990aa34d/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/SelfRenewingLease.java ---------------------------------------------------------------------- diff --git a/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/SelfRenewingLease.java b/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/SelfRenewingLease.java index 76098f3..00d5e99 100644 --- a/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/SelfRenewingLease.java +++ b/hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/SelfRenewingLease.java @@ -82,7 +82,7 @@ public class SelfRenewingLease { // Throw again if we don't want to keep waiting. // We expect it to be that the lease is already present, // or in some cases that the blob does not exist. - if (!e.getErrorCode().equals("LeaseAlreadyPresent")) { + if (!"LeaseAlreadyPresent".equals(e.getErrorCode())) { LOG.info( "Caught exception when trying to get lease on blob " + blobWrapper.getUri().toString() + ". " + e.getMessage()); @@ -119,7 +119,7 @@ public class SelfRenewingLease { try { blobWrapper.getBlob().releaseLease(accessCondition); } catch (StorageException e) { - if (e.getErrorCode().equals("BlobNotFound")) { + if ("BlobNotFound".equals(e.getErrorCode())) { // Don't do anything -- it's okay to free a lease // on a deleted file. The delete freed the lease http://git-wip-us.apache.org/repos/asf/hadoop/blob/990aa34d/hadoop-tools/hadoop-azure/src/test/java/org/apache/hadoop/fs/azure/TestBlobDataValidation.java ---------------------------------------------------------------------- diff --git a/hadoop-tools/hadoop-azure/src/test/java/org/apache/hadoop/fs/azure/TestBlobDataValidation.java b/hadoop-tools/hadoop-azure/src/test/java/org/apache/hadoop/fs/azure/TestBlobDataValidation.java index c40b7b5..ea17b62 100644 --- a/hadoop-tools/hadoop-azure/src/test/java/org/apache/hadoop/fs/azure/TestBlobDataValidation.java +++ b/hadoop-tools/hadoop-azure/src/test/java/org/apache/hadoop/fs/azure/TestBlobDataValidation.java @@ -20,9 +20,9 @@ package org.apache.hadoop.fs.azure; import static org.apache.hadoop.fs.azure.AzureNativeFileSystemStore.KEY_CHECK_BLOCK_MD5; import static org.apache.hadoop.fs.azure.AzureNativeFileSystemStore.KEY_STORE_BLOB_MD5; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import static org.junit.Assume.assumeNotNull; @@ -130,8 +130,8 @@ public class TestBlobDataValidation { } StorageException cause = (StorageException)ex.getCause(); assertNotNull(cause); - assertTrue("Unexpected cause: " + cause, - cause.getErrorCode().equals(StorageErrorCodeStrings.INVALID_MD5)); + assertEquals("Unexpected cause: " + cause, + StorageErrorCodeStrings.INVALID_MD5, cause.getErrorCode()); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
