Jakub Dubovsky created SPARK-22585: -------------------------------------- Summary: 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
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-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org