diff --git a/sql/catalyst/src/main/java/org/apache/spark/sql/catalyst/expressions/ExpressionImplUtils.java b/sql/catalyst/src/main/java/org/apache/spark/sql/catalyst/expressions/ExpressionImplUtils.java index 8c42e5bf112c4..a5228edc33c83 100644 --- a/sql/catalyst/src/main/java/org/apache/spark/sql/catalyst/expressions/ExpressionImplUtils.java +++ b/sql/catalyst/src/main/java/org/apache/spark/sql/catalyst/expressions/ExpressionImplUtils.java @@ -274,7 +274,7 @@ private static byte[] aesInternal( return cipher.doFinal(input, 0, input.length); } } - } catch (GeneralSecurityException e) { + } catch (GeneralSecurityException | IllegalArgumentException e) { throw QueryExecutionErrors.aesCryptoError(e.getMessage()); } } diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/ExpressionImplUtilsSuite.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/ExpressionImplUtilsSuite.scala index 25b647baf7b6d..e197c71026eba 100644 --- a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/ExpressionImplUtilsSuite.scala +++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/ExpressionImplUtilsSuite.scala @@ -325,6 +325,19 @@ class ExpressionImplUtilsSuite extends SparkFunSuite { "functionName" -> "`aes_encrypt`/`aes_decrypt`", "detailMessage" -> "Tag mismatch[!]?" ) + ), + // Empty input + TestCase( + "Spark", + "abcdefghijklmnop12345678ABCDEFGH", + "", + "GCM", + expectedErrorClassOpt = Some("INVALID_PARAMETER_VALUE.AES_CRYPTO_ERROR"), + errorParamsMap = Map( + "parameter" -> "`expr`, `key`", + "functionName" -> "`aes_encrypt`/`aes_decrypt`", + "detailMessage" -> "Invalid buffer arguments" + ) ) )