Modified:
websites/production/commons/content/proper/commons-jexl/jacoco/org.apache.commons.jexl3/JexlException.java.html
==============================================================================
---
websites/production/commons/content/proper/commons-jexl/jacoco/org.apache.commons.jexl3/JexlException.java.html
(original)
+++
websites/production/commons/content/proper/commons-jexl/jacoco/org.apache.commons.jexl3/JexlException.java.html
Fri Jun 25 11:11:58 2021
@@ -40,6 +40,7 @@ import java.io.StringReader;
* @since 2.0
*/
public class JexlException extends RuntimeException {
+ private static final long serialVersionUID = 20210606123900L;
/** The point of origin for this exception. */
private final transient JexlNode mark;
@@ -58,8 +59,8 @@ public class JexlException extends Runti
* @param msg the error message
*/
public JexlException(final JexlNode node, final String msg) {
-<span class="fc" id="L61"> this(node, msg, null);</span>
-<span class="fc" id="L62"> }</span>
+<span class="fc" id="L62"> this(node, msg, null);</span>
+<span class="fc" id="L63"> }</span>
/**
* Creates a new JexlException.
@@ -69,8 +70,8 @@ public class JexlException extends Runti
* @param cause the exception causing the error
*/
public JexlException(final JexlNode node, final String msg, final
Throwable cause) {
-<span class="fc bfc" id="L72" title="All 2 branches covered.">
this(node, msg != null ? msg : "", unwrap(cause), true);</span>
-<span class="fc" id="L73"> }</span>
+<span class="fc bfc" id="L73" title="All 2 branches covered.">
this(node, msg != null ? msg : "", unwrap(cause), true);</span>
+<span class="fc" id="L74"> }</span>
/**
* Creates a new JexlException.
@@ -81,15 +82,15 @@ public class JexlException extends Runti
* @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) {
-<span class="fc bfc" id="L84" title="All 4 branches covered.">
super(msg != null ? msg : "", unwrap(cause), !trace, trace);</span>
-<span class="fc bfc" id="L85" title="All 2 branches covered."> if (node
!= null) {</span>
-<span class="fc" id="L86"> mark = node;</span>
-<span class="fc" id="L87"> info = node.jexlInfo();</span>
+<span class="fc bfc" id="L85" title="All 4 branches covered.">
super(msg != null ? msg : "", unwrap(cause), !trace, trace);</span>
+<span class="fc bfc" id="L86" title="All 2 branches covered."> if (node
!= null) {</span>
+<span class="fc" id="L87"> mark = node;</span>
+<span class="fc" id="L88"> info = node.jexlInfo();</span>
} else {
-<span class="fc" id="L89"> mark = null;</span>
-<span class="fc" id="L90"> info = null;</span>
+<span class="fc" id="L90"> mark = null;</span>
+<span class="fc" id="L91"> info = null;</span>
}
-<span class="fc" id="L92"> }</span>
+<span class="fc" id="L93"> }</span>
/**
* Creates a new JexlException.
@@ -99,10 +100,10 @@ public class JexlException extends Runti
* @param cause the exception causing the error
*/
public JexlException(final JexlInfo jinfo, final String msg, final
Throwable cause) {
-<span class="pc bpc" id="L102" title="1 of 2 branches missed.">
super(msg != null ? msg : "", unwrap(cause));</span>
-<span class="fc" id="L103"> mark = null;</span>
-<span class="fc" id="L104"> info = jinfo;</span>
-<span class="fc" id="L105"> }</span>
+<span class="pc bpc" id="L103" title="1 of 2 branches missed.">
super(msg != null ? msg : "", unwrap(cause));</span>
+<span class="fc" id="L104"> mark = null;</span>
+<span class="fc" id="L105"> info = jinfo;</span>
+<span class="fc" id="L106"> }</span>
/**
* Gets the specific information for this exception.
@@ -110,7 +111,7 @@ public class JexlException extends Runti
* @return the information
*/
public JexlInfo getInfo() {
-<span class="fc" id="L113"> return detailedInfo(mark, info);</span>
+<span class="fc" id="L114"> return detailedInfo(mark, info);</span>
}
/**
@@ -120,15 +121,15 @@ public class JexlException extends Runti
* @return a string builder
*/
private static StringBuilder errorAt(final JexlNode node) {
-<span class="pc bpc" id="L123" title="1 of 2 branches missed."> final
JexlInfo info = node != null? detailedInfo(node, node.jexlInfo()) : null;</span>
-<span class="fc" id="L124"> final StringBuilder msg = new
StringBuilder();</span>
-<span class="pc bpc" id="L125" title="1 of 2 branches missed."> if
(info != null) {</span>
-<span class="fc" id="L126"> msg.append(info.toString());</span>
+<span class="pc bpc" id="L124" title="1 of 2 branches missed."> final
JexlInfo info = node != null? detailedInfo(node, node.jexlInfo()) : null;</span>
+<span class="fc" id="L125"> final StringBuilder msg = new
StringBuilder();</span>
+<span class="pc bpc" id="L126" title="1 of 2 branches missed."> if
(info != null) {</span>
+<span class="fc" id="L127"> msg.append(info.toString());</span>
} else {
-<span class="nc" id="L128"> msg.append("?:");</span>
+<span class="nc" id="L129"> msg.append("?:");</span>
}
-<span class="fc" id="L130"> msg.append(' ');</span>
-<span class="fc" id="L131"> return msg;</span>
+<span class="fc" id="L131"> msg.append(' ');</span>
+<span class="fc" id="L132"> return msg;</span>
}
/**
@@ -141,7 +142,7 @@ public class JexlException extends Runti
*/
@Deprecated
public static JexlInfo getInfo(final JexlNode node, final JexlInfo info) {
-<span class="nc" id="L144"> return detailedInfo(node, info);</span>
+<span class="nc" id="L145"> return detailedInfo(node, info);</span>
}
/**
@@ -152,18 +153,18 @@ public class JexlException extends Runti
* @return the information or null
*/
private static JexlInfo detailedInfo(final JexlNode node, final JexlInfo
info) {
-<span class="pc bpc" id="L155" title="1 of 4 branches missed."> if
(info != null && node != null) {</span>
-<span class="fc" id="L156"> final Debugger dbg = new
Debugger();</span>
-<span class="pc bpc" id="L157" title="1 of 2 branches missed."> if
(dbg.debug(node)) {</span>
-<span class="fc" id="L158"> return new JexlInfo(info) {</span>
+<span class="pc bpc" id="L156" title="1 of 4 branches missed."> if
(info != null && node != null) {</span>
+<span class="fc" id="L157"> final Debugger dbg = new
Debugger();</span>
+<span class="pc bpc" id="L158" title="1 of 2 branches missed."> if
(dbg.debug(node)) {</span>
+<span class="fc" id="L159"> return new JexlInfo(info) {</span>
@Override
public JexlInfo.Detail getDetail() {
-<span class="fc" id="L161"> return dbg;</span>
+<span class="fc" id="L162"> return dbg;</span>
}
};
}
}
-<span class="fc" id="L166"> return info;</span>
+<span class="fc" id="L167"> return info;</span>
}
/**
@@ -172,7 +173,7 @@ public class JexlException extends Runti
* @return this exception
*/
public JexlException clean() {
-<span class="fc" id="L175"> return clean(this);</span>
+<span class="fc" id="L176"> return clean(this);</span>
}
/**
@@ -183,18 +184,18 @@ public class JexlException extends Runti
* @return the throwable
*/
private static <X extends Throwable> X clean(final X xthrow) {
-<span class="pc bpc" id="L186" title="1 of 2 branches missed."> if
(xthrow != null) {</span>
-<span class="fc" id="L187"> final List<StackTraceElement>
stackJexl = new ArrayList<>();</span>
-<span class="fc bfc" id="L188" title="All 2 branches covered."> for
(final StackTraceElement se : xthrow.getStackTrace()) {</span>
-<span class="fc" id="L189"> final String className =
se.getClassName();</span>
-<span class="fc bfc" id="L190" title="All 2 branches covered.">
if (!className.startsWith("org.apache.commons.jexl3.internal")</span>
-<span class="fc bfc" id="L191" title="All 2 branches covered.">
&&
!className.startsWith("org.apache.commons.jexl3.parser")) {</span>
-<span class="fc" id="L192"> stackJexl.add(se);</span>
+<span class="pc bpc" id="L187" title="1 of 2 branches missed."> if
(xthrow != null) {</span>
+<span class="fc" id="L188"> final List<StackTraceElement>
stackJexl = new ArrayList<>();</span>
+<span class="fc bfc" id="L189" title="All 2 branches covered."> for
(final StackTraceElement se : xthrow.getStackTrace()) {</span>
+<span class="fc" id="L190"> final String className =
se.getClassName();</span>
+<span class="fc bfc" id="L191" title="All 2 branches covered.">
if (!className.startsWith("org.apache.commons.jexl3.internal")</span>
+<span class="fc bfc" id="L192" title="All 2 branches covered.">
&&
!className.startsWith("org.apache.commons.jexl3.parser")) {</span>
+<span class="fc" id="L193"> stackJexl.add(se);</span>
}
}
-<span class="fc" id="L195">
xthrow.setStackTrace(stackJexl.toArray(new
StackTraceElement[stackJexl.size()]));</span>
+<span class="fc" id="L196">
xthrow.setStackTrace(stackJexl.toArray(new
StackTraceElement[stackJexl.size()]));</span>
}
-<span class="fc" id="L197"> return xthrow;</span>
+<span class="fc" id="L198"> return xthrow;</span>
}
/**
@@ -204,12 +205,12 @@ public class JexlException extends Runti
* @return the cause
*/
private static Throwable unwrap(final Throwable xthrow) {
-<span class="pc bpc" id="L207" title="1 of 6 branches missed."> if
(xthrow instanceof TryFailed</span>
+<span class="pc bpc" id="L208" title="1 of 6 branches missed."> if
(xthrow instanceof TryFailed</span>
|| xthrow instanceof InvocationTargetException
|| xthrow instanceof UndeclaredThrowableException) {
-<span class="fc" id="L210"> return xthrow.getCause();</span>
+<span class="fc" id="L211"> return xthrow.getCause();</span>
}
-<span class="fc" id="L212"> return xthrow;</span>
+<span class="fc" id="L213"> return xthrow;</span>
}
/**
@@ -220,13 +221,13 @@ public class JexlException extends Runti
* @return the info to use
*/
private static JexlInfo merge(final JexlInfo info, final JavaccError
cause) {
-<span class="nc bnc" id="L223" title="All 4 branches missed."> if
(cause == null || cause.getLine() < 0) {</span>
-<span class="nc" id="L224"> return info;</span>
+<span class="nc bnc" id="L224" title="All 4 branches missed."> if
(cause == null || cause.getLine() < 0) {</span>
+<span class="nc" id="L225"> return info;</span>
}
-<span class="nc bnc" id="L226" title="All 2 branches missed."> if (info
== null) {</span>
-<span class="nc" id="L227"> return new JexlInfo("",
cause.getLine(), cause.getColumn());</span>
+<span class="nc bnc" id="L227" title="All 2 branches missed."> if (info
== null) {</span>
+<span class="nc" id="L228"> return new JexlInfo("",
cause.getLine(), cause.getColumn());</span>
}
-<span class="nc" id="L229"> return new JexlInfo(info.getName(),
cause.getLine(), cause.getColumn());</span>
+<span class="nc" id="L230"> return new JexlInfo(info.getName(),
cause.getLine(), cause.getColumn());</span>
}
/**
@@ -235,9 +236,9 @@ public class JexlException extends Runti
* @return the message
*/
protected String detailedMessage() {
-<span class="fc" id="L238"> Class<? extends JexlException> clazz
= getClass();</span>
-<span class="fc bfc" id="L239" title="All 2 branches covered."> String
name = clazz == JexlException.class? "JEXL" :
clazz.getSimpleName().toLowerCase();</span>
-<span class="fc" id="L240"> return name + " error : " +
getDetail();</span>
+<span class="fc" id="L239"> Class<? extends JexlException> clazz
= getClass();</span>
+<span class="fc bfc" id="L240" title="All 2 branches covered."> String
name = clazz == JexlException.class? "JEXL" :
clazz.getSimpleName().toLowerCase();</span>
+<span class="fc" id="L241"> return name + " error : " +
getDetail();</span>
}
/**
@@ -245,7 +246,7 @@ public class JexlException extends Runti
* @since 3.2
*/
public final String getDetail() {
-<span class="fc" id="L248"> return super.getMessage();</span>
+<span class="fc" id="L249"> return super.getMessage();</span>
}
/**
@@ -256,23 +257,23 @@ public class JexlException extends Runti
* @return the formatted message
*/
protected String parserError(final String prefix, final String expr) {
-<span class="fc" id="L259"> final int length = expr.length();</span>
-<span class="fc bfc" id="L260" title="All 2 branches covered."> if
(length < MAX_EXCHARLOC) {</span>
-<span class="fc" id="L261"> return prefix + " error in '"
+ expr + "'";</span>
- }
-<span class="fc" id="L263"> final int me = MAX_EXCHARLOC / 2;</span>
-<span class="fc" id="L264"> int begin = info.getColumn() - me;</span>
-<span class="pc bpc" id="L265" title="1 of 4 branches missed."> if
(begin < 0 || length < me) {</span>
-<span class="fc" id="L266"> begin = 0;</span>
-<span class="pc bpc" id="L267" title="1 of 2 branches missed."> } else
if (begin > length) {</span>
-<span class="fc" id="L268"> begin = me;</span>
- }
-<span class="fc" id="L270"> int end = begin + MAX_EXCHARLOC;</span>
-<span class="fc bfc" id="L271" title="All 2 branches covered."> if (end
> length) {</span>
-<span class="fc" id="L272"> end = length;</span>
+<span class="fc" id="L260"> final int length = expr.length();</span>
+<span class="fc bfc" id="L261" title="All 2 branches covered."> if
(length < MAX_EXCHARLOC) {</span>
+<span class="fc" id="L262"> return prefix + " error in '"
+ expr + "'";</span>
+ }
+<span class="fc" id="L264"> final int me = MAX_EXCHARLOC / 2;</span>
+<span class="fc" id="L265"> int begin = info.getColumn() - me;</span>
+<span class="pc bpc" id="L266" title="1 of 4 branches missed."> if
(begin < 0 || length < me) {</span>
+<span class="fc" id="L267"> begin = 0;</span>
+<span class="pc bpc" id="L268" title="1 of 2 branches missed."> } else
if (begin > length) {</span>
+<span class="fc" id="L269"> begin = me;</span>
+ }
+<span class="fc" id="L271"> int end = begin + MAX_EXCHARLOC;</span>
+<span class="fc bfc" id="L272" title="All 2 branches covered."> if (end
> length) {</span>
+<span class="fc" id="L273"> end = length;</span>
}
-<span class="fc" id="L274"> return prefix + " error near '...
"</span>
-<span class="fc" id="L275"> + expr.substring(begin, end) +
" ...'";</span>
+<span class="fc" id="L275"> return prefix + " error near '...
"</span>
+<span class="fc" id="L276"> + expr.substring(begin, end) +
" ...'";</span>
}
/**
@@ -280,7 +281,7 @@ public class JexlException extends Runti
* @return the info
*/
protected JexlInfo info() {
-<span class="fc" id="L283"> return info;</span>
+<span class="fc" id="L284"> return info;</span>
}
/**
@@ -289,18 +290,19 @@ public class JexlException extends Runti
* @since 3.0
*/
public static class Tokenization extends JexlException {
+ private static final long serialVersionUID = 20210606123901L;
/**
* Creates a new Tokenization exception instance.
* @param info the location info
* @param cause the javacc cause
*/
public Tokenization(final JexlInfo info, final TokenMgrException
cause) {
-<span class="nc" id="L298"> super(merge(info, cause),
Objects.requireNonNull(cause).getAfter(), null);</span>
-<span class="nc" id="L299"> }</span>
+<span class="nc" id="L300"> super(merge(info, cause),
Objects.requireNonNull(cause).getAfter(), null);</span>
+<span class="nc" id="L301"> }</span>
@Override
protected String detailedMessage() {
-<span class="nc" id="L303"> return
parserError("tokenization", getDetail());</span>
+<span class="nc" id="L305"> return
parserError("tokenization", getDetail());</span>
}
}
@@ -310,6 +312,7 @@ public class JexlException extends Runti
* @since 3.0
*/
public static class Parsing extends JexlException {
+ private static final long serialVersionUID = 20210606123902L;
/**
* Creates a new Parsing exception instance.
*
@@ -317,8 +320,8 @@ public class JexlException extends Runti
* @param cause the javacc cause
*/
public Parsing(final JexlInfo info, final ParseException cause) {
-<span class="nc" id="L320"> super(merge(info, cause),
Objects.requireNonNull(cause).getAfter(), null);</span>
-<span class="nc" id="L321"> }</span>
+<span class="nc" id="L323"> super(merge(info, cause),
Objects.requireNonNull(cause).getAfter(), null);</span>
+<span class="nc" id="L324"> }</span>
/**
* Creates a new Parsing exception instance.
@@ -327,12 +330,12 @@ public class JexlException extends Runti
* @param msg the message
*/
public Parsing(final JexlInfo info, final String msg) {
-<span class="fc" id="L330"> super(info, msg, null);</span>
-<span class="fc" id="L331"> }</span>
+<span class="fc" id="L333"> super(info, msg, null);</span>
+<span class="fc" id="L334"> }</span>
@Override
protected String detailedMessage() {
-<span class="fc" id="L335"> return parserError("parsing",
getDetail());</span>
+<span class="fc" id="L338"> return parserError("parsing",
getDetail());</span>
}
}
@@ -342,6 +345,7 @@ public class JexlException extends Runti
* @since 3.0
*/
public static class Ambiguous extends Parsing {
+ private static final long serialVersionUID = 20210606123903L;
/** The mark at which ambiguity might stop and recover. */
private final transient JexlInfo recover;
/**
@@ -350,8 +354,8 @@ public class JexlException extends Runti
* @param expr the source expression line
*/
public Ambiguous(final JexlInfo info, final String expr) {
-<span class="nc" id="L353"> this(info, null, expr);</span>
-<span class="nc" id="L354"> }</span>
+<span class="nc" id="L357"> this(info, null, expr);</span>
+<span class="nc" id="L358"> }</span>
/**
* Creates a new Ambiguous statement exception instance.
@@ -360,13 +364,13 @@ public class JexlException extends Runti
* @param expr the source expression line
*/
public Ambiguous(final JexlInfo begin, final JexlInfo end, final
String expr) {
-<span class="fc" id="L363"> super(begin, expr);</span>
-<span class="fc" id="L364"> recover = end;</span>
-<span class="fc" id="L365"> }</span>
+<span class="fc" id="L367"> super(begin, expr);</span>
+<span class="fc" id="L368"> recover = end;</span>
+<span class="fc" id="L369"> }</span>
@Override
protected String detailedMessage() {
-<span class="fc" id="L369"> return parserError("ambiguous
statement", getDetail());</span>
+<span class="fc" id="L373"> return parserError("ambiguous
statement", getDetail());</span>
}
/**
@@ -376,10 +380,10 @@ public class JexlException extends Runti
* or null if no recovery was possible
*/
public String tryCleanSource(final String src) {
-<span class="fc" id="L379"> final JexlInfo ji = info();</span>
-<span class="pc bpc" id="L380" title="2 of 4 branches missed.">
return ji == null || recover == null</span>
+<span class="fc" id="L383"> final JexlInfo ji = info();</span>
+<span class="pc bpc" id="L384" title="2 of 4 branches missed.">
return ji == null || recover == null</span>
? src
-<span class="fc" id="L382"> : sliceSource(src, ji.getLine(),
ji.getColumn(), recover.getLine(), recover.getColumn());</span>
+<span class="fc" id="L386"> : sliceSource(src, ji.getLine(),
ji.getColumn(), recover.getLine(), recover.getColumn());</span>
}
}
@@ -393,28 +397,28 @@ public class JexlException extends Runti
* @return the source with the (begin) to (to) zone removed
*/
public static String sliceSource(final String src, final int froml, final
int fromc, final int tol, final int toc) {
-<span class="fc" id="L396"> final BufferedReader reader = new
BufferedReader(new StringReader(src));</span>
-<span class="fc" id="L397"> final StringBuilder buffer = new
StringBuilder();</span>
+<span class="fc" id="L400"> final BufferedReader reader = new
BufferedReader(new StringReader(src));</span>
+<span class="fc" id="L401"> final StringBuilder buffer = new
StringBuilder();</span>
String line;
-<span class="fc" id="L399"> int cl = 1;</span>
+<span class="fc" id="L403"> int cl = 1;</span>
try {
-<span class="fc bfc" id="L401" title="All 2 branches covered.">
while ((line = reader.readLine()) != null) {</span>
-<span class="pc bpc" id="L402" title="1 of 4 branches missed.">
if (cl < froml || cl > tol) {</span>
-<span class="fc" id="L403">
buffer.append(line).append('\n');</span>
+<span class="fc bfc" id="L405" title="All 2 branches covered.">
while ((line = reader.readLine()) != null) {</span>
+<span class="pc bpc" id="L406" title="1 of 4 branches missed.">
if (cl < froml || cl > tol) {</span>
+<span class="fc" id="L407">
buffer.append(line).append('\n');</span>
} else {
-<span class="pc bpc" id="L405" title="1 of 2 branches missed.">
if (cl == froml) {</span>
-<span class="fc" id="L406"> buffer.append(line, 0,
fromc - 1);</span>
+<span class="pc bpc" id="L409" title="1 of 2 branches missed.">
if (cl == froml) {</span>
+<span class="fc" id="L410"> buffer.append(line, 0,
fromc - 1);</span>
}
-<span class="pc bpc" id="L408" title="1 of 2 branches missed.">
if (cl == tol) {</span>
-<span class="fc" id="L409">
buffer.append(line.substring(toc + 1));</span>
+<span class="pc bpc" id="L412" title="1 of 2 branches missed.">
if (cl == tol) {</span>
+<span class="fc" id="L413">
buffer.append(line.substring(toc + 1));</span>
}
} // else ignore line
-<span class="fc" id="L412"> cl += 1;</span>
+<span class="fc" id="L416"> cl += 1;</span>
}
-<span class="nc" id="L414"> } catch (final IOException xignore) {</span>
+<span class="nc" id="L418"> } catch (final IOException xignore) {</span>
//damn the checked exceptions :-)
-<span class="fc" id="L416"> }</span>
-<span class="fc" id="L417"> return buffer.toString();</span>
+<span class="fc" id="L420"> }</span>
+<span class="fc" id="L421"> return buffer.toString();</span>
}
/**
@@ -423,6 +427,7 @@ public class JexlException extends Runti
* @since 3.2
*/
public static class StackOverflow extends JexlException {
+ private static final long serialVersionUID = 20210606123904L;
/**
* Creates a new stack overflow exception instance.
*
@@ -431,12 +436,12 @@ public class JexlException extends Runti
* @param cause the exception causing the error
*/
public StackOverflow(final JexlInfo info, final String name, final
Throwable cause) {
-<span class="fc" id="L434"> super(info, name, cause);</span>
-<span class="fc" id="L435"> }</span>
+<span class="fc" id="L439"> super(info, name, cause);</span>
+<span class="fc" id="L440"> }</span>
@Override
protected String detailedMessage() {
-<span class="fc" id="L439"> return "stack overflow " +
getDetail();</span>
+<span class="fc" id="L444"> return "stack overflow " +
getDetail();</span>
}
}
@@ -446,6 +451,7 @@ public class JexlException extends Runti
* @since 3.0
*/
public static class Assignment extends Parsing {
+ private static final long serialVersionUID = 20210606123905L;
/**
* Creates a new Assignment statement exception instance.
*
@@ -453,12 +459,12 @@ public class JexlException extends Runti
* @param expr the source expression line
*/
public Assignment(final JexlInfo info, final String expr) {
-<span class="fc" id="L456"> super(info, expr);</span>
-<span class="fc" id="L457"> }</span>
+<span class="fc" id="L462"> super(info, expr);</span>
+<span class="fc" id="L463"> }</span>
@Override
protected String detailedMessage() {
-<span class="fc" id="L461"> return
parserError("assignment", getDetail());</span>
+<span class="fc" id="L467"> return
parserError("assignment", getDetail());</span>
}
}
@@ -468,6 +474,7 @@ public class JexlException extends Runti
* @since 3.2
*/
public static class Feature extends Parsing {
+ private static final long serialVersionUID = 20210606123906L;
/** The feature code. */
private final int code;
/**
@@ -477,13 +484,13 @@ public class JexlException extends Runti
* @param expr the source expression line
*/
public Feature(final JexlInfo info, final int feature, final String
expr) {
-<span class="fc" id="L480"> super(info, expr);</span>
-<span class="fc" id="L481"> this.code = feature;</span>
-<span class="fc" id="L482"> }</span>
+<span class="fc" id="L487"> super(info, expr);</span>
+<span class="fc" id="L488"> this.code = feature;</span>
+<span class="fc" id="L489"> }</span>
@Override
protected String detailedMessage() {
-<span class="fc" id="L486"> return
parserError(JexlFeatures.stringify(code), getDetail());</span>
+<span class="fc" id="L493"> return
parserError(JexlFeatures.stringify(code), getDetail());</span>
}
}
@@ -493,13 +500,13 @@ public class JexlException extends Runti
/**
* The various type of variable issues.
*/
-<span class="fc" id="L496"> public enum VariableIssue {</span>
+<span class="fc" id="L503"> public enum VariableIssue {</span>
/** The variable is undefined. */
-<span class="fc" id="L498"> UNDEFINED,</span>
+<span class="fc" id="L505"> UNDEFINED,</span>
/** The variable is already declared. */
-<span class="fc" id="L500"> REDEFINED,</span>
+<span class="fc" id="L507"> REDEFINED,</span>
/** The variable has a null value. */
-<span class="fc" id="L502"> NULLVALUE;</span>
+<span class="fc" id="L509"> NULLVALUE;</span>
/**
* Stringifies the variable issue.
@@ -507,11 +514,11 @@ public class JexlException extends Runti
* @return the issue message
*/
public String message(final String var) {
-<span class="fc bfc" id="L510" title="All 3 branches covered.">
switch(this) {</span>
-<span class="fc" id="L511"> case NULLVALUE : return VARQUOTE +
var + "' is null";</span>
-<span class="fc" id="L512"> case REDEFINED : return VARQUOTE +
var + "' is already defined";</span>
+<span class="fc bfc" id="L517" title="All 3 branches covered.">
switch(this) {</span>
+<span class="fc" id="L518"> case NULLVALUE : return VARQUOTE +
var + "' is null";</span>
+<span class="fc" id="L519"> case REDEFINED : return VARQUOTE +
var + "' is already defined";</span>
case UNDEFINED :
-<span class="fc" id="L514"> default: return VARQUOTE + var +
"' is undefined";</span>
+<span class="fc" id="L521"> default: return VARQUOTE + var +
"' is undefined";</span>
}
}
}
@@ -522,6 +529,7 @@ public class JexlException extends Runti
* @since 3.0
*/
public static class Variable extends JexlException {
+ private static final long serialVersionUID = 20210606123907L;
/**
* Undefined variable flag.
*/
@@ -535,9 +543,9 @@ public class JexlException extends Runti
* @param vi the variable issue
*/
public Variable(final JexlNode node, final String var, final
VariableIssue vi) {
-<span class="fc" id="L538"> super(node, var, null);</span>
-<span class="fc" id="L539"> issue = vi;</span>
-<span class="fc" id="L540"> }</span>
+<span class="fc" id="L546"> super(node, var, null);</span>
+<span class="fc" id="L547"> issue = vi;</span>
+<span class="fc" id="L548"> }</span>
/**
* Creates a new Variable exception instance.
@@ -547,8 +555,8 @@ public class JexlException extends Runti
* @param undef whether the variable is undefined or evaluated as null
*/
public Variable(final JexlNode node, final String var, final boolean
undef) {
-<span class="pc bpc" id="L550" title="1 of 2 branches missed.">
this(node, var, undef ? VariableIssue.UNDEFINED :
VariableIssue.NULLVALUE);</span>
-<span class="fc" id="L551"> }</span>
+<span class="pc bpc" id="L558" title="1 of 2 branches missed.">
this(node, var, undef ? VariableIssue.UNDEFINED :
VariableIssue.NULLVALUE);</span>
+<span class="fc" id="L559"> }</span>
/**
* Whether the variable causing an error is undefined or evaluated as
null.
@@ -556,19 +564,19 @@ public class JexlException extends Runti
* @return true if undefined, false otherwise
*/
public boolean isUndefined() {
-<span class="fc bfc" id="L559" title="All 2 branches covered.">
return issue == VariableIssue.UNDEFINED;</span>
+<span class="fc bfc" id="L567" title="All 2 branches covered.">
return issue == VariableIssue.UNDEFINED;</span>
}
/**
* @return the variable name
*/
public String getVariable() {
-<span class="fc" id="L566"> return getDetail();</span>
+<span class="fc" id="L574"> return getDetail();</span>
}
@Override
protected String detailedMessage() {
-<span class="fc" id="L571"> return
issue.message(getVariable());</span>
+<span class="fc" id="L579"> return
issue.message(getVariable());</span>
}
}
@@ -583,7 +591,7 @@ public class JexlException extends Runti
*/
@Deprecated
public static String variableError(final JexlNode node, final String
variable, final boolean undef) {
-<span class="nc bnc" id="L586" title="All 2 branches missed."> return
variableError(node, variable, undef? VariableIssue.UNDEFINED :
VariableIssue.NULLVALUE);</span>
+<span class="nc bnc" id="L594" title="All 2 branches missed."> return
variableError(node, variable, undef? VariableIssue.UNDEFINED :
VariableIssue.NULLVALUE);</span>
}
/**
@@ -595,9 +603,9 @@ public class JexlException extends Runti
* @return the error message
*/
public static String variableError(final JexlNode node, final String
variable, final VariableIssue issue) {
-<span class="fc" id="L598"> final StringBuilder msg =
errorAt(node);</span>
-<span class="fc" id="L599"> msg.append(issue.message(variable));</span>
-<span class="fc" id="L600"> return msg.toString();</span>
+<span class="fc" id="L606"> final StringBuilder msg =
errorAt(node);</span>
+<span class="fc" id="L607"> msg.append(issue.message(variable));</span>
+<span class="fc" id="L608"> return msg.toString();</span>
}
/**
@@ -606,6 +614,7 @@ public class JexlException extends Runti
* @since 3.0
*/
public static class Property extends JexlException {
+ private static final long serialVersionUID = 20210606123908L;
/**
* Undefined variable flag.
*/
@@ -620,8 +629,8 @@ public class JexlException extends Runti
*/
@Deprecated
public Property(final JexlNode node, final String pty) {
-<span class="nc" id="L623"> this(node, pty, true, null);</span>
-<span class="nc" id="L624"> }</span>
+<span class="nc" id="L632"> this(node, pty, true, null);</span>
+<span class="nc" id="L633"> }</span>
/**
* Creates a new Property exception instance.
*
@@ -632,8 +641,8 @@ public class JexlException extends Runti
*/
@Deprecated
public Property(final JexlNode node, final String pty, final Throwable
cause) {
-<span class="nc" id="L635"> this(node, pty, true, cause);</span>
-<span class="nc" id="L636"> }</span>
+<span class="nc" id="L644"> this(node, pty, true, cause);</span>
+<span class="nc" id="L645"> }</span>
/**
* Creates a new Property exception instance.
@@ -644,9 +653,9 @@ public class JexlException extends Runti
* @param cause the exception causing the error
*/
public Property(final JexlNode node, final String pty, final boolean
undef, final Throwable cause) {
-<span class="fc" id="L647"> super(node, pty, cause);</span>
-<span class="fc" id="L648"> undefined = undef;</span>
-<span class="fc" id="L649"> }</span>
+<span class="fc" id="L656"> super(node, pty, cause);</span>
+<span class="fc" id="L657"> undefined = undef;</span>
+<span class="fc" id="L658"> }</span>
/**
* Whether the variable causing an error is undefined or evaluated as
null.
@@ -654,19 +663,19 @@ public class JexlException extends Runti
* @return true if undefined, false otherwise
*/
public boolean isUndefined() {
-<span class="nc" id="L657"> return undefined;</span>
+<span class="nc" id="L666"> return undefined;</span>
}
/**
* @return the property name
*/
public String getProperty() {
-<span class="fc" id="L664"> return getDetail();</span>
+<span class="fc" id="L673"> return getDetail();</span>
}
@Override
protected String detailedMessage() {
-<span class="fc bfc" id="L669" title="All 2 branches covered.">
return (undefined? "undefined" : "null value") + "
property '" + getProperty() + "'";</span>
+<span class="fc bfc" id="L678" title="All 2 branches covered.">
return (undefined? "undefined" : "null value") + "
property '" + getProperty() + "'";</span>
}
}
@@ -679,16 +688,16 @@ public class JexlException extends Runti
* @return the error message
*/
public static String propertyError(final JexlNode node, final String pty,
final boolean undef) {
-<span class="fc" id="L682"> final StringBuilder msg =
errorAt(node);</span>
-<span class="pc bpc" id="L683" title="1 of 2 branches missed."> if
(undef) {</span>
-<span class="fc" id="L684">
msg.append("unsolvable");</span>
+<span class="fc" id="L691"> final StringBuilder msg =
errorAt(node);</span>
+<span class="pc bpc" id="L692" title="1 of 2 branches missed."> if
(undef) {</span>
+<span class="fc" id="L693">
msg.append("unsolvable");</span>
} else {
-<span class="nc" id="L686"> msg.append("null
value");</span>
+<span class="nc" id="L695"> msg.append("null
value");</span>
}
-<span class="fc" id="L688"> msg.append(" property '");</span>
-<span class="fc" id="L689"> msg.append(pty);</span>
-<span class="fc" id="L690"> msg.append('\'');</span>
-<span class="fc" id="L691"> return msg.toString();</span>
+<span class="fc" id="L697"> msg.append(" property '");</span>
+<span class="fc" id="L698"> msg.append(pty);</span>
+<span class="fc" id="L699"> msg.append('\'');</span>
+<span class="fc" id="L700"> return msg.toString();</span>
}
/**
@@ -701,7 +710,7 @@ public class JexlException extends Runti
*/
@Deprecated
public static String propertyError(final JexlNode node, final String var) {
-<span class="nc" id="L704"> return propertyError(node, var,
true);</span>
+<span class="nc" id="L713"> return propertyError(node, var,
true);</span>
}
/**
@@ -710,6 +719,7 @@ public class JexlException extends Runti
* @since 3.0
*/
public static class Method extends JexlException {
+ private static final long serialVersionUID = 20210606123909L;
/**
* Creates a new Method exception instance.
*
@@ -719,8 +729,8 @@ public class JexlException extends Runti
*/
@Deprecated
public Method(final JexlNode node, final String name) {
-<span class="nc" id="L722"> this(node, name, null);</span>
-<span class="nc" id="L723"> }</span>
+<span class="nc" id="L732"> this(node, name, null);</span>
+<span class="nc" id="L733"> }</span>
/**
* Creates a new Method exception instance.
@@ -732,8 +742,8 @@ public class JexlException extends Runti
*/
@Deprecated
public Method(final JexlInfo info, final String name, final Throwable
cause) {
-<span class="nc" id="L735"> this(info, name, null, cause);</span>
-<span class="nc" id="L736"> }</span>
+<span class="nc" id="L745"> this(info, name, null, cause);</span>
+<span class="nc" id="L746"> }</span>
/**
* Creates a new Method exception instance.
@@ -744,8 +754,8 @@ public class JexlException extends Runti
* @since 3.2
*/
public Method(final JexlNode node, final String name, final Object[]
args) {
-<span class="fc" id="L747"> super(node, methodSignature(name,
args));</span>
-<span class="fc" id="L748"> }</span>
+<span class="fc" id="L757"> super(node, methodSignature(name,
args));</span>
+<span class="fc" id="L758"> }</span>
/**
* Creates a new Method exception instance.
@@ -756,8 +766,8 @@ public class JexlException extends Runti
* @since 3.2
*/
public Method(final JexlInfo info, final String name, final Object[]
args) {
-<span class="fc" id="L759"> this(info, name, args, null);</span>
-<span class="fc" id="L760"> }</span>
+<span class="fc" id="L769"> this(info, name, args, null);</span>
+<span class="fc" id="L770"> }</span>
/**
@@ -770,16 +780,16 @@ public class JexlException extends Runti
* @since 3.2
*/
public Method(final JexlInfo info, final String name, final Object[]
args, final Throwable cause) {
-<span class="fc" id="L773"> super(info, methodSignature(name,
args), cause);</span>
-<span class="fc" id="L774"> }</span>
+<span class="fc" id="L783"> super(info, methodSignature(name,
args), cause);</span>
+<span class="fc" id="L784"> }</span>
/**
* @return the method name
*/
public String getMethod() {
-<span class="fc" id="L780"> final String signature =
getMethodSignature();</span>
-<span class="fc" id="L781"> final int lparen =
signature.indexOf('(');</span>
-<span class="pc bpc" id="L782" title="1 of 2 branches missed.">
return lparen > 0? signature.substring(0, lparen) : signature;</span>
+<span class="fc" id="L790"> final String signature =
getMethodSignature();</span>
+<span class="fc" id="L791"> final int lparen =
signature.indexOf('(');</span>
+<span class="pc bpc" id="L792" title="1 of 2 branches missed.">
return lparen > 0? signature.substring(0, lparen) : signature;</span>
}
/**
@@ -787,12 +797,12 @@ public class JexlException extends Runti
* @since 3.2
*/
public String getMethodSignature() {
-<span class="fc" id="L790"> return getDetail();</span>
+<span class="fc" id="L800"> return getDetail();</span>
}
@Override
protected String detailedMessage() {
-<span class="fc" id="L795"> return "unsolvable function/method
'" + getMethodSignature() + "'";</span>
+<span class="fc" id="L805"> return "unsolvable function/method
'" + getMethodSignature() + "'";</span>
}
}
@@ -803,20 +813,20 @@ public class JexlException extends Runti
* @return a suitable signed name
*/
private static String methodSignature(final String name, final Object[]
args) {
-<span class="fc bfc" id="L806" title="All 4 branches covered."> if
(args != null && args.length > 0) {</span>
-<span class="fc" id="L807"> final StringBuilder strb = new
StringBuilder(name);</span>
-<span class="fc" id="L808"> strb.append('(');</span>
-<span class="fc bfc" id="L809" title="All 2 branches covered."> for
(int a = 0; a < args.length; ++a) {</span>
-<span class="fc bfc" id="L810" title="All 2 branches covered.">
if (a > 0) {</span>
-<span class="fc" id="L811"> strb.append(",
");</span>
+<span class="fc bfc" id="L816" title="All 4 branches covered."> if
(args != null && args.length > 0) {</span>
+<span class="fc" id="L817"> final StringBuilder strb = new
StringBuilder(name);</span>
+<span class="fc" id="L818"> strb.append('(');</span>
+<span class="fc bfc" id="L819" title="All 2 branches covered."> for
(int a = 0; a < args.length; ++a) {</span>
+<span class="fc bfc" id="L820" title="All 2 branches covered.">
if (a > 0) {</span>
+<span class="fc" id="L821"> strb.append(",
");</span>
}
-<span class="fc bfc" id="L813" title="All 2 branches covered.">
final Class<?> clazz = args[a] == null ? Object.class :
args[a].getClass();</span>
-<span class="fc" id="L814">
strb.append(clazz.getSimpleName());</span>
+<span class="fc bfc" id="L823" title="All 2 branches covered.">
final Class<?> clazz = args[a] == null ? Object.class :
args[a].getClass();</span>
+<span class="fc" id="L824">
strb.append(clazz.getSimpleName());</span>
}
-<span class="fc" id="L816"> strb.append(')');</span>
-<span class="fc" id="L817"> return strb.toString();</span>
+<span class="fc" id="L826"> strb.append(')');</span>
+<span class="fc" id="L827"> return strb.toString();</span>
}
-<span class="fc" id="L819"> return name;</span>
+<span class="fc" id="L829"> return name;</span>
}
/**
@@ -829,7 +839,7 @@ public class JexlException extends Runti
*/
@Deprecated
public static String methodError(final JexlNode node, final String method)
{
-<span class="nc" id="L832"> return methodError(node, method,
null);</span>
+<span class="nc" id="L842"> return methodError(node, method,
null);</span>
}
/**
@@ -841,11 +851,11 @@ public class JexlException extends Runti
* @return the error message
*/
public static String methodError(final JexlNode node, final String method,
final Object[] args) {
-<span class="nc" id="L844"> final StringBuilder msg =
errorAt(node);</span>
-<span class="nc" id="L845"> msg.append("unsolvable function/method
'");</span>
-<span class="nc" id="L846"> msg.append(methodSignature(method,
args));</span>
-<span class="nc" id="L847"> msg.append('\'');</span>
-<span class="nc" id="L848"> return msg.toString();</span>
+<span class="nc" id="L854"> final StringBuilder msg =
errorAt(node);</span>
+<span class="nc" id="L855"> msg.append("unsolvable function/method
'");</span>
+<span class="nc" id="L856"> msg.append(methodSignature(method,
args));</span>
+<span class="nc" id="L857"> msg.append('\'');</span>
+<span class="nc" id="L858"> return msg.toString();</span>
}
/**
@@ -854,6 +864,7 @@ public class JexlException extends Runti
* @since 3.0
*/
public static class Operator extends JexlException {
+ private static final long serialVersionUID = 20210606124100L;
/**
* Creates a new Operator exception instance.
*
@@ -862,19 +873,19 @@ public class JexlException extends Runti
* @param cause the exception causing the error
*/
public Operator(final JexlNode node, final String symbol, final
Throwable cause) {
-<span class="fc" id="L865"> super(node, symbol, cause);</span>
-<span class="fc" id="L866"> }</span>
+<span class="fc" id="L876"> super(node, symbol, cause);</span>
+<span class="fc" id="L877"> }</span>
/**
* @return the method name
*/
public String getSymbol() {
-<span class="fc" id="L872"> return getDetail();</span>
+<span class="fc" id="L883"> return getDetail();</span>
}
@Override
protected String detailedMessage() {
-<span class="fc" id="L877"> return "error calling operator
'" + getSymbol() + "'";</span>
+<span class="fc" id="L888"> return "error calling operator
'" + getSymbol() + "'";</span>
}
}
@@ -886,11 +897,11 @@ public class JexlException extends Runti
* @return the error message
*/
public static String operatorError(final JexlNode node, final String
symbol) {
-<span class="nc" id="L889"> final StringBuilder msg =
errorAt(node);</span>
-<span class="nc" id="L890"> msg.append("error calling operator
'");</span>
-<span class="nc" id="L891"> msg.append(symbol);</span>
-<span class="nc" id="L892"> msg.append('\'');</span>
-<span class="nc" id="L893"> return msg.toString();</span>
+<span class="nc" id="L900"> final StringBuilder msg =
errorAt(node);</span>
+<span class="nc" id="L901"> msg.append("error calling operator
'");</span>
+<span class="nc" id="L902"> msg.append(symbol);</span>
+<span class="nc" id="L903"> msg.append('\'');</span>
+<span class="nc" id="L904"> return msg.toString();</span>
}
/**
@@ -899,6 +910,7 @@ public class JexlException extends Runti
* @since 3.1
*/
public static class Annotation extends JexlException {
+ private static final long serialVersionUID = 20210606124101L;
/**
* Creates a new Annotation exception instance.
*
@@ -907,19 +919,19 @@ public class JexlException extends Runti
* @param cause the exception causing the error
*/
public Annotation(final JexlNode node, final String name, final
Throwable cause) {
-<span class="fc" id="L910"> super(node, name, cause);</span>
-<span class="fc" id="L911"> }</span>
+<span class="fc" id="L922"> super(node, name, cause);</span>
+<span class="fc" id="L923"> }</span>
/**
* @return the annotation name
*/
public String getAnnotation() {
-<span class="fc" id="L917"> return getDetail();</span>
+<span class="fc" id="L929"> return getDetail();</span>
}
@Override
protected String detailedMessage() {
-<span class="fc" id="L922"> return "error processing
annotation '" + getAnnotation() + "'";</span>
+<span class="fc" id="L934"> return "error processing
annotation '" + getAnnotation() + "'";</span>
}
}
@@ -932,11 +944,11 @@ public class JexlException extends Runti
* @since 3.1
*/
public static String annotationError(final JexlNode node, final String
annotation) {
-<span class="nc" id="L935"> final StringBuilder msg =
errorAt(node);</span>
-<span class="nc" id="L936"> msg.append("error processing
annotation '");</span>
-<span class="nc" id="L937"> msg.append(annotation);</span>
-<span class="nc" id="L938"> msg.append('\'');</span>
-<span class="nc" id="L939"> return msg.toString();</span>
+<span class="nc" id="L947"> final StringBuilder msg =
errorAt(node);</span>
+<span class="nc" id="L948"> msg.append("error processing
annotation '");</span>
+<span class="nc" id="L949"> msg.append(annotation);</span>
+<span class="nc" id="L950"> msg.append('\'');</span>
+<span class="nc" id="L951"> return msg.toString();</span>
}
/**
@@ -945,6 +957,7 @@ public class JexlException extends Runti
* @since 3.0
*/
public static class Return extends JexlException {
+ private static final long serialVersionUID = 20210606124102L;
/** The returned value. */
private final transient Object result;
@@ -957,15 +970,15 @@ public class JexlException extends Runti
* @param value the returned value
*/
public Return(final JexlNode node, final String msg, final Object
value) {
-<span class="fc" id="L960"> super(node, msg, null, false);</span>
-<span class="fc" id="L961"> this.result = value;</span>
-<span class="fc" id="L962"> }</span>
+<span class="fc" id="L973"> super(node, msg, null, false);</span>
+<span class="fc" id="L974"> this.result = value;</span>
+<span class="fc" id="L975"> }</span>
/**
* @return the returned value
*/
public Object getValue() {
-<span class="fc" id="L968"> return result;</span>
+<span class="fc" id="L981"> return result;</span>
}
}
@@ -981,8 +994,8 @@ public class JexlException extends Runti
* @param node the node where the interruption was detected
*/
public Cancel(final JexlNode node) {
-<span class="fc" id="L984"> super(node, "execution
cancelled", null);</span>
-<span class="fc" id="L985"> }</span>
+<span class="fc" id="L997"> super(node, "execution
cancelled", null);</span>
+<span class="fc" id="L998"> }</span>
}
/**
@@ -991,14 +1004,15 @@ public class JexlException extends Runti
* @since 3.0
*/
public static class Break extends JexlException {
+ private static final long serialVersionUID = 20210606124103L;
/**
* Creates a new instance of Break.
*
* @param node the break
*/
public Break(final JexlNode node) {
-<span class="fc" id="L1000"> super(node, "break loop",
null, false);</span>
-<span class="fc" id="L1001"> }</span>
+<span class="fc" id="L1014"> super(node, "break loop",
null, false);</span>
+<span class="fc" id="L1015"> }</span>
}
/**
@@ -1007,14 +1021,15 @@ public class JexlException extends Runti
* @since 3.0
*/
public static class Continue extends JexlException {
+ private static final long serialVersionUID = 20210606124104L;
/**
* Creates a new instance of Continue.
*
* @param node the continue
*/
public Continue(final JexlNode node) {
-<span class="fc" id="L1016"> super(node, "continue loop",
null, false);</span>
-<span class="fc" id="L1017"> }</span>
+<span class="fc" id="L1031"> super(node, "continue loop",
null, false);</span>
+<span class="fc" id="L1032"> }</span>
}
/**
@@ -1024,13 +1039,14 @@ public class JexlException extends Runti
* @since 3.2
*/
public static class TryFailed extends JexlException {
+ private static final long serialVersionUID = 20210606124105L;
/**
* Creates a new instance.
* @param xany the original invocation target exception
*/
private TryFailed(final InvocationTargetException xany) {
-<span class="fc" id="L1032"> super((JexlInfo) null,
"tryFailed", xany.getCause());</span>
-<span class="fc" id="L1033"> }</span>
+<span class="fc" id="L1048"> super((JexlInfo) null,
"tryFailed", xany.getCause());</span>
+<span class="fc" id="L1049"> }</span>
}
/**
@@ -1040,8 +1056,8 @@ public class JexlException extends Runti
* @return a JexlException
*/
public static JexlException tryFailed(final InvocationTargetException
xinvoke) {
-<span class="fc" id="L1043"> final Throwable cause =
xinvoke.getCause();</span>
-<span class="fc bfc" id="L1044" title="All 2 branches covered."> return
cause instanceof JexlException</span>
+<span class="fc" id="L1059"> final Throwable cause =
xinvoke.getCause();</span>
+<span class="pc bpc" id="L1060" title="1 of 2 branches missed."> return
cause instanceof JexlException</span>
? (JexlException) cause
: new JexlException.TryFailed(xinvoke); // fail
}
@@ -1060,19 +1076,19 @@ public class JexlException extends Runti
*/
@Override
public String getMessage() {
-<span class="fc" id="L1063"> final StringBuilder msg = new
StringBuilder();</span>
-<span class="pc bpc" id="L1064" title="1 of 2 branches missed."> if
(info != null) {</span>
-<span class="fc" id="L1065"> msg.append(info.toString());</span>
+<span class="fc" id="L1079"> final StringBuilder msg = new
StringBuilder();</span>
+<span class="pc bpc" id="L1080" title="1 of 2 branches missed."> if
(info != null) {</span>
+<span class="fc" id="L1081"> msg.append(info.toString());</span>
} else {
-<span class="nc" id="L1067"> msg.append("?:");</span>
+<span class="nc" id="L1083"> msg.append("?:");</span>
}
-<span class="fc" id="L1069"> msg.append(' ');</span>
-<span class="fc" id="L1070"> msg.append(detailedMessage());</span>
-<span class="fc" id="L1071"> final Throwable cause = getCause();</span>
-<span class="fc bfc" id="L1072" title="All 2 branches covered."> if
(cause instanceof JexlArithmetic.NullOperand) {</span>
-<span class="fc" id="L1073"> msg.append(" caused by null
operand");</span>
+<span class="fc" id="L1085"> msg.append(' ');</span>
+<span class="fc" id="L1086"> msg.append(detailedMessage());</span>
+<span class="fc" id="L1087"> final Throwable cause = getCause();</span>
+<span class="fc bfc" id="L1088" title="All 2 branches covered."> if
(cause instanceof JexlArithmetic.NullOperand) {</span>
+<span class="fc" id="L1089"> msg.append(" caused by null
operand");</span>
}
-<span class="fc" id="L1075"> return msg.toString();</span>
+<span class="fc" id="L1091"> return msg.toString();</span>
}
}
</pre><div class="footer"><span class="right">Created with <a
href="http://www.jacoco.org/jacoco">JaCoCo</a>
0.8.7.202105040129</span></div></body></html>
\ No newline at end of file