[SPARK-25029][BUILD][CORE] Janino "Two non-abstract methods ..." errors
## What changes were proposed in this pull request? Update to janino 3.0.9 to address Java 8 + Scala 2.12 incompatibility. The error manifests as test failures like this in `ExpressionEncoderSuite`: ``` - encode/decode for seq of string: List(abc, xyz) *** FAILED *** java.lang.RuntimeException: Error while encoding: org.codehaus.janino.InternalCompilerException: failed to compile: org.codehaus.janino.InternalCompilerException: Compiling "GeneratedClass": Two non-abstract methods "public int scala.collection.TraversableOnce.size()" have the same parameter types, declaring type and return type ``` It comes up pretty immediately in any generated code that references Scala collections, and virtually always concerning the `size()` method. ## How was this patch tested? Existing tests Closes #22203 from srowen/SPARK-25029. Authored-by: Sean Owen <sean.owen@databricks.com> Signed-off-by: Xiao Li <gatorsmile@gmail.com>
This commit is contained in:
parent
f2d35427ee
commit
9b6baeb7b9
|
@ -34,7 +34,7 @@ commons-beanutils-core-1.8.0.jar
|
|||
commons-cli-1.2.jar
|
||||
commons-codec-1.10.jar
|
||||
commons-collections-3.2.2.jar
|
||||
commons-compiler-3.0.8.jar
|
||||
commons-compiler-3.0.9.jar
|
||||
commons-compress-1.8.1.jar
|
||||
commons-configuration-1.6.jar
|
||||
commons-crypto-1.0.0.jar
|
||||
|
@ -98,7 +98,7 @@ jackson-module-jaxb-annotations-2.6.7.jar
|
|||
jackson-module-paranamer-2.7.9.jar
|
||||
jackson-module-scala_2.11-2.6.7.1.jar
|
||||
jackson-xc-1.9.13.jar
|
||||
janino-3.0.8.jar
|
||||
janino-3.0.9.jar
|
||||
javassist-3.18.1-GA.jar
|
||||
javax.annotation-api-1.2.jar
|
||||
javax.inject-1.jar
|
||||
|
|
|
@ -34,7 +34,7 @@ commons-beanutils-core-1.8.0.jar
|
|||
commons-cli-1.2.jar
|
||||
commons-codec-1.10.jar
|
||||
commons-collections-3.2.2.jar
|
||||
commons-compiler-3.0.8.jar
|
||||
commons-compiler-3.0.9.jar
|
||||
commons-compress-1.8.1.jar
|
||||
commons-configuration-1.6.jar
|
||||
commons-crypto-1.0.0.jar
|
||||
|
@ -98,7 +98,7 @@ jackson-module-jaxb-annotations-2.6.7.jar
|
|||
jackson-module-paranamer-2.7.9.jar
|
||||
jackson-module-scala_2.11-2.6.7.1.jar
|
||||
jackson-xc-1.9.13.jar
|
||||
janino-3.0.8.jar
|
||||
janino-3.0.9.jar
|
||||
javassist-3.18.1-GA.jar
|
||||
javax.annotation-api-1.2.jar
|
||||
javax.inject-1.jar
|
||||
|
|
|
@ -31,7 +31,7 @@ commons-beanutils-1.9.3.jar
|
|||
commons-cli-1.2.jar
|
||||
commons-codec-1.10.jar
|
||||
commons-collections-3.2.2.jar
|
||||
commons-compiler-3.0.8.jar
|
||||
commons-compiler-3.0.9.jar
|
||||
commons-compress-1.8.1.jar
|
||||
commons-configuration2-2.1.1.jar
|
||||
commons-crypto-1.0.0.jar
|
||||
|
@ -97,7 +97,7 @@ jackson-mapper-asl-1.9.13.jar
|
|||
jackson-module-jaxb-annotations-2.6.7.jar
|
||||
jackson-module-paranamer-2.7.9.jar
|
||||
jackson-module-scala_2.11-2.6.7.1.jar
|
||||
janino-3.0.8.jar
|
||||
janino-3.0.9.jar
|
||||
javassist-3.18.1-GA.jar
|
||||
javax.annotation-api-1.2.jar
|
||||
javax.inject-1.jar
|
||||
|
|
2
pom.xml
2
pom.xml
|
@ -170,7 +170,7 @@
|
|||
<!-- org.apache.commons/commons-lang3/-->
|
||||
<commons-lang3.version>3.5</commons-lang3.version>
|
||||
<datanucleus-core.version>3.2.10</datanucleus-core.version>
|
||||
<janino.version>3.0.8</janino.version>
|
||||
<janino.version>3.0.9</janino.version>
|
||||
<jersey.version>2.22.2</jersey.version>
|
||||
<joda.version>2.9.3</joda.version>
|
||||
<jodd.version>3.5.2</jodd.version>
|
||||
|
|
|
@ -1329,7 +1329,7 @@ object CodeGenerator extends Logging {
|
|||
evaluator.setParentClassLoader(parentClassLoader)
|
||||
// Cannot be under package codegen, or fail with java.lang.InstantiationException
|
||||
evaluator.setClassName("org.apache.spark.sql.catalyst.expressions.GeneratedClass")
|
||||
evaluator.setDefaultImports(Array(
|
||||
evaluator.setDefaultImports(
|
||||
classOf[Platform].getName,
|
||||
classOf[InternalRow].getName,
|
||||
classOf[UnsafeRow].getName,
|
||||
|
@ -1344,7 +1344,7 @@ object CodeGenerator extends Logging {
|
|||
classOf[TaskContext].getName,
|
||||
classOf[TaskKilledException].getName,
|
||||
classOf[InputMetrics].getName
|
||||
))
|
||||
)
|
||||
evaluator.setExtendedClass(classOf[GeneratedClass])
|
||||
|
||||
logDebug({
|
||||
|
|
Loading…
Reference in a new issue