You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by he...@apache.org on 2021/02/02 20:39:44 UTC
[commons-jexl] branch master updated: JEXL-344: avoid filling
stacktrace in return, continue, break supporting (jexl)exceptions
This is an automated email from the ASF dual-hosted git repository.
henrib pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-jexl.git
The following commit(s) were added to refs/heads/master by this push:
new ef4d76a JEXL-344: avoid filling stacktrace in return, continue, break supporting (jexl)exceptions
new c90791a Merge remote-tracking branch 'origin/master'
ef4d76a is described below
commit ef4d76a57b0b06a5b6b05c480d7dd9330362dd7e
Author: henrib <he...@apache.org>
AuthorDate: Tue Feb 2 21:39:28 2021 +0100
JEXL-344: avoid filling stacktrace in return, continue, break supporting (jexl)exceptions
---
.../java/org/apache/commons/jexl3/JexlException.java | 20 ++++++++++++++++----
1 file changed, 16 insertions(+), 4 deletions(-)
diff --git a/src/main/java/org/apache/commons/jexl3/JexlException.java b/src/main/java/org/apache/commons/jexl3/JexlException.java
index 35c7ff1..45d3299 100644
--- a/src/main/java/org/apache/commons/jexl3/JexlException.java
+++ b/src/main/java/org/apache/commons/jexl3/JexlException.java
@@ -69,7 +69,19 @@ public class JexlException extends RuntimeException {
* @param cause the exception causing the error
*/
public JexlException(final JexlNode node, final String msg, final Throwable cause) {
- super(msg != null ? msg : "", unwrap(cause));
+ this(node, msg != null ? msg : "", unwrap(cause), true);
+ }
+
+ /**
+ * Creates a new JexlException.
+ *
+ * @param node the node causing the error
+ * @param msg the error message
+ * @param cause the exception causing the error
+ * @param trace whether this exception has a stacktrace and can <em>not</em> be suppressed
+ */
+ protected JexlException(final JexlNode node, final String msg, final Throwable cause, boolean trace) {
+ super(msg != null ? msg : "", unwrap(cause), !trace, trace);
if (node != null) {
mark = node;
info = node.jexlInfo();
@@ -946,7 +958,7 @@ public class JexlException extends RuntimeException {
* @param value the returned value
*/
public Return(final JexlNode node, final String msg, final Object value) {
- super(node, msg, null);
+ super(node, msg, null, false);
this.result = value;
}
@@ -986,7 +998,7 @@ public class JexlException extends RuntimeException {
* @param node the break
*/
public Break(final JexlNode node) {
- super(node, "break loop", null);
+ super(node, "break loop", null, false);
}
}
@@ -1002,7 +1014,7 @@ public class JexlException extends RuntimeException {
* @param node the continue
*/
public Continue(final JexlNode node) {
- super(node, "continue loop", null);
+ super(node, "continue loop", null, false);
}
}