[
https://issues.apache.org/jira/browse/FLINK-1848?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14551889#comment-14551889
]
Laurent Tardif commented on FLINK-1848:
---------------------------------------
going a bit deepper in the investigation show that the PATH constructor is
normalizing path
and so, for windows path : "/c:/" => become "/c:" and so put in the URI
constructor gives : "file:/c:" which is a relative path, and not an absoute one.
In the Path constructors (2) the management of windows directory is different
.... bad smell.
Also , in the normalise path functon of the Path object, the removal of / at
the end of the function do not manage correctly windows path.
Also, in the code : Path / File management of windows path are not consistent,
and managed at several place (constructor, several methods, )
windows Path are also considered as : "c:\...\" .... what about "\\host\Path\"
.... that are also common.
May be managing internally only URI objects can be an idea to avoid complex
exception management.
> Paths containing a Windows drive letter cannot be used in FileOutputFormats
> ---------------------------------------------------------------------------
>
> Key: FLINK-1848
> URL: https://issues.apache.org/jira/browse/FLINK-1848
> Project: Flink
> Issue Type: Bug
> Affects Versions: 0.9
> Environment: Windows (Cygwin and native)
> Reporter: Fabian Hueske
> Assignee: Fabian Hueske
> Priority: Critical
> Fix For: 0.9
>
>
> Paths that contain a Windows drive letter such as {{file:///c:/my/directory}}
> cannot be used as output path for {{FileOutputFormat}}.
> If done, the following exception is thrown:
> {code}
> Caused by: java.lang.IllegalArgumentException: java.net.URISyntaxException:
> Relative path in absolute URI: file:c:
> at org.apache.flink.core.fs.Path.initialize(Path.java:242)
> at org.apache.flink.core.fs.Path.<init>(Path.java:225)
> at org.apache.flink.core.fs.Path.<init>(Path.java:138)
> at
> org.apache.flink.core.fs.local.LocalFileSystem.pathToFile(LocalFileSystem.java:147)
> at
> org.apache.flink.core.fs.local.LocalFileSystem.mkdirs(LocalFileSystem.java:232)
> at
> org.apache.flink.core.fs.local.LocalFileSystem.mkdirs(LocalFileSystem.java:233)
> at
> org.apache.flink.core.fs.local.LocalFileSystem.mkdirs(LocalFileSystem.java:233)
> at
> org.apache.flink.core.fs.local.LocalFileSystem.mkdirs(LocalFileSystem.java:233)
> at
> org.apache.flink.core.fs.local.LocalFileSystem.mkdirs(LocalFileSystem.java:233)
> at
> org.apache.flink.core.fs.FileSystem.initOutPathLocalFS(FileSystem.java:603)
> at
> org.apache.flink.api.common.io.FileOutputFormat.open(FileOutputFormat.java:233)
> at
> org.apache.flink.api.java.io.CsvOutputFormat.open(CsvOutputFormat.java:158)
> at
> org.apache.flink.runtime.operators.DataSinkTask.invoke(DataSinkTask.java:183)
> at
> org.apache.flink.runtime.execution.RuntimeEnvironment.run(RuntimeEnvironment.java:217)
> at java.lang.Thread.run(Unknown Source)
> Caused by: java.net.URISyntaxException: Relative path in absolute URI: file:c:
> at java.net.URI.checkPath(Unknown Source)
> at java.net.URI.<init>(Unknown Source)
> at org.apache.flink.core.fs.Path.initialize(Path.java:240)
> ... 14 more
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)