A very simple example which works well with Spark 1.2, and fail to compile
with Spark 1.3:

build.sbt:

name := "untitled"
version := "1.0"
scalaVersion := "2.10.4"
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.3.0"

Test.scala:

package org.apache.spark.metrics
import org.apache.spark.SparkEnv
class Test {
  SparkEnv.get.metricsSystem.report()
}

Produces:

Error:scalac: bad symbolic reference. A signature in MetricsSystem.class
refers to term eclipse
in package org which is not available.
It may be completely missing from the current classpath, or the version on
the classpath might be incompatible with the version used when compiling
MetricsSystem.class.

Error:scalac: bad symbolic reference. A signature in MetricsSystem.class
refers to term jetty
in value org.eclipse which is not available.
It may be completely missing from the current classpath, or the version on
the classpath might be incompatible with the version used when compiling
MetricsSystem.class.

This looks like something wrong with shading jetty.
MetricsSystem references MetricsServlet which references some classes from
Jetty, in the original package instead of shaded one. I'm not sure, but
adding the following dependencies solves the problem:

libraryDependencies += "org.eclipse.jetty" % "jetty-server" %
"8.1.14.v20131031"
libraryDependencies += "org.eclipse.jetty" % "jetty-servlet" %
"8.1.14.v20131031"

Is it intended or is it a bug?


Thanks !


Jacek

Reply via email to