Modified: 
websites/production/commons/content/proper/commons-jexl/jacoco/org.apache.commons.jexl3.internal/InterpreterBase$CallDispatcher.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-jexl/jacoco/org.apache.commons.jexl3.internal/InterpreterBase$CallDispatcher.html
 (original)
+++ 
websites/production/commons/content/proper/commons-jexl/jacoco/org.apache.commons.jexl3.internal/InterpreterBase$CallDispatcher.html
 Fri Jun 25 11:11:58 2021
@@ -1 +1 @@
-<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD 
XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";><html 
xmlns="http://www.w3.org/1999/xhtml"; lang="en"><head><meta 
http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link 
rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link 
rel="shortcut icon" href="../jacoco-resources/report.gif" 
type="image/gif"/><title>InterpreterBase.CallDispatcher</title><script 
type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body 
onload="initialSort(['breadcrumb'])"><div class="breadcrumb" 
id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" 
class="el_session">Sessions</a></span><a href="../index.html" 
class="el_report">Apache Commons JEXL</a> &gt; <a href="index.html" 
class="el_package">org.apache.commons.jexl3.internal</a> &gt; <span 
class="el_class">InterpreterBase.CallDispatcher</span></div><h1>InterpreterBase.CallDispatcher</h1>
 <table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td 
class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down 
sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td 
class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td 
class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td 
class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td 
class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td 
class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td 
class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td 
class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td 
class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td 
class="sortable ctr2" id="k" 
onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td
 class="bar">9 of 207</td><td class="ctr2">95%</td><td class="bar">5 of 
30</td><td class="
 ctr2">83%</td><td class="ctr1">5</td><td class="ctr2">21</td><td 
class="ctr1">1</td><td class="ctr2">45</td><td class="ctr1">0</td><td 
class="ctr2">6</td></tr></tfoot><tbody><tr><td id="a0"><a 
href="InterpreterBase.java.html#L924" 
class="el_method">eval(String)</a></td><td class="bar" id="b0"><img 
src="../jacoco-resources/redbar.gif" width="25" height="10" title="9" 
alt="9"/><img src="../jacoco-resources/greenbar.gif" width="60" height="10" 
title="21" alt="21"/></td><td class="ctr2" id="c5">70%</td><td class="bar" 
id="d4"><img src="../jacoco-resources/redbar.gif" width="15" height="10" 
title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" width="45" 
height="10" title="3" alt="3"/></td><td class="ctr2" id="e4">75%</td><td 
class="ctr1" id="f0">1</td><td class="ctr2" id="g4">3</td><td class="ctr1" 
id="h0">1</td><td class="ctr2" id="i4">6</td><td class="ctr1" id="j0">0</td><td 
class="ctr2" id="k0">1</td></tr><tr><td id="a3"><a 
href="InterpreterBase.java.html#L861" class="el_met
 hod">isContextMethod(String, Object[])</a></td><td class="bar" id="b1"><img 
src="../jacoco-resources/greenbar.gif" width="120" height="10" title="42" 
alt="42"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d1"><img 
src="../jacoco-resources/redbar.gif" width="15" height="10" title="1" 
alt="1"/><img src="../jacoco-resources/greenbar.gif" width="75" height="10" 
title="5" alt="5"/></td><td class="ctr2" id="e1">83%</td><td class="ctr1" 
id="f1">1</td><td class="ctr2" id="g1">4</td><td class="ctr1" id="h1">0</td><td 
class="ctr2" id="i1">8</td><td class="ctr1" id="j1">0</td><td class="ctr2" 
id="k1">1</td></tr><tr><td id="a2"><a href="InterpreterBase.java.html#L881" 
class="el_method">isArithmeticMethod(String, Object[])</a></td><td class="bar" 
id="b2"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" 
title="42" alt="42"/></td><td class="ctr2" id="c1">100%</td><td class="bar" 
id="d2"><img src="../jacoco-resources/redbar.gif" width="15" height="10" 
title="1" alt=
 "1"/><img src="../jacoco-resources/greenbar.gif" width="75" height="10" 
title="5" alt="5"/></td><td class="ctr2" id="e2">83%</td><td class="ctr1" 
id="f2">1</td><td class="ctr2" id="g2">4</td><td class="ctr1" id="h2">0</td><td 
class="ctr2" id="i2">8</td><td class="ctr1" id="j2">0</td><td class="ctr2" 
id="k2">1</td></tr><tr><td id="a4"><a href="InterpreterBase.java.html#L841" 
class="el_method">isTargetMethod(Object, String, Object[])</a></td><td 
class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="108" 
height="10" title="38" alt="38"/></td><td class="ctr2" id="c2">100%</td><td 
class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="15" 
height="10" title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" 
width="75" height="10" title="5" alt="5"/></td><td class="ctr2" 
id="e3">83%</td><td class="ctr1" id="f3">1</td><td class="ctr2" 
id="g3">4</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i3">8</td><td 
class="ctr1" id="j3">0</td><td class="ctr
 2" id="k3">1</td></tr><tr><td id="a1"><a href="InterpreterBase.java.html#L798" 
class="el_method">InterpreterBase.CallDispatcher(InterpreterBase, JexlNode, 
boolean)</a></td><td class="bar" id="b4"><img 
src="../jacoco-resources/greenbar.gif" width="85" height="10" title="30" 
alt="30"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d5"/><td 
class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">0</td><td class="ctr2" 
id="g5">1</td><td class="ctr1" id="h4">0</td><td class="ctr2" 
id="i0">10</td><td class="ctr1" id="j4">0</td><td class="ctr2" 
id="k4">1</td></tr><tr><td id="a5"><a href="InterpreterBase.java.html#L906" 
class="el_method">tryEval(Object, String, Object[])</a></td><td class="bar" 
id="b5"><img src="../jacoco-resources/greenbar.gif" width="71" height="10" 
title="25" alt="25"/></td><td class="ctr2" id="c4">100%</td><td class="bar" 
id="d0"><img src="../jacoco-resources/redbar.gif" width="15" height="10" 
title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" widt
 h="105" height="10" title="7" alt="7"/></td><td class="ctr2" 
id="e0">87%</td><td class="ctr1" id="f4">1</td><td class="ctr2" 
id="g0">5</td><td class="ctr1" id="h5">0</td><td class="ctr2" id="i5">5</td><td 
class="ctr1" id="j5">0</td><td class="ctr2" 
id="k5">1</td></tr></tbody></table><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
+<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD 
XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";><html 
xmlns="http://www.w3.org/1999/xhtml"; lang="en"><head><meta 
http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link 
rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link 
rel="shortcut icon" href="../jacoco-resources/report.gif" 
type="image/gif"/><title>InterpreterBase.CallDispatcher</title><script 
type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body 
onload="initialSort(['breadcrumb'])"><div class="breadcrumb" 
id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" 
class="el_session">Sessions</a></span><a href="../index.html" 
class="el_report">Apache Commons JEXL</a> &gt; <a href="index.html" 
class="el_package">org.apache.commons.jexl3.internal</a> &gt; <span 
class="el_class">InterpreterBase.CallDispatcher</span></div><h1>InterpreterBase.CallDispatcher</h1>
 <table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td 
class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down 
sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td 
class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td 
class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td 
class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td 
class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td 
class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td 
class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td 
class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td 
class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td 
class="sortable ctr2" id="k" 
onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td
 class="bar">9 of 207</td><td class="ctr2">95%</td><td class="bar">4 of 
30</td><td class="
 ctr2">86%</td><td class="ctr1">4</td><td class="ctr2">21</td><td 
