LuciferYang commented on code in PR #47561: URL: https://github.com/apache/spark/pull/47561#discussion_r1699323845
########## sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/orc/OrcEncryptionSuite.scala: ########## @@ -17,20 +17,52 @@ package org.apache.spark.sql.execution.datasources.orc +import java.util.{Map => JMap} import java.util.Random -import org.apache.orc.impl.HadoopShimsFactory +import scala.collection.mutable +import org.apache.orc.impl.{CryptoUtils, HadoopShimsFactory, KeyProvider} + +import org.apache.spark.SparkConf import org.apache.spark.sql.Row import org.apache.spark.sql.test.SharedSparkSession class OrcEncryptionSuite extends OrcTest with SharedSparkSession { import testImplicits._ + override def sparkConf: SparkConf = { + super.sparkConf.set("spark.hadoop.hadoop.security.key.provider.path", "test:///") + } + + override def beforeAll(): Unit = { + // Backup `CryptoUtils#keyProviderCache` and clear it. + keyProviderCacheRef.entrySet() + .forEach(e => keyProviderCacheBackup.put(e.getKey, e.getValue)) + keyProviderCacheRef.clear() + super.beforeAll() + } + + override def afterAll(): Unit = { + super.afterAll() + // Restore `CryptoUtils#keyProviderCache`. + keyProviderCacheRef.clear() + keyProviderCacheBackup.foreach { case (k, v) => keyProviderCacheRef.put(k, v) } + } + val originalData = Seq(("123456789", "dongj...@apache.org", "Dongjoon Hyun")) val rowDataWithoutKey = Row(null, "841626795E7D351555B835A002E3BF10669DE9B81C95A3D59E10865AC37EA7C3", "Dongjoon Hyun") + private val keyProviderCacheBackup: mutable.Map[String, KeyProvider] = mutable.Map.empty + + private val keyProviderCacheRef: JMap[String, KeyProvider] = { Review Comment: cc @dongjoon-hyun For branch-3.5, change to using the reflection API, which is compatible with Java 8. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org