diff --git a/runtime/BUILD.bazel b/runtime/BUILD.bazel index 7058bfc8..5a78ad76 100644 --- a/runtime/BUILD.bazel +++ b/runtime/BUILD.bazel @@ -7,7 +7,10 @@ package( java_library( name = "runtime", - exports = ["//runtime/src/main/java/dev/cel/runtime"], + exports = [ + "//runtime/src/main/java/dev/cel/runtime", + "//runtime/src/main/java/dev/cel/runtime:evaluation_exception", + ], ) java_library( diff --git a/runtime/src/main/java/dev/cel/runtime/BUILD.bazel b/runtime/src/main/java/dev/cel/runtime/BUILD.bazel index 93e8fe8e..37912707 100644 --- a/runtime/src/main/java/dev/cel/runtime/BUILD.bazel +++ b/runtime/src/main/java/dev/cel/runtime/BUILD.bazel @@ -141,7 +141,6 @@ java_library( # keep sorted RUNTIME_SOURCES = [ - "CelEvaluationException.java", "CelFunctionOverload.java", "CelFunctionResolver.java", "CelLateFunctionBindings.java", @@ -157,12 +156,24 @@ RUNTIME_SOURCES = [ "UnknownContext.java", ] +java_library( + name = "evaluation_exception", + srcs = ["CelEvaluationException.java"], + tags = [ + ], + deps = [ + "//common", + "//common:error_codes", + ], +) + java_library( name = "runtime", srcs = RUNTIME_SOURCES, tags = [ ], deps = [ + ":evaluation_exception", ":evaluation_listener", ":runtime_helper", ":runtime_type_provider_legacy", @@ -186,7 +197,6 @@ java_library( "@maven//:com_google_guava_guava", "@maven//:com_google_protobuf_protobuf_java", "@maven//:com_google_protobuf_protobuf_java_util", - "@maven//:com_google_re2j_re2j", "@maven//:org_jspecify_jspecify", ], ) diff --git a/runtime/src/main/java/dev/cel/runtime/CelEvaluationException.java b/runtime/src/main/java/dev/cel/runtime/CelEvaluationException.java index fa961875..1982c3c1 100644 --- a/runtime/src/main/java/dev/cel/runtime/CelEvaluationException.java +++ b/runtime/src/main/java/dev/cel/runtime/CelEvaluationException.java @@ -31,16 +31,17 @@ public CelEvaluationException(String message, Throwable cause) { super(formatErrorMessage(message), cause); } - public CelEvaluationException(String message, Throwable cause, CelErrorCode errorCode) { - super(formatErrorMessage(message), cause, errorCode); - } - public CelEvaluationException(String message, CelErrorCode errorCode) { super(formatErrorMessage(message), errorCode); } - CelEvaluationException(InterpreterException cause, CelErrorCode errorCode) { - super(cause.getMessage(), cause.getCause(), errorCode); + public CelEvaluationException(String message, Throwable cause, CelErrorCode errorCode) { + this(message, cause, errorCode, true); + } + + CelEvaluationException( + String message, Throwable cause, CelErrorCode errorCode, boolean formatErrorMessage) { + super(formatErrorMessage ? formatErrorMessage(message) : message, cause, errorCode); } private static String formatErrorMessage(String message) { diff --git a/runtime/src/main/java/dev/cel/runtime/CelRuntime.java b/runtime/src/main/java/dev/cel/runtime/CelRuntime.java index 24522b11..edea5c6b 100644 --- a/runtime/src/main/java/dev/cel/runtime/CelRuntime.java +++ b/runtime/src/main/java/dev/cel/runtime/CelRuntime.java @@ -236,7 +236,8 @@ private static CelEvaluationException unwrapOrCreateEvaluationException( if (e.getCause() instanceof CelEvaluationException) { return (CelEvaluationException) e.getCause(); } - return new CelEvaluationException(e, e.getErrorCode()); + + return new CelEvaluationException(e.getMessage(), e.getCause(), e.getErrorCode(), false); } }