class="ctr1">1</td><td class="ctr2">45</td><td class="ctr1">0</td><td 
class="ctr2">6</td></tr></tfoot><tbody><tr><td id="a0"><a 
href="InterpreterBase.java.html#L924" 
class="el_method">eval(String)</a></td><td class="bar" id="b0"><img 
src="../jacoco-resources/redbar.gif" width="25" height="10" title="9" 
alt="9"/><img src="../jacoco-resources/greenbar.gif" width="60" height="10" 
title="21" alt="21"/></td><td class="ctr2" id="c5">70%</td><td class="bar" 
id="d3"><img src="../jacoco-resources/redbar.gif" width="15" height="10" 
title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" width="45" 
height="10" title="3" alt="3"/></td><td class="ctr2" id="e4">75%</td><td 
class="ctr1" id="f0">1</td><td class="ctr2" id="g4">3</td><td class="ctr1" 
id="h0">1</td><td class="ctr2" id="i4">6</td><td class="ctr1" id="j0">0</td><td 
class="ctr2" id="k0">1</td></tr><tr><td id="a3"><a 
href="InterpreterBase.java.html#L861" class="el_met
 hod">isContextMethod(String, Object[])</a></td><td class="bar" id="b1"><img 
src="../jacoco-resources/greenbar.gif" width="120" height="10" title="42" 
alt="42"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d1"><img 
src="../jacoco-resources/redbar.gif" width="15" height="10" title="1" 
alt="1"/><img src="../jacoco-resources/greenbar.gif" width="75" height="10" 
title="5" alt="5"/></td><td class="ctr2" id="e2">83%</td><td class="ctr1" 
id="f1">1</td><td class="ctr2" id="g1">4</td><td class="ctr1" id="h1">0</td><td 
class="ctr2" id="i1">8</td><td class="ctr1" id="j1">0</td><td class="ctr2" 
id="k1">1</td></tr><tr><td id="a2"><a href="InterpreterBase.java.html#L881" 
class="el_method">isArithmeticMethod(String, Object[])</a></td><td class="bar" 
id="b2"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" 
title="42" alt="42"/></td><td class="ctr2" id="c1">100%</td><td class="bar" 
id="d2"><img src="../jacoco-resources/redbar.gif" width="15" height="10" 
title="1" alt=
 "1"/><img src="../jacoco-resources/greenbar.gif" width="75" height="10" 
title="5" alt="5"/></td><td class="ctr2" id="e3">83%</td><td class="ctr1" 
id="f2">1</td><td class="ctr2" id="g2">4</td><td class="ctr1" id="h2">0</td><td 
class="ctr2" id="i2">8</td><td class="ctr1" id="j2">0</td><td class="ctr2" 
id="k2">1</td></tr><tr><td id="a4"><a href="InterpreterBase.java.html#L841" 
class="el_method">isTargetMethod(Object, String, Object[])</a></td><td 
class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="108" 
height="10" title="38" alt="38"/></td><td class="ctr2" id="c2">100%</td><td 
class="bar" id="d4"><img src="../jacoco-resources/greenbar.gif" width="90" 
height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">100%</td><td 
class="ctr1" id="f4">0</td><td class="ctr2" id="g3">4</td><td class="ctr1" 
id="h3">0</td><td class="ctr2" id="i3">8</td><td class="ctr1" id="j3">0</td><td 
class="ctr2" id="k3">1</td></tr><tr><td id="a1"><a 
href="InterpreterBase.java.html#L798" clas
 s="el_method">InterpreterBase.CallDispatcher(InterpreterBase, JexlNode, 
boolean)</a></td><td class="bar" id="b4"><img 
src="../jacoco-resources/greenbar.gif" width="85" height="10" title="30" 
alt="30"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d5"/><td 
class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">0</td><td class="ctr2" 
id="g5">1</td><td class="ctr1" id="h4">0</td><td class="ctr2" 
id="i0">10</td><td class="ctr1" id="j4">0</td><td class="ctr2" 
id="k4">1</td></tr><tr><td id="a5"><a href="InterpreterBase.java.html#L906" 
class="el_method">tryEval(Object, String, Object[])</a></td><td class="bar" 
id="b5"><img src="../jacoco-resources/greenbar.gif" width="71" height="10" 
title="25" alt="25"/></td><td class="ctr2" id="c4">100%</td><td class="bar" 
id="d0"><img src="../jacoco-resources/redbar.gif" width="15" height="10" 
title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" width="105" 
height="10" title="7" alt="7"/></td><td class="ctr2" id="e1">87%</td><td cl
 ass="ctr1" id="f3">1</td><td class="ctr2" id="g0">5</td><td class="ctr1" 
id="h5">0</td><td class="ctr2" id="i5">5</td><td class="ctr1" id="j5">0</td><td 
class="ctr2" id="k5">1</td></tr></tbody></table><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

Modified: 
websites/production/commons/content/proper/commons-jexl/jacoco/org.apache.commons.jexl3.internal/InterpreterBase.java.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-jexl/jacoco/org.apache.commons.jexl3.internal/InterpreterBase.java.html
 (original)
+++ 
websites/production/commons/content/proper/commons-jexl/jacoco/org.apache.commons.jexl3.internal/InterpreterBase.java.html
 Fri Jun 25 11:11:58 2021
@@ -842,7 +842,7 @@ public abstract class InterpreterBase ex
 <span class="fc bfc" id="L842" title="All 2 branches covered.">            if 
