hadoop-common-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matt Foley (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HADOOP-7393) PathData saves original string value, inviting failure when CWD changes
Date Wed, 15 Jun 2011 19:10:47 GMT

    [ https://issues.apache.org/jira/browse/HADOOP-7393?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13049966#comment-13049966

Matt Foley commented on HADOOP-7393:

Option 2 seems like the only viable approach, then.

I'll agree that getDirectoryContents() works correctly in that regards.
getPathDataForChild() doesn't seem to.  Nor do I see general logic that invalidates relative
paths when the cwd does change, except maybe in the relativize() method.

I also have to point out that (a) all the PathData i/f methods are public, not package-private;
(b) code always gets re-used for purposes not expected by the author, and (c) the fact that
set/getWorkingDirectory methods exist mean that you can't reasonably expect them to never
be called between two calls to PathData references.

So will you humor me to the following extent?  Save 'cwd' at instantiation time, either as
a Path or an absolute pathstring.  Provide a method 'String getOrigPathString()' which checks
getWorkingDirectory against cwd, and returns 'string' if same, or something derived from 'cwd'
+ 'string' otherwise.  Then comment out the wazoo that 'string' must never be accessed directly,
but always via the getOrigPathString() method.  And do it that way internally in all PathData
methods too.

Would that be acceptable?  getWorkingDirectory() should only access in-memory data structures,
so it shouldn't be a big cost.

> PathData saves original string value, inviting failure when CWD changes
> -----------------------------------------------------------------------
>                 Key: HADOOP-7393
>                 URL: https://issues.apache.org/jira/browse/HADOOP-7393
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: fs
>    Affects Versions: 0.23.0
>            Reporter: Matt Foley
> PathData#string stores the pathstring originally used to construct the Path, and returns
it from various methods, apparently in an attempt to improve the user experience for the shell.
> However, the current working directory may change, and if so this string value becomes
meaningless and/or incorrect in context.

This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


View raw message