[ http://issues.apache.org/jira/browse/HADOOP-125?page=all ] Doug Cutting closed HADOOP-125: -------------------------------
> 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 below. > 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: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
