You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Hyukjin Kwon (JIRA)" <ji...@apache.org> on 2017/11/30 01:26:00 UTC

[jira] [Resolved] (SPARK-22585) Url encoding of jar path expected?

     [ https://issues.apache.org/jira/browse/SPARK-22585?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Hyukjin Kwon resolved SPARK-22585.
----------------------------------
       Resolution: Fixed
    Fix Version/s: 2.3.0

Issue resolved by pull request 19834
[https://github.com/apache/spark/pull/19834]

> Url encoding of jar path expected?
> ----------------------------------
>
>                 Key: SPARK-22585
>                 URL: https://issues.apache.org/jira/browse/SPARK-22585
>             Project: Spark
>          Issue Type: Bug
>          Components: Spark Core
>    Affects Versions: 2.2.0
>            Reporter: Jakub Dubovsky
>             Fix For: 2.3.0
>
>
> I am calling {code}sparkContext.addJar{code} method with path to a local jar I want to add. Example:
> {code}/home/me/.coursier/cache/v1/https/artifactory.com%3A443/path/to.jar{code}. As a result I get an exception saying
> {code}
> Failed to add /home/me/.coursier/cache/v1/https/artifactory.com%3A443/path/to.jar to Spark environment. Stacktrace:
> java.io.FileNotFoundException: Jar /home/me/.coursier/cache/v1/https/artifactory.com:443/path/to.jar not found
> {code}
> Important part to notice here is that colon character is url encoded in path I want to use but exception is complaining about path in decoded form. This is caused by this line of code from implementation ([see here|https://github.com/apache/spark/blob/v2.2.0/core/src/main/scala/org/apache/spark/SparkContext.scala#L1833]):
> {code}
> case null | "file" => addJarFile(new File(uri.getPath))
> {code}
> It uses [getPath|https://docs.oracle.com/javase/7/docs/api/java/net/URI.html#getPath()] method of [java.net.URI|https://docs.oracle.com/javase/7/docs/api/java/net/URI.html] which url decodes the path. I believe method [getRawPath|https://docs.oracle.com/javase/7/docs/api/java/net/URI.html#getRawPath()] should be used here which keeps path string in original form.
> I tend to see this as a bug since I want to use my dependencies resolved from artifactory with port directly. Is there some specific reason for this or can we fix this?
> Thanks



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org