Skip to content

Commit 29ed337

Browse files
Prashant Singhsrowen
authored andcommitted
[SPARK-35579][SQL] Bump janino to 3.1.7
### What changes were proposed in this pull request? upgrade janino to 3.1.7 from 3.0.16 ### Why are the changes needed? - The proposed version contains bug fix in janino by maropu. - janino-compiler/janino#148 - contains `getBytecodes` method which can be used to simplify the way to get bytecodes from ClassBodyEvaluator in CodeGenerator#updateAndGetCompilationStats method. (by LuciferYang) - #32536 ### Does this PR introduce _any_ user-facing change? No ### How was this patch tested? Existing UTs Closes #37202 from singhpk234/upgrade/bump-janino. Authored-by: Prashant Singh <[email protected]> Signed-off-by: Sean Owen <[email protected]>
1 parent 08808fb commit 29ed337

File tree

6 files changed

+9
-19
lines changed

6 files changed

+9
-19
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ commons-cli/1.5.0//commons-cli-1.5.0.jar
3939
commons-codec/1.15//commons-codec-1.15.jar
4040
commons-collections/3.2.2//commons-collections-3.2.2.jar
4141
commons-collections4/4.4//commons-collections4-4.4.jar
42-
commons-compiler/3.0.16//commons-compiler-3.0.16.jar
42+
commons-compiler/3.1.7//commons-compiler-3.1.7.jar
4343
commons-compress/1.21//commons-compress-1.21.jar
4444
commons-configuration/1.6//commons-configuration-1.6.jar
4545
commons-crypto/1.1.0//commons-crypto-1.1.0.jar
@@ -128,7 +128,7 @@ jakarta.servlet-api/4.0.3//jakarta.servlet-api-4.0.3.jar
128128
jakarta.validation-api/2.0.2//jakarta.validation-api-2.0.2.jar
129129
jakarta.ws.rs-api/2.1.6//jakarta.ws.rs-api-2.1.6.jar
130130
jakarta.xml.bind-api/2.3.2//jakarta.xml.bind-api-2.3.2.jar
131-
janino/3.0.16//janino-3.0.16.jar
131+
janino/3.1.7//janino-3.1.7.jar
132132
javassist/3.25.0-GA//javassist-3.25.0-GA.jar
133133
javax.inject/1//javax.inject-1.jar
134134
javax.jdo/3.2.0-m3//javax.jdo-3.2.0-m3.jar

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ commons-cli/1.5.0//commons-cli-1.5.0.jar
4040
commons-codec/1.15//commons-codec-1.15.jar
4141
commons-collections/3.2.2//commons-collections-3.2.2.jar
4242
commons-collections4/4.4//commons-collections4-4.4.jar
43-
commons-compiler/3.0.16//commons-compiler-3.0.16.jar
43+
commons-compiler/3.1.7//commons-compiler-3.1.7.jar
4444
commons-compress/1.21//commons-compress-1.21.jar
4545
commons-crypto/1.1.0//commons-crypto-1.1.0.jar
4646
commons-dbcp/1.4//commons-dbcp-1.4.jar
@@ -116,7 +116,7 @@ jakarta.servlet-api/4.0.3//jakarta.servlet-api-4.0.3.jar
116116
jakarta.validation-api/2.0.2//jakarta.validation-api-2.0.2.jar
117117
jakarta.ws.rs-api/2.1.6//jakarta.ws.rs-api-2.1.6.jar
118118
jakarta.xml.bind-api/2.3.2//jakarta.xml.bind-api-2.3.2.jar
119-
janino/3.0.16//janino-3.0.16.jar
119+
janino/3.1.7//janino-3.1.7.jar
120120
javassist/3.25.0-GA//javassist-3.25.0-GA.jar
121121
javax.jdo/3.2.0-m3//javax.jdo-3.2.0-m3.jar
122122
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
@@ -189,7 +189,7 @@
189189
<commons-pool2.version>2.11.1</commons-pool2.version>
190190
<datanucleus-core.version>4.1.17</datanucleus-core.version>
191191
<guava.version>14.0.1</guava.version>
192-
<janino.version>3.0.16</janino.version>
192+
<janino.version>3.1.7</janino.version>
193193
<jersey.version>2.35</jersey.version>
194194
<joda.version>2.10.14</joda.version>
195195
<jodd.version>3.5.2</jodd.version>

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

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

