Skip to content

Commit c1d8ccf

Browse files
cloud-fanHyukjinKwon
authored andcommitted
Revert "[SPARK-35253][SPARK-35398][SQL][BUILD] Bump up the janino version to v3.1.4"
### What changes were proposed in this pull request? This PR reverts #32455 and its followup #32536 , because the new janino version has a bug that is not fixed yet: janino-compiler/janino#148 ### Why are the changes needed? avoid regressions ### Does this PR introduce _any_ user-facing change? no ### How was this patch tested? existing tests Closes #33302 from cloud-fan/revert. Authored-by: Wenchen Fan <[email protected]> Signed-off-by: Hyukjin Kwon <[email protected]> (cherry picked from commit ae6199a) Signed-off-by: Hyukjin Kwon <[email protected]>
1 parent eae79dd commit c1d8ccf

File tree

6 files changed

+20
-11
lines changed

6 files changed

+20
-11
lines changed

dev/deps/spark-deps-hadoop-2.7-hive-2.3

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ commons-beanutils/1.9.4//commons-beanutils-1.9.4.jar
3737
commons-cli/1.2//commons-cli-1.2.jar
3838
commons-codec/1.15//commons-codec-1.15.jar
3939
commons-collections/3.2.2//commons-collections-3.2.2.jar
40-
commons-compiler/3.1.4//commons-compiler-3.1.4.jar
40+
commons-compiler/3.0.16//commons-compiler-3.0.16.jar
4141
commons-compress/1.20//commons-compress-1.20.jar
4242
commons-configuration/1.6//commons-configuration-1.6.jar
4343
commons-crypto/1.1.0//commons-crypto-1.1.0.jar
@@ -122,7 +122,7 @@ jakarta.servlet-api/4.0.3//jakarta.servlet-api-4.0.3.jar
122122
jakarta.validation-api/2.0.2//jakarta.validation-api-2.0.2.jar
123123
jakarta.ws.rs-api/2.1.6//jakarta.ws.rs-api-2.1.6.jar
124124
jakarta.xml.bind-api/2.3.2//jakarta.xml.bind-api-2.3.2.jar
125-
janino/3.1.4//janino-3.1.4.jar
125+
janino/3.0.16//janino-3.0.16.jar
126126
javassist/3.25.0-GA//javassist-3.25.0-GA.jar
127127
javax.inject/1//javax.inject-1.jar
128128
javax.jdo/3.2.0-m3//javax.jdo-3.2.0-m3.jar

dev/deps/spark-deps-hadoop-3.2-hive-2.3

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ chill_2.12/0.10.0//chill_2.12-0.10.0.jar
3131
commons-cli/1.2//commons-cli-1.2.jar
3232
commons-codec/1.15//commons-codec-1.15.jar
3333
commons-collections/3.2.2//commons-collections-3.2.2.jar
34-
commons-compiler/3.1.4//commons-compiler-3.1.4.jar
34+
commons-compiler/3.0.16//commons-compiler-3.0.16.jar
3535
commons-compress/1.20//commons-compress-1.20.jar
3636
commons-crypto/1.1.0//commons-crypto-1.1.0.jar
3737
commons-dbcp/1.4//commons-dbcp-1.4.jar
@@ -98,7 +98,7 @@ jakarta.servlet-api/4.0.3//jakarta.servlet-api-4.0.3.jar
9898
jakarta.validation-api/2.0.2//jakarta.validation-api-2.0.2.jar
9999
jakarta.ws.rs-api/2.1.6//jakarta.ws.rs-api-2.1.6.jar
100100
jakarta.xml.bind-api/2.3.2//jakarta.xml.bind-api-2.3.2.jar
101-
janino/3.1.4//janino-3.1.4.jar
101+
janino/3.0.16//janino-3.0.16.jar
102102
javassist/3.25.0-GA//javassist-3.25.0-GA.jar
103103
javax.jdo/3.2.0-m3//javax.jdo-3.2.0-m3.jar
104104
javolution/5.5.1//javolution-5.5.1.jar

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@
182182
<commons-pool2.version>2.6.2</commons-pool2.version>
183183
<datanucleus-core.version>4.1.17</datanucleus-core.version>
184184
<guava.version>14.0.1</guava.version>
185-
<janino.version>3.1.4</janino.version>
185+
<janino.version>3.0.16</janino.version>
186186
<jersey.version>2.34</jersey.version>
187187
<joda.version>2.10.10</joda.version>
188188
<jodd.version>3.5.2</jodd.version>

sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/codegen/CodeGenerator.scala

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
package org.apache.spark.sql.catalyst.expressions.codegen
1919

2020
import java.io.ByteArrayInputStream
21+
import java.util.{Map => JavaMap}
2122

2223
import scala.collection.JavaConverters._
2324
import scala.collection.mutable
@@ -26,8 +27,8 @@ import scala.util.control.NonFatal
2627

2728
import com.google.common.cache.{CacheBuilder, CacheLoader}
2829
import com.google.common.util.concurrent.{ExecutionError, UncheckedExecutionException}
29-
import org.codehaus.commons.compiler.{CompileException, InternalCompilerException}
30-
import org.codehaus.janino.ClassBodyEvaluator
30+
import org.codehaus.commons.compiler.CompileException
31+
import org.codehaus.janino.{ByteArrayClassLoader, ClassBodyEvaluator, InternalCompilerException, SimpleCompiler}
3132
import org.codehaus.janino.util.ClassFile
3233

3334
import org.apache.spark.{TaskContext, TaskKilledException}
@@ -1519,7 +1520,14 @@ object CodeGenerator extends Logging {
15191520
*/
15201521
private def updateAndGetCompilationStats(evaluator: ClassBodyEvaluator): ByteCodeStats = {
15211522
// First retrieve the generated classes.
1522-
val classes = evaluator.getBytecodes.asScala
1523+
val classes = {
1524+
val resultField = classOf[SimpleCompiler].getDeclaredField("result")
1525+
resultField.setAccessible(true)
1526+
val loader = resultField.get(evaluator).asInstanceOf[ByteArrayClassLoader]
1527+
val classesField = loader.getClass.getDeclaredField("classes")
1528+
classesField.setAccessible(true)
1529+
classesField.get(loader).asInstanceOf[JavaMap[String, Array[Byte]]].asScala
1530+
}
15231531

15241532
// Then walk the classes to get at the method bytecode.
15251533
val codeAttr = Utils.classForName("org.codehaus.janino.util.ClassFile$CodeAttribute")

sql/catalyst/src/main/scala/org/apache/spark/sql/errors/QueryExecutionErrors.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ import java.util.concurrent.TimeoutException
2929
import com.fasterxml.jackson.core.JsonToken
3030
import org.apache.hadoop.fs.{FileAlreadyExistsException, FileStatus, Path}
3131
import org.apache.hadoop.fs.permission.FsPermission
32-
import org.codehaus.commons.compiler.{CompileException, InternalCompilerException}
32+
import org.codehaus.commons.compiler.CompileException
33+
import org.codehaus.janino.InternalCompilerException
3334

3435
import org.apache.spark.{Partition, SparkArithmeticException, SparkException, SparkUpgradeException}
3536
import org.apache.spark.executor.CommitDeniedException

sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/CodeGenerationSuite.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -563,8 +563,8 @@ class CodeGenerationSuite extends SparkFunSuite with ExpressionEvalHelper {
563563
assert(refTerm.contains("scala.math.LowPriorityOrderingImplicits$$anon$"))
564564
}
565565

566-
// TODO (SPARK-35579): Fix this bug in janino or work around it in Spark.
567-
ignore("SPARK-35578: final local variable bug in janino") {
566+
// TODO (SPARK-35579): Fix this bug in janino and upgrade janino in Spark.
567+
test("SPARK-35578: final local variable bug in janino") {
568568
val code =
569569
"""
570570
|public Object generate(Object[] references) {

0 commit comments

Comments
 (0)