[prev in list] [next in list] [prev in thread] [next in thread] 

List:       hadoop-commits
Subject:    svn commit: r1498059 - in /hadoop/common/branches/branch-1: CHANGES.txt src/hdfs/org/apache/hadoop/h
From:       cnauroth () apache ! org
Date:       2013-06-30 4:00:55
Message-ID: 20130630040055.8E06423889EC () eris ! apache ! org
[Download RAW message or body]

Author: cnauroth
Date: Sun Jun 30 04:00:55 2013
New Revision: 1498059

URL: http://svn.apache.org/r1498059
Log:
HDFS-4944. WebHDFS cannot create a file path containing characters that must be \
URI-encoded, such as space. Contributed by Chris Nauroth.

Modified:
    hadoop/common/branches/branch-1/CHANGES.txt
    hadoop/common/branches/branch-1/src/hdfs/org/apache/hadoop/hdfs/server/datanode/web/resources/DatanodeWebHdfsMethods.java
  hadoop/common/branches/branch-1/src/test/org/apache/hadoop/hdfs/web/TestWebHdfsFileSystemContract.java


Modified: hadoop/common/branches/branch-1/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-1/CHANGES.txt?rev=1498059&r1=1498058&r2=1498059&view=diff
 ==============================================================================
--- hadoop/common/branches/branch-1/CHANGES.txt (original)
+++ hadoop/common/branches/branch-1/CHANGES.txt Sun Jun 30 04:00:55 2013
@@ -65,6 +65,9 @@ Release 1.3.0 - unreleased
     HADOOP-7140. IPC Reader threads do not stop when server stops
     (Todd Lipcon, backported by ivanmi)
 
+    HDFS-4944. WebHDFS cannot create a file path containing characters that must
+    be URI-encoded, such as space. (cnauroth)
+
 Release 1.2.1 - Unreleased 
 
   INCOMPATIBLE CHANGES

Modified: hadoop/common/branches/branch-1/src/hdfs/org/apache/hadoop/hdfs/server/datanode/web/resources/DatanodeWebHdfsMethods.java
                
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-1/src/hdfs/org/apache/ \
hadoop/hdfs/server/datanode/web/resources/DatanodeWebHdfsMethods.java?rev=1498059&r1=1498058&r2=1498059&view=diff
 ==============================================================================
--- hadoop/common/branches/branch-1/src/hdfs/org/apache/hadoop/hdfs/server/datanode/web/resources/DatanodeWebHdfsMethods.java \
                (original)
+++ hadoop/common/branches/branch-1/src/hdfs/org/apache/hadoop/hdfs/server/datanode/web/resources/DatanodeWebHdfsMethods.java \
Sun Jun 30 04:00:55 2013 @@ -193,7 +193,8 @@ public class DatanodeWebHdfsMethods {
         IOUtils.cleanup(LOG, dfsclient);
       }
       final String nnAddr = NameNode.getInfoServer(conf);
-      final URI uri = new URI(WebHdfsFileSystem.SCHEME + "://" + nnAddr + fullpath);
+      final URI uri = new URI(WebHdfsFileSystem.SCHEME, nnAddr, fullpath, null,
+        null);
       return Response.created(uri).type(MediaType.APPLICATION_OCTET_STREAM).build();
     }
     default:

Modified: hadoop/common/branches/branch-1/src/test/org/apache/hadoop/hdfs/web/TestWebHdfsFileSystemContract.java
                
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-1/src/test/org/apache/ \
hadoop/hdfs/web/TestWebHdfsFileSystemContract.java?rev=1498059&r1=1498058&r2=1498059&view=diff
 ==============================================================================
--- hadoop/common/branches/branch-1/src/test/org/apache/hadoop/hdfs/web/TestWebHdfsFileSystemContract.java \
                (original)
+++ hadoop/common/branches/branch-1/src/test/org/apache/hadoop/hdfs/web/TestWebHdfsFileSystemContract.java \
Sun Jun 30 04:00:55 2013 @@ -380,5 +380,34 @@ public class \
TestWebHdfsFileSystemContra  }
       conn.disconnect();
     }
+
+    {//test create with path containing spaces
+      HttpOpParam.Op op = PutOpParam.Op.CREATE;
+      Path path = new Path("/test/path%20with%20spaces");
+      URL url = webhdfs.toUrl(op, path);
+      HttpURLConnection conn = (HttpURLConnection)url.openConnection();
+      conn.setRequestMethod(op.getType().toString());
+      conn.setDoOutput(false);
+      conn.setInstanceFollowRedirects(false);
+      final String redirect;
+      try {
+        conn.connect();
+        assertEquals(HttpServletResponse.SC_TEMPORARY_REDIRECT,
+          conn.getResponseCode());
+        redirect = conn.getHeaderField("Location");
+      } finally {
+        conn.disconnect();
+      }
+
+      conn = (HttpURLConnection)new URL(redirect).openConnection();
+      conn.setRequestMethod(op.getType().toString());
+      conn.setDoOutput(op.getDoOutput());
+      try {
+        conn.connect();
+        assertEquals(HttpServletResponse.SC_CREATED, conn.getResponseCode());
+      } finally {
+        conn.disconnect();
+      }
+    }
   }
 }


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic