Return-Path: X-Original-To: apmail-hadoop-common-issues-archive@minotaur.apache.org Delivered-To: apmail-hadoop-common-issues-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 3BF34F471 for ; Sun, 21 Apr 2013 00:19:16 +0000 (UTC) Received: (qmail 91226 invoked by uid 500); 21 Apr 2013 00:19:15 -0000 Delivered-To: apmail-hadoop-common-issues-archive@hadoop.apache.org Received: (qmail 91167 invoked by uid 500); 21 Apr 2013 00:19:15 -0000 Mailing-List: contact common-issues-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: common-issues@hadoop.apache.org Delivered-To: mailing list common-issues@hadoop.apache.org Received: (qmail 91154 invoked by uid 99); 21 Apr 2013 00:19:15 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 21 Apr 2013 00:19:15 +0000 Date: Sun, 21 Apr 2013 00:19:15 +0000 (UTC) From: "Bikas Saha (JIRA)" To: common-issues@hadoop.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (HADOOP-9413) Introduce common utils for File#setReadable/Writable/Executable and File#canRead/Write/Execute that work cross-platform MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ 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