[ https://issues.apache.org/jira/browse/HADOOP-12551?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15090297#comment-15090297 ]
Chris Nauroth commented on HADOOP-12551: ---------------------------------------- bq. While submitting the patch I built it using checkstyle flag, but didn't find any new style check warnings. I forgot that hadoop-azure has an overridden checkstyle.xml. That's something to clean up and align with the rest of the codebase at some point, but not in scope of this JIRA. bq. I have commented the code explaining that we would not be hitting the NullReferenceException in the code path that the warnings are raised. I think Findbugs correctly spotted a bug, but it's in the exception handling: {code} if (renamed) { listing = null; try { listing = store.list(key, AZURE_LIST_ALL, 1, partialKey); } catch (IOException ex) { Throwable innerException = NativeAzureFileSystem.checkForAzureStorageException(ex); if (innerException instanceof StorageException) { if (NativeAzureFileSystem.isFileNotFoundException((StorageException) innerException)) { throw new FileNotFoundException(String.format("%s is not found", key)); } } else { throw ex; } } } {code} If the exception is a {{StorageException}}, but not a {{FileNotFoundException}}, then the {{StorageException}} is swallowed instead of propagated to the caller. Findbugs has identified correctly that there is a potential code path for execution to continue and dereference {{listing}}, which would be {{null}}. I recommend changing the exception handling to this: {code} } catch (IOException ex) { Throwable innerException = NativeAzureFileSystem.checkForAzureStorageException(ex); if (innerException != null && innerException instanceof StorageException && NativeAzureFileSystem.isFileNotFoundException((StorageException) innerException)) { throw new FileNotFoundException(String.format("%s is not found", key)); } else { throw ex; } } {code} > Introduce FileNotFoundException for WASB FileSystem API > ------------------------------------------------------- > > Key: HADOOP-12551 > URL: https://issues.apache.org/jira/browse/HADOOP-12551 > Project: Hadoop Common > Issue Type: Bug > Components: tools > Affects Versions: 2.7.1 > Reporter: Dushyanth > Assignee: Dushyanth > Attachments: HADOOP-12551.001.patch, HADOOP-12551.002.patch > > > HADOOP-12533 introduced FileNotFoundException to the read and seek API for > WASB. The open and getFileStatus api currently throws FileNotFoundException > correctly when the file does not exists when the API is called but does not > throw the same exception if there is another thread/process deletes the file > during its execution. This Jira fixes that behavior. > This jira also re-examines other Azure storage store calls to check for > BlobNotFoundException in setPermission(), setOwner, rename(), delete(), > open(), listStatus() APIs. -- This message was sent by Atlassian JIRA (v6.3.4#6332)