[ 
https://issues.apache.org/jira/browse/HADOOP-2066?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12535736
 ] 

Doug Cutting commented on HADOOP-2066:
--------------------------------------

> We could only encode filenames and directory names but not the entire string. 
> Then, all characters except / can be allowed.

How do we know what parts are the filename?  The colon separates the scheme 
from the rest of the uri, so we cannot know whether a colon in a name delimits 
the scheme or part of the name.

> Also, we probably should provide a option to allow user giving a raw URI.

We only support a subset of URIs, so we need to have our own constructors to 
validate and normalize.  We could accept a URI and check that it is of the form 
we require.  The easiest implementation would be to convert it to a string and 
pass it to the existing constructor.  What's the use case?

> filenames with ':' colon throws java.lang.IllegalArgumentException
> ------------------------------------------------------------------
>
>                 Key: HADOOP-2066
>                 URL: https://issues.apache.org/jira/browse/HADOOP-2066
>             Project: Hadoop
>          Issue Type: Bug
>          Components: dfs
>            Reporter: lohit vijayarenu
>         Attachments: HADOOP-2066.patch
>
>
> File names containing colon ":" throws  java.lang.IllegalArgumentException 
> while LINUX file system supports it.
> [EMAIL PROTECTED] ~]$ hadoop dfs -put ./testfile-2007-09-24-03:00:00.gz 
> filenametest
> Exception in thread "main" java.lang.IllegalArgumentException: 
> java.net.URISyntaxException: Relative path in absolute
> URI: testfile-2007-09-24-03:00:00.gz
>       at org.apache.hadoop.fs.Path.initialize(Path.java:140)
>       at org.apache.hadoop.fs.Path.<init>(Path.java:126)
>       at org.apache.hadoop.fs.Path.<init>(Path.java:50)
>       at org.apache.hadoop.fs.FileUtil.checkDest(FileUtil.java:273)
>       at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:117)
>       at 
> org.apache.hadoop.fs.FileSystem.copyFromLocalFile(FileSystem.java:776)
>       at 
> org.apache.hadoop.fs.FileSystem.copyFromLocalFile(FileSystem.java:757)
>       at org.apache.hadoop.fs.FsShell.copyFromLocal(FsShell.java:116)
>       at org.apache.hadoop.fs.FsShell.run(FsShell.java:1229)
>       at org.apache.hadoop.util.ToolBase.doMain(ToolBase.java:187)
>       at org.apache.hadoop.fs.FsShell.main(FsShell.java:1342)
> Caused by: java.net.URISyntaxException: Relative path in absolute URI: 
> testfile-2007-09-24-03:00:00.gz
>       at java.net.URI.checkPath(URI.java:1787)
>       at java.net.URI.<init>(URI.java:735)
>       at org.apache.hadoop.fs.Path.initialize(Path.java:137)
>       ... 10 more
> [EMAIL PROTECTED] ~]$ 
> Path(String pathString) when given a filename which contains ':' treats it as 
> URI and selects anything before ':' as
> scheme, which in this case is clearly not a valid scheme.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to