hadoop-common-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Doug Cutting (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (HADOOP-125) LocalFileSystem.makeAbsolute bug on Windows
Date Fri, 07 Apr 2006 23:27:27 GMT
     [ http://issues.apache.org/jira/browse/HADOOP-125?page=all ]
Doug Cutting resolved HADOOP-125:

    Fix Version: 0.1.1
     Resolution: Fixed
      Assign To: Doug Cutting

I just fixed this.

> LocalFileSystem.makeAbsolute bug on Windows
> -------------------------------------------
>          Key: HADOOP-125
>          URL: http://issues.apache.org/jira/browse/HADOOP-125
>      Project: Hadoop
>         Type: Bug

>   Components: fs
>  Environment: Windows
>     Reporter: paul sutter
>     Assignee: Doug Cutting
>     Priority: Minor
>      Fix For: 0.1.1, 0.2

> LocalFileSystem.makeAbsolute() has a bug when running on Windows (which is very useful
for the development phase of a Hadoop task on one's laptop).
> Problem:  if a pathname such as /tmp/hadoop... is given in a config file, when the jobconf
file is created, it is put into the relative directory named: currentdir/tmp/hadoop..., but
when hadoop tries to open the file, it looks in c:/tmp/hadoop..., and the job fails.
> Cause: while Unix has two kinds of filespecs (relative and absolute), WIndows actually
has three:
> (1) relative to current directory (subdir/file)
> (2) relative to current disk (/dir/subdir/file)
> (3) absolute (c:/dir/subdir/file)
> So when a config file specifies a directory with what-is-on-unix an absolute path (/tmp/hadoop...),
the makeAbsolute() method will not work correctly. Basically, File.isAbsolute() will return
false for cases (1) and (2) above, but true for case (3), which is not expected by the code
> The solution would be to code explicit detection of all three casses for Windows in the
code below from LocalFileSystem:
>     private File makeAbsolute(File f) {
>       if (f.isAbsolute()) {
>         return f;
>       } else {
>         return new File(workingDir, f.toString());
>       }
>     }
> Im happy to explain if this explanation is confusing... 

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:

View raw message