Author: hairong
Date: Tue Mar 17 22:23:42 2009
New Revision: 755426

URL: http://svn.apache.org/viewvc?rev=755426&view=rev
Log:
HADOOP-5259. Job with output hdfs:/user/<username>/outputpath (no authority) 
fails with Wrong FS. Contributed by Doug Cutting and Koji Noguchi.

Modified:
    hadoop/core/trunk/CHANGES.txt
    hadoop/core/trunk/src/core/org/apache/hadoop/fs/FileSystem.java
    hadoop/core/trunk/src/test/org/apache/hadoop/mapred/TestMiniMRWithDFS.java

Modified: hadoop/core/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hadoop/core/trunk/CHANGES.txt?rev=755426&r1=755425&r2=755426&view=diff
==============================================================================
--- hadoop/core/trunk/CHANGES.txt (original)
+++ hadoop/core/trunk/CHANGES.txt Tue Mar 17 22:23:42 2009
@@ -1071,6 +1071,9 @@
     HADOOP-5479. NameNode should not send empty block replication request to
     DataNode. (hairong)
 
+    HADOOP-5259. Job with output hdfs:/user/<username>/outputpath (no 
+    authority) fails with Wrong FS. (Doug Cutting via hairong)
+
 Release 0.19.1 - 2009-02-23 
 
   IMPROVEMENTS

Modified: hadoop/core/trunk/src/core/org/apache/hadoop/fs/FileSystem.java
URL: 
http://svn.apache.org/viewvc/hadoop/core/trunk/src/core/org/apache/hadoop/fs/FileSystem.java?rev=755426&r1=755425&r2=755426&view=diff
==============================================================================
--- hadoop/core/trunk/src/core/org/apache/hadoop/fs/FileSystem.java (original)
+++ hadoop/core/trunk/src/core/org/apache/hadoop/fs/FileSystem.java Tue Mar 17 
22:23:42 2009
@@ -283,7 +283,15 @@
 
       if (thatAuthority == null &&                // path's authority is null
           thisAuthority != null) {                // fs has an authority
-        URI defaultUri = getDefaultUri(getConf()); // & is the default fs
+        URI defaultUri = getDefaultUri(getConf()); // & is the conf default 
+        if (thisScheme.equalsIgnoreCase(defaultUri.getScheme()) &&
+            thisAuthority.equalsIgnoreCase(defaultUri.getAuthority()))
+          return;
+        try {                                     // or the default fs's uri
+          defaultUri = get(getConf()).getUri();
+        } catch (IOException e) {
+          throw new RuntimeException(e);
+        }
         if (thisScheme.equalsIgnoreCase(defaultUri.getScheme()) &&
             thisAuthority.equalsIgnoreCase(defaultUri.getAuthority()))
           return;

Modified: 
hadoop/core/trunk/src/test/org/apache/hadoop/mapred/TestMiniMRWithDFS.java
URL: 
http://svn.apache.org/viewvc/hadoop/core/trunk/src/test/org/apache/hadoop/mapred/TestMiniMRWithDFS.java?rev=755426&r1=755425&r2=755426&view=diff
==============================================================================
--- hadoop/core/trunk/src/test/org/apache/hadoop/mapred/TestMiniMRWithDFS.java 
(original)
+++ hadoop/core/trunk/src/test/org/apache/hadoop/mapred/TestMiniMRWithDFS.java 
Tue Mar 17 22:23:42 2009
@@ -277,6 +277,11 @@
       result = launchWordCount(jobConf, inDir, outDir, input, 3, 1);
       assertEquals("The\t1\nbrown\t1\nfox\t2\nhas\t1\nmany\t1\n" +
                    "quick\t1\nred\t1\nsilly\t1\nsox\t1\n", result.output);
+      final Path outDir2 = new Path("hdfs:/test/wc/output2");
+      jobConf.set("fs.default.name", "hdfs://localhost:" + 
NameNode.DEFAULT_PORT);
+      result = launchWordCount(jobConf, inDir, outDir2, input, 3, 1);
+      assertEquals("The\t1\nbrown\t1\nfox\t2\nhas\t1\nmany\t1\n" +
+                   "quick\t1\nred\t1\nsilly\t1\nsox\t1\n", result.output);
     } catch (java.net.BindException be) {
       LOG.info("Skip the test this time because can not start namenode on port 
"
           + NameNode.DEFAULT_PORT, be);


Reply via email to