(vm != null) {</span>
 <span class="fc" id="L843">                argv = arguments;</span>
 <span class="fc" id="L844">                target = ntarget;</span>
-<span class="pc bpc" id="L845" title="1 of 4 branches missed.">                
if (cacheable &amp;&amp; vm.isCacheable()) {</span>
+<span class="fc bfc" id="L845" title="All 4 branches covered.">                
if (cacheable &amp;&amp; vm.isCacheable()) {</span>
 <span class="fc" id="L846">                    funcall = new Funcall(vm, 
narrow);</span>
                 }
 <span class="fc" id="L848">                return true;</span>

Modified: 
websites/production/commons/content/proper/commons-jexl/jacoco/org.apache.commons.jexl3.internal/TemplateInterpreter$1.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-jexl/jacoco/org.apache.commons.jexl3.internal/TemplateInterpreter$1.html
 (original)
+++ 
websites/production/commons/content/proper/commons-jexl/jacoco/org.apache.commons.jexl3.internal/TemplateInterpreter$1.html
 Fri Jun 25 11:11:58 2021
@@ -1 +1 @@
-<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD 
XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";><html 
xmlns="http://www.w3.org/1999/xhtml"; lang="en"><head><meta 
http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link 
rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link 
rel="shortcut icon" href="../jacoco-resources/report.gif" 
type="image/gif"/><title>TemplateInterpreter.new Closure() {...}</title><script 
type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body 
onload="initialSort(['breadcrumb'])"><div class="breadcrumb" 
id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" 
class="el_session">Sessions</a></span><a href="../index.html" 
class="el_report">Apache Commons JEXL</a> &gt; <a href="index.html" 
class="el_package">org.apache.commons.jexl3.internal</a> &gt; <span 
class="el_class">TemplateInterpreter.new Closure() 
{...}</span></div><h1>TemplateInterpret
 er.new Closure() {...}</h1><table class="coverage" cellspacing="0" 
id="coveragetable"><thead><tr><td class="sortable" id="a" 
onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" 
onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" 
id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" 
onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" 
onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" 
onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" 
onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" 
onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td
 class="bar">0 of 40</td><td class="ctr2">100%</td><td class="b
 ar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td 
class="ctr2">2</td><td class="ctr1">0</td><td class="ctr2">9</td><td 
class="ctr1">0</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td 
id="a0"><a href="TemplateInterpreter.java.html#L222" 
class="el_method">createInterpreter(JexlContext, Frame)</a></td><td class="bar" 
id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" 
title="32" alt="32"/></td><td class="ctr2" id="c0">100%</td><td class="bar" 
id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td 
class="ctr2" id="g0">1</td><td class="ctr1" id="h0">0</td><td class="ctr2" 
id="i0">8</td><td class="ctr1" id="j0">0</td><td class="ctr2" 
id="k0">1</td></tr><tr><td id="a1"><a href="TemplateInterpreter.java.html#L219" 
class="el_method">{...}</a></td><td class="bar" id="b1"><img 
src="../jacoco-resources/greenbar.gif" width="30" height="10" title="8" 
alt="8"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d1"/><td cl
 ass="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" 
id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">1</td><td 
class="ctr1" id="j1">0</td><td class="ctr2" 
id="k1">1</td></tr></tbody></table><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
+<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD 
XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";><html 
xmlns="http://www.w3.org/1999/xhtml"; lang="en"><head><meta 
http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link 
rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link 
rel="shortcut icon" href="../jacoco-resources/report.gif" 
type="image/gif"/><title>TemplateInterpreter.new Closure() {...}</title><script 
type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body 
onload="initialSort(['breadcrumb'])"><div class="breadcrumb" 
id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" 
class="el_session">Sessions</a></span><a href="../index.html" 
class="el_report">Apache Commons JEXL</a> &gt; <a href="index.html" 
class="el_package">org.apache.commons.jexl3.internal</a> &gt; <span 
class="el_class">TemplateInterpreter.new Closure() 
{...}</span></div><h1>TemplateInterpret
 er.new Closure() {...}</h1><table class="coverage" cellspacing="0" 
id="coveragetable"><thead><tr><td class="sortable" id="a" 
onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" 
onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" 
id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" 
onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" 
onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" 
onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" 
onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" 
onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td
 class="bar">0 of 40</td><td class="ctr2">100%</td><td class="b
 ar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td 
class="ctr2">2</td><td class="ctr1">0</td><td class="ctr2">9</td><td 
class="ctr1">0</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td 
id="a0"><a href="TemplateInterpreter.java.html#L272" 
class="el_method">createInterpreter(JexlContext, Frame)</a></td><td class="bar" 
id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" 
title="32" alt="32"/></td><td class="ctr2" id="c0">100%</td><td class="bar" 
id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td 
class="ctr2" id="g0">1</td><td class="ctr1" id="h0">0</td><td class="ctr2" 
id="i0">8</td><td class="ctr1" id="j0">0</td><td class="ctr2" 
id="k0">1</td></tr><tr><td id="a1"><a href="TemplateInterpreter.java.html#L269" 
class="el_method">{...}</a></td><td class="bar" id="b1"><img 
src="../jacoco-resources/greenbar.gif" width="30" height="10" title="8" 
alt="8"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d1"/><td cl
 ass="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" 
id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">1</td><td 
class="ctr1" id="j1">0</td><td class="ctr2" 
id="k1">1</td></tr></tbody></table><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

Modified: 
websites/production/commons/content/proper/commons-jexl/jacoco/org.apache.commons.jexl3.internal/TemplateInterpreter$Arguments.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-jexl/jacoco/org.apache.commons.jexl3.internal/TemplateInterpreter$Arguments.html
 (original)
+++ 
websites/production/commons/content/proper/commons-jexl/jacoco/org.apache.commons.jexl3.internal/TemplateInterpreter$Arguments.html
 Fri Jun 25 11:11:58 2021
@@ -1 +1 @@
-<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD 
XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";><html 
xmlns="http://www.w3.org/1999/xhtml"; lang="en"><head><meta 
http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link 
rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link 
rel="shortcut icon" href="../jacoco-resources/report.gif" 
type="image/gif"/><title>TemplateInterpreter.Arguments</title><script 
type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body 
onload="initialSort(['breadcrumb'])"><div class="breadcrumb" 
id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" 
class="el_session">Sessions</a></span><a href="../index.html" 
class="el_report">Apache Commons JEXL</a> &gt; <a href="index.html" 
class="el_package">org.apache.commons.jexl3.internal</a> &gt; <span 
class="el_class">TemplateInterpreter.Arguments</span></div><h1>TemplateInterpreter.Arguments</h1><ta
 ble class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td 
class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down 
sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td 
class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td 
class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td 
class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td 
class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td 
class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td 
class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td 
class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td 
class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td 
class="sortable ctr2" id="k" 
onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td
 class="bar">0 of 31</td><td class="ctr2">100%</td><td class="bar">0 of 
0</td><td class="ctr2
 ">n/a</td><td class="ctr1">0</td><td class="ctr2">6</td><td 
class="ctr1">0</td><td class="ctr2">13</td><td class="ctr1">0</td><td 
class="ctr2">6</td></tr></tfoot><tbody><tr><td id="a4"><a 
href="TemplateInterpreter.java.html#L66" 
class="el_method">TemplateInterpreter.Arguments(Engine)</a></td><td class="bar" 
id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" 
title="6" alt="6"/></td><td class="ctr2" id="c0">100%</td><td class="bar" 
id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td 
class="ctr2" id="g0">1</td><td class="ctr1" id="h0">0</td><td class="ctr2" 
id="i0">3</td><td class="ctr1" id="j0">0</td><td class="ctr2" 
id="k0">1</td></tr><tr><td id="a3"><a href="TemplateInterpreter.java.html#L75" 
class="el_method">options(JexlOptions)</a></td><td class="bar" id="b1"><img 
src="../jacoco-resources/greenbar.gif" width="100" height="10" title="5" 
alt="5"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d1"/><td 
class="ctr2" id="e1
 ">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td 
class="ctr1" id="h1">0</td><td class="ctr2" id="i1">2</td><td class="ctr1" 
id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a 
href="TemplateInterpreter.java.html#L84" 
class="el_method">context(JexlContext)</a></td><td class="bar" id="b2"><img 
src="../jacoco-resources/greenbar.gif" width="100" height="10" title="5" 
alt="5"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d2"/><td 
class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" 
id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">2</td><td 
class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr><tr><td 
id="a2"><a href="TemplateInterpreter.java.html#L93" 
class="el_method">frame(Frame)</a></td><td class="bar" id="b3"><img 
src="../jacoco-resources/greenbar.gif" width="100" height="10" title="5" 
alt="5"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d3"/><td 
class="ctr2"
  id="e3">n/a</td><td class="ctr1" id="f3">0</td><td class="ctr2" 
id="g3">1</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i3">2</td><td 
class="ctr1" id="j3">0</td><td class="ctr2" id="k3">1</td></tr><tr><td 
id="a1"><a href="TemplateInterpreter.java.html#L102" 
class="el_method">expressions(TemplateEngine.TemplateExpression[])</a></td><td 
class="bar" id="b4"><img src="../jacoco-resources/greenbar.gif" width="100" 
height="10" title="5" alt="5"/></td><td class="ctr2" id="c4">100%</td><td 
class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" 
id="f4">0</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">0</td><td 
class="ctr2" id="i4">2</td><td class="ctr1" id="j4">0</td><td class="ctr2" 
id="k4">1</td></tr><tr><td id="a5"><a href="TemplateInterpreter.java.html#L111" 
class="el_method">writer(Writer)</a></td><td class="bar" id="b5"><img 
src="../jacoco-resources/greenbar.gif" width="100" height="10" title="5" 
alt="5"/></td><td class="ctr2" id="c5">100%</td><t
 d class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" 
id="f5">0</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">0</td><td 
class="ctr2" id="i5">2</td><td class="ctr1" id="j5">0</td><td class="ctr2" 
id="k5">1</td></tr></tbody></table><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
+<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD 
XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";><html 
xmlns="http://www.w3.org/1999/xhtml"; lang="en"><head><meta 
http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link 
rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link 
rel="shortcut icon" href="../jacoco-resources/report.gif" 
type="image/gif"/><title>TemplateInterpreter.Arguments</title><script 
type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body 
onload="initialSort(['breadcrumb'])"><div class="breadcrumb" 
id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" 
class="el_session">Sessions</a></span><a href="../index.html" 
class="el_report">Apache Commons JEXL</a> &gt; <a href="index.html" 
class="el_package">org.apache.commons.jexl3.internal</a> &gt; <span 
class="el_class">TemplateInterpreter.Arguments</span></div><h1>TemplateInterpreter.Arguments</h1><ta
 ble class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td 
class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down 
sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td 
class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td 
class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td 
class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td 
class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td 
class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td 
class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td 
class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td 
class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td 
class="sortable ctr2" id="k" 
onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td
 class="bar">0 of 31</td><td class="ctr2">100%</td><td class="bar">0 of 
0</td><td class="ctr2
 ">n/a</td><td class="ctr1">0</td><td class="ctr2">6</td><td 
class="ctr1">0</td><td class="ctr2">13</td><td class="ctr1">0</td><td 
class="ctr2">6</td></tr></tfoot><tbody><tr><td id="a4"><a 
href="TemplateInterpreter.java.html#L69" 
class="el_method">TemplateInterpreter.Arguments(Engine)</a></td><td class="bar" 
id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" 
title="6" alt="6"/></td><td class="ctr2" id="c0">100%</td><td class="bar" 
id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td 
class="ctr2" id="g0">1</td><td class="ctr1" id="h0">0</td><td class="ctr2" 
id="i0">3</td><td class="ctr1" id="j0">0</td><td class="ctr2" 
id="k0">1</td></tr><tr><td id="a3"><a href="TemplateInterpreter.java.html#L78" 
class="el_method">options(JexlOptions)</a></td><td class="bar" id="b1"><img 
src="../jacoco-resources/greenbar.gif" width="100" height="10" title="5" 
alt="5"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d1"/><td 
class="ctr2" id="e1
 ">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td 
class="ctr1" id="h1">0</td><td class="ctr2" id="i1">2</td><td class="ctr1" 
id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a 
href="TemplateInterpreter.java.html#L87" 
class="el_method">context(JexlContext)</a></td><td class="bar" id="b2"><img 
src="../jacoco-resources/greenbar.gif" width="100" height="10" title="5" 
alt="5"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d2"/><td 
class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" 
id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">2</td><td 
class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr><tr><td 
id="a2"><a href="TemplateInterpreter.java.html#L96" 
class="el_method">frame(Frame)</a></td><td class="bar" id="b3"><img 
src="../jacoco-resources/greenbar.gif" width="100" height="10" title="5" 
alt="5"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d3"/><td 
class="ctr2"
  id="e3">n/a</td><td class="ctr1" id="f3">0</td><td class="ctr2" 
id="g3">1</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i3">2</td><td 
class="ctr1" id="j3">0</td><td class="ctr2" id="k3">1</td></tr><tr><td 
id="a1"><a href="TemplateInterpreter.java.html#L105" 
class="el_method">expressions(TemplateEngine.TemplateExpression[])</a></td><td 
class="bar" id="b4"><img src="../jacoco-resources/greenbar.gif" width="100" 
height="10" title="5" alt="5"/></td><td class="ctr2" id="c4">100%</td><td 
class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" 
id="f4">0</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">0</td><td 
class="ctr2" id="i4">2</td><td class="ctr1" id="j4">0</td><td class="ctr2" 
id="k4">1</td></tr><tr><td id="a5"><a href="TemplateInterpreter.java.html#L114" 
class="el_method">writer(Writer)</a></td><td class="bar" id="b5"><img 
src="../jacoco-resources/greenbar.gif" width="100" height="10" title="5" 
alt="5"/></td><td class="ctr2" id="c5">100%</td><t
 d class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" 
id="f5">0</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">0</td><td 
class="ctr2" id="i5">2</td><td class="ctr1" id="j5">0</td><td class="ctr2" 
id="k5">1</td></tr></tbody></table><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

Modified: 
websites/production/commons/content/proper/commons-jexl/jacoco/org.apache.commons.jexl3.internal/TemplateInterpreter.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-jexl/jacoco/org.apache.commons.jexl3.internal/TemplateInterpreter.html
 (original)
+++ 
websites/production/commons/content/proper/commons-jexl/jacoco/org.apache.commons.jexl3.internal/TemplateInterpreter.html
 Fri Jun 25 11:11:58 2021
@@ -1 +1 @@
-<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD 
XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";><html 
xmlns="http://www.w3.org/1999/xhtml"; lang="en"><head><meta 
http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link 
rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link 
rel="shortcut icon" href="../jacoco-resources/report.gif" 
type="image/gif"/><title>TemplateInterpreter</title><script 
type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body 
onload="initialSort(['breadcrumb'])"><div class="breadcrumb" 
id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" 
class="el_session">Sessions</a></span><a href="../index.html" 
class="el_report">Apache Commons JEXL</a> &gt; <a href="index.html" 
class="el_package">org.apache.commons.jexl3.internal</a> &gt; <span 
class="el_class">TemplateInterpreter</span></div><h1>TemplateInterpreter</h1><table
 class="coverage" cellspaci
 ng="0" id="coveragetable"><thead><tr><td class="sortable" id="a" 
onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" 
onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" 
id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" 
onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" 
onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" 
onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" 
onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" 
onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td
 class="bar">22 of 232</td><td class="ctr2">90%</td><td class="bar">4 of 
28</td><td class="ctr2">85%</td><td class="ctr1">4
 </td><td class="ctr2">22</td><td class="ctr1">6</td><td 
class="ctr2">51</td><td class="ctr1">0</td><td 
class="ctr2">8</td></tr></tfoot><tbody><tr><td id="a0"><a 
href="TemplateInterpreter.java.html#L181" class="el_method">doPrint(JexlInfo, 
Object)</a></td><td class="bar" id="b0"><img 
src="../jacoco-resources/redbar.gif" width="40" height="10" title="21" 
alt="21"/><img src="../jacoco-resources/greenbar.gif" width="79" height="10" 
title="41" alt="41"/></td><td class="ctr2" id="c7">66%</td><td class="bar" 
id="d0"><img src="../jacoco-resources/redbar.gif" width="30" height="10" 
title="2" alt="2"/><img src="../jacoco-resources/greenbar.gif" width="90" 
height="10" title="6" alt="6"/></td><td class="ctr2" id="e4">75%</td><td 
class="ctr1" id="f0">2</td><td class="ctr2" id="g0">5</td><td class="ctr1" 
id="h0">5</td><td class="ctr2" id="i0">16</td><td class="ctr1" 
id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a 
href="TemplateInterpreter.java.html#L143" class="el_method">pri
 nt(int)</a></td><td class="bar" id="b1"><img 
src="../jacoco-resources/redbar.gif" width="1" height="10" title="1" 
alt="1"/><img src="../jacoco-resources/greenbar.gif" width="73" height="10" 
title="38" alt="38"/></td><td class="ctr2" id="c6">97%</td><td class="bar" 
id="d1"><img src="../jacoco-resources/redbar.gif" width="30" height="10" 
title="2" alt="2"/><img src="../jacoco-resources/greenbar.gif" width="90" 
height="10" title="6" alt="6"/></td><td class="ctr2" id="e5">75%</td><td 
class="ctr1" id="f1">2</td><td class="ctr2" id="g1">5</td><td class="ctr1" 
id="h1">1</td><td class="ctr2" id="i1">9</td><td class="ctr1" id="j1">0</td><td 
class="ctr2" id="k1">1</td></tr><tr><td id="a7"><a 
href="TemplateInterpreter.java.html#L218" 
class="el_method">visit(ASTJexlScript, Object)</a></td><td class="bar" 
id="b2"><img src="../jacoco-resources/greenbar.gif" width="79" height="10" 
title="41" alt="41"/></td><td class="ctr2" id="c0">100%</td><td class="bar" 
id="d2"><img src="../jacoco-resources/gree
 nbar.gif" width="90" height="10" title="6" alt="6"/></td><td class="ctr2" 
id="e0">100%</td><td class="ctr1" id="f2">0</td><td class="ctr2" 
id="g2">4</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">9</td><td 
class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr><tr><td 
id="a3"><a href="TemplateInterpreter.java.html#L162" 
class="el_method">printComposite(TemplateEngine.CompositeExpression)</a></td><td
 class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="56" 
height="10" title="29" alt="29"/></td><td class="ctr2" id="c1">100%</td><td 
class="bar" id="d3"><img src="../jacoco-resources/greenbar.gif" width="30" 
height="10" title="2" alt="2"/></td><td class="ctr2" id="e1">100%</td><td 
class="ctr1" id="f3">0</td><td class="ctr2" id="g3">2</td><td class="ctr1" 
id="h3">0</td><td class="ctr2" id="i3">5</td><td class="ctr1" id="j3">0</td><td 
class="ctr2" id="k3">1</td></tr><tr><td id="a5"><a 
href="TemplateInterpreter.java.html#L121" class="el_method">Templat
 eInterpreter(TemplateInterpreter.Arguments)</a></td><td class="bar" 
id="b4"><img src="../jacoco-resources/greenbar.gif" width="52" height="10" 
title="27" alt="27"/></td><td class="ctr2" id="c2">100%</td><td class="bar" 
id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f4">0</td><td 
class="ctr2" id="g6">1</td><td class="ctr1" id="h4">0</td><td class="ctr2" 
id="i4">5</td><td class="ctr1" id="j4">0</td><td class="ctr2" 
id="k4">1</td></tr><tr><td id="a6"><a href="TemplateInterpreter.java.html#L209" 
class="el_method">visit(ASTIdentifier, Object)</a></td><td class="bar" 
id="b5"><img src="../jacoco-resources/greenbar.gif" width="29" height="10" 
title="15" alt="15"/></td><td class="ctr2" id="c3">100%</td><td class="bar" 
id="d4"><img src="../jacoco-resources/greenbar.gif" width="30" height="10" 
title="2" alt="2"/></td><td class="ctr2" id="e2">100%</td><td class="ctr1" 
id="f5">0</td><td class="ctr2" id="g4">2</td><td class="ctr1" id="h5">0</td><td 
class="ctr2" id="i5">4</td><td c
 lass="ctr1" id="j5">0</td><td class="ctr2" id="k5">1</td></tr><tr><td 
id="a4"><a href="TemplateInterpreter.java.html#L204" 
class="el_method">resolveNamespace(String, JexlNode)</a></td><td class="bar" 
id="b6"><img src="../jacoco-resources/greenbar.gif" width="21" height="10" 
title="11" alt="11"/></td><td class="ctr2" id="c4">100%</td><td class="bar" 
id="d5"><img src="../jacoco-resources/greenbar.gif" width="30" height="10" 
title="2" alt="2"/></td><td class="ctr2" id="e3">100%</td><td class="ctr1" 
id="f6">0</td><td class="ctr2" id="g5">2</td><td class="ctr1" id="h6">0</td><td 
class="ctr2" id="i7">1</td><td class="ctr1" id="j6">0</td><td class="ctr2" 
id="k6">1</td></tr><tr><td id="a1"><a href="TemplateInterpreter.java.html#L135" 
class="el_method">include(JxltEngine.Template, Object[])</a></td><td 
class="bar" id="b7"><img src="../jacoco-resources/greenbar.gif" width="15" 
height="10" title="8" alt="8"/></td><td class="ctr2" id="c5">100%</td><td 
class="bar" id="d7"/><td class="ctr2" id="e
 7">n/a</td><td class="ctr1" id="f7">0</td><td class="ctr2" id="g7">1</td><td 
class="ctr1" id="h7">0</td><td class="ctr2" id="i6">2</td><td class="ctr1" 
id="j7">0</td><td class="ctr2" id="k7">1</td></tr></tbody></table><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
+<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD 
XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";><html 
xmlns="http://www.w3.org/1999/xhtml"; lang="en"><head><meta 
http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link 
rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link 
rel="shortcut icon" href="../jacoco-resources/report.gif" 
type="image/gif"/><title>TemplateInterpreter</title><script 
type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body 
onload="initialSort(['breadcrumb'])"><div class="breadcrumb" 
id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" 
class="el_session">Sessions</a></span><a href="../index.html" 
class="el_report">Apache Commons JEXL</a> &gt; <a href="index.html" 
class="el_package">org.apache.commons.jexl3.internal</a> &gt; <span 
class="el_class">TemplateInterpreter</span></div><h1>TemplateInterpreter</h1><table
 class="coverage" cellspaci
 ng="0" id="coveragetable"><thead><tr><td class="sortable" id="a" 
onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" 
onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" 
id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" 
onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" 
onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" 
onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" 
onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" 
onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td
 class="bar">41 of 347</td><td class="ctr2">88%</td><td class="bar">14 of 
50</td><td class="ctr2">72%</td><td class="ctr1">
 14</td><td class="ctr2">34</td><td class="ctr1">8</td><td 
class="ctr2">74</td><td class="ctr1">0</td><td 
class="ctr2">9</td></tr></tfoot><tbody><tr><td id="a0"><a 
href="TemplateInterpreter.java.html#L184" class="el_method">doPrint(JexlInfo, 
Object)</a></td><td class="bar" id="b0"><img 
src="../jacoco-resources/redbar.gif" width="21" height="10" title="21" 
alt="21"/><img src="../jacoco-resources/greenbar.gif" width="42" height="10" 
title="41" alt="41"/></td><td class="ctr2" id="c8">66%</td><td class="bar" 
id="d1"><img src="../jacoco-resources/redbar.gif" width="10" height="10" 
title="2" alt="2"/><img src="../jacoco-resources/greenbar.gif" width="32" 
height="10" title="6" alt="6"/></td><td class="ctr2" id="e3">75%</td><td 
class="ctr1" id="f1">2</td><td class="ctr2" id="g1">5</td><td class="ctr1" 
id="h0">5</td><td class="ctr2" id="i1">16</td><td class="ctr1" 
id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a6"><a 
href="TemplateInterpreter.java.html#L229" class="el_method">v
 isit(ASTFunctionNode, Object)</a></td><td class="bar" id="b1"><img 
src="../jacoco-resources/redbar.gif" width="17" height="10" title="17" 
alt="17"/><img src="../jacoco-resources/greenbar.gif" width="102" height="10" 
title="98" alt="98"/></td><td class="ctr2" id="c6">85%</td><td class="bar" 
id="d0"><img src="../jacoco-resources/redbar.gif" width="49" height="10" 
title="9" alt="9"/><img src="../jacoco-resources/greenbar.gif" width="70" 
height="10" title="13" alt="13"/></td><td class="ctr2" id="e5">59%</td><td 
class="ctr1" id="f0">9</td><td class="ctr2" id="g0">12</td><td class="ctr1" 
id="h1">2</td><td class="ctr2" id="i0">23</td><td class="ctr1" 
id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a4"><a 
href="TemplateInterpreter.java.html#L207" 
class="el_method">resolveNamespace(String, JexlNode)</a></td><td class="bar" 
id="b2"><img src="../jacoco-resources/redbar.gif" width="2" height="10" 
title="2" alt="2"/><img src="../jacoco-resources/greenbar.gif" width="9" 
height="10" 
 title="9" alt="9"/></td><td class="ctr2" id="c7">81%</td><td class="bar" 
id="d3"><img src="../jacoco-resources/redbar.gif" width="5" height="10" 
title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" width="5" 
height="10" title="1" alt="1"/></td><td class="ctr2" id="e6">50%</td><td 
class="ctr1" id="f3">1</td><td class="ctr2" id="g4">2</td><td class="ctr1" 
id="h3">0</td><td class="ctr2" id="i8">1</td><td class="ctr1" id="j2">0</td><td 
class="ctr2" id="k2">1</td></tr><tr><td id="a2"><a 
href="TemplateInterpreter.java.html#L146" 
class="el_method">print(int)</a></td><td class="bar" id="b3"><img 
src="../jacoco-resources/redbar.gif" width="1" height="10" title="1" 
alt="1"/><img src="../jacoco-resources/greenbar.gif" width="39" height="10" 
title="38" alt="38"/></td><td class="ctr2" id="c5">97%</td><td class="bar" 
id="d2"><img src="../jacoco-resources/redbar.gif" width="10" height="10" 
title="2" alt="2"/><img src="../jacoco-resources/greenbar.gif" width="32" 
height="10" title="6" alt
 ="6"/></td><td class="ctr2" id="e4">75%</td><td class="ctr1" id="f2">2</td><td 
class="ctr2" id="g2">5</td><td class="ctr1" id="h2">1</td><td class="ctr2" 
id="i2">9</td><td class="ctr1" id="j3">0</td><td class="ctr2" 
id="k3">1</td></tr><tr><td id="a8"><a href="TemplateInterpreter.java.html#L268" 
class="el_method">visit(ASTJexlScript, Object)</a></td><td class="bar" 
id="b4"><img src="../jacoco-resources/greenbar.gif" width="42" height="10" 
title="41" alt="41"/></td><td class="ctr2" id="c0">100%</td><td class="bar" 
id="d4"><img src="../jacoco-resources/greenbar.gif" width="32" height="10" 
title="6" alt="6"/></td><td class="ctr2" id="e0">100%</td><td class="ctr1" 
id="f4">0</td><td class="ctr2" id="g3">4</td><td class="ctr1" id="h4">0</td><td 
class="ctr2" id="i3">9</td><td class="ctr1" id="j4">0</td><td class="ctr2" 
id="k4">1</td></tr><tr><td id="a3"><a href="TemplateInterpreter.java.html#L165" 
class="el_method">printComposite(TemplateEngine.CompositeExpression)</a></td><td
 class="bar" i
 d="b5"><img src="../jacoco-resources/greenbar.gif" width="30" height="10" 
title="29" alt="29"/></td><td class="ctr2" id="c1">100%</td><td class="bar" 
id="d5"><img src="../jacoco-resources/greenbar.gif" width="10" height="10" 
title="2" alt="2"/></td><td class="ctr2" id="e1">100%</td><td class="ctr1" 
id="f5">0</td><td class="ctr2" id="g5">2</td><td class="ctr1" id="h5">0</td><td 
class="ctr2" id="i4">5</td><td class="ctr1" id="j5">0</td><td class="ctr2" 
id="k5">1</td></tr><tr><td id="a5"><a href="TemplateInterpreter.java.html#L124" 
class="el_method">TemplateInterpreter(TemplateInterpreter.Arguments)</a></td><td
 class="bar" id="b6"><img src="../jacoco-resources/greenbar.gif" width="28" 
height="10" title="27" alt="27"/></td><td class="ctr2" id="c2">100%</td><td 
class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" 
id="f6">0</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h6">0</td><td 
class="ctr2" id="i5">5</td><td class="ctr1" id="j6">0</td><td class="ctr2" id="
 k6">1</td></tr><tr><td id="a7"><a href="TemplateInterpreter.java.html#L212" 
class="el_method">visit(ASTIdentifier, Object)</a></td><td class="bar" 
id="b7"><img src="../jacoco-resources/greenbar.gif" width="15" height="10" 
title="15" alt="15"/></td><td class="ctr2" id="c3">100%</td><td class="bar" 
id="d6"><img src="../jacoco-resources/greenbar.gif" width="10" height="10" 
title="2" alt="2"/></td><td class="ctr2" id="e2">100%</td><td class="ctr1" 
id="f7">0</td><td class="ctr2" id="g6">2</td><td class="ctr1" id="h7">0</td><td 
class="ctr2" id="i6">4</td><td class="ctr1" id="j7">0</td><td class="ctr2" 
id="k7">1</td></tr><tr><td id="a1"><a href="TemplateInterpreter.java.html#L138" 
class="el_method">include(JxltEngine.Template, Object[])</a></td><td 
class="bar" id="b8"><img src="../jacoco-resources/greenbar.gif" width="8" 
height="10" title="8" alt="8"/></td><td class="ctr2" id="c4">100%</td><td 
class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" 
id="f8">0</td><td class="c
 tr2" id="g8">1</td><td class="ctr1" id="h8">0</td><td class="ctr2" 
id="i7">2</td><td class="ctr1" id="j8">0</td><td class="ctr2" 
id="k8">1</td></tr></tbody></table><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

Modified: 
websites/production/commons/content/proper/commons-jexl/jacoco/org.apache.commons.jexl3.internal/TemplateInterpreter.java.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-jexl/jacoco/org.apache.commons.jexl3.internal/TemplateInterpreter.java.html
 (original)
+++ 
websites/production/commons/content/proper/commons-jexl/jacoco/org.apache.commons.jexl3.internal/TemplateInterpreter.java.html
 Fri Jun 25 11:11:58 2021
@@ -23,12 +23,15 @@ import org.apache.commons.jexl3.JxltEngi
 import org.apache.commons.jexl3.internal.TemplateEngine.TemplateExpression;
 import org.apache.commons.jexl3.introspection.JexlMethod;
 import org.apache.commons.jexl3.introspection.JexlUberspect;
+import org.apache.commons.jexl3.parser.ASTArguments;
+import org.apache.commons.jexl3.parser.ASTFunctionNode;
 import org.apache.commons.jexl3.parser.ASTIdentifier;
 import org.apache.commons.jexl3.parser.ASTJexlLambda;
 import org.apache.commons.jexl3.parser.ASTJexlScript;
 import org.apache.commons.jexl3.parser.JexlNode;
 
 import java.io.Writer;
+import java.util.Arrays;
 
 /**
  * The type of interpreter to use during evaluation of templates.
@@ -63,17 +66,17 @@ public class TemplateInterpreter extends
          * Sole ctor.
          * @param e the JEXL engine
          */
-<span class="fc" id="L66">        Arguments(final Engine e) {</span>
-<span class="fc" id="L67">            this.jexl = e;</span>
-<span class="fc" id="L68">        }</span>
+<span class="fc" id="L69">        Arguments(final Engine e) {</span>
+<span class="fc" id="L70">            this.jexl = e;</span>
+<span class="fc" id="L71">        }</span>
         /**
          * Sets the options.
          * @param o the options
          * @return this instance
          */
         Arguments options(final JexlOptions o) {
-<span class="fc" id="L75">            this.options = o;</span>
-<span class="fc" id="L76">            return this;</span>
+<span class="fc" id="L78">            this.options = o;</span>
+<span class="fc" id="L79">            return this;</span>
         }
         /**
          * Sets the context.
@@ -81,8 +84,8 @@ public class TemplateInterpreter extends
          * @return this instance
          */
         Arguments context(final JexlContext j) {
-<span class="fc" id="L84">            this.jcontext = j;</span>
-<span class="fc" id="L85">            return this;</span>
+<span class="fc" id="L87">            this.jcontext = j;</span>
+<span class="fc" id="L88">            return this;</span>
         }
         /**
          * Sets the frame.
@@ -90,8 +93,8 @@ public class TemplateInterpreter extends
          * @return this instance
          */
         Arguments frame(final Frame f) {
-<span class="fc" id="L93">            this.jframe = f;</span>
-<span class="fc" id="L94">            return this;</span>
+<span class="fc" id="L96">            this.jframe = f;</span>
+<span class="fc" id="L97">            return this;</span>
         }
         /**
          * Sets the expressions.
@@ -99,8 +102,8 @@ public class TemplateInterpreter extends
          * @return this instance
          */
         Arguments expressions(final TemplateExpression[] e) {
-<span class="fc" id="L102">            this.expressions = e;</span>
-<span class="fc" id="L103">            return this;</span>
+<span class="fc" id="L105">            this.expressions = e;</span>
+<span class="fc" id="L106">            return this;</span>
         }
         /**
          * Sets the writer.
@@ -108,8 +111,8 @@ public class TemplateInterpreter extends
          * @return this instance
          */
         Arguments writer(final Writer o) {
-<span class="fc" id="L111">            this.out = o;</span>
-<span class="fc" id="L112">            return this;</span>
+<span class="fc" id="L114">            this.out = o;</span>
+<span class="fc" id="L115">            return this;</span>
         }
     }
 
@@ -118,11 +121,11 @@ public class TemplateInterpreter extends
      * @param args the template interpreter arguments
      */
     TemplateInterpreter(final Arguments args) {
-<span class="fc" id="L121">        super(args.jexl, args.options, 
args.jcontext, args.jframe);</span>
-<span class="fc" id="L122">        exprs = args.expressions;</span>
-<span class="fc" id="L123">        writer = args.out;</span>
-<span class="fc" id="L124">        block = new LexicalFrame(frame, 
null);</span>
-<span class="fc" id="L125">    }</span>
+<span class="fc" id="L124">        super(args.jexl, args.options, 
args.jcontext, args.jframe);</span>
+<span class="fc" id="L125">        exprs = args.expressions;</span>
+<span class="fc" id="L126">        writer = args.out;</span>
+<span class="fc" id="L127">        block = new LexicalFrame(frame, 
null);</span>
+<span class="fc" id="L128">    }</span>
 
     /**
      * Includes a call to another template.
@@ -132,40 +135,40 @@ public class TemplateInterpreter extends
      * @param args   the arguments
      */
     public void include(final JxltEngine.Template script, final Object... 
args) {
-<span class="fc" id="L135">        script.evaluate(context, writer, 
args);</span>
-<span class="fc" id="L136">    }</span>
+<span class="fc" id="L138">        script.evaluate(context, writer, 
args);</span>
+<span class="fc" id="L139">    }</span>
 
     /**
      * Prints a unified expression evaluation result.
      * @param e the expression number
      */
     public void print(final int e) {
-<span class="pc bpc" id="L143" title="2 of 4 branches missed.">        if (e 
&lt; 0 || e &gt;= exprs.length) {</span>
-<span class="nc" id="L144">            return;</span>
+<span class="pc bpc" id="L146" title="2 of 4 branches missed.">        if (e 
&lt; 0 || e &gt;= exprs.length) {</span>
+<span class="nc" id="L147">            return;</span>
         }
-<span class="fc" id="L146">        TemplateEngine.TemplateExpression expr = 
exprs[e];</span>
-<span class="fc bfc" id="L147" title="All 2 branches covered.">        if 
(expr.isDeferred()) {</span>
-<span class="fc" id="L148">            expr = expr.prepare(frame, 
context);</span>
+<span class="fc" id="L149">        TemplateEngine.TemplateExpression expr = 
exprs[e];</span>
+<span class="fc bfc" id="L150" title="All 2 branches covered.">        if 
(expr.isDeferred()) {</span>
+<span class="fc" id="L151">            expr = expr.prepare(frame, 
context);</span>
         }
-<span class="fc bfc" id="L150" title="All 2 branches covered.">        if 
(expr instanceof TemplateEngine.CompositeExpression) {</span>
-<span class="fc" id="L151">            
printComposite((TemplateEngine.CompositeExpression) expr);</span>
+<span class="fc bfc" id="L153" title="All 2 branches covered.">        if 
(expr instanceof TemplateEngine.CompositeExpression) {</span>
+<span class="fc" id="L154">            
printComposite((TemplateEngine.CompositeExpression) expr);</span>
         } else {
-<span class="fc" id="L153">            doPrint(expr.getInfo(), 
expr.evaluate(this));</span>
+<span class="fc" id="L156">            doPrint(expr.getInfo(), 
expr.evaluate(this));</span>
         }
-<span class="fc" id="L155">    }</span>
+<span class="fc" id="L158">    }</span>
 
     /**
      * Prints a composite expression.
      * @param composite the composite expression
      */
     private void printComposite(final TemplateEngine.CompositeExpression 
composite) {
-<span class="fc" id="L162">        final TemplateEngine.TemplateExpression[] 
cexprs = composite.exprs;</span>
+<span class="fc" id="L165">        final TemplateEngine.TemplateExpression[] 
cexprs = composite.exprs;</span>
         Object value;
-<span class="fc bfc" id="L164" title="All 2 branches covered.">        for 
(final TemplateExpression cexpr : cexprs) {</span>
-<span class="fc" id="L165">            value = cexpr.evaluate(this);</span>
-<span class="fc" id="L166">            doPrint(cexpr.getInfo(), value);</span>
+<span class="fc bfc" id="L167" title="All 2 branches covered.">        for 
(final TemplateExpression cexpr : cexprs) {</span>
+<span class="fc" id="L168">            value = cexpr.evaluate(this);</span>
+<span class="fc" id="L169">            doPrint(cexpr.getInfo(), value);</span>
         }
-<span class="fc" id="L168">    }</span>
+<span class="fc" id="L171">    }</span>
 
     /**
      * Prints to output.
@@ -178,67 +181,114 @@ public class TemplateInterpreter extends
      */
     private void doPrint(final JexlInfo info, final Object arg) {
         try {
-<span class="pc bpc" id="L181" title="1 of 2 branches missed.">            if 
(writer != null) {</span>
-<span class="fc bfc" id="L182" title="All 2 branches covered.">                
if (arg instanceof CharSequence) {</span>
-<span class="fc" id="L183">                    
writer.write(arg.toString());</span>
-<span class="fc bfc" id="L184" title="All 2 branches covered.">                
} else if (arg != null) {</span>
-<span class="fc" id="L185">                    final Object[] value = 
{arg};</span>
-<span class="fc" id="L186">                    final JexlUberspect uber = 
jexl.getUberspect();</span>
-<span class="fc" id="L187">                    final JexlMethod method = 
uber.getMethod(writer, &quot;print&quot;, value);</span>
-<span class="pc bpc" id="L188" title="1 of 2 branches missed.">                
    if (method != null) {</span>
-<span class="nc" id="L189">                        method.invoke(writer, 
value);</span>
+<span class="pc bpc" id="L184" title="1 of 2 branches missed.">            if 
(writer != null) {</span>
+<span class="fc bfc" id="L185" title="All 2 branches covered.">                
if (arg instanceof CharSequence) {</span>
+<span class="fc" id="L186">                    
writer.write(arg.toString());</span>
+<span class="fc bfc" id="L187" title="All 2 branches covered.">                
} else if (arg != null) {</span>
+<span class="fc" id="L188">                    final Object[] value = 
{arg};</span>
+<span class="fc" id="L189">                    final JexlUberspect uber = 
jexl.getUberspect();</span>
+<span class="fc" id="L190">                    final JexlMethod method = 
uber.getMethod(writer, &quot;print&quot;, value);</span>
+<span class="pc bpc" id="L191" title="1 of 2 branches missed.">                
    if (method != null) {</span>
+<span class="nc" id="L192">                        method.invoke(writer, 
value);</span>
                     } else {
-<span class="fc" id="L191">                        
writer.write(arg.toString());</span>
+<span class="fc" id="L194">                        
writer.write(arg.toString());</span>
                     }
                 }
             }
-<span class="nc" id="L195">        } catch (final java.io.IOException xio) 
{</span>
-<span class="nc" id="L196">            throw 
TemplateEngine.createException(info, &quot;call print&quot;, null, xio);</span>
-<span class="nc" id="L197">        } catch (final java.lang.Exception xany) 
{</span>
-<span class="nc" id="L198">            throw 
TemplateEngine.createException(info, &quot;invoke print&quot;, null, 
xany);</span>
-<span class="fc" id="L199">        }</span>
-<span class="fc" id="L200">    }</span>
+<span class="nc" id="L198">        } catch (final java.io.IOException xio) 
{</span>
+<span class="nc" id="L199">            throw 
TemplateEngine.createException(info, &quot;call print&quot;, null, xio);</span>
+<span class="nc" id="L200">        } catch (final java.lang.Exception xany) 
{</span>
+<span class="nc" id="L201">            throw 
TemplateEngine.createException(info, &quot;invoke print&quot;, null, 
xany);</span>
+<span class="fc" id="L202">        }</span>
+<span class="fc" id="L203">    }</span>
 
     @Override
     protected Object resolveNamespace(final String prefix, final JexlNode 
node) {
-<span class="fc bfc" id="L204" title="All 2 branches covered.">        return 
&quot;jexl&quot;.equals(prefix)? this : super.resolveNamespace(prefix, 
node);</span>
+<span class="pc bpc" id="L207" title="1 of 2 branches missed.">        return 
&quot;jexl&quot;.equals(prefix)? this : super.resolveNamespace(prefix, 
node);</span>
     }
 
     @Override
     protected Object visit(final ASTIdentifier node, final Object data) {
-<span class="fc" id="L209">        final String name = node.getName();</span>
-<span class="fc bfc" id="L210" title="All 2 branches covered.">        if 
(&quot;$jexl&quot;.equals(name)) {</span>
-<span class="fc" id="L211">            return writer;</span>
+<span class="fc" id="L212">        final String name = node.getName();</span>
+<span class="fc bfc" id="L213" title="All 2 branches covered.">        if 
(&quot;$jexl&quot;.equals(name)) {</span>
+<span class="fc" id="L214">            return writer;</span>
         }
-<span class="fc" id="L213">        return super.visit(node, data);</span>
+<span class="fc" id="L216">        return super.visit(node, data);</span>
+    }
+
+    /**
+     * Interprets a function node.
+     * print() and include() must be decoded by this interpreter since 
delegating to the Uberspect
+     * may be sandboxing the interpreter itself making it unable to call the 
function.
+     * @param node the function node
+     * @param data the data
+     * @return the function evaluation result.
+     */
+    @Override
+    protected Object visit(final ASTFunctionNode node, Object data) {
+<span class="fc" id="L229">        final int argc = 
node.jjtGetNumChildren();</span>
+<span class="pc bpc" id="L230" title="1 of 2 branches missed.">        if 
(argc == 2) {</span>
+<span class="fc" id="L231">            final ASTIdentifier functionNode = 
(ASTIdentifier) node.jjtGetChild(0);</span>
+<span class="fc bfc" id="L232" title="All 2 branches covered.">            if 
(&quot;jexl&quot;.equals(functionNode.getNamespace())) {</span>
+<span class="fc" id="L233">                final String functionName = 
functionNode.getName();</span>
+<span class="fc" id="L234">                final ASTArguments argNode = 
(ASTArguments) node.jjtGetChild(1);</span>
+<span class="fc bfc" id="L235" title="All 2 branches covered.">                
if (&quot;print&quot;.equals(functionName)) {</span>
+                    // evaluate the arguments
+<span class="fc" id="L237">                    Object[] argv = visit(argNode, 
null);</span>
+<span class="pc bpc" id="L238" title="3 of 6 branches missed.">                
    if (argv != null &amp;&amp; argv.length &gt; 0 &amp;&amp; argv[0] 
instanceof Number) {</span>
+<span class="fc" id="L239">                        print(((Number) 
argv[0]).intValue());</span>
+<span class="fc" id="L240">                        return null;</span>
+                    }
+                }
+<span class="pc bpc" id="L243" title="1 of 2 branches missed.">                
if (&quot;include&quot;.equals(functionName)) {</span>
+                    // evaluate the arguments
+<span class="fc" id="L245">                    Object[] argv = visit(argNode, 
null);</span>
+<span class="pc bpc" id="L246" title="2 of 4 branches missed.">                
    if (argv != null &amp;&amp; argv.length &gt; 0) {</span>
+<span class="pc bpc" id="L247" title="1 of 2 branches missed.">                
        if (argv[0] instanceof TemplateScript) {</span>
+<span class="fc" id="L248">                            TemplateScript script = 
(TemplateScript) argv[0];</span>
+<span class="pc bpc" id="L249" title="1 of 2 branches missed.">                
            if (argv.length &gt; 1) {</span>
+<span class="fc" id="L250">                                argv = 
Arrays.copyOfRange(argv, 1, argv.length);</span>
+                            } else {
+<span class="nc" id="L252">                                argv = null;</span>
+                            }
+<span class="fc" id="L254">                            include(script, 
argv);</span>
+<span class="fc" id="L255">                            return null;</span>
+                        }
+                    }
+                }
+                // fail safe
+<span class="nc" id="L260">                throw new 
JxltEngine.Exception(node.jexlInfo(), &quot;no callable template function 
&quot; + functionName, null);</span>
+            }
+        }
+<span class="fc" id="L263">        return super.visit(node, data);</span>
     }
 
     @Override
     protected Object visit(final ASTJexlScript script, final Object data) {
-<span class="fc bfc" id="L218" title="All 4 branches covered.">        if 
(script instanceof ASTJexlLambda &amp;&amp; !((ASTJexlLambda) 
script).isTopLevel()) {</span>
-<span class="fc" id="L219">            return new Closure(this, 
(ASTJexlLambda) script) {</span>
+<span class="fc bfc" id="L268" title="All 4 branches covered.">        if 
(script instanceof ASTJexlLambda &amp;&amp; !((ASTJexlLambda) 
script).isTopLevel()) {</span>
+<span class="fc" id="L269">            return new Closure(this, 
(ASTJexlLambda) script) {</span>
                 @Override
                 protected Interpreter createInterpreter(final JexlContext 
context, final Frame local) {
-<span class="fc" id="L222">                    final JexlOptions opts = 
jexl.options(script, context);</span>
-<span class="fc" id="L223">                    final 
TemplateInterpreter.Arguments targs = new 
TemplateInterpreter.Arguments(jexl)</span>
-<span class="fc" id="L224">                            .context(context)</span>
-<span class="fc" id="L225">                            .options(opts)</span>
-<span class="fc" id="L226">                            .frame(local)</span>
-<span class="fc" id="L227">                            
.expressions(exprs)</span>
-<span class="fc" id="L228">                            .writer(writer);</span>
-<span class="fc" id="L229">                    return new 
TemplateInterpreter(targs);</span>
+<span class="fc" id="L272">                    final JexlOptions opts = 
jexl.options(script, context);</span>
+<span class="fc" id="L273">                    final 
TemplateInterpreter.Arguments targs = new 
TemplateInterpreter.Arguments(jexl)</span>
+<span class="fc" id="L274">                            .context(context)</span>
+<span class="fc" id="L275">                            .options(opts)</span>
+<span class="fc" id="L276">                            .frame(local)</span>
+<span class="fc" id="L277">                            
.expressions(exprs)</span>
+<span class="fc" id="L278">                            .writer(writer);</span>
+<span class="fc" id="L279">                    return new 
TemplateInterpreter(targs);</span>
                 }
             };
         }
         // otherwise...
-<span class="fc" id="L234">        final int numChildren = 
script.jjtGetNumChildren();</span>
-<span class="fc" id="L235">            Object result = null;</span>
-<span class="fc bfc" id="L236" title="All 2 branches covered.">            for 
(int i = 0; i &lt; numChildren; i++) {</span>
-<span class="fc" id="L237">            final JexlNode child = 
script.jjtGetChild(i);</span>
-<span class="fc" id="L238">                result = child.jjtAccept(this, 
data);</span>
-<span class="fc" id="L239">                cancelCheck(child);</span>
+<span class="fc" id="L284">        final int numChildren = 
script.jjtGetNumChildren();</span>
+<span class="fc" id="L285">            Object result = null;</span>
+<span class="fc bfc" id="L286" title="All 2 branches covered.">            for 
(int i = 0; i &lt; numChildren; i++) {</span>
+<span class="fc" id="L287">            final JexlNode child = 
script.jjtGetChild(i);</span>
+<span class="fc" id="L288">                result = child.jjtAccept(this, 
data);</span>
+<span class="fc" id="L289">                cancelCheck(child);</span>
             }
-<span class="fc" id="L241">            return result;</span>
+<span class="fc" id="L291">            return result;</span>
         }
 
 }


Reply via email to