[ https://issues.apache.org/jira/browse/HADOOP-9413?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13637411#comment-13637411 ]
Bikas Saha commented on HADOOP-9413: ------------------------------------ Thanks for doing this. Much better approach and functionally correct! Enums with defined value will make this unnecessary. Minor though but typesafe. {code} + if (desiredAccess != ACCESS_READ && desiredAccess != ACCESS_WRITE + && desiredAccess != ACCESS_EXECUTE) { {code} The previous code was returning error when this failed. Not necessary anymore? {code} - if (!AuthzFreeContext(hAuthzClientContext)) + +GetEffectiveRightsForSidEnd: + if (hManager != NULL) { - ret = GetLastError(); - goto GetEffectiveRightsForSidEnd; + (void)AuthzFreeResourceManager(hManager); + } + if (hAuthzClientContext != NULL) + { + (void)AuthzFreeContext(hAuthzClientContext); } {code} How about changing these to setWritable()? Thus testing the other new methods too. + end to end symmetry check also achieved. {code} + FileUtil.chmod(testFile.getAbsolutePath(), "u-r"); + assertFalse(NativeIO.Windows.access(testFile.getAbsolutePath(), + NativeIO.Windows.ACCESS_READ)); {code} > Introduce common utils for File#setReadable/Writable/Executable and > File#canRead/Write/Execute that work cross-platform > ----------------------------------------------------------------------------------------------------------------------- > > Key: HADOOP-9413 > URL: https://issues.apache.org/jira/browse/HADOOP-9413 > Project: Hadoop Common > Issue Type: Bug > Reporter: Ivan Mitic > Assignee: Ivan Mitic > Fix For: 3.0.0 > > Attachments: HADOOP-9413.commonfileutils.2.patch, > HADOOP-9413.commonfileutils.patch > > > So far, we've seen many unittest and product bugs in Hadoop on Windows > because Java's APIs that manipulate with permissions do not work as expected. > We've addressed many of these problems on one-by-one basis (by either > changing code a bit or disabling the test). While debugging the remaining > unittest failures we continue to run into the same patterns of problems, and > instead of addressing them one-by-one, I propose that we expose a set of > equivalent wrapper APIs that will work well for all platforms. > Scanning thru the codebase, this will actually be a simple change as there > are very few places that use File#setReadable/Writable/Executable and > File#canRead/Write/Execute (5 files in Common, 9 files in HDFS). > HADOOP-8973 contains additional context on the problem. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira