[ 
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

Reply via email to