2020
import java.io.ByteArrayInputStream
21-
import java.util.{Map => JavaMap}
2221

2322
import scala.annotation.tailrec
2423
import scala.collection.JavaConverters._
@@ -28,8 +27,8 @@ import scala.util.control.NonFatal
2827

2928
import com.google.common.cache.{CacheBuilder, CacheLoader}
3029
import com.google.common.util.concurrent.{ExecutionError, UncheckedExecutionException}
31-
import org.codehaus.commons.compiler.CompileException
32-
import org.codehaus.janino.{ByteArrayClassLoader, ClassBodyEvaluator, InternalCompilerException, SimpleCompiler}
30+
import org.codehaus.commons.compiler.{CompileException, InternalCompilerException}
31+
import org.codehaus.janino.ClassBodyEvaluator
3332
import org.codehaus.janino.util.ClassFile
3433

3534
import org.apache.spark.{TaskContext, TaskKilledException}
@@ -1524,14 +1523,7 @@ object CodeGenerator extends Logging {
15241523
*/
15251524
private def updateAndGetCompilationStats(evaluator: ClassBodyEvaluator): ByteCodeStats = {
15261525
// First retrieve the generated classes.
1527-
val classes = {
1528-
val resultField = classOf[SimpleCompiler].getDeclaredField("result")
1529-
resultField.setAccessible(true)
1530-
val loader = resultField.get(evaluator).asInstanceOf[ByteArrayClassLoader]
1531-
val classesField = loader.getClass.getDeclaredField("classes")
1532-
classesField.setAccessible(true)
1533-
classesField.get(loader).asInstanceOf[JavaMap[String, Array[Byte]]].asScala
1534-
}
1526+
val classes = evaluator.getBytecodes.asScala
15351527

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

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,7 @@ import java.util.concurrent.TimeoutException
3030
import com.fasterxml.jackson.core.{JsonParser, JsonToken}
3131
import org.apache.hadoop.fs.{FileAlreadyExistsException, FileStatus, Path}
3232
import org.apache.hadoop.fs.permission.FsPermission
33-
import org.codehaus.commons.compiler.CompileException
34-
import org.codehaus.janino.InternalCompilerException
33+
import org.codehaus.commons.compiler.{CompileException, InternalCompilerException}
3534

3635
import org.apache.spark.{Partition, SparkArithmeticException, SparkArrayIndexOutOfBoundsException, SparkClassNotFoundException, SparkConcurrentModificationException, SparkDateTimeException, SparkException, SparkFileAlreadyExistsException, SparkFileNotFoundException, SparkIllegalArgumentException, SparkIndexOutOfBoundsException, SparkNoSuchElementException, SparkNoSuchMethodException, SparkNumberFormatException, SparkRuntimeException, SparkSecurityException, SparkSQLException, SparkSQLFeatureNotSupportedException, SparkUnsupportedOperationException, SparkUpgradeException}
3736
import org.apache.spark.executor.CommitDeniedException

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -568,7 +568,6 @@ class CodeGenerationSuite extends SparkFunSuite with ExpressionEvalHelper {
568568
assert(refTerm.contains("scala.math.LowPriorityOrderingImplicits$$anon$"))
569569
}
570570

571-
// TODO (SPARK-35579): Fix this bug in janino and upgrade janino in Spark.
572571
test("SPARK-35578: final local variable bug in janino") {
573572
val code =
574573
"""

0 commit comments

Comments
 (0)