HDFS-4943. WebHdfsFileSystem does not work when original file path has encoded chars. Contributed by Jerry He
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1498962 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
488230551f
commit
05fd0a706a
@ -640,6 +640,9 @@ Release 2.1.0-beta - 2013-07-02
|
|||||||
HDFS-4888. Refactor and fix FSNamesystem.getTurnOffTip. (Ravi Prakash via
|
HDFS-4888. Refactor and fix FSNamesystem.getTurnOffTip. (Ravi Prakash via
|
||||||
kihwal)
|
kihwal)
|
||||||
|
|
||||||
|
HDFS-4943. WebHdfsFileSystem does not work when original file path has
|
||||||
|
encoded chars. (Jerry He via szetszwo)
|
||||||
|
|
||||||
BREAKDOWN OF HDFS-347 SUBTASKS AND RELATED JIRAS
|
BREAKDOWN OF HDFS-347 SUBTASKS AND RELATED JIRAS
|
||||||
|
|
||||||
HDFS-4353. Encapsulate connections to peers in Peer and PeerServer classes.
|
HDFS-4353. Encapsulate connections to peers in Peer and PeerServer classes.
|
||||||
|
@ -389,7 +389,7 @@ URL toUrl(final HttpOpParam.Op op, final Path fspath,
|
|||||||
final Param<?,?>... parameters) throws IOException {
|
final Param<?,?>... parameters) throws IOException {
|
||||||
//initialize URI path and query
|
//initialize URI path and query
|
||||||
final String path = PATH_PREFIX
|
final String path = PATH_PREFIX
|
||||||
+ (fspath == null? "/": makeQualified(fspath).toUri().getPath());
|
+ (fspath == null? "/": makeQualified(fspath).toUri().getRawPath());
|
||||||
final String query = op.toQueryString()
|
final String query = op.toQueryString()
|
||||||
+ Param.toSortedString("&", getAuthParameters(op))
|
+ Param.toSortedString("&", getAuthParameters(op))
|
||||||
+ Param.toSortedString("&", parameters);
|
+ Param.toSortedString("&", parameters);
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
|
import java.net.URISyntaxException;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
@ -54,6 +55,22 @@ public void resetUGI() {
|
|||||||
UserGroupInformation.setConfiguration(new Configuration());
|
UserGroupInformation.setConfiguration(new Configuration());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test(timeout=60000)
|
||||||
|
public void testEncodedPathUrl() throws IOException, URISyntaxException{
|
||||||
|
Configuration conf = new Configuration();
|
||||||
|
|
||||||
|
final WebHdfsFileSystem webhdfs = (WebHdfsFileSystem) FileSystem.get(
|
||||||
|
uri, conf);
|
||||||
|
|
||||||
|
// Construct a file path that contains percentage-encoded string
|
||||||
|
String pathName = "/hdtest010%2C60020%2C1371000602151.1371058984668";
|
||||||
|
Path fsPath = new Path(pathName);
|
||||||
|
URL encodedPathUrl = webhdfs.toUrl(PutOpParam.Op.CREATE, fsPath);
|
||||||
|
// We should get back the original file path after cycling back and decoding
|
||||||
|
Assert.assertEquals(WebHdfsFileSystem.PATH_PREFIX + pathName,
|
||||||
|
encodedPathUrl.toURI().getPath());
|
||||||
|
}
|
||||||
|
|
||||||
@Test(timeout=60000)
|
@Test(timeout=60000)
|
||||||
public void testSimpleAuthParamsInUrl() throws IOException {
|
public void testSimpleAuthParamsInUrl() throws IOException {
|
||||||
Configuration conf = new Configuration();
|
Configuration conf = new Configuration();
|
||||||
@ -380,4 +397,4 @@ public int getDefaultPort() {
|
|||||||
return super.getDefaultPort();
|
return super.getDefaultPort();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user