HADOOP-14609. NPE in AzureNativeFileSystemStore.checkContainer() if StorageException lacks an error code. Contributed by Steve Loughran

This commit is contained in:
Mingliang Liu 2017-06-28 14:18:59 -07:00
parent e9d8bdfdf5
commit 990aa34de2
3 changed files with 10 additions and 10 deletions

View File

@ -1194,8 +1194,8 @@ private ContainerState checkContainer(ContainerAccessType accessType)
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 void storeEmptyFolder(String key, PermissionStatus permissionStatus)
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 @@ private void safeDelete(CloudBlobWrapper blob, SelfRenewingLease lease) throws S
// 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 boolean delete(String key) throws IOException {
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);

View File

@ -82,7 +82,7 @@ public SelfRenewingLease(CloudBlobWrapper blobWrapper)
// 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 void free() throws StorageException {
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

View File

@ -20,9 +20,9 @@
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 @@ private void testStoreBlobMd5(boolean expectMd5Stored) throws Exception {
}
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());
}
}