[ https://issues.apache.org/jira/browse/HADOOP-12258?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14661156#comment-14661156 ]
zhihai xu commented on HADOOP-12258: ------------------------------------ Hi [~cnauroth], thanks for the review, I uploaded a new patch HADOOP-12258.002.patch, which addressed your comments. Please review it. > Need translate java.nio.file.NoSuchFileException to FileNotFoundException to > avoid regression > --------------------------------------------------------------------------------------------- > > Key: HADOOP-12258 > URL: https://issues.apache.org/jira/browse/HADOOP-12258 > Project: Hadoop Common > Issue Type: Bug > Components: fs > Reporter: zhihai xu > Assignee: zhihai xu > Priority: Critical > Attachments: HADOOP-12258.000.patch, HADOOP-12258.001.patch, > HADOOP-12258.002.patch > > > need translate java.nio.file.NoSuchFileException to FileNotFoundException to > avoid regression. > HADOOP-12045 adds nio to support access time, but nio will create > java.nio.file.NoSuchFileException instead of FileNotFoundException. > many hadoop codes depend on FileNotFoundException to decide whether a file > exists. for example {{FileContext.util().exists()}}. > {code} > public boolean exists(final Path f) throws AccessControlException, > UnsupportedFileSystemException, IOException { > try { > FileStatus fs = FileContext.this.getFileStatus(f); > assert fs != null; > return true; > } catch (FileNotFoundException e) { > return false; > } > } > {code} > same for {{FileSystem#exists}} > {code} > public boolean exists(Path f) throws IOException { > try { > return getFileStatus(f) != null; > } catch (FileNotFoundException e) { > return false; > } > } > {code} > NoSuchFileException will break these functions. > Since {{exists}} is one of the most used API in FileSystem, this issue is > very critical. > Several test failures for TestDeletionService are caused by this issue: > https://builds.apache.org/job/PreCommit-YARN-Build/8630/testReport/org.apache.hadoop.yarn.server.nodemanager/TestDeletionService/testRelativeDelete/ > https://builds.apache.org/job/PreCommit-YARN-Build/8632/testReport/org.apache.hadoop.yarn.server.nodemanager/TestDeletionService/testAbsDelete/ -- This message was sent by Atlassian JIRA (v6.3.4#6332)