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 : &quot;&quot;, 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 : &quot;&quot;, 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 
&lt;em&gt;not&lt;/em&gt; 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 : &quot;&quot;, 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 : &quot;&quot;, 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 : &quot;&quot;, 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 : &quot;&quot;, 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(&quot;?:&quot;);</span>
+<span class="nc" id="L129">            msg.append(&quot;?:&quot;);</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 &amp;&amp; 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 &amp;&amp; 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 &lt;X extends Throwable&gt; 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&lt;StackTraceElement&gt; 
stackJexl = new ArrayList&lt;&gt;();</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(&quot;org.apache.commons.jexl3.internal&quot;)</span>
-<span class="fc bfc" id="L191" title="All 2 branches covered.">                
        &amp;&amp; 
!className.startsWith(&quot;org.apache.commons.jexl3.parser&quot;)) {</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&lt;StackTraceElement&gt; 
stackJexl = new ArrayList&lt;&gt;();</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(&quot;org.apache.commons.jexl3.internal&quot;)</span>
+<span class="fc bfc" id="L192" title="All 2 branches covered.">                
        &amp;&amp; 
!className.startsWith(&quot;org.apache.commons.jexl3.parser&quot;)) {</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() &lt; 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() &lt; 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(&quot;&quot;, 
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(&quot;&quot;, 
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&lt;? extends JexlException&gt; clazz 
= getClass();</span>
-<span class="fc bfc" id="L239" title="All 2 branches covered.">        String 
name = clazz == JexlException.class? &quot;JEXL&quot; : 
clazz.getSimpleName().toLowerCase();</span>
-<span class="fc" id="L240">        return name + &quot; error : &quot; + 
getDetail();</span>
+<span class="fc" id="L239">        Class&lt;? extends JexlException&gt; clazz 
= getClass();</span>
+<span class="fc bfc" id="L240" title="All 2 branches covered.">        String 
name = clazz == JexlException.class? &quot;JEXL&quot; : 
clazz.getSimpleName().toLowerCase();</span>
+<span class="fc" id="L241">        return name + &quot; error : &quot; + 
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 &lt; MAX_EXCHARLOC) {</span>
-<span class="fc" id="L261">            return prefix + &quot; error in '&quot; 
+ expr + &quot;'&quot;;</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 &lt; 0 || length &lt; 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 &gt; 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 
&gt; 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 &lt; MAX_EXCHARLOC) {</span>
+<span class="fc" id="L262">            return prefix + &quot; error in '&quot; 
+ expr + &quot;'&quot;;</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 &lt; 0 || length &lt; 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 &gt; 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 
&gt; length) {</span>
+<span class="fc" id="L273">            end = length;</span>
         }
-<span class="fc" id="L274">        return prefix + &quot; error near '... 
&quot;</span>
-<span class="fc" id="L275">                + expr.substring(begin, end) + 
&quot; ...'&quot;;</span>
+<span class="fc" id="L275">        return prefix + &quot; error near '... 
&quot;</span>
+<span class="fc" id="L276">                + expr.substring(begin, end) + 
&quot; ...'&quot;;</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(&quot;tokenization&quot;, getDetail());</span>
+<span class="nc" id="L305">            return 
parserError(&quot;tokenization&quot;, 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(&quot;parsing&quot;, 
getDetail());</span>
+<span class="fc" id="L338">            return parserError(&quot;parsing&quot;, 
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(&quot;ambiguous 
statement&quot;, getDetail());</span>
+<span class="fc" id="L373">            return parserError(&quot;ambiguous 
statement&quot;, 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 &lt; froml || cl &gt; 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 &lt; froml || cl &gt; 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 &quot;stack overflow &quot; + 
getDetail();</span>
+<span class="fc" id="L444">            return &quot;stack overflow &quot; + 
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(&quot;assignment&quot;, getDetail());</span>
+<span class="fc" id="L467">            return 
parserError(&quot;assignment&quot;, 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 + &quot;' is null&quot;;</span>
-<span class="fc" id="L512">                case REDEFINED : return VARQUOTE + 
var + &quot;' is already defined&quot;;</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 + &quot;' is null&quot;;</span>
+<span class="fc" id="L519">                case REDEFINED : return VARQUOTE + 
var + &quot;' is already defined&quot;;</span>
                 case UNDEFINED :
-<span class="fc" id="L514">                default: return VARQUOTE + var + 
&quot;' is undefined&quot;;</span>
+<span class="fc" id="L521">                default: return VARQUOTE + var + 
&quot;' is undefined&quot;;</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? &quot;undefined&quot; : &quot;null value&quot;) + &quot; 
property '&quot; + getProperty() + &quot;'&quot;;</span>
+<span class="fc bfc" id="L678" title="All 2 branches covered.">            
return (undefined? &quot;undefined&quot; : &quot;null value&quot;) + &quot; 
property '&quot; + getProperty() + &quot;'&quot;;</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(&quot;unsolvable&quot;);</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(&quot;unsolvable&quot;);</span>
         } else {
-<span class="nc" id="L686">            msg.append(&quot;null 
value&quot;);</span>
+<span class="nc" id="L695">            msg.append(&quot;null 
value&quot;);</span>
         }
-<span class="fc" id="L688">        msg.append(&quot; property '&quot;);</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(&quot; property '&quot;);</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 &gt; 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 &gt; 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 &quot;unsolvable function/method 
'&quot; + getMethodSignature() + &quot;'&quot;;</span>
+<span class="fc" id="L805">            return &quot;unsolvable function/method 
'&quot; + getMethodSignature() + &quot;'&quot;;</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 &amp;&amp; args.length &gt; 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 &lt; args.length; ++a) {</span>
-<span class="fc bfc" id="L810" title="All 2 branches covered.">                
if (a &gt; 0) {</span>
-<span class="fc" id="L811">                    strb.append(&quot;, 
&quot;);</span>
+<span class="fc bfc" id="L816" title="All 4 branches covered.">        if 
(args != null &amp;&amp; args.length &gt; 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 &lt; args.length; ++a) {</span>
+<span class="fc bfc" id="L820" title="All 2 branches covered.">                
if (a &gt; 0) {</span>
+<span class="fc" id="L821">                    strb.append(&quot;, 
&quot;);</span>
                 }
-<span class="fc bfc" id="L813" title="All 2 branches covered.">                
final Class&lt;?&gt; 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&lt;?&gt; 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(&quot;unsolvable function/method 
'&quot;);</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(&quot;unsolvable function/method 
'&quot;);</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 &quot;error calling operator 
'&quot; + getSymbol() + &quot;'&quot;;</span>
+<span class="fc" id="L888">            return &quot;error calling operator 
'&quot; + getSymbol() + &quot;'&quot;;</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(&quot;error calling operator 
'&quot;);</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(&quot;error calling operator 
'&quot;);</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 &quot;error processing 
annotation '&quot; + getAnnotation() + &quot;'&quot;;</span>
+<span class="fc" id="L934">            return &quot;error processing 
annotation '&quot; + getAnnotation() + &quot;'&quot;;</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(&quot;error processing 
annotation '&quot;);</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(&quot;error processing 
annotation '&quot;);</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, &quot;execution 
cancelled&quot;, null);</span>
-<span class="fc" id="L985">        }</span>
+<span class="fc" id="L997">            super(node, &quot;execution 
cancelled&quot;, 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, &quot;break loop&quot;, 
null, false);</span>
-<span class="fc" id="L1001">        }</span>
+<span class="fc" id="L1014">            super(node, &quot;break loop&quot;, 
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, &quot;continue loop&quot;, 
null, false);</span>
-<span class="fc" id="L1017">        }</span>
+<span class="fc" id="L1031">            super(node, &quot;continue loop&quot;, 
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, 
&quot;tryFailed&quot;, xany.getCause());</span>
-<span class="fc" id="L1033">        }</span>
+<span class="fc" id="L1048">            super((JexlInfo) null, 
&quot;tryFailed&quot;, 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(&quot;?:&quot;);</span>
+<span class="nc" id="L1083">            msg.append(&quot;?:&quot;);</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(&quot; caused by null 
operand&quot;);</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(&quot; caused by null 
operand&quot;);</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


Reply via email to