You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by gi...@apache.org on 2025/11/29 14:55:09 UTC
(juneau) branch asf-staging updated: Deploy documentation staging from d63455807acab26ea88bdf27153730009ac2681d d63455807acab26ea88bdf27153730009ac2681d
This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch asf-staging
in repository https://gitbox.apache.org/repos/asf/juneau.git
The following commit(s) were added to refs/heads/asf-staging by this push:
new b85268302e Deploy documentation staging from d63455807acab26ea88bdf27153730009ac2681d d63455807acab26ea88bdf27153730009ac2681d
b85268302e is described below
commit b85268302eb33d5db5136993c5c05ab6d83165e7
Author: github-actions[bot] <gi...@users.noreply.github.com>
AuthorDate: Sat Nov 29 14:55:03 2025 +0000
Deploy documentation staging from d63455807acab26ea88bdf27153730009ac2681d d63455807acab26ea88bdf27153730009ac2681d
---
site/xref-test/allclasses-frame.html | 1 -
site/xref-test/org/apache/juneau/ComboInput.html | 2 +-
.../a/rttests/RoundTripLargeObjects_Test.html | 267 +++---
.../juneau/common/utils/FormatString_Test.html | 429 ----------
.../org/apache/juneau/common/utils/Utils_Test.html | 4 +-
.../apache/juneau/common/utils/package-frame.html | 3 -
.../juneau/common/utils/package-summary.html | 55 +-
.../apache/juneau/rest/annotation/Path_Test.html | 667 ++++++++-------
.../client/RestClient_Config_RestClient_Test.html | 2 +-
site/xref/allclasses-frame.html | 5 -
site/xref/org/apache/juneau/BasicException.html | 129 +--
.../org/apache/juneau/BasicRuntimeException.html | 269 +++---
site/xref/org/apache/juneau/BeanSession.html | 2 +-
site/xref/org/apache/juneau/ContextSession.html | 2 +-
.../org/apache/juneau/assertions/Assertion.html | 2 +-
site/xref/org/apache/juneau/bean/LinkString.html | 2 +-
.../juneau/common/reflect/ExecutableInfo.html | 4 +-
.../apache/juneau/common/utils/FormatString.html | 737 -----------------
.../apache/juneau/common/utils/StringFormat.html | 8 +-
.../apache/juneau/common/utils/ThrowableUtils.html | 16 +-
.../apache/juneau/common/utils/package-frame.html | 15 -
.../juneau/common/utils/package-summary.html | 69 +-
site/xref/org/apache/juneau/cp/Messages.html | 2 +-
.../apache/juneau/microservice/Microservice.html | 2 +-
.../juneau/microservice/jetty/JettyLogger.html | 876 ++++++++++----------
.../org/apache/juneau/parser/ParseException.html | 2 +-
.../org/apache/juneau/parser/ParserListener.html | 115 +--
.../org/apache/juneau/rest/arg/ArgException.html | 249 +++---
.../org/apache/juneau/rest/client/RestClient.html | 902 ++++++++++-----------
.../juneau/rest/mock/MockServletRequest.html | 2 +-
.../org/apache/juneau/rest/servlet/RestObject.html | 4 +-
.../apache/juneau/rest/servlet/RestServlet.html | 4 +-
.../juneau/rest/swagger/SwaggerException.html | 21 +-
.../juneau/serializer/SerializeException.html | 2 +-
.../juneau/serializer/SerializerListener.html | 81 +-
.../juneau/serializer/SerializerSession.html | 2 +-
36 files changed, 1858 insertions(+), 3096 deletions(-)
diff --git a/site/xref-test/allclasses-frame.html b/site/xref-test/allclasses-frame.html
index 97b75b2b5e..5930f090a0 100644
--- a/site/xref-test/allclasses-frame.html
+++ b/site/xref-test/allclasses-frame.html
@@ -950,7 +950,6 @@
<li><a href="org/apache/juneau/rest/annotation/FormData_Test.html#FormData_Test" target="classFrame">FormData_Test</a></li>
<li><a href="org/apache/juneau/rest/annotation/FormData_Test.html#FormData_Test.A" target="classFrame">FormData_Test.A</a></li>
<li><a href="org/apache/juneau/bean/html5/Form_Test.html#Form_Test" target="classFrame">Form_Test</a></li>
- <li><a href="org/apache/juneau/common/utils/FormatString_Test.html#FormatString_Test" target="classFrame">FormatString_Test</a></li>
<li><a href="org/apache/juneau/http/annotation/FormatType_Test.html#FormatType_Test" target="classFrame">FormatType_Test</a></li>
<li><a href="org/apache/juneau/http/header/Forwarded_Test.html#Forwarded_Test" target="classFrame">Forwarded_Test</a></li>
<li><a href="org/apache/juneau/http/header/Forwarded_Test.html#Forwarded_Test.A" target="classFrame">Forwarded_Test.A</a></li>
diff --git a/site/xref-test/org/apache/juneau/ComboInput.html b/site/xref-test/org/apache/juneau/ComboInput.html
index 3e59ac3883..d6235ac9ec 100644
--- a/site/xref-test/org/apache/juneau/ComboInput.html
+++ b/site/xref-test/org/apache/juneau/ComboInput.html
@@ -83,7 +83,7 @@
<a class="jxr_linenumber" name="L75" href="#L75">75</a> }
<a class="jxr_linenumber" name="L76" href="#L76">76</a>
<a class="jxr_linenumber" name="L77" href="#L77">77</a> <strong class="jxr_keyword">public</strong> ComboInput<T> verify(Predicate<T> verify, String msg, Object...args) {
-<a class="jxr_linenumber" name="L78" href="#L78">78</a> <strong class="jxr_keyword">this</strong>.verify.add(x -> verify.test(x) ? <strong class="jxr_keyword">null</strong> : mformat(msg, args));
+<a class="jxr_linenumber" name="L78" href="#L78">78</a> <strong class="jxr_keyword">this</strong>.verify.add(x -> verify.test(x) ? <strong class="jxr_keyword">null</strong> : f(msg, args));
<a class="jxr_linenumber" name="L79" href="#L79">79</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
<a class="jxr_linenumber" name="L80" href="#L80">80</a> }
<a class="jxr_linenumber" name="L81" href="#L81">81</a>
diff --git a/site/xref-test/org/apache/juneau/a/rttests/RoundTripLargeObjects_Test.html b/site/xref-test/org/apache/juneau/a/rttests/RoundTripLargeObjects_Test.html
index 7f5b010f4e..e47142de81 100644
--- a/site/xref-test/org/apache/juneau/a/rttests/RoundTripLargeObjects_Test.html
+++ b/site/xref-test/org/apache/juneau/a/rttests/RoundTripLargeObjects_Test.html
@@ -25,139 +25,140 @@
<a class="jxr_linenumber" name="L17" href="#L17">17</a> <strong class="jxr_keyword">package</strong> org.apache.juneau.a.rttests;
<a class="jxr_linenumber" name="L18" href="#L18">18</a>
<a class="jxr_linenumber" name="L19" href="#L19">19</a> <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.juneau.common.utils.StringUtils.*;
-<a class="jxr_linenumber" name="L20" href="#L20">20</a>
-<a class="jxr_linenumber" name="L21" href="#L21">21</a> <strong class="jxr_keyword">import</strong> java.util.*;
-<a class="jxr_linenumber" name="L22" href="#L22">22</a>
-<a class="jxr_linenumber" name="L23" href="#L23">23</a> <strong class="jxr_keyword">import</strong> org.apache.juneau.*;
-<a class="jxr_linenumber" name="L24" href="#L24">24</a> <strong class="jxr_keyword">import</strong> org.apache.juneau.html.*;
-<a class="jxr_linenumber" name="L25" href="#L25">25</a> <strong class="jxr_keyword">import</strong> org.apache.juneau.json.*;
-<a class="jxr_linenumber" name="L26" href="#L26">26</a> <strong class="jxr_keyword">import</strong> org.apache.juneau.msgpack.*;
-<a class="jxr_linenumber" name="L27" href="#L27">27</a> <strong class="jxr_keyword">import</strong> org.apache.juneau.uon.*;
-<a class="jxr_linenumber" name="L28" href="#L28">28</a> <strong class="jxr_keyword">import</strong> org.apache.juneau.urlencoding.*;
-<a class="jxr_linenumber" name="L29" href="#L29">29</a> <strong class="jxr_keyword">import</strong> org.apache.juneau.xml.*;
-<a class="jxr_linenumber" name="L30" href="#L30">30</a> <strong class="jxr_keyword">import</strong> org.junit.jupiter.api.*;
-<a class="jxr_linenumber" name="L31" href="#L31">31</a> <strong class="jxr_keyword">import</strong> org.junit.jupiter.params.*;
-<a class="jxr_linenumber" name="L32" href="#L32">32</a> <strong class="jxr_keyword">import</strong> org.junit.jupiter.params.provider.*;
-<a class="jxr_linenumber" name="L33" href="#L33">33</a>
-<a class="jxr_linenumber" name="L34" href="#L34">34</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L35" href="#L35">35</a> <em class="jxr_javadoccomment"> * Tests designed to serialize and parse objects to make sure we end up</em>
-<a class="jxr_linenumber" name="L36" href="#L36">36</a> <em class="jxr_javadoccomment"> * with the same objects for all serializers and parsers.</em>
-<a class="jxr_linenumber" name="L37" href="#L37">37</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L38" href="#L38">38</a> @Disabled
-<a class="jxr_linenumber" name="L39" href="#L39">39</a> @SuppressWarnings({<span class="jxr_string">"serial"</span>})
-<a class="jxr_linenumber" name="L40" href="#L40">40</a> <strong class="jxr_keyword">class</strong> RoundTripLargeObjects_Test <strong class="jxr_keyword">extends</strong> <a name="TestBase" href="../../../../../org/apache/juneau/TestBase.html#TestBase">TestBase</a> {
-<a class="jxr_linenumber" name="L41" href="#L41">41</a>
-<a class="jxr_linenumber" name="L42" href="#L42">42</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> NUM_RUNS = 10;
-<a class="jxr_linenumber" name="L43" href="#L43">43</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> SIZE_PARAM = 20000;
-<a class="jxr_linenumber" name="L44" href="#L44">44</a>
-<a class="jxr_linenumber" name="L45" href="#L45">45</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <a name="RoundTrip_Tester" href="../../../../../org/apache/juneau/a/rttests/RoundTrip_Tester.html#RoundTrip_Tester">RoundTrip_Tester</a>[] TESTERS = {
-<a class="jxr_linenumber" name="L46" href="#L46">46</a> tester(1, <span class="jxr_string">"Json DEFAULT"</span>)
-<a class="jxr_linenumber" name="L47" href="#L47">47</a> .serializer(JsonSerializer.create().keepNullProperties())
-<a class="jxr_linenumber" name="L48" href="#L48">48</a> .parser(JsonParser.create())
-<a class="jxr_linenumber" name="L49" href="#L49">49</a> .build(),
-<a class="jxr_linenumber" name="L50" href="#L50">50</a> tester(2, <span class="jxr_string">"Json5 DEFAULT"</span>)
-<a class="jxr_linenumber" name="L51" href="#L51">51</a> .serializer(Json5Serializer.create().keepNullProperties())
-<a class="jxr_linenumber" name="L52" href="#L52">52</a> .parser(Json5Parser.create())
-<a class="jxr_linenumber" name="L53" href="#L53">53</a> .build(),
-<a class="jxr_linenumber" name="L54" href="#L54">54</a> tester(3, <span class="jxr_string">"Json DEFAULT_SQ"</span>)
-<a class="jxr_linenumber" name="L55" href="#L55">55</a> .serializer(JsonSerializer.create().json5().keepNullProperties())
-<a class="jxr_linenumber" name="L56" href="#L56">56</a> .parser(JsonParser.create())
-<a class="jxr_linenumber" name="L57" href="#L57">57</a> .build(),
-<a class="jxr_linenumber" name="L58" href="#L58">58</a> tester(4, <span class="jxr_string">"Xml DEFAULT w/namespaces,validation"</span>)
-<a class="jxr_linenumber" name="L59" href="#L59">59</a> .serializer(XmlSerializer.create().sq().ns().keepNullProperties().addNamespaceUrisToRoot().useWhitespace())
-<a class="jxr_linenumber" name="L60" href="#L60">60</a> .parser(XmlParser.create())
-<a class="jxr_linenumber" name="L61" href="#L61">61</a> .validateXml()
-<a class="jxr_linenumber" name="L62" href="#L62">62</a> .validateXmlWhitespace()
-<a class="jxr_linenumber" name="L63" href="#L63">63</a> .build(),
-<a class="jxr_linenumber" name="L64" href="#L64">64</a> tester(5, <span class="jxr_string">"Xml DEFAULT wo/namespaces,validation"</span>)
-<a class="jxr_linenumber" name="L65" href="#L65">65</a> .serializer(XmlSerializer.create().sq().keepNullProperties())
-<a class="jxr_linenumber" name="L66" href="#L66">66</a> .parser(XmlParser.create())
-<a class="jxr_linenumber" name="L67" href="#L67">67</a> .validateXmlWhitespace()
-<a class="jxr_linenumber" name="L68" href="#L68">68</a> .build(),
-<a class="jxr_linenumber" name="L69" href="#L69">69</a> tester(6, <span class="jxr_string">"Html"</span>)
-<a class="jxr_linenumber" name="L70" href="#L70">70</a> .serializer(HtmlSerializer.create().keepNullProperties())
-<a class="jxr_linenumber" name="L71" href="#L71">71</a> .parser(HtmlParser.create())
-<a class="jxr_linenumber" name="L72" href="#L72">72</a> .validateXmlWhitespace()
-<a class="jxr_linenumber" name="L73" href="#L73">73</a> .build(),
-<a class="jxr_linenumber" name="L74" href="#L74">74</a> tester(7, <span class="jxr_string">"UrlEncoding"</span>)
-<a class="jxr_linenumber" name="L75" href="#L75">75</a> .serializer(UrlEncodingSerializer.create().keepNullProperties())
-<a class="jxr_linenumber" name="L76" href="#L76">76</a> .parser(UrlEncodingParser.create())
-<a class="jxr_linenumber" name="L77" href="#L77">77</a> .build(),
-<a class="jxr_linenumber" name="L78" href="#L78">78</a> tester(8, <span class="jxr_string">"Uon"</span>)
-<a class="jxr_linenumber" name="L79" href="#L79">79</a> .serializer(UonSerializer.create().keepNullProperties())
-<a class="jxr_linenumber" name="L80" href="#L80">80</a> .parser(UonParser.create())
-<a class="jxr_linenumber" name="L81" href="#L81">81</a> .build(),
-<a class="jxr_linenumber" name="L82" href="#L82">82</a> tester(9, <span class="jxr_string">"MsgPack"</span>)
-<a class="jxr_linenumber" name="L83" href="#L83">83</a> .serializer(MsgPackSerializer.create().keepNullProperties())
-<a class="jxr_linenumber" name="L84" href="#L84">84</a> .parser(MsgPackParser.create())
-<a class="jxr_linenumber" name="L85" href="#L85">85</a> .build()
-<a class="jxr_linenumber" name="L86" href="#L86">86</a> };
-<a class="jxr_linenumber" name="L87" href="#L87">87</a>
-<a class="jxr_linenumber" name="L88" href="#L88">88</a> <strong class="jxr_keyword">static</strong> <a name="RoundTrip_Tester" href="../../../../../org/apache/juneau/a/rttests/RoundTrip_Tester.html#RoundTrip_Tester">RoundTrip_Tester</a>[] testers() {
-<a class="jxr_linenumber" name="L89" href="#L89">89</a> <strong class="jxr_keyword">return</strong> TESTERS;
-<a class="jxr_linenumber" name="L90" href="#L90">90</a> }
-<a class="jxr_linenumber" name="L91" href="#L91">91</a>
-<a class="jxr_linenumber" name="L92" href="#L92">92</a> <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> RoundTrip_Tester.Builder tester(<strong class="jxr_keyword">int</strong> index, String label) {
-<a class="jxr_linenumber" name="L93" href="#L93">93</a> <strong class="jxr_keyword">return</strong> RoundTrip_Tester.create(index, label);
-<a class="jxr_linenumber" name="L94" href="#L94">94</a> }
-<a class="jxr_linenumber" name="L95" href="#L95">95</a>
-<a class="jxr_linenumber" name="L96" href="#L96">96</a> <em class="jxr_comment">//====================================================================================================</em>
-<a class="jxr_linenumber" name="L97" href="#L97">97</a> <em class="jxr_comment">// test</em>
-<a class="jxr_linenumber" name="L98" href="#L98">98</a> <em class="jxr_comment">//====================================================================================================</em>
-<a class="jxr_linenumber" name="L99" href="#L99">99</a>
-<a class="jxr_linenumber" name="L100" href="#L100">100</a> @ParameterizedTest
-<a class="jxr_linenumber" name="L101" href="#L101">101</a> @MethodSource(<span class="jxr_string">"testers"</span>)
-<a class="jxr_linenumber" name="L102" href="#L102">102</a> <strong class="jxr_keyword">void</strong> a01_largeMap(<a name="RoundTrip_Tester" href="../../../../../org/apache/juneau/a/rttests/RoundTrip_Tester.html#RoundTrip_Tester">RoundTrip_Tester</a> t) <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="L103" href="#L103">103</a> <strong class="jxr_keyword">long</strong> startTime;
-<a class="jxr_linenumber" name="L104" href="#L104">104</a> <strong class="jxr_keyword">var</strong> numRuns = NUM_RUNS;
-<a class="jxr_linenumber" name="L105" href="#L105">105</a>
-<a class="jxr_linenumber" name="L106" href="#L106">106</a> <strong class="jxr_keyword">var</strong> a = A.create();
-<a class="jxr_linenumber" name="L107" href="#L107">107</a> <strong class="jxr_keyword">var</strong> s = t.getSerializer();
-<a class="jxr_linenumber" name="L108" href="#L108">108</a> <strong class="jxr_keyword">var</strong> p = t.getParser();
-<a class="jxr_linenumber" name="L109" href="#L109">109</a> System.err.println(<span class="jxr_string">"\n---Speed test on "</span> + t.label + <span class="jxr_string">"---"</span>); <em class="jxr_comment">// NOT DEBUG</em>
-<a class="jxr_linenumber" name="L110" href="#L110">110</a> <strong class="jxr_keyword">var</strong> r = (Object)<span class="jxr_string">""</span>;
-<a class="jxr_linenumber" name="L111" href="#L111">111</a>
-<a class="jxr_linenumber" name="L112" href="#L112">112</a> <em class="jxr_comment">// Initialization run.</em>
-<a class="jxr_linenumber" name="L113" href="#L113">113</a> r = s.serialize(a);
-<a class="jxr_linenumber" name="L114" href="#L114">114</a> System.err.println(mformat(<span class="jxr_string">"Serialized size: {0,number} "</span>, (r instanceof String ? r.toString().length() : ((byte[])r).length))); <em class="jxr_comment">// NOT DEBUG</em>
-<a class="jxr_linenumber" name="L115" href="#L115">115</a> p.parse(r, A.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="L116" href="#L116">116</a>
-<a class="jxr_linenumber" name="L117" href="#L117">117</a> startTime = System.currentTimeMillis();
-<a class="jxr_linenumber" name="L118" href="#L118">118</a> <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> i = 0; i < numRuns; i++)
-<a class="jxr_linenumber" name="L119" href="#L119">119</a> r = s.serialize(a);
-<a class="jxr_linenumber" name="L120" href="#L120">120</a> System.err.println(mformat(<span class="jxr_string">"Average serialize time: {0,number}ms"</span>, (System.currentTimeMillis()-startTime)/numRuns)); <em class="jxr_comment">// NOT DEBUG</em>
-<a class="jxr_linenumber" name="L121" href="#L121">121</a> startTime = System.currentTimeMillis();
-<a class="jxr_linenumber" name="L122" href="#L122">122</a> <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> i = 0; i < numRuns; i++)
-<a class="jxr_linenumber" name="L123" href="#L123">123</a> p.parse(r, A.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="L124" href="#L124">124</a> System.err.println(mformat(<span class="jxr_string">"Average parsed time: {0,number}ms"</span>, (System.currentTimeMillis()-startTime)/numRuns)); <em class="jxr_comment">// NOT DEBUG</em>
-<a class="jxr_linenumber" name="L125" href="#L125">125</a> }
-<a class="jxr_linenumber" name="L126" href="#L126">126</a>
-<a class="jxr_linenumber" name="L127" href="#L127">127</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> A {
-<a class="jxr_linenumber" name="L128" href="#L128">128</a> <strong class="jxr_keyword">public</strong> A1Map a1Map;
-<a class="jxr_linenumber" name="L129" href="#L129">129</a> <strong class="jxr_keyword">public</strong> A1List a1List;
-<a class="jxr_linenumber" name="L130" href="#L130">130</a> <strong class="jxr_keyword">public</strong> A1[] a1Array;
-<a class="jxr_linenumber" name="L131" href="#L131">131</a>
-<a class="jxr_linenumber" name="L132" href="#L132">132</a> <strong class="jxr_keyword">static</strong> A create() {
-<a class="jxr_linenumber" name="L133" href="#L133">133</a> <strong class="jxr_keyword">var</strong> a = <strong class="jxr_keyword">new</strong> A();
-<a class="jxr_linenumber" name="L134" href="#L134">134</a> a.a1Map = <strong class="jxr_keyword">new</strong> A1Map();
-<a class="jxr_linenumber" name="L135" href="#L135">135</a> a.a1List = <strong class="jxr_keyword">new</strong> A1List();
-<a class="jxr_linenumber" name="L136" href="#L136">136</a> <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> i = 0; i < SIZE_PARAM; i++) {
-<a class="jxr_linenumber" name="L137" href="#L137">137</a> a.a1Map.put(String.valueOf(i), <strong class="jxr_keyword">new</strong> A1());
-<a class="jxr_linenumber" name="L138" href="#L138">138</a> a.a1List.add(<strong class="jxr_keyword">new</strong> A1());
-<a class="jxr_linenumber" name="L139" href="#L139">139</a> }
-<a class="jxr_linenumber" name="L140" href="#L140">140</a> a.a1Array = a.a1List.toArray(<strong class="jxr_keyword">new</strong> A1[0]);
-<a class="jxr_linenumber" name="L141" href="#L141">141</a> <strong class="jxr_keyword">return</strong> a;
-<a class="jxr_linenumber" name="L142" href="#L142">142</a> }
-<a class="jxr_linenumber" name="L143" href="#L143">143</a> }
-<a class="jxr_linenumber" name="L144" href="#L144">144</a>
-<a class="jxr_linenumber" name="L145" href="#L145">145</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> A1 {
-<a class="jxr_linenumber" name="L146" href="#L146">146</a> <strong class="jxr_keyword">public</strong> String f1 = <span class="jxr_string">"a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789i123456789j123456789"</span>;
-<a class="jxr_linenumber" name="L147" href="#L147">147</a> }
-<a class="jxr_linenumber" name="L148" href="#L148">148</a>
-<a class="jxr_linenumber" name="L149" href="#L149">149</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> A1Map <strong class="jxr_keyword">extends</strong> LinkedHashMap<String,A1> {}
-<a class="jxr_linenumber" name="L150" href="#L150">150</a>
-<a class="jxr_linenumber" name="L151" href="#L151">151</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> A1List <strong class="jxr_keyword">extends</strong> LinkedList<A1> {}
-<a class="jxr_linenumber" name="L152" href="#L152">152</a> }
+<a class="jxr_linenumber" name="L20" href="#L20">20</a> <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.juneau.common.utils.Utils.*;
+<a class="jxr_linenumber" name="L21" href="#L21">21</a>
+<a class="jxr_linenumber" name="L22" href="#L22">22</a> <strong class="jxr_keyword">import</strong> java.util.*;
+<a class="jxr_linenumber" name="L23" href="#L23">23</a>
+<a class="jxr_linenumber" name="L24" href="#L24">24</a> <strong class="jxr_keyword">import</strong> org.apache.juneau.*;
+<a class="jxr_linenumber" name="L25" href="#L25">25</a> <strong class="jxr_keyword">import</strong> org.apache.juneau.html.*;
+<a class="jxr_linenumber" name="L26" href="#L26">26</a> <strong class="jxr_keyword">import</strong> org.apache.juneau.json.*;
+<a class="jxr_linenumber" name="L27" href="#L27">27</a> <strong class="jxr_keyword">import</strong> org.apache.juneau.msgpack.*;
+<a class="jxr_linenumber" name="L28" href="#L28">28</a> <strong class="jxr_keyword">import</strong> org.apache.juneau.uon.*;
+<a class="jxr_linenumber" name="L29" href="#L29">29</a> <strong class="jxr_keyword">import</strong> org.apache.juneau.urlencoding.*;
+<a class="jxr_linenumber" name="L30" href="#L30">30</a> <strong class="jxr_keyword">import</strong> org.apache.juneau.xml.*;
+<a class="jxr_linenumber" name="L31" href="#L31">31</a> <strong class="jxr_keyword">import</strong> org.junit.jupiter.api.*;
+<a class="jxr_linenumber" name="L32" href="#L32">32</a> <strong class="jxr_keyword">import</strong> org.junit.jupiter.params.*;
+<a class="jxr_linenumber" name="L33" href="#L33">33</a> <strong class="jxr_keyword">import</strong> org.junit.jupiter.params.provider.*;
+<a class="jxr_linenumber" name="L34" href="#L34">34</a>
+<a class="jxr_linenumber" name="L35" href="#L35">35</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L36" href="#L36">36</a> <em class="jxr_javadoccomment"> * Tests designed to serialize and parse objects to make sure we end up</em>
+<a class="jxr_linenumber" name="L37" href="#L37">37</a> <em class="jxr_javadoccomment"> * with the same objects for all serializers and parsers.</em>
+<a class="jxr_linenumber" name="L38" href="#L38">38</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L39" href="#L39">39</a> @Disabled
+<a class="jxr_linenumber" name="L40" href="#L40">40</a> @SuppressWarnings({<span class="jxr_string">"serial"</span>})
+<a class="jxr_linenumber" name="L41" href="#L41">41</a> <strong class="jxr_keyword">class</strong> RoundTripLargeObjects_Test <strong class="jxr_keyword">extends</strong> <a name="TestBase" href="../../../../../org/apache/juneau/TestBase.html#TestBase">TestBase</a> {
+<a class="jxr_linenumber" name="L42" href="#L42">42</a>
+<a class="jxr_linenumber" name="L43" href="#L43">43</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> NUM_RUNS = 10;
+<a class="jxr_linenumber" name="L44" href="#L44">44</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> SIZE_PARAM = 20000;
+<a class="jxr_linenumber" name="L45" href="#L45">45</a>
+<a class="jxr_linenumber" name="L46" href="#L46">46</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <a name="RoundTrip_Tester" href="../../../../../org/apache/juneau/a/rttests/RoundTrip_Tester.html#RoundTrip_Tester">RoundTrip_Tester</a>[] TESTERS = {
+<a class="jxr_linenumber" name="L47" href="#L47">47</a> tester(1, <span class="jxr_string">"Json DEFAULT"</span>)
+<a class="jxr_linenumber" name="L48" href="#L48">48</a> .serializer(JsonSerializer.create().keepNullProperties())
+<a class="jxr_linenumber" name="L49" href="#L49">49</a> .parser(JsonParser.create())
+<a class="jxr_linenumber" name="L50" href="#L50">50</a> .build(),
+<a class="jxr_linenumber" name="L51" href="#L51">51</a> tester(2, <span class="jxr_string">"Json5 DEFAULT"</span>)
+<a class="jxr_linenumber" name="L52" href="#L52">52</a> .serializer(Json5Serializer.create().keepNullProperties())
+<a class="jxr_linenumber" name="L53" href="#L53">53</a> .parser(Json5Parser.create())
+<a class="jxr_linenumber" name="L54" href="#L54">54</a> .build(),
+<a class="jxr_linenumber" name="L55" href="#L55">55</a> tester(3, <span class="jxr_string">"Json DEFAULT_SQ"</span>)
+<a class="jxr_linenumber" name="L56" href="#L56">56</a> .serializer(JsonSerializer.create().json5().keepNullProperties())
+<a class="jxr_linenumber" name="L57" href="#L57">57</a> .parser(JsonParser.create())
+<a class="jxr_linenumber" name="L58" href="#L58">58</a> .build(),
+<a class="jxr_linenumber" name="L59" href="#L59">59</a> tester(4, <span class="jxr_string">"Xml DEFAULT w/namespaces,validation"</span>)
+<a class="jxr_linenumber" name="L60" href="#L60">60</a> .serializer(XmlSerializer.create().sq().ns().keepNullProperties().addNamespaceUrisToRoot().useWhitespace())
+<a class="jxr_linenumber" name="L61" href="#L61">61</a> .parser(XmlParser.create())
+<a class="jxr_linenumber" name="L62" href="#L62">62</a> .validateXml()
+<a class="jxr_linenumber" name="L63" href="#L63">63</a> .validateXmlWhitespace()
+<a class="jxr_linenumber" name="L64" href="#L64">64</a> .build(),
+<a class="jxr_linenumber" name="L65" href="#L65">65</a> tester(5, <span class="jxr_string">"Xml DEFAULT wo/namespaces,validation"</span>)
+<a class="jxr_linenumber" name="L66" href="#L66">66</a> .serializer(XmlSerializer.create().sq().keepNullProperties())
+<a class="jxr_linenumber" name="L67" href="#L67">67</a> .parser(XmlParser.create())
+<a class="jxr_linenumber" name="L68" href="#L68">68</a> .validateXmlWhitespace()
+<a class="jxr_linenumber" name="L69" href="#L69">69</a> .build(),
+<a class="jxr_linenumber" name="L70" href="#L70">70</a> tester(6, <span class="jxr_string">"Html"</span>)
+<a class="jxr_linenumber" name="L71" href="#L71">71</a> .serializer(HtmlSerializer.create().keepNullProperties())
+<a class="jxr_linenumber" name="L72" href="#L72">72</a> .parser(HtmlParser.create())
+<a class="jxr_linenumber" name="L73" href="#L73">73</a> .validateXmlWhitespace()
+<a class="jxr_linenumber" name="L74" href="#L74">74</a> .build(),
+<a class="jxr_linenumber" name="L75" href="#L75">75</a> tester(7, <span class="jxr_string">"UrlEncoding"</span>)
+<a class="jxr_linenumber" name="L76" href="#L76">76</a> .serializer(UrlEncodingSerializer.create().keepNullProperties())
+<a class="jxr_linenumber" name="L77" href="#L77">77</a> .parser(UrlEncodingParser.create())
+<a class="jxr_linenumber" name="L78" href="#L78">78</a> .build(),
+<a class="jxr_linenumber" name="L79" href="#L79">79</a> tester(8, <span class="jxr_string">"Uon"</span>)
+<a class="jxr_linenumber" name="L80" href="#L80">80</a> .serializer(UonSerializer.create().keepNullProperties())
+<a class="jxr_linenumber" name="L81" href="#L81">81</a> .parser(UonParser.create())
+<a class="jxr_linenumber" name="L82" href="#L82">82</a> .build(),
+<a class="jxr_linenumber" name="L83" href="#L83">83</a> tester(9, <span class="jxr_string">"MsgPack"</span>)
+<a class="jxr_linenumber" name="L84" href="#L84">84</a> .serializer(MsgPackSerializer.create().keepNullProperties())
+<a class="jxr_linenumber" name="L85" href="#L85">85</a> .parser(MsgPackParser.create())
+<a class="jxr_linenumber" name="L86" href="#L86">86</a> .build()
+<a class="jxr_linenumber" name="L87" href="#L87">87</a> };
+<a class="jxr_linenumber" name="L88" href="#L88">88</a>
+<a class="jxr_linenumber" name="L89" href="#L89">89</a> <strong class="jxr_keyword">static</strong> <a name="RoundTrip_Tester" href="../../../../../org/apache/juneau/a/rttests/RoundTrip_Tester.html#RoundTrip_Tester">RoundTrip_Tester</a>[] testers() {
+<a class="jxr_linenumber" name="L90" href="#L90">90</a> <strong class="jxr_keyword">return</strong> TESTERS;
+<a class="jxr_linenumber" name="L91" href="#L91">91</a> }
+<a class="jxr_linenumber" name="L92" href="#L92">92</a>
+<a class="jxr_linenumber" name="L93" href="#L93">93</a> <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> RoundTrip_Tester.Builder tester(<strong class="jxr_keyword">int</strong> index, String label) {
+<a class="jxr_linenumber" name="L94" href="#L94">94</a> <strong class="jxr_keyword">return</strong> RoundTrip_Tester.create(index, label);
+<a class="jxr_linenumber" name="L95" href="#L95">95</a> }
+<a class="jxr_linenumber" name="L96" href="#L96">96</a>
+<a class="jxr_linenumber" name="L97" href="#L97">97</a> <em class="jxr_comment">//====================================================================================================</em>
+<a class="jxr_linenumber" name="L98" href="#L98">98</a> <em class="jxr_comment">// test</em>
+<a class="jxr_linenumber" name="L99" href="#L99">99</a> <em class="jxr_comment">//====================================================================================================</em>
+<a class="jxr_linenumber" name="L100" href="#L100">100</a>
+<a class="jxr_linenumber" name="L101" href="#L101">101</a> @ParameterizedTest
+<a class="jxr_linenumber" name="L102" href="#L102">102</a> @MethodSource(<span class="jxr_string">"testers"</span>)
+<a class="jxr_linenumber" name="L103" href="#L103">103</a> <strong class="jxr_keyword">void</strong> a01_largeMap(<a name="RoundTrip_Tester" href="../../../../../org/apache/juneau/a/rttests/RoundTrip_Tester.html#RoundTrip_Tester">RoundTrip_Tester</a> t) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="L104" href="#L104">104</a> <strong class="jxr_keyword">long</strong> startTime;
+<a class="jxr_linenumber" name="L105" href="#L105">105</a> <strong class="jxr_keyword">var</strong> numRuns = NUM_RUNS;
+<a class="jxr_linenumber" name="L106" href="#L106">106</a>
+<a class="jxr_linenumber" name="L107" href="#L107">107</a> <strong class="jxr_keyword">var</strong> a = A.create();
+<a class="jxr_linenumber" name="L108" href="#L108">108</a> <strong class="jxr_keyword">var</strong> s = t.getSerializer();
+<a class="jxr_linenumber" name="L109" href="#L109">109</a> <strong class="jxr_keyword">var</strong> p = t.getParser();
+<a class="jxr_linenumber" name="L110" href="#L110">110</a> System.err.println(<span class="jxr_string">"\n---Speed test on "</span> + t.label + <span class="jxr_string">"---"</span>); <em class="jxr_comment">// NOT DEBUG</em>
+<a class="jxr_linenumber" name="L111" href="#L111">111</a> <strong class="jxr_keyword">var</strong> r = (Object)<span class="jxr_string">""</span>;
+<a class="jxr_linenumber" name="L112" href="#L112">112</a>
+<a class="jxr_linenumber" name="L113" href="#L113">113</a> <em class="jxr_comment">// Initialization run.</em>
+<a class="jxr_linenumber" name="L114" href="#L114">114</a> r = s.serialize(a);
+<a class="jxr_linenumber" name="L115" href="#L115">115</a> System.err.println(f(<span class="jxr_string">"Serialized size: {0,number} "</span>, (r instanceof String ? r.toString().length() : ((byte[])r).length))); <em class="jxr_comment">// NOT DEBUG</em>
+<a class="jxr_linenumber" name="L116" href="#L116">116</a> p.parse(r, A.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="L117" href="#L117">117</a>
+<a class="jxr_linenumber" name="L118" href="#L118">118</a> startTime = System.currentTimeMillis();
+<a class="jxr_linenumber" name="L119" href="#L119">119</a> <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> i = 0; i < numRuns; i++)
+<a class="jxr_linenumber" name="L120" href="#L120">120</a> r = s.serialize(a);
+<a class="jxr_linenumber" name="L121" href="#L121">121</a> System.err.println(mformat(<span class="jxr_string">"Average serialize time: {0,number}ms"</span>, (System.currentTimeMillis()-startTime)/numRuns)); <em class="jxr_comment">// NOT DEBUG</em>
+<a class="jxr_linenumber" name="L122" href="#L122">122</a> startTime = System.currentTimeMillis();
+<a class="jxr_linenumber" name="L123" href="#L123">123</a> <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> i = 0; i < numRuns; i++)
+<a class="jxr_linenumber" name="L124" href="#L124">124</a> p.parse(r, A.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="L125" href="#L125">125</a> System.err.println(mformat(<span class="jxr_string">"Average parsed time: {0,number}ms"</span>, (System.currentTimeMillis()-startTime)/numRuns)); <em class="jxr_comment">// NOT DEBUG</em>
+<a class="jxr_linenumber" name="L126" href="#L126">126</a> }
+<a class="jxr_linenumber" name="L127" href="#L127">127</a>
+<a class="jxr_linenumber" name="L128" href="#L128">128</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> A {
+<a class="jxr_linenumber" name="L129" href="#L129">129</a> <strong class="jxr_keyword">public</strong> A1Map a1Map;
+<a class="jxr_linenumber" name="L130" href="#L130">130</a> <strong class="jxr_keyword">public</strong> A1List a1List;
+<a class="jxr_linenumber" name="L131" href="#L131">131</a> <strong class="jxr_keyword">public</strong> A1[] a1Array;
+<a class="jxr_linenumber" name="L132" href="#L132">132</a>
+<a class="jxr_linenumber" name="L133" href="#L133">133</a> <strong class="jxr_keyword">static</strong> A create() {
+<a class="jxr_linenumber" name="L134" href="#L134">134</a> <strong class="jxr_keyword">var</strong> a = <strong class="jxr_keyword">new</strong> A();
+<a class="jxr_linenumber" name="L135" href="#L135">135</a> a.a1Map = <strong class="jxr_keyword">new</strong> A1Map();
+<a class="jxr_linenumber" name="L136" href="#L136">136</a> a.a1List = <strong class="jxr_keyword">new</strong> A1List();
+<a class="jxr_linenumber" name="L137" href="#L137">137</a> <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> i = 0; i < SIZE_PARAM; i++) {
+<a class="jxr_linenumber" name="L138" href="#L138">138</a> a.a1Map.put(String.valueOf(i), <strong class="jxr_keyword">new</strong> A1());
+<a class="jxr_linenumber" name="L139" href="#L139">139</a> a.a1List.add(<strong class="jxr_keyword">new</strong> A1());
+<a class="jxr_linenumber" name="L140" href="#L140">140</a> }
+<a class="jxr_linenumber" name="L141" href="#L141">141</a> a.a1Array = a.a1List.toArray(<strong class="jxr_keyword">new</strong> A1[0]);
+<a class="jxr_linenumber" name="L142" href="#L142">142</a> <strong class="jxr_keyword">return</strong> a;
+<a class="jxr_linenumber" name="L143" href="#L143">143</a> }
+<a class="jxr_linenumber" name="L144" href="#L144">144</a> }
+<a class="jxr_linenumber" name="L145" href="#L145">145</a>
+<a class="jxr_linenumber" name="L146" href="#L146">146</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> A1 {
+<a class="jxr_linenumber" name="L147" href="#L147">147</a> <strong class="jxr_keyword">public</strong> String f1 = <span class="jxr_string">"a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789i123456789j123456789"</span>;
+<a class="jxr_linenumber" name="L148" href="#L148">148</a> }
+<a class="jxr_linenumber" name="L149" href="#L149">149</a>
+<a class="jxr_linenumber" name="L150" href="#L150">150</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> A1Map <strong class="jxr_keyword">extends</strong> LinkedHashMap<String,A1> {}
+<a class="jxr_linenumber" name="L151" href="#L151">151</a>
+<a class="jxr_linenumber" name="L152" href="#L152">152</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> A1List <strong class="jxr_keyword">extends</strong> LinkedList<A1> {}
+<a class="jxr_linenumber" name="L153" href="#L153">153</a> }
</pre>
<hr/>
<div id="footer">© 2016–2025 <a href="https://www.apache.org/">The Apache Software Foundation</a></div>
diff --git a/site/xref-test/org/apache/juneau/common/utils/FormatString_Test.html b/site/xref-test/org/apache/juneau/common/utils/FormatString_Test.html
deleted file mode 100644
index 949a947981..0000000000
--- a/site/xref-test/org/apache/juneau/common/utils/FormatString_Test.html
+++ /dev/null
@@ -1,429 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="" lang="">
-<head><meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-<title>FormatString_Test xref</title>
-<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
-</head>
-<body>
-<div id="overview"><a href="../../../../../../testapidocs/org/apache/juneau/common/utils/FormatString_Test.html">View Javadoc</a></div><pre>
-<a class="jxr_linenumber" name="L1" href="#L1">1</a> <em class="jxr_comment">/*</em>
-<a class="jxr_linenumber" name="L2" href="#L2">2</a> <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</em>
-<a class="jxr_linenumber" name="L3" href="#L3">3</a> <em class="jxr_comment"> * contributor license agreements. See the NOTICE file distributed with</em>
-<a class="jxr_linenumber" name="L4" href="#L4">4</a> <em class="jxr_comment"> * this work for additional information regarding copyright ownership.</em>
-<a class="jxr_linenumber" name="L5" href="#L5">5</a> <em class="jxr_comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</em>
-<a class="jxr_linenumber" name="L6" href="#L6">6</a> <em class="jxr_comment"> * (the "License"); you may not use this file except in compliance with</em>
-<a class="jxr_linenumber" name="L7" href="#L7">7</a> <em class="jxr_comment"> * the License. You may obtain a copy of the License at</em>
-<a class="jxr_linenumber" name="L8" href="#L8">8</a> <em class="jxr_comment"> *</em>
-<a class="jxr_linenumber" name="L9" href="#L9">9</a> <em class="jxr_comment"> * <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
-<a class="jxr_linenumber" name="L10" href="#L10">10</a> <em class="jxr_comment"> *</em>
-<a class="jxr_linenumber" name="L11" href="#L11">11</a> <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing, software</em>
-<a class="jxr_linenumber" name="L12" href="#L12">12</a> <em class="jxr_comment"> * distributed under the License is distributed on an "AS IS" BASIS,</em>
-<a class="jxr_linenumber" name="L13" href="#L13">13</a> <em class="jxr_comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
-<a class="jxr_linenumber" name="L14" href="#L14">14</a> <em class="jxr_comment"> * See the License for the specific language governing permissions and</em>
-<a class="jxr_linenumber" name="L15" href="#L15">15</a> <em class="jxr_comment"> * limitations under the License.</em>
-<a class="jxr_linenumber" name="L16" href="#L16">16</a> <em class="jxr_comment"> */</em>
-<a class="jxr_linenumber" name="L17" href="#L17">17</a> <strong class="jxr_keyword">package</strong> org.apache.juneau.common.utils;
-<a class="jxr_linenumber" name="L18" href="#L18">18</a>
-<a class="jxr_linenumber" name="L19" href="#L19">19</a> <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.juneau.common.utils.Utils.*;
-<a class="jxr_linenumber" name="L20" href="#L20">20</a> <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.jupiter.api.Assertions.*;
-<a class="jxr_linenumber" name="L21" href="#L21">21</a> <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> java.util.stream.Collectors.*;
-<a class="jxr_linenumber" name="L22" href="#L22">22</a>
-<a class="jxr_linenumber" name="L23" href="#L23">23</a> <strong class="jxr_keyword">import</strong> java.math.*;
-<a class="jxr_linenumber" name="L24" href="#L24">24</a> <strong class="jxr_keyword">import</strong> java.text.*;
-<a class="jxr_linenumber" name="L25" href="#L25">25</a> <strong class="jxr_keyword">import</strong> java.util.*;
-<a class="jxr_linenumber" name="L26" href="#L26">26</a> <strong class="jxr_keyword">import</strong> java.util.stream.*;
-<a class="jxr_linenumber" name="L27" href="#L27">27</a>
-<a class="jxr_linenumber" name="L28" href="#L28">28</a> <strong class="jxr_keyword">import</strong> org.apache.juneau.*;
-<a class="jxr_linenumber" name="L29" href="#L29">29</a> <strong class="jxr_keyword">import</strong> org.apache.juneau.common.function.*;
-<a class="jxr_linenumber" name="L30" href="#L30">30</a> <strong class="jxr_keyword">import</strong> org.junit.jupiter.api.*;
-<a class="jxr_linenumber" name="L31" href="#L31">31</a>
-<a class="jxr_linenumber" name="L32" href="#L32">32</a> <strong class="jxr_keyword">class</strong> <a name="FormatString_Test" href="../../../../../org/apache/juneau/common/utils/FormatString_Test.html#FormatString_Test">FormatString_Test</a> <strong class="jxr_keyword">extends</strong> <a name="TestBase" href="../../../../../org/apache/juneau/TestBase.html#TestBase">TestBase</a> {
-<a class="jxr_linenumber" name="L33" href="#L33">33</a>
-<a class="jxr_linenumber" name="L34" href="#L34">34</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> StringFormat fs(String pattern) {
-<a class="jxr_linenumber" name="L35" href="#L35">35</a> <strong class="jxr_keyword">return</strong> StringFormat.of(pattern);
-<a class="jxr_linenumber" name="L36" href="#L36">36</a> }
-<a class="jxr_linenumber" name="L37" href="#L37">37</a>
-<a class="jxr_linenumber" name="L38" href="#L38">38</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> String stringify(ThrowingSupplier<String> supplier) {
-<a class="jxr_linenumber" name="L39" href="#L39">39</a> <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="L40" href="#L40">40</a> <strong class="jxr_keyword">return</strong> supplier.get();
-<a class="jxr_linenumber" name="L41" href="#L41">41</a> } <strong class="jxr_keyword">catch</strong> (Throwable t) {
-<a class="jxr_linenumber" name="L42" href="#L42">42</a> <strong class="jxr_keyword">return</strong> t.getClass().getSimpleName() + <span class="jxr_string">": "</span> + t.getLocalizedMessage();
-<a class="jxr_linenumber" name="L43" href="#L43">43</a> }
-<a class="jxr_linenumber" name="L44" href="#L44">44</a> }
-<a class="jxr_linenumber" name="L45" href="#L45">45</a>
-<a class="jxr_linenumber" name="L46" href="#L46">46</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> assertStringFormat(String pattern, Locale locale, Object... args) {
-<a class="jxr_linenumber" name="L47" href="#L47">47</a> <strong class="jxr_keyword">var</strong> expected = stringify(()->String.format(locale, pattern, args));
-<a class="jxr_linenumber" name="L48" href="#L48">48</a> <strong class="jxr_keyword">var</strong> actual = <span class="jxr_string">""</span>;
-<a class="jxr_linenumber" name="L49" href="#L49">49</a> <strong class="jxr_keyword">var</strong> fmt = (StringFormat)<strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L50" href="#L50">50</a> <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="L51" href="#L51">51</a> <strong class="jxr_keyword">var</strong> fmt2 = fs(pattern);
-<a class="jxr_linenumber" name="L52" href="#L52">52</a> fmt = fmt2;
-<a class="jxr_linenumber" name="L53" href="#L53">53</a> actual = stringify(()->fmt2.format(locale, args));
-<a class="jxr_linenumber" name="L54" href="#L54">54</a> } <strong class="jxr_keyword">catch</strong> (Throwable t) {
-<a class="jxr_linenumber" name="L55" href="#L55">55</a> actual = t.getClass().getSimpleName() + <span class="jxr_string">": "</span> + t.getLocalizedMessage();
-<a class="jxr_linenumber" name="L56" href="#L56">56</a> }
-<a class="jxr_linenumber" name="L57" href="#L57">57</a> <strong class="jxr_keyword">if</strong> (!expected.equals(actual)) {
-<a class="jxr_linenumber" name="L58" href="#L58">58</a> System.out.println(<span class="jxr_string">"Pattern: "</span> + pattern);
-<a class="jxr_linenumber" name="L59" href="#L59">59</a> <strong class="jxr_keyword">var</strong> toPattern = opt(fmt).map(x -> x.toPattern()).orElse(<strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L60" href="#L60">60</a> System.out.println(<span class="jxr_string">"toPattern(): "</span> + toPattern);
-<a class="jxr_linenumber" name="L61" href="#L61">61</a> fail(<span class="jxr_string">"Pattern: "</span> + pattern + <span class="jxr_string">", toPattern(): "</span> + toPattern + <span class="jxr_string">", expected: <"</span> + expected + <span class="jxr_string">"> but was: <"</span> + actual + <span class="jxr_string">">"</span>);
-<a class="jxr_linenumber" name="L62" href="#L62">62</a> }
-<a class="jxr_linenumber" name="L63" href="#L63">63</a> }
-<a class="jxr_linenumber" name="L64" href="#L64">64</a>
-<a class="jxr_linenumber" name="L65" href="#L65">65</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> assertStringFormat(String pattern, Object... args) {
-<a class="jxr_linenumber" name="L66" href="#L66">66</a> <strong class="jxr_keyword">var</strong> expected = stringify(()->String.format(pattern, args));
-<a class="jxr_linenumber" name="L67" href="#L67">67</a> <strong class="jxr_keyword">var</strong> actual = <span class="jxr_string">""</span>;
-<a class="jxr_linenumber" name="L68" href="#L68">68</a> <strong class="jxr_keyword">var</strong> fmt = (StringFormat)<strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L69" href="#L69">69</a> <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="L70" href="#L70">70</a> <strong class="jxr_keyword">var</strong> fmt2 = fs(pattern);
-<a class="jxr_linenumber" name="L71" href="#L71">71</a> fmt = fmt2;
-<a class="jxr_linenumber" name="L72" href="#L72">72</a> actual = stringify(()->fmt2.format(args));
-<a class="jxr_linenumber" name="L73" href="#L73">73</a> } <strong class="jxr_keyword">catch</strong> (Throwable t) {
-<a class="jxr_linenumber" name="L74" href="#L74">74</a> actual = t.getClass().getSimpleName() + <span class="jxr_string">": "</span> + t.getLocalizedMessage();
-<a class="jxr_linenumber" name="L75" href="#L75">75</a> }
-<a class="jxr_linenumber" name="L76" href="#L76">76</a> <strong class="jxr_keyword">if</strong> (!expected.equals(actual)) {
-<a class="jxr_linenumber" name="L77" href="#L77">77</a> System.out.println(<span class="jxr_string">"Pattern: "</span> + pattern);
-<a class="jxr_linenumber" name="L78" href="#L78">78</a> <strong class="jxr_keyword">var</strong> toPattern = opt(fmt).map(x -> x.toPattern()).orElse(<strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L79" href="#L79">79</a> System.out.println(<span class="jxr_string">"toPattern(): "</span> + toPattern);
-<a class="jxr_linenumber" name="L80" href="#L80">80</a> fail(<span class="jxr_string">"Pattern: "</span> + pattern + <span class="jxr_string">", toPattern(): "</span> + toPattern + <span class="jxr_string">", expected: <"</span> + expected + <span class="jxr_string">"> but was: <"</span> + actual + <span class="jxr_string">">"</span>);
-<a class="jxr_linenumber" name="L81" href="#L81">81</a> }
-<a class="jxr_linenumber" name="L82" href="#L82">82</a> }
-<a class="jxr_linenumber" name="L83" href="#L83">83</a>
-<a class="jxr_linenumber" name="L84" href="#L84">84</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> assertMessageFormat(String pattern, Locale locale, Object... args) {
-<a class="jxr_linenumber" name="L85" href="#L85">85</a> <strong class="jxr_keyword">var</strong> expected = stringify(()-><strong class="jxr_keyword">new</strong> MessageFormat(pattern, locale).format(args));
-<a class="jxr_linenumber" name="L86" href="#L86">86</a> <strong class="jxr_keyword">var</strong> actual = <span class="jxr_string">""</span>;
-<a class="jxr_linenumber" name="L87" href="#L87">87</a> <strong class="jxr_keyword">var</strong> fmt = (StringFormat)<strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L88" href="#L88">88</a> <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="L89" href="#L89">89</a> <strong class="jxr_keyword">var</strong> fmt2 = fs(pattern);
-<a class="jxr_linenumber" name="L90" href="#L90">90</a> fmt = fmt2;
-<a class="jxr_linenumber" name="L91" href="#L91">91</a> actual = stringify(()->fmt2.format(locale, args));
-<a class="jxr_linenumber" name="L92" href="#L92">92</a> } <strong class="jxr_keyword">catch</strong> (Throwable t) {
-<a class="jxr_linenumber" name="L93" href="#L93">93</a> actual = t.getClass().getSimpleName() + <span class="jxr_string">": "</span> + t.getLocalizedMessage();
-<a class="jxr_linenumber" name="L94" href="#L94">94</a> }
-<a class="jxr_linenumber" name="L95" href="#L95">95</a> <strong class="jxr_keyword">if</strong> (!expected.equals(actual)) {
-<a class="jxr_linenumber" name="L96" href="#L96">96</a> System.out.println(<span class="jxr_string">"Pattern: "</span> + pattern);
-<a class="jxr_linenumber" name="L97" href="#L97">97</a> <strong class="jxr_keyword">var</strong> toPattern = opt(fmt).map(x -> x.toPattern()).orElse(<strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L98" href="#L98">98</a> System.out.println(<span class="jxr_string">"toPattern(): "</span> + toPattern);
-<a class="jxr_linenumber" name="L99" href="#L99">99</a> fail(<span class="jxr_string">"Pattern: "</span> + pattern + <span class="jxr_string">", toPattern(): "</span> + toPattern + <span class="jxr_string">", expected: <"</span> + expected + <span class="jxr_string">"> but was: <"</span> + actual + <span class="jxr_string">">"</span>);
-<a class="jxr_linenumber" name="L100" href="#L100">100</a> }
-<a class="jxr_linenumber" name="L101" href="#L101">101</a> }
-<a class="jxr_linenumber" name="L102" href="#L102">102</a>
-<a class="jxr_linenumber" name="L103" href="#L103">103</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> assertMessageFormat(String pattern, Object... args) {
-<a class="jxr_linenumber" name="L104" href="#L104">104</a> <strong class="jxr_keyword">var</strong> expected = stringify(()->MessageFormat.format(pattern, args));
-<a class="jxr_linenumber" name="L105" href="#L105">105</a> <strong class="jxr_keyword">var</strong> actual = <span class="jxr_string">""</span>;
-<a class="jxr_linenumber" name="L106" href="#L106">106</a> <strong class="jxr_keyword">var</strong> fmt = (StringFormat)<strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L107" href="#L107">107</a> <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="L108" href="#L108">108</a> <strong class="jxr_keyword">var</strong> fmt2 = fs(pattern);
-<a class="jxr_linenumber" name="L109" href="#L109">109</a> fmt = fmt2;
-<a class="jxr_linenumber" name="L110" href="#L110">110</a> actual = stringify(()->fmt2.format(args));
-<a class="jxr_linenumber" name="L111" href="#L111">111</a> } <strong class="jxr_keyword">catch</strong> (Throwable t) {
-<a class="jxr_linenumber" name="L112" href="#L112">112</a> actual = t.getClass().getSimpleName() + <span class="jxr_string">": "</span> + t.getLocalizedMessage();
-<a class="jxr_linenumber" name="L113" href="#L113">113</a> }
-<a class="jxr_linenumber" name="L114" href="#L114">114</a> <strong class="jxr_keyword">if</strong> (!expected.equals(actual)) {
-<a class="jxr_linenumber" name="L115" href="#L115">115</a> System.out.println(<span class="jxr_string">"Pattern: "</span> + pattern);
-<a class="jxr_linenumber" name="L116" href="#L116">116</a> <strong class="jxr_keyword">var</strong> toPattern = opt(fmt).map(x -> x.toPattern()).orElse(<strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L117" href="#L117">117</a> System.out.println(<span class="jxr_string">"toPattern(): "</span> + toPattern);
-<a class="jxr_linenumber" name="L118" href="#L118">118</a> fail(<span class="jxr_string">"Pattern: "</span> + pattern + <span class="jxr_string">", toPattern(): "</span> + toPattern + <span class="jxr_string">", expected: <"</span> + expected + <span class="jxr_string">"> but was: <"</span> + actual + <span class="jxr_string">">"</span>);
-<a class="jxr_linenumber" name="L119" href="#L119">119</a> }
-<a class="jxr_linenumber" name="L120" href="#L120">120</a> }
-<a class="jxr_linenumber" name="L121" href="#L121">121</a>
-<a class="jxr_linenumber" name="L122" href="#L122">122</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> assertMixedFormat(String expected, String pattern, Locale locale, Object... args) {
-<a class="jxr_linenumber" name="L123" href="#L123">123</a> <strong class="jxr_keyword">var</strong> actual = <span class="jxr_string">""</span>;
-<a class="jxr_linenumber" name="L124" href="#L124">124</a> <strong class="jxr_keyword">var</strong> fmt = (StringFormat)<strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L125" href="#L125">125</a> <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="L126" href="#L126">126</a> <strong class="jxr_keyword">var</strong> fmt2 = fs(pattern);
-<a class="jxr_linenumber" name="L127" href="#L127">127</a> fmt = fmt2;
-<a class="jxr_linenumber" name="L128" href="#L128">128</a> actual = stringify(()->fmt2.format(locale, args));
-<a class="jxr_linenumber" name="L129" href="#L129">129</a> } <strong class="jxr_keyword">catch</strong> (Throwable t) {
-<a class="jxr_linenumber" name="L130" href="#L130">130</a> actual = t.getClass().getSimpleName() + <span class="jxr_string">": "</span> + t.getLocalizedMessage();
-<a class="jxr_linenumber" name="L131" href="#L131">131</a> }
-<a class="jxr_linenumber" name="L132" href="#L132">132</a> <strong class="jxr_keyword">if</strong> (!expected.equals(actual)) {
-<a class="jxr_linenumber" name="L133" href="#L133">133</a> System.out.println(<span class="jxr_string">"Pattern: "</span> + pattern);
-<a class="jxr_linenumber" name="L134" href="#L134">134</a> <strong class="jxr_keyword">var</strong> toPattern = opt(fmt).map(x -> x.toPattern()).orElse(<strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L135" href="#L135">135</a> System.out.println(<span class="jxr_string">"toPattern(): "</span> + toPattern);
-<a class="jxr_linenumber" name="L136" href="#L136">136</a> fail(<span class="jxr_string">"Pattern: "</span> + pattern + <span class="jxr_string">", toPattern(): "</span> + toPattern + <span class="jxr_string">", expected: <"</span> + expected + <span class="jxr_string">"> but was: <"</span> + actual + <span class="jxr_string">">"</span>);
-<a class="jxr_linenumber" name="L137" href="#L137">137</a> }
-<a class="jxr_linenumber" name="L138" href="#L138">138</a> }
-<a class="jxr_linenumber" name="L139" href="#L139">139</a>
-<a class="jxr_linenumber" name="L140" href="#L140">140</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> assertMixedFormat(String expected, String pattern, Object... args) {
-<a class="jxr_linenumber" name="L141" href="#L141">141</a> <strong class="jxr_keyword">var</strong> actual = <span class="jxr_string">""</span>;
-<a class="jxr_linenumber" name="L142" href="#L142">142</a> <strong class="jxr_keyword">var</strong> fmt = (StringFormat)<strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L143" href="#L143">143</a> <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="L144" href="#L144">144</a> <strong class="jxr_keyword">var</strong> fmt2 = fs(pattern);
-<a class="jxr_linenumber" name="L145" href="#L145">145</a> fmt = fmt2;
-<a class="jxr_linenumber" name="L146" href="#L146">146</a> actual = stringify(()->fmt2.format(args));
-<a class="jxr_linenumber" name="L147" href="#L147">147</a> } <strong class="jxr_keyword">catch</strong> (Throwable t) {
-<a class="jxr_linenumber" name="L148" href="#L148">148</a> actual = t.getClass().getSimpleName() + <span class="jxr_string">": "</span> + t.getLocalizedMessage();
-<a class="jxr_linenumber" name="L149" href="#L149">149</a> }
-<a class="jxr_linenumber" name="L150" href="#L150">150</a> <strong class="jxr_keyword">if</strong> (!expected.equals(actual)) {
-<a class="jxr_linenumber" name="L151" href="#L151">151</a> System.out.println(<span class="jxr_string">"Pattern: "</span> + pattern);
-<a class="jxr_linenumber" name="L152" href="#L152">152</a> <strong class="jxr_keyword">var</strong> toPattern = opt(fmt).map(x -> x.toPattern()).orElse(<strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L153" href="#L153">153</a> System.out.println(<span class="jxr_string">"toPattern(): "</span> + toPattern);
-<a class="jxr_linenumber" name="L154" href="#L154">154</a> fail(<span class="jxr_string">"Pattern: "</span> + pattern + <span class="jxr_string">", toPattern(): "</span> + toPattern + <span class="jxr_string">", expected: <"</span> + expected + <span class="jxr_string">"> but was: <"</span> + actual + <span class="jxr_string">">"</span>);
-<a class="jxr_linenumber" name="L155" href="#L155">155</a> }
-<a class="jxr_linenumber" name="L156" href="#L156">156</a> }
-<a class="jxr_linenumber" name="L157" href="#L157">157</a>
-<a class="jxr_linenumber" name="L158" href="#L158">158</a> <em class="jxr_comment">//====================================================================================================</em>
-<a class="jxr_linenumber" name="L159" href="#L159">159</a> <em class="jxr_comment">// MessageFormat tests</em>
-<a class="jxr_linenumber" name="L160" href="#L160">160</a> <em class="jxr_comment">//====================================================================================================</em>
-<a class="jxr_linenumber" name="L161" href="#L161">161</a> @Test <strong class="jxr_keyword">void</strong> a01_messageFormat() {
-<a class="jxr_linenumber" name="L162" href="#L162">162</a> assertMessageFormat(<span class="jxr_string">"Hello {0}"</span>, <span class="jxr_string">"John"</span>);
-<a class="jxr_linenumber" name="L163" href="#L163">163</a> assertMessageFormat(<span class="jxr_string">"Price: {0,number,currency}"</span>, 19.99);
-<a class="jxr_linenumber" name="L164" href="#L164">164</a> assertMessageFormat(<span class="jxr_string">"{0} has {1} items and {2} friends"</span>, <span class="jxr_string">"John"</span>, 5, 3);
-<a class="jxr_linenumber" name="L165" href="#L165">165</a> assertMessageFormat(<span class="jxr_string">"Hello {0} world"</span>, <span class="jxr_string">"John"</span>);
-<a class="jxr_linenumber" name="L166" href="#L166">166</a> assertMessageFormat(<span class="jxr_string">"Count: {0,number,integer}"</span>, 1234);
-<a class="jxr_linenumber" name="L167" href="#L167">167</a> assertMessageFormat(<span class="jxr_string">"Date: {0,date,short}"</span>, <strong class="jxr_keyword">new</strong> Date(0));
-<a class="jxr_linenumber" name="L168" href="#L168">168</a> assertMessageFormat(<span class="jxr_string">"Time: {0,time,short}"</span>, <strong class="jxr_keyword">new</strong> Date(0));
-<a class="jxr_linenumber" name="L169" href="#L169">169</a> <em class="jxr_comment">// Simple {0} with Date - uses DATE_FORMAT_CACHE for formatting</em>
-<a class="jxr_linenumber" name="L170" href="#L170">170</a> assertMessageFormat(<span class="jxr_string">"Date: {0}"</span>, <strong class="jxr_keyword">new</strong> Date(0));
-<a class="jxr_linenumber" name="L171" href="#L171">171</a> assertMessageFormat(<span class="jxr_string">"Value: {0}"</span>, (String)<strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L172" href="#L172">172</a> assertMessageFormat(<span class="jxr_string">"Name: {0}"</span>, <span class="jxr_string">""</span>);
-<a class="jxr_linenumber" name="L173" href="#L173">173</a> assertMessageFormat(<span class="jxr_string">"Text: {0}\nNewline\tTab"</span>, <span class="jxr_string">"Hello"</span>);
-<a class="jxr_linenumber" name="L174" href="#L174">174</a> assertMessageFormat(<span class="jxr_string">"Unicode: {0} 中文"</span>, <span class="jxr_string">"Test"</span>);
-<a class="jxr_linenumber" name="L175" href="#L175">175</a> assertMessageFormat(<span class="jxr_string">"{0}{1}"</span>, <span class="jxr_string">"A"</span>, <span class="jxr_string">"B"</span>);
-<a class="jxr_linenumber" name="L176" href="#L176">176</a> assertMessageFormat(<span class="jxr_string">"{0} and {0} again"</span>, <span class="jxr_string">"Hello"</span>);
-<a class="jxr_linenumber" name="L177" href="#L177">177</a> assertMessageFormat(<span class="jxr_string">"Price: {0,number,currency}, Count: {1,number,integer}, Date: {2,date,short}"</span>, 19.99, 42, <strong class="jxr_keyword">new</strong> java.util.Date());
-<a class="jxr_linenumber" name="L178" href="#L178">178</a> assertMessageFormat(<span class="jxr_string">"Price: {0,number,currency}"</span>, Locale.US, 19.99);
-<a class="jxr_linenumber" name="L179" href="#L179">179</a> assertMessageFormat(<span class="jxr_string">"Price: {0,number,currency}"</span>, Locale.FRANCE, 19.99);
-<a class="jxr_linenumber" name="L180" href="#L180">180</a> assertMessageFormat(<span class="jxr_string">"a '{0}' b"</span>);
-<a class="jxr_linenumber" name="L181" href="#L181">181</a> assertMessageFormat(<span class="jxr_string">"a ''{0}'' b"</span>, 1);
-<a class="jxr_linenumber" name="L182" href="#L182">182</a> assertMessageFormat(<span class="jxr_string">"'{0}'"</span>);
-<a class="jxr_linenumber" name="L183" href="#L183">183</a> assertMessageFormat(<span class="jxr_string">"''{0}''"</span>, 1);
-<a class="jxr_linenumber" name="L184" href="#L184">184</a>
-<a class="jxr_linenumber" name="L185" href="#L185">185</a> <em class="jxr_comment">// Errors</em>
-<a class="jxr_linenumber" name="L186" href="#L186">186</a> assertMessageFormat(<span class="jxr_string">"Set: {{0}}"</span>, 50);
-<a class="jxr_linenumber" name="L187" href="#L187">187</a> assertMessageFormat(<span class="jxr_string">"Set: {{0}} and {{1}}"</span>, <span class="jxr_string">"A"</span>, <span class="jxr_string">"B"</span>);
-<a class="jxr_linenumber" name="L188" href="#L188">188</a> assertMessageFormat(<span class="jxr_string">"Hello {0}"</span>);
-<a class="jxr_linenumber" name="L189" href="#L189">189</a> assertMessageFormat(<span class="jxr_string">"{0} has {1} items and {2} friends"</span>, <span class="jxr_string">"John"</span>, 5);
-<a class="jxr_linenumber" name="L190" href="#L190">190</a> assertMessageFormat(<span class="jxr_string">"Hello {"</span>);
-<a class="jxr_linenumber" name="L191" href="#L191">191</a> assertMessageFormat(<span class="jxr_string">"Hello {0"</span>);
-<a class="jxr_linenumber" name="L192" href="#L192">192</a> assertMessageFormat(<span class="jxr_string">"Hello '"</span>);
-<a class="jxr_linenumber" name="L193" href="#L193">193</a> assertMessageFormat(<span class="jxr_string">"Hello 'x"</span>);
-<a class="jxr_linenumber" name="L194" href="#L194">194</a> }
-<a class="jxr_linenumber" name="L195" href="#L195">195</a>
-<a class="jxr_linenumber" name="L196" href="#L196">196</a> <em class="jxr_comment">//====================================================================================================</em>
-<a class="jxr_linenumber" name="L197" href="#L197">197</a> <em class="jxr_comment">// StringFormat (printf) tests</em>
-<a class="jxr_linenumber" name="L198" href="#L198">198</a> <em class="jxr_comment">//====================================================================================================</em>
-<a class="jxr_linenumber" name="L199" href="#L199">199</a> @Test <strong class="jxr_keyword">void</strong> a02_stringFormat() {
-<a class="jxr_linenumber" name="L200" href="#L200">200</a> assertStringFormat(<span class="jxr_string">"Hello %s"</span>, <span class="jxr_string">"John"</span>);
-<a class="jxr_linenumber" name="L201" href="#L201">201</a> assertStringFormat(<span class="jxr_string">"Price: $%.2f"</span>, 19.99);
-<a class="jxr_linenumber" name="L202" href="#L202">202</a> assertStringFormat(<span class="jxr_string">"Name: %-10s Age: %3d"</span>, <span class="jxr_string">"John"</span>, 25);
-<a class="jxr_linenumber" name="L203" href="#L203">203</a> assertStringFormat(<span class="jxr_string">"Color: #%06X"</span>, 0xFF5733);
-<a class="jxr_linenumber" name="L204" href="#L204">204</a> assertStringFormat(<span class="jxr_string">"Hello world"</span>);
-<a class="jxr_linenumber" name="L205" href="#L205">205</a> assertStringFormat(<span class="jxr_string">"Progress: %d%%"</span>, 50);
-<a class="jxr_linenumber" name="L206" href="#L206">206</a> assertStringFormat(<span class="jxr_string">""</span>);
-<a class="jxr_linenumber" name="L207" href="#L207">207</a> assertStringFormat(<span class="jxr_string">"%1$s loves %2$s, and %1$s also loves %3$s"</span>, <span class="jxr_string">"Alice"</span>, <span class="jxr_string">"Bob"</span>, <span class="jxr_string">"Charlie"</span>);
-<a class="jxr_linenumber" name="L208" href="#L208">208</a> assertStringFormat(<span class="jxr_string">"Hello %1$s"</span>, <span class="jxr_string">"John"</span>);
-<a class="jxr_linenumber" name="L209" href="#L209">209</a> assertStringFormat(<span class="jxr_string">"Price: %1$.2f"</span>, 19.99);
-<a class="jxr_linenumber" name="L210" href="#L210">210</a> assertStringFormat(<span class="jxr_string">"Octal: %o"</span>, 64);
-<a class="jxr_linenumber" name="L211" href="#L211">211</a> assertStringFormat(<span class="jxr_string">"Octal: %o"</span>, 255);
-<a class="jxr_linenumber" name="L212" href="#L212">212</a> assertStringFormat(<span class="jxr_string">"Octal: %o"</span>, (Number)<strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L213" href="#L213">213</a> assertStringFormat(<span class="jxr_string">"Flag: %b"</span>, <strong class="jxr_keyword">true</strong>);
-<a class="jxr_linenumber" name="L214" href="#L214">214</a> assertStringFormat(<span class="jxr_string">"Flag: %b"</span>, false);
-<a class="jxr_linenumber" name="L215" href="#L215">215</a> assertStringFormat(<span class="jxr_string">"Flag: %b"</span>, (Boolean)<strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L216" href="#L216">216</a> <em class="jxr_comment">// %B uppercase boolean formatting</em>
-<a class="jxr_linenumber" name="L217" href="#L217">217</a> assertStringFormat(<span class="jxr_string">"Flag: %B"</span>, <strong class="jxr_keyword">true</strong>);
-<a class="jxr_linenumber" name="L218" href="#L218">218</a> assertStringFormat(<span class="jxr_string">"Flag: %B"</span>, false);
-<a class="jxr_linenumber" name="L219" href="#L219">219</a> assertStringFormat(<span class="jxr_string">"Flag: %B"</span>, (Boolean)<strong class="jxr_keyword">null</strong>); <em class="jxr_comment">// Line 281: null -> "FALSE"</em>
-<a class="jxr_linenumber" name="L220" href="#L220">220</a> assertStringFormat(<span class="jxr_string">"Flag: %B"</span>, <span class="jxr_string">"hello"</span>); <em class="jxr_comment">// Line 285: non-Boolean -> "TRUE"</em>
-<a class="jxr_linenumber" name="L221" href="#L221">221</a> assertStringFormat(<span class="jxr_string">"Flag: %B"</span>, 42); <em class="jxr_comment">// Line 285: non-Boolean -> "TRUE"</em>
-<a class="jxr_linenumber" name="L222" href="#L222">222</a> assertStringFormat(<span class="jxr_string">"Char: %c"</span>, 'A');
-<a class="jxr_linenumber" name="L223" href="#L223">223</a> assertStringFormat(<span class="jxr_string">"Char: %c"</span>, <span class="jxr_string">"A"</span>);
-<a class="jxr_linenumber" name="L224" href="#L224">224</a> assertStringFormat(<span class="jxr_string">"Char: %c"</span>, (String)<strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L225" href="#L225">225</a> assertStringFormat(<span class="jxr_string">"Value: %.2e"</span>, 1234567.0);
-<a class="jxr_linenumber" name="L226" href="#L226">226</a> assertStringFormat(<span class="jxr_string">"Value: %.2e"</span>, (Number)<strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L227" href="#L227">227</a> assertStringFormat(<span class="jxr_string">"Number: %+10.2f"</span>, 19.99);
-<a class="jxr_linenumber" name="L228" href="#L228">228</a> assertStringFormat(<span class="jxr_string">"ID: %05d"</span>, 42);
-<a class="jxr_linenumber" name="L229" href="#L229">229</a> assertStringFormat(<span class="jxr_string">"Value: %d"</span>, (Number)<strong class="jxr_keyword">null</strong>); <em class="jxr_comment">// Line 304: null -> "null"</em>
-<a class="jxr_linenumber" name="L230" href="#L230">230</a> assertStringFormat(<span class="jxr_string">"Value: %s"</span>, (String)<strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L231" href="#L231">231</a> assertStringFormat(<span class="jxr_string">"Name: %s"</span>, <span class="jxr_string">""</span>);
-<a class="jxr_linenumber" name="L232" href="#L232">232</a> assertStringFormat(<span class="jxr_string">"%s%s"</span>, <span class="jxr_string">"A"</span>, <span class="jxr_string">"B"</span>);
-<a class="jxr_linenumber" name="L233" href="#L233">233</a> assertStringFormat(<span class="jxr_string">"Progress: %d%% Complete: %d%%"</span>, 50, 75);
-<a class="jxr_linenumber" name="L234" href="#L234">234</a> assertStringFormat(<span class="jxr_string">"%1$s and %1$s again"</span>, <span class="jxr_string">"Hello"</span>);
-<a class="jxr_linenumber" name="L235" href="#L235">235</a> assertStringFormat(<span class="jxr_string">"Hex: 0x%08X, Decimal: %+d, Float: %10.3f"</span>, 255, 42, 3.14159);
-<a class="jxr_linenumber" name="L236" href="#L236">236</a> assertStringFormat(<span class="jxr_string">"Price: %.2f"</span>, Locale.US, 19.99);
-<a class="jxr_linenumber" name="L237" href="#L237">237</a> assertStringFormat(<span class="jxr_string">"Price: %.2f"</span>, Locale.FRANCE, 19.99);
-<a class="jxr_linenumber" name="L238" href="#L238">238</a> assertStringFormat(<span class="jxr_string">"Value: %s"</span>, (Object)<strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L239" href="#L239">239</a> assertStringFormat(<span class="jxr_string">"Int: %d"</span>, 42);
-<a class="jxr_linenumber" name="L240" href="#L240">240</a> assertStringFormat(<span class="jxr_string">"Long: %d"</span>, 1234567890L);
-<a class="jxr_linenumber" name="L241" href="#L241">241</a> assertStringFormat(<span class="jxr_string">"Byte: %d"</span>, (byte)127);
-<a class="jxr_linenumber" name="L242" href="#L242">242</a> assertStringFormat(<span class="jxr_string">"Short: %d"</span>, (<strong class="jxr_keyword">short</strong>)32767);
-<a class="jxr_linenumber" name="L243" href="#L243">243</a> assertStringFormat(<span class="jxr_string">"Int: %d"</span>, Locale.FRANCE, 1234);
-<a class="jxr_linenumber" name="L244" href="#L244">244</a> assertStringFormat(<span class="jxr_string">"Long: %d"</span>, Locale.GERMANY, 1234567L);
-<a class="jxr_linenumber" name="L245" href="#L245">245</a> assertStringFormat(<span class="jxr_string">"Value: %d"</span>, <span class="jxr_string">"not-a-number"</span>);
-<a class="jxr_linenumber" name="L246" href="#L246">246</a> assertStringFormat(<span class="jxr_string">"Hex: %x"</span>, 255); <em class="jxr_comment">// Line 328: Integer -> Integer.toHexString()</em>
-<a class="jxr_linenumber" name="L247" href="#L247">247</a> assertStringFormat(<span class="jxr_string">"Hex: %x"</span>, 255L);
-<a class="jxr_linenumber" name="L248" href="#L248">248</a> assertStringFormat(<span class="jxr_string">"Hex: %x"</span>, (byte)255);
-<a class="jxr_linenumber" name="L249" href="#L249">249</a> assertStringFormat(<span class="jxr_string">"Hex: %x"</span>, (Number)<strong class="jxr_keyword">null</strong>); <em class="jxr_comment">// Line 324: null -> "null"</em>
-<a class="jxr_linenumber" name="L250" href="#L250">250</a> assertStringFormat(<span class="jxr_string">"Hex: %X"</span>, 255);
-<a class="jxr_linenumber" name="L251" href="#L251">251</a> assertStringFormat(<span class="jxr_string">"Hex: %X"</span>, 0xABCL);
-<a class="jxr_linenumber" name="L252" href="#L252">252</a> assertStringFormat(<span class="jxr_string">"Hex: %X"</span>, (<strong class="jxr_keyword">short</strong>)255);
-<a class="jxr_linenumber" name="L253" href="#L253">253</a> assertStringFormat(<span class="jxr_string">"Hex: %X"</span>, (Number)<strong class="jxr_keyword">null</strong>); <em class="jxr_comment">// Line 337: null -> "null"</em>
-<a class="jxr_linenumber" name="L254" href="#L254">254</a> assertStringFormat(<span class="jxr_string">"Octal: %o"</span>, 255L);
-<a class="jxr_linenumber" name="L255" href="#L255">255</a> assertStringFormat(<span class="jxr_string">"Octal: %o"</span>, (byte)64);
-<a class="jxr_linenumber" name="L256" href="#L256">256</a> assertStringFormat(<span class="jxr_string">"Value: %b"</span>, <span class="jxr_string">"hello"</span>);
-<a class="jxr_linenumber" name="L257" href="#L257">257</a> assertStringFormat(<span class="jxr_string">"Value: %b"</span>, 42);
-<a class="jxr_linenumber" name="L258" href="#L258">258</a> assertStringFormat(<span class="jxr_string">"Char: %c"</span>, 65);
-<a class="jxr_linenumber" name="L259" href="#L259">259</a> assertStringFormat(<span class="jxr_string">"Char: %c"</span>, 65L);
-<a class="jxr_linenumber" name="L260" href="#L260">260</a> assertStringFormat(<span class="jxr_string">"Char: %c"</span>, <span class="jxr_string">"X"</span>);
-<a class="jxr_linenumber" name="L261" href="#L261">261</a> assertStringFormat(<span class="jxr_string">"Char: %C"</span>, (Character)<strong class="jxr_keyword">null</strong>); <em class="jxr_comment">// Line 376: null -> "null"</em>
-<a class="jxr_linenumber" name="L262" href="#L262">262</a> assertStringFormat(<span class="jxr_string">"Char: %C"</span>, 66); <em class="jxr_comment">// Line 382-383: Number (Integer) -> Character.toUpperCase((char)o2.intValue())</em>
-<a class="jxr_linenumber" name="L263" href="#L263">263</a> assertStringFormat(<span class="jxr_string">"Char: %C"</span>, 66L); <em class="jxr_comment">// Line 382-383: Number (Long) -> Character.toUpperCase((char)o2.intValue())</em>
-<a class="jxr_linenumber" name="L264" href="#L264">264</a> assertStringFormat(<span class="jxr_string">"Float: %f"</span>, 3.14f);
-<a class="jxr_linenumber" name="L265" href="#L265">265</a> assertStringFormat(<span class="jxr_string">"Double: %f"</span>, 3.14159);
-<a class="jxr_linenumber" name="L266" href="#L266">266</a> assertStringFormat(<span class="jxr_string">"Float: %f"</span>, Locale.FRANCE, 3.14f);
-<a class="jxr_linenumber" name="L267" href="#L267">267</a> assertStringFormat(<span class="jxr_string">"Double: %f"</span>, Locale.GERMANY, 1234.56);
-<a class="jxr_linenumber" name="L268" href="#L268">268</a> assertStringFormat(<span class="jxr_string">"Value: %f"</span>, (Number)<strong class="jxr_keyword">null</strong>); <em class="jxr_comment">// Line 389: null -> "null"</em>
-<a class="jxr_linenumber" name="L269" href="#L269">269</a> assertStringFormat(<span class="jxr_string">"Value: %f"</span>, <span class="jxr_string">"not-a-number"</span>);
-<a class="jxr_linenumber" name="L270" href="#L270">270</a> assertStringFormat(<span class="jxr_string">"Value: %.2e"</span>, 1234.56);
-<a class="jxr_linenumber" name="L271" href="#L271">271</a> assertStringFormat(<span class="jxr_string">"Value: %S"</span>, <span class="jxr_string">"hello"</span>);
-<a class="jxr_linenumber" name="L272" href="#L272">272</a> assertStringFormat(<span class="jxr_string">"Value: %S"</span>, (String)<strong class="jxr_keyword">null</strong>); <em class="jxr_comment">// Line 297: null -> "null"</em>
-<a class="jxr_linenumber" name="L273" href="#L273">273</a> assertStringFormat(<span class="jxr_string">"Value: %B"</span>, <strong class="jxr_keyword">true</strong>);
-<a class="jxr_linenumber" name="L274" href="#L274">274</a> assertStringFormat(<span class="jxr_string">"Char: %C"</span>, 'a');
-<a class="jxr_linenumber" name="L275" href="#L275">275</a> assertStringFormat(<span class="jxr_string">"Float: %F"</span>, 3.14);
-<a class="jxr_linenumber" name="L276" href="#L276">276</a>
-<a class="jxr_linenumber" name="L277" href="#L277">277</a> <em class="jxr_comment">// Errors</em>
-<a class="jxr_linenumber" name="L278" href="#L278">278</a> assertStringFormat(<span class="jxr_string">"Hello %s"</span>);
-<a class="jxr_linenumber" name="L279" href="#L279">279</a> assertStringFormat(<span class="jxr_string">"Hello %s and %s"</span>, <span class="jxr_string">"John"</span>);
-<a class="jxr_linenumber" name="L280" href="#L280">280</a> assertStringFormat(<span class="jxr_string">"Hello %"</span>);
-<a class="jxr_linenumber" name="L281" href="#L281">281</a> assertStringFormat(<span class="jxr_string">"Hello %s and %"</span>, <span class="jxr_string">"John"</span>);
-<a class="jxr_linenumber" name="L282" href="#L282">282</a> assertStringFormat(<span class="jxr_string">"Hello %x$s"</span>, <span class="jxr_string">"John"</span>);
-<a class="jxr_linenumber" name="L283" href="#L283">283</a> }
-<a class="jxr_linenumber" name="L284" href="#L284">284</a>
-<a class="jxr_linenumber" name="L285" href="#L285">285</a> <em class="jxr_comment">//====================================================================================================</em>
-<a class="jxr_linenumber" name="L286" href="#L286">286</a> <em class="jxr_comment">// Mixed format tests</em>
-<a class="jxr_linenumber" name="L287" href="#L287">287</a> <em class="jxr_comment">//====================================================================================================</em>
-<a class="jxr_linenumber" name="L288" href="#L288">288</a> @Test <strong class="jxr_keyword">void</strong> a03_mixedFormat() {
-<a class="jxr_linenumber" name="L289" href="#L289">289</a> assertMixedFormat(<span class="jxr_string">"Hello John, you have 5 items"</span>, <span class="jxr_string">"Hello {0}, you have %d items"</span>, <span class="jxr_string">"John"</span>, 5);
-<a class="jxr_linenumber" name="L290" href="#L290">290</a> assertMixedFormat(<span class="jxr_string">"User Alice has admin and 10 items"</span>, <span class="jxr_string">"User {0} has %s and {2} items"</span>, <span class="jxr_string">"Alice"</span>, <span class="jxr_string">"admin"</span>, 10);
-<a class="jxr_linenumber" name="L291" href="#L291">291</a> assertMixedFormat(<span class="jxr_string">"Alice loves Bob, and Alice also loves Charlie"</span>, <span class="jxr_string">"%1$s loves %2$s, and {0} also loves %3$s"</span>, <span class="jxr_string">"Alice"</span>, <span class="jxr_string">"Bob"</span>, <span class="jxr_string">"Charlie"</span>);
-<a class="jxr_linenumber" name="L292" href="#L292">292</a> assertMixedFormat(<span class="jxr_string">"Alice has 5 items, Bob has 3 items, total: 8"</span>, <span class="jxr_string">"{0} has %d items, {2} has %d items, total: %d"</span>, <span class="jxr_string">"Alice"</span>, 5, <span class="jxr_string">"Bob"</span>, 3, 8);
-<a class="jxr_linenumber" name="L293" href="#L293">293</a> assertMixedFormat(<span class="jxr_string">"Alice Bob Charlie"</span>, <span class="jxr_string">"{0} %2$s {2}"</span>, <span class="jxr_string">"Alice"</span>, <span class="jxr_string">"Bob"</span>, <span class="jxr_string">"Charlie"</span>);
-<a class="jxr_linenumber" name="L294" href="#L294">294</a> assertMixedFormat(<span class="jxr_string">"Hello John, you have 5 items"</span>, <span class="jxr_string">"Hello {0}, you have %d items"</span>, <span class="jxr_string">"John"</span>, 5);
-<a class="jxr_linenumber" name="L295" href="#L295">295</a> assertMixedFormat(<span class="jxr_string">"A B B D C"</span>, <span class="jxr_string">"{0} %s {1} %s {2}"</span>, <span class="jxr_string">"A"</span>, <span class="jxr_string">"B"</span>, <span class="jxr_string">"C"</span>, <span class="jxr_string">"D"</span>);
-<a class="jxr_linenumber" name="L296" href="#L296">296</a> assertMixedFormat(<span class="jxr_string">"ABB"</span>, <span class="jxr_string">"{0}%s{1}"</span>, <span class="jxr_string">"A"</span>, <span class="jxr_string">"B"</span>, <span class="jxr_string">"C"</span>);
-<a class="jxr_linenumber" name="L297" href="#L297">297</a> assertMixedFormat(<span class="jxr_string">"Hello and Hello are the same"</span>, <span class="jxr_string">"{0} and %1$s are the same"</span>, <span class="jxr_string">"Hello"</span>);
-<a class="jxr_linenumber" name="L298" href="#L298">298</a>
-<a class="jxr_linenumber" name="L299" href="#L299">299</a> <em class="jxr_comment">// Errors</em>
-<a class="jxr_linenumber" name="L300" href="#L300">300</a> assertMixedFormat(<span class="jxr_string">"MissingFormatArgumentException: Format specifier '%s'"</span>, <span class="jxr_string">"Hello {0} and %s"</span>, <span class="jxr_string">"John"</span>);
-<a class="jxr_linenumber" name="L301" href="#L301">301</a> assertMixedFormat(<span class="jxr_string">"John has 5 items and {2} friends"</span>, <span class="jxr_string">"{0} has %d items and {2} friends"</span>, <span class="jxr_string">"John"</span>, 5);
-<a class="jxr_linenumber" name="L302" href="#L302">302</a> assertMixedFormat(<span class="jxr_string">"MissingFormatArgumentException: Format specifier '%s'"</span>, <span class="jxr_string">"%1$s loves %2$s, and {0} also loves %3$s"</span>, <span class="jxr_string">"Alice"</span>, <span class="jxr_string">"Bob"</span>);
-<a class="jxr_linenumber" name="L303" href="#L303">303</a> }
-<a class="jxr_linenumber" name="L304" href="#L304">304</a>
-<a class="jxr_linenumber" name="L305" href="#L305">305</a> <em class="jxr_comment">//====================================================================================================</em>
-<a class="jxr_linenumber" name="L306" href="#L306">306</a> <em class="jxr_comment">// Supported but deviates from MessageFormat/String.format</em>
-<a class="jxr_linenumber" name="L307" href="#L307">307</a> <em class="jxr_comment">//====================================================================================================</em>
-<a class="jxr_linenumber" name="L308" href="#L308">308</a> @Test <strong class="jxr_keyword">void</strong> a04_supportedButDeviatesFromMessageFormat() {
-<a class="jxr_linenumber" name="L309" href="#L309">309</a> <em class="jxr_comment">// {} is not supported by MessageFormat, only by StringFormat as an extension</em>
-<a class="jxr_linenumber" name="L310" href="#L310">310</a> assertMixedFormat(<span class="jxr_string">"Hello John world"</span>, <span class="jxr_string">"Hello {} world"</span>, <span class="jxr_string">"John"</span>);
-<a class="jxr_linenumber" name="L311" href="#L311">311</a> assertMixedFormat(<span class="jxr_string">"A B C"</span>, <span class="jxr_string">"{} {} {}"</span>, <span class="jxr_string">"A"</span>, <span class="jxr_string">"B"</span>, <span class="jxr_string">"C"</span>);
-<a class="jxr_linenumber" name="L312" href="#L312">312</a> <em class="jxr_comment">// BigDecimal with %d - String.format throws exception, but our optimized code handles it</em>
-<a class="jxr_linenumber" name="L313" href="#L313">313</a> assertMixedFormat(<span class="jxr_string">"Number: 42"</span>, <span class="jxr_string">"Number: %d"</span>, <strong class="jxr_keyword">new</strong> BigDecimal(<span class="jxr_string">"42"</span>));
-<a class="jxr_linenumber" name="L314" href="#L314">314</a> <em class="jxr_comment">// MessageFormat throws NullPointerException when locale is null, but StringFormat handles it</em>
-<a class="jxr_linenumber" name="L315" href="#L315">315</a> <em class="jxr_comment">// So we test StringFormat's behavior directly instead of comparing with MessageFormat</em>
-<a class="jxr_linenumber" name="L316" href="#L316">316</a> assertMixedFormat(<span class="jxr_string">"Price: $19.99"</span>, <span class="jxr_string">"Price: {0,number,currency}"</span>, (Locale)<strong class="jxr_keyword">null</strong>, 19.99);
-<a class="jxr_linenumber" name="L317" href="#L317">317</a> }
-<a class="jxr_linenumber" name="L318" href="#L318">318</a>
-<a class="jxr_linenumber" name="L319" href="#L319">319</a> <em class="jxr_comment">//====================================================================================================</em>
-<a class="jxr_linenumber" name="L320" href="#L320">320</a> <em class="jxr_comment">// Error handling</em>
-<a class="jxr_linenumber" name="L321" href="#L321">321</a> <em class="jxr_comment">//====================================================================================================</em>
-<a class="jxr_linenumber" name="L322" href="#L322">322</a> @Test <strong class="jxr_keyword">void</strong> a05_errors() {
-<a class="jxr_linenumber" name="L323" href="#L323">323</a> assertThrows(IllegalArgumentException.<strong class="jxr_keyword">class</strong>, () -> <strong class="jxr_keyword">new</strong> StringFormat(<strong class="jxr_keyword">null</strong>));
-<a class="jxr_linenumber" name="L324" href="#L324">324</a> assertThrows(IllegalArgumentException.<strong class="jxr_keyword">class</strong>, () -> fs(<strong class="jxr_keyword">null</strong>));
-<a class="jxr_linenumber" name="L325" href="#L325">325</a> }
-<a class="jxr_linenumber" name="L326" href="#L326">326</a>
-<a class="jxr_linenumber" name="L327" href="#L327">327</a> @Test <strong class="jxr_keyword">void</strong> a06_caching() {
-<a class="jxr_linenumber" name="L328" href="#L328">328</a> <em class="jxr_comment">// Should return the same instance due to caching</em>
-<a class="jxr_linenumber" name="L329" href="#L329">329</a> assertSame(fs(<span class="jxr_string">"Hello {0}"</span>), fs(<span class="jxr_string">"Hello {0}"</span>));
-<a class="jxr_linenumber" name="L330" href="#L330">330</a>
-<a class="jxr_linenumber" name="L331" href="#L331">331</a> <em class="jxr_comment">// Different patterns should return different instances</em>
-<a class="jxr_linenumber" name="L332" href="#L332">332</a> assertNotSame(fs(<span class="jxr_string">"Hello {0}"</span>), fs(<span class="jxr_string">"Hello %s"</span>));
-<a class="jxr_linenumber" name="L333" href="#L333">333</a>
-<a class="jxr_linenumber" name="L334" href="#L334">334</a> <em class="jxr_comment">// Constructor doesn't use cache, so instances should be different</em>
-<a class="jxr_linenumber" name="L335" href="#L335">335</a> <strong class="jxr_keyword">var</strong> fmt1 = <strong class="jxr_keyword">new</strong> StringFormat(<span class="jxr_string">"Hello {0}"</span>);
-<a class="jxr_linenumber" name="L336" href="#L336">336</a> <strong class="jxr_keyword">var</strong> fmt2 = <strong class="jxr_keyword">new</strong> StringFormat(<span class="jxr_string">"Hello {0}"</span>);
-<a class="jxr_linenumber" name="L337" href="#L337">337</a> assertNotSame(fmt1, fmt2);
-<a class="jxr_linenumber" name="L338" href="#L338">338</a> assertEquals(fmt1, fmt2); <em class="jxr_comment">// But they should be equal</em>
-<a class="jxr_linenumber" name="L339" href="#L339">339</a> }
-<a class="jxr_linenumber" name="L340" href="#L340">340</a>
-<a class="jxr_linenumber" name="L341" href="#L341">341</a> @Test <strong class="jxr_keyword">void</strong> a07_equalsAndHashCode() {
-<a class="jxr_linenumber" name="L342" href="#L342">342</a> <strong class="jxr_keyword">var</strong> fmt1 = StringFormat.of(<span class="jxr_string">"Hello {0}"</span>);
-<a class="jxr_linenumber" name="L343" href="#L343">343</a> <strong class="jxr_keyword">var</strong> fmt2 = StringFormat.of(<span class="jxr_string">"Hello {0}"</span>);
-<a class="jxr_linenumber" name="L344" href="#L344">344</a> <strong class="jxr_keyword">var</strong> fmt3 = StringFormat.of(<span class="jxr_string">"Hello %s"</span>);
-<a class="jxr_linenumber" name="L345" href="#L345">345</a>
-<a class="jxr_linenumber" name="L346" href="#L346">346</a> assertEquals(fmt1, fmt2);
-<a class="jxr_linenumber" name="L347" href="#L347">347</a> assertNotEquals(fmt1, fmt3);
-<a class="jxr_linenumber" name="L348" href="#L348">348</a> assertEquals(fmt1.hashCode(), fmt2.hashCode());
-<a class="jxr_linenumber" name="L349" href="#L349">349</a> }
-<a class="jxr_linenumber" name="L350" href="#L350">350</a>
-<a class="jxr_linenumber" name="L351" href="#L351">351</a> @Test <strong class="jxr_keyword">void</strong> a08_toString() {
-<a class="jxr_linenumber" name="L352" href="#L352">352</a> assertEquals(<span class="jxr_string">"Hello {0}"</span>, fs(<span class="jxr_string">"Hello {0}"</span>).toString());
-<a class="jxr_linenumber" name="L353" href="#L353">353</a> }
-<a class="jxr_linenumber" name="L354" href="#L354">354</a>
-<a class="jxr_linenumber" name="L355" href="#L355">355</a> @Test <strong class="jxr_keyword">void</strong> a09_toPattern() {
-<a class="jxr_linenumber" name="L356" href="#L356">356</a> <em class="jxr_comment">// Literal tokens</em>
-<a class="jxr_linenumber" name="L357" href="#L357">357</a> assertEquals(<span class="jxr_string">"[L:Hello ]"</span>, fs(<span class="jxr_string">"Hello "</span>).toPattern());
-<a class="jxr_linenumber" name="L358" href="#L358">358</a> assertEquals(<span class="jxr_string">"[L:a ][L:{0}][L: b]"</span>, fs(<span class="jxr_string">"a '{0}' b"</span>).toPattern()); <em class="jxr_comment">// Single quotes don't escape MessageFormat</em>
-<a class="jxr_linenumber" name="L359" href="#L359">359</a>
-<a class="jxr_linenumber" name="L360" href="#L360">360</a> <em class="jxr_comment">// MessageFormat tokens - simple (content == null) - Line 228: content == null branch</em>
-<a class="jxr_linenumber" name="L361" href="#L361">361</a> assertEquals(<span class="jxr_string">"[L:Hello ][M:s0]"</span>, fs(<span class="jxr_string">"Hello {0}"</span>).toPattern());
-<a class="jxr_linenumber" name="L362" href="#L362">362</a> assertEquals(<span class="jxr_string">"[L:Hello ][M:s0][L: ][M:s1]"</span>, fs(<span class="jxr_string">"Hello {0} {1}"</span>).toPattern());
-<a class="jxr_linenumber" name="L363" href="#L363">363</a>
-<a class="jxr_linenumber" name="L364" href="#L364">364</a> <em class="jxr_comment">// MessageFormat tokens - complex (content != null) - Line 228: content != null branch</em>
-<a class="jxr_linenumber" name="L365" href="#L365">365</a> assertEquals(<span class="jxr_string">"[L:Price: ][M:o0:{0,number,currency}]"</span>, fs(<span class="jxr_string">"Price: {0,number,currency}"</span>).toPattern());
-<a class="jxr_linenumber" name="L366" href="#L366">366</a> assertEquals(<span class="jxr_string">"[L:Count: ][M:o0:{0,number,integer}]"</span>, fs(<span class="jxr_string">"Count: {0,number,integer}"</span>).toPattern());
-<a class="jxr_linenumber" name="L367" href="#L367">367</a> assertEquals(<span class="jxr_string">"[L:Date: ][M:o0:{0,date,short}]"</span>, fs(<span class="jxr_string">"Date: {0,date,short}"</span>).toPattern());
-<a class="jxr_linenumber" name="L368" href="#L368">368</a>
-<a class="jxr_linenumber" name="L369" href="#L369">369</a> <em class="jxr_comment">// StringFormat tokens - Line 406: StringFormatToken.toString()</em>
-<a class="jxr_linenumber" name="L370" href="#L370">370</a> assertEquals(<span class="jxr_string">"[L:Hello ][S:s0:%s]"</span>, fs(<span class="jxr_string">"Hello %s"</span>).toPattern()); <em class="jxr_comment">// Simple format: 's'</em>
-<a class="jxr_linenumber" name="L371" href="#L371">371</a> assertEquals(<span class="jxr_string">"[L:Number: ][S:d0:%d]"</span>, fs(<span class="jxr_string">"Number: %d"</span>).toPattern()); <em class="jxr_comment">// Simple format: 'd'</em>
-<a class="jxr_linenumber" name="L372" href="#L372">372</a> assertEquals(<span class="jxr_string">"[L:Hex: ][S:x0:%x]"</span>, fs(<span class="jxr_string">"Hex: %x"</span>).toPattern()); <em class="jxr_comment">// Simple format: 'x'</em>
-<a class="jxr_linenumber" name="L373" href="#L373">373</a> assertEquals(<span class="jxr_string">"[L:Float: ][S:z0:%.2f]"</span>, fs(<span class="jxr_string">"Float: %.2f"</span>).toPattern()); <em class="jxr_comment">// Complex format: 'z' (other)</em>
-<a class="jxr_linenumber" name="L374" href="#L374">374</a> assertEquals(<span class="jxr_string">"[L:ID: ][S:z0:%05d]"</span>, fs(<span class="jxr_string">"ID: %05d"</span>).toPattern()); <em class="jxr_comment">// Complex format: 'z' (other)</em>
-<a class="jxr_linenumber" name="L375" href="#L375">375</a>
-<a class="jxr_linenumber" name="L376" href="#L376">376</a> <em class="jxr_comment">// Mixed formats</em>
-<a class="jxr_linenumber" name="L377" href="#L377">377</a> assertEquals(<span class="jxr_string">"[L:Hello ][M:s0][L:, you have ][S:d1:%d][L: items]"</span>, fs(<span class="jxr_string">"Hello {0}, you have %d items"</span>).toPattern());
-<a class="jxr_linenumber" name="L378" href="#L378">378</a> assertEquals(<span class="jxr_string">"[L:Price: ][M:o0:{0,number,currency}][L: and ][S:s1:%s]"</span>, fs(<span class="jxr_string">"Price: {0,number,currency} and %s"</span>).toPattern());
-<a class="jxr_linenumber" name="L379" href="#L379">379</a>
-<a class="jxr_linenumber" name="L380" href="#L380">380</a> <em class="jxr_comment">// Time conversions (2-character) - Line 529: 't' or 'T' handling</em>
-<a class="jxr_linenumber" name="L381" href="#L381">381</a> assertEquals(<span class="jxr_string">"[L:Month: ][S:z0:%tm]"</span>, fs(<span class="jxr_string">"Month: %tm"</span>).toPattern()); <em class="jxr_comment">// %tm is 2-character time conversion</em>
-<a class="jxr_linenumber" name="L382" href="#L382">382</a> assertEquals(<span class="jxr_string">"[L:Year: ][S:z0:%tY]"</span>, fs(<span class="jxr_string">"Year: %tY"</span>).toPattern()); <em class="jxr_comment">// %tY is 2-character time conversion</em>
-<a class="jxr_linenumber" name="L383" href="#L383">383</a> assertEquals(<span class="jxr_string">"[L:Date: ][S:z0:%TD]"</span>, fs(<span class="jxr_string">"Date: %TD"</span>).toPattern()); <em class="jxr_comment">// %TD is 2-character time conversion</em>
-<a class="jxr_linenumber" name="L384" href="#L384">384</a> }
-<a class="jxr_linenumber" name="L385" href="#L385">385</a>
-<a class="jxr_linenumber" name="L386" href="#L386">386</a> @Test <strong class="jxr_keyword">void</strong> a10_veryLongPattern() {
-<a class="jxr_linenumber" name="L387" href="#L387">387</a> <strong class="jxr_keyword">var</strong> pattern = <span class="jxr_string">"Start: "</span> + IntStream.range(0, 10).mapToObj(i -> <span class="jxr_string">"{"</span> + i + <span class="jxr_string">"}"</span>).collect(joining(<span class="jxr_string">" "</span>)) + <span class="jxr_string">" "</span>;
-<a class="jxr_linenumber" name="L388" href="#L388">388</a> <strong class="jxr_keyword">var</strong> args = IntStream.range(0, 10).boxed().toArray();
-<a class="jxr_linenumber" name="L389" href="#L389">389</a> assertMessageFormat(pattern, args);
-<a class="jxr_linenumber" name="L390" href="#L390">390</a> }
-<a class="jxr_linenumber" name="L391" href="#L391">391</a>
-<a class="jxr_linenumber" name="L392" href="#L392">392</a> @Test <strong class="jxr_keyword">void</strong> a11_parseIndexErrors() {
-<a class="jxr_linenumber" name="L393" href="#L393">393</a> assertThrows(IllegalArgumentException.<strong class="jxr_keyword">class</strong>, () -> fs(<span class="jxr_string">"Hello {abc}"</span>));
-<a class="jxr_linenumber" name="L394" href="#L394">394</a> }
-<a class="jxr_linenumber" name="L395" href="#L395">395</a>
-<a class="jxr_linenumber" name="L396" href="#L396">396</a> @Test <strong class="jxr_keyword">void</strong> a12_localeHandling() {
-<a class="jxr_linenumber" name="L397" href="#L397">397</a> <em class="jxr_comment">// Lines 259-260: Test locale null checks and default locale detection in StringFormatToken</em>
-<a class="jxr_linenumber" name="L398" href="#L398">398</a> <em class="jxr_comment">// Line 259: var l = locale == null ? Locale.getDefault() : locale;</em>
-<a class="jxr_linenumber" name="L399" href="#L399">399</a> <em class="jxr_comment">// Line 260: var dl = locale == null || locale.equals(Locale.getDefault());</em>
-<a class="jxr_linenumber" name="L400" href="#L400">400</a>
-<a class="jxr_linenumber" name="L401" href="#L401">401</a> <em class="jxr_comment">// Test with null locale (covers locale == null on both lines)</em>
-<a class="jxr_linenumber" name="L402" href="#L402">402</a> assertStringFormat(<span class="jxr_string">"Hello %s"</span>, (Locale)<strong class="jxr_keyword">null</strong>, <span class="jxr_string">"John"</span>);
-<a class="jxr_linenumber" name="L403" href="#L403">403</a> assertStringFormat(<span class="jxr_string">"Number: %d"</span>, (Locale)<strong class="jxr_keyword">null</strong>, 42);
-<a class="jxr_linenumber" name="L404" href="#L404">404</a> assertStringFormat(<span class="jxr_string">"Float: %.2f"</span>, (Locale)<strong class="jxr_keyword">null</strong>, 3.14); <em class="jxr_comment">// Use .2f for consistent formatting</em>
-<a class="jxr_linenumber" name="L405" href="#L405">405</a>
-<a class="jxr_linenumber" name="L406" href="#L406">406</a> <em class="jxr_comment">// Test with default locale (covers locale.equals(Locale.getDefault()) on line 260)</em>
-<a class="jxr_linenumber" name="L407" href="#L407">407</a> assertStringFormat(<span class="jxr_string">"Hello %s"</span>, Locale.getDefault(), <span class="jxr_string">"John"</span>);
-<a class="jxr_linenumber" name="L408" href="#L408">408</a> assertStringFormat(<span class="jxr_string">"Number: %d"</span>, Locale.getDefault(), 42);
-<a class="jxr_linenumber" name="L409" href="#L409">409</a> assertStringFormat(<span class="jxr_string">"Float: %.2f"</span>, Locale.getDefault(), 3.14); <em class="jxr_comment">// Use .2f for consistent formatting</em>
-<a class="jxr_linenumber" name="L410" href="#L410">410</a>
-<a class="jxr_linenumber" name="L411" href="#L411">411</a> <em class="jxr_comment">// Test with non-default locale (covers else branch on line 259 and false case on line 260)</em>
-<a class="jxr_linenumber" name="L412" href="#L412">412</a> assertStringFormat(<span class="jxr_string">"Hello %s"</span>, Locale.FRANCE, <span class="jxr_string">"John"</span>);
-<a class="jxr_linenumber" name="L413" href="#L413">413</a> assertStringFormat(<span class="jxr_string">"Number: %d"</span>, Locale.GERMANY, 42);
-<a class="jxr_linenumber" name="L414" href="#L414">414</a> assertStringFormat(<span class="jxr_string">"Float: %.2f"</span>, Locale.JAPAN, 3.14); <em class="jxr_comment">// Use .2f for consistent formatting</em>
-<a class="jxr_linenumber" name="L415" href="#L415">415</a> }
-<a class="jxr_linenumber" name="L416" href="#L416">416</a> }
-</pre>
-<hr/>
-<div id="footer">© 2016–2025 <a href="https://www.apache.org/">The Apache Software Foundation</a></div>
-</body>
-</html>
diff --git a/site/xref-test/org/apache/juneau/common/utils/Utils_Test.html b/site/xref-test/org/apache/juneau/common/utils/Utils_Test.html
index 7be24cbf06..8703df9c7b 100644
--- a/site/xref-test/org/apache/juneau/common/utils/Utils_Test.html
+++ b/site/xref-test/org/apache/juneau/common/utils/Utils_Test.html
@@ -66,7 +66,7 @@
<a class="jxr_linenumber" name="L58" href="#L58">58</a>
<a class="jxr_linenumber" name="L59" href="#L59">59</a> <em class="jxr_comment">// Null handling</em>
<a class="jxr_linenumber" name="L60" href="#L60">60</a> assertEquals(<span class="jxr_string">"Value: null"</span>, f(<span class="jxr_string">"Value: %s"</span>, (String)<strong class="jxr_keyword">null</strong>));
-<a class="jxr_linenumber" name="L61" href="#L61">61</a> assertNull(f(<strong class="jxr_keyword">null</strong>, <span class="jxr_string">"test"</span>));
+<a class="jxr_linenumber" name="L61" href="#L61">61</a> assertThrows(IllegalArgumentException.<strong class="jxr_keyword">class</strong>, ()->f(<strong class="jxr_keyword">null</strong>, <span class="jxr_string">"test"</span>));
<a class="jxr_linenumber" name="L62" href="#L62">62</a> assertEquals(<span class="jxr_string">"test"</span>, f(<span class="jxr_string">"test"</span>));
<a class="jxr_linenumber" name="L63" href="#L63">63</a> }
<a class="jxr_linenumber" name="L64" href="#L64">64</a>
@@ -91,7 +91,7 @@
<a class="jxr_linenumber" name="L83" href="#L83">83</a>
<a class="jxr_linenumber" name="L84" href="#L84">84</a> <em class="jxr_comment">// Null handling</em>
<a class="jxr_linenumber" name="L85" href="#L85">85</a> <strong class="jxr_keyword">var</strong> nullSupplier = fs(<strong class="jxr_keyword">null</strong>, <span class="jxr_string">"test"</span>);
-<a class="jxr_linenumber" name="L86" href="#L86">86</a> assertNull(nullSupplier.get());
+<a class="jxr_linenumber" name="L86" href="#L86">86</a> assertThrows(IllegalArgumentException.<strong class="jxr_keyword">class</strong>, ()->nullSupplier.get());
<a class="jxr_linenumber" name="L87" href="#L87">87</a>
<a class="jxr_linenumber" name="L88" href="#L88">88</a> <em class="jxr_comment">// Empty pattern</em>
<a class="jxr_linenumber" name="L89" href="#L89">89</a> <strong class="jxr_keyword">var</strong> emptySupplier = fs(<span class="jxr_string">""</span>);
diff --git a/site/xref-test/org/apache/juneau/common/utils/package-frame.html b/site/xref-test/org/apache/juneau/common/utils/package-frame.html
index a82d2138be..97af376b8e 100644
--- a/site/xref-test/org/apache/juneau/common/utils/package-frame.html
+++ b/site/xref-test/org/apache/juneau/common/utils/package-frame.html
@@ -126,9 +126,6 @@
<li>
<a href="FileUtils_Test.html#FileUtils_Test" target="classFrame">FileUtils_Test</a>
</li>
- <li>
- <a href="FormatString_Test.html#FormatString_Test" target="classFrame">FormatString_Test</a>
- </li>
<li>
<a href="GranularZonedDateTime_Test.html#GranularZonedDateTime_Test" target="classFrame">GranularZonedDateTime_Test</a>
</li>
diff --git a/site/xref-test/org/apache/juneau/common/utils/package-summary.html b/site/xref-test/org/apache/juneau/common/utils/package-summary.html
index ad8bab065d..3b414465af 100644
--- a/site/xref-test/org/apache/juneau/common/utils/package-summary.html
+++ b/site/xref-test/org/apache/juneau/common/utils/package-summary.html
@@ -247,136 +247,131 @@
</td>
</tr>
<tr class="altColor">
- <td class="colFirst colLast">
- <a href="FormatString_Test.html#FormatString_Test" target="classFrame" title="class in org.apache.juneau.common.utils">FormatString_Test</a>
- </td>
- </tr>
- <tr class="rowColor">
<td class="colFirst colLast">
<a href="GranularZonedDateTime_Test.html#GranularZonedDateTime_Test" target="classFrame" title="class in org.apache.juneau.common.utils">GranularZonedDateTime_Test</a>
</td>
</tr>
- <tr class="altColor">
+ <tr class="rowColor">
<td class="colFirst colLast">
<a href="HashCode_Test.html#HashCode_Test" target="classFrame" title="class in org.apache.juneau.common.utils">HashCode_Test</a>
</td>
</tr>
- <tr class="rowColor">
+ <tr class="altColor">
<td class="colFirst colLast">
<a href="HashCode_Test.html#HashCode_Test.TestObject" target="classFrame" title="class in org.apache.juneau.common.utils">HashCode_Test.TestObject</a>
</td>
</tr>
- <tr class="altColor">
+ <tr class="rowColor">
<td class="colFirst colLast">
<a href="IOUtils_Test.html#IOUtils_Test" target="classFrame" title="class in org.apache.juneau.common.utils">IOUtils_Test</a>
</td>
</tr>
- <tr class="rowColor">
+ <tr class="altColor">
<td class="colFirst colLast">
<a href="IOUtils_Test.html#IOUtils_Test.TestInputStream" target="classFrame" title="class in org.apache.juneau.common.utils">IOUtils_Test.TestInputStream</a>
</td>
</tr>
- <tr class="altColor">
+ <tr class="rowColor">
<td class="colFirst colLast">
<a href="IOUtils_Test.html#IOUtils_Test.TestOutputStream" target="classFrame" title="class in org.apache.juneau.common.utils">IOUtils_Test.TestOutputStream</a>
</td>
</tr>
- <tr class="rowColor">
+ <tr class="altColor">
<td class="colFirst colLast">
<a href="IOUtils_Test.html#IOUtils_Test.TestReader" target="classFrame" title="class in org.apache.juneau.common.utils">IOUtils_Test.TestReader</a>
</td>
</tr>
- <tr class="altColor">
+ <tr class="rowColor">
<td class="colFirst colLast">
<a href="IOUtils_Test.html#IOUtils_Test.TestWriter" target="classFrame" title="class in org.apache.juneau.common.utils">IOUtils_Test.TestWriter</a>
</td>
</tr>
- <tr class="rowColor">
+ <tr class="altColor">
<td class="colFirst colLast">
<a href="MimeTypeDetector_Test.html#MimeTypeDetector_Test" target="classFrame" title="class in org.apache.juneau.common.utils">MimeTypeDetector_Test</a>
</td>
</tr>
- <tr class="altColor">
+ <tr class="rowColor">
<td class="colFirst colLast">
<a href="PredicateUtils_Test.html#PredicateUtils_Test" target="classFrame" title="class in org.apache.juneau.common.utils">PredicateUtils_Test</a>
</td>
</tr>
- <tr class="rowColor">
+ <tr class="altColor">
<td class="colFirst colLast">
<a href="PredicateUtils_Test.html#PredicateUtils_Test.DeprecatedPublicClass" target="classFrame" title="class in org.apache.juneau.common.utils">PredicateUtils_Test.DeprecatedPublicClass</a>
</td>
</tr>
- <tr class="altColor">
+ <tr class="rowColor">
<td class="colFirst colLast">
<a href="PredicateUtils_Test.html#PredicateUtils_Test.PrivateClass" target="classFrame" title="class in org.apache.juneau.common.utils">PredicateUtils_Test.PrivateClass</a>
</td>
</tr>
- <tr class="rowColor">
+ <tr class="altColor">
<td class="colFirst colLast">
<a href="PredicateUtils_Test.html#PredicateUtils_Test.PublicClass" target="classFrame" title="class in org.apache.juneau.common.utils">PredicateUtils_Test.PublicClass</a>
</td>
</tr>
- <tr class="altColor">
+ <tr class="rowColor">
<td class="colFirst colLast">
<a href="PredicateUtils_Test.html#PredicateUtils_Test.PublicFinalClass" target="classFrame" title="class in org.apache.juneau.common.utils">PredicateUtils_Test.PublicFinalClass</a>
</td>
</tr>
- <tr class="rowColor">
+ <tr class="altColor">
<td class="colFirst colLast">
<a href="ResourceBundleUtils_Test.html#ResourceBundleUtils_Test" target="classFrame" title="class in org.apache.juneau.common.utils">ResourceBundleUtils_Test</a>
</td>
</tr>
- <tr class="altColor">
+ <tr class="rowColor">
<td class="colFirst colLast">
<a href="SimpleReadWriteLock_Test.html#SimpleReadWriteLock_Test" target="classFrame" title="class in org.apache.juneau.common.utils">SimpleReadWriteLock_Test</a>
</td>
</tr>
- <tr class="rowColor">
+ <tr class="altColor">
<td class="colFirst colLast">
<a href="StateEnum_Test.html#StateEnum_Test" target="classFrame" title="class in org.apache.juneau.common.utils">StateEnum_Test</a>
</td>
</tr>
- <tr class="altColor">
+ <tr class="rowColor">
<td class="colFirst colLast">
<a href="StringFormat_Test.html#StringFormat_Test" target="classFrame" title="class in org.apache.juneau.common.utils">StringFormat_Test</a>
</td>
</tr>
- <tr class="rowColor">
+ <tr class="altColor">
<td class="colFirst colLast">
<a href="StringUtils_Test.html#StringUtils_Test" target="classFrame" title="class in org.apache.juneau.common.utils">StringUtils_Test</a>
</td>
</tr>
- <tr class="altColor">
+ <tr class="rowColor">
<td class="colFirst colLast">
<a href="StringUtils_Test.html#StringUtils_Test.BadNumber" target="classFrame" title="class in org.apache.juneau.common.utils">StringUtils_Test.BadNumber</a>
</td>
</tr>
- <tr class="rowColor">
+ <tr class="altColor">
<td class="colFirst colLast">
<a href="ThrowableUtils_Test.html#ThrowableUtils_Test" target="classFrame" title="class in org.apache.juneau.common.utils">ThrowableUtils_Test</a>
</td>
</tr>
- <tr class="altColor">
+ <tr class="rowColor">
<td class="colFirst colLast">
<a href="Utils_Test.html#Utils_Test" target="classFrame" title="class in org.apache.juneau.common.utils">Utils_Test</a>
</td>
</tr>
- <tr class="rowColor">
+ <tr class="altColor">
<td class="colFirst colLast">
<a href="VersionRange_Test.html#VersionRange_Test" target="classFrame" title="class in org.apache.juneau.common.utils">VersionRange_Test</a>
</td>
</tr>
- <tr class="altColor">
+ <tr class="rowColor">
<td class="colFirst colLast">
<a href="VersionRange_Test.html#VersionRange_Test.Input" target="classFrame" title="class in org.apache.juneau.common.utils">VersionRange_Test.Input</a>
</td>
</tr>
- <tr class="rowColor">
+ <tr class="altColor">
<td class="colFirst colLast">
<a href="Version_Test.html#Version_Test" target="classFrame" title="class in org.apache.juneau.common.utils">Version_Test</a>
</td>
</tr>
- <tr class="altColor">
+ <tr class="rowColor">
<td class="colFirst colLast">
<a href="WeightedAverage_Test.html#WeightedAverage_Test" target="classFrame" title="class in org.apache.juneau.common.utils">WeightedAverage_Test</a>
</td>
diff --git a/site/xref-test/org/apache/juneau/rest/annotation/Path_Test.html b/site/xref-test/org/apache/juneau/rest/annotation/Path_Test.html
index 3b51100769..e814986995 100644
--- a/site/xref-test/org/apache/juneau/rest/annotation/Path_Test.html
+++ b/site/xref-test/org/apache/juneau/rest/annotation/Path_Test.html
@@ -391,501 +391,498 @@
<a class="jxr_linenumber" name="L383" href="#L383">383</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> F {
<a class="jxr_linenumber" name="L384" href="#L384">384</a> @RestGet(path=<span class="jxr_string">"/"</span>)
<a class="jxr_linenumber" name="L385" href="#L385">385</a> <strong class="jxr_keyword">public</strong> String a(RequestPathParams path) {
-<a class="jxr_linenumber" name="L386" href="#L386">386</a> <strong class="jxr_keyword">return</strong> format(<span class="jxr_string">"a: {0}"</span>, path.toString());
+<a class="jxr_linenumber" name="L386" href="#L386">386</a> <strong class="jxr_keyword">return</strong> Utils.f(<span class="jxr_string">"a: {0}"</span>, path.toString());
<a class="jxr_linenumber" name="L387" href="#L387">387</a> }
<a class="jxr_linenumber" name="L388" href="#L388">388</a> @RestGet(path=<span class="jxr_string">"/*"</span>)
<a class="jxr_linenumber" name="L389" href="#L389">389</a> <strong class="jxr_keyword">public</strong> String b(RequestPathParams path) {
-<a class="jxr_linenumber" name="L390" href="#L390">390</a> <strong class="jxr_keyword">return</strong> format(<span class="jxr_string">"b: {0}"</span>, path.toString());
+<a class="jxr_linenumber" name="L390" href="#L390">390</a> <strong class="jxr_keyword">return</strong> Utils.f(<span class="jxr_string">"b: {0}"</span>, path.toString());
<a class="jxr_linenumber" name="L391" href="#L391">391</a> }
<a class="jxr_linenumber" name="L392" href="#L392">392</a> @RestGet(path=<span class="jxr_string">"/fc"</span>)
<a class="jxr_linenumber" name="L393" href="#L393">393</a> <strong class="jxr_keyword">public</strong> String c(RequestPathParams path) {
-<a class="jxr_linenumber" name="L394" href="#L394">394</a> <strong class="jxr_keyword">return</strong> format(<span class="jxr_string">"c: {0}"</span>, path.toString());
+<a class="jxr_linenumber" name="L394" href="#L394">394</a> <strong class="jxr_keyword">return</strong> Utils.f(<span class="jxr_string">"c: {0}"</span>, path.toString());
<a class="jxr_linenumber" name="L395" href="#L395">395</a> }
<a class="jxr_linenumber" name="L396" href="#L396">396</a> @RestGet(path=<span class="jxr_string">"/fd/{c}/{d}"</span>)
<a class="jxr_linenumber" name="L397" href="#L397">397</a> <strong class="jxr_keyword">public</strong> String d(RequestPathParams path) {
-<a class="jxr_linenumber" name="L398" href="#L398">398</a> <strong class="jxr_keyword">return</strong> format(<span class="jxr_string">"d: {0}"</span>, path.toString());
+<a class="jxr_linenumber" name="L398" href="#L398">398</a> <strong class="jxr_keyword">return</strong> Utils.f(<span class="jxr_string">"d: {0}"</span>, path.toString());
<a class="jxr_linenumber" name="L399" href="#L399">399</a> }
<a class="jxr_linenumber" name="L400" href="#L400">400</a> @RestGet(path=<span class="jxr_string">"/fe/{a}/{b}"</span>)
<a class="jxr_linenumber" name="L401" href="#L401">401</a> <strong class="jxr_keyword">public</strong> String e(RequestPathParams path) {
-<a class="jxr_linenumber" name="L402" href="#L402">402</a> <strong class="jxr_keyword">return</strong> format(<span class="jxr_string">"e: {0}"</span>, path.toString());
+<a class="jxr_linenumber" name="L402" href="#L402">402</a> <strong class="jxr_keyword">return</strong> Utils.f(<span class="jxr_string">"e: {0}"</span>, path.toString());
<a class="jxr_linenumber" name="L403" href="#L403">403</a> }
<a class="jxr_linenumber" name="L404" href="#L404">404</a> @RestGet(path=<span class="jxr_string">"/ff/{c}/{d}/*"</span>)
<a class="jxr_linenumber" name="L405" href="#L405">405</a> <strong class="jxr_keyword">public</strong> String f(RequestPathParams path) {
-<a class="jxr_linenumber" name="L406" href="#L406">406</a> <strong class="jxr_keyword">return</strong> format(<span class="jxr_string">"f: {0}"</span>, path.toString());
+<a class="jxr_linenumber" name="L406" href="#L406">406</a> <strong class="jxr_keyword">return</strong> Utils.f(<span class="jxr_string">"f: {0}"</span>, path.toString());
<a class="jxr_linenumber" name="L407" href="#L407">407</a> }
-<a class="jxr_linenumber" name="L408" href="#L408">408</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> String format(String msg, Object...args) {
-<a class="jxr_linenumber" name="L409" href="#L409">409</a> <strong class="jxr_keyword">return</strong> StringUtils.mformat(msg, args);
-<a class="jxr_linenumber" name="L410" href="#L410">410</a> }
-<a class="jxr_linenumber" name="L411" href="#L411">411</a> }
-<a class="jxr_linenumber" name="L412" href="#L412">412</a>
-<a class="jxr_linenumber" name="L413" href="#L413">413</a> @Test <strong class="jxr_keyword">void</strong> f01_pathVariablesOnClass() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="L414" href="#L414">414</a> <strong class="jxr_keyword">var</strong> f = MockRestClient.createLax(F.<strong class="jxr_keyword">class</strong>).servletPath(<span class="jxr_string">"/f"</span>).defaultRequestConfig(RequestConfig.custom().setNormalizeUri(false).build()).build();
-<a class="jxr_linenumber" name="L415" href="#L415">415</a> f.get(<span class="jxr_string">"http://localhost/f/x1/x2"</span>)
+<a class="jxr_linenumber" name="L408" href="#L408">408</a> }
+<a class="jxr_linenumber" name="L409" href="#L409">409</a>
+<a class="jxr_linenumber" name="L410" href="#L410">410</a> @Test <strong class="jxr_keyword">void</strong> f01_pathVariablesOnClass() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="L411" href="#L411">411</a> <strong class="jxr_keyword">var</strong> f = MockRestClient.createLax(F.<strong class="jxr_keyword">class</strong>).servletPath(<span class="jxr_string">"/f"</span>).defaultRequestConfig(RequestConfig.custom().setNormalizeUri(false).build()).build();
+<a class="jxr_linenumber" name="L412" href="#L412">412</a> f.get(<span class="jxr_string">"http://localhost/f/x1/x2"</span>)
+<a class="jxr_linenumber" name="L413" href="#L413">413</a> .run()
+<a class="jxr_linenumber" name="L414" href="#L414">414</a> .assertContent(<span class="jxr_string">"a: {a:'x1',b:'x2'}"</span>);
+<a class="jxr_linenumber" name="L415" href="#L415">415</a> f.get(<span class="jxr_string">"http://localhost/f/x1"</span>)
<a class="jxr_linenumber" name="L416" href="#L416">416</a> .run()
-<a class="jxr_linenumber" name="L417" href="#L417">417</a> .assertContent(<span class="jxr_string">"a: {a:'x1',b:'x2'}"</span>);
-<a class="jxr_linenumber" name="L418" href="#L418">418</a> f.get(<span class="jxr_string">"http://localhost/f/x1"</span>)
+<a class="jxr_linenumber" name="L417" href="#L417">417</a> .assertStatus(404);
+<a class="jxr_linenumber" name="L418" href="#L418">418</a> f.get(<span class="jxr_string">"http://localhost/f"</span>)
<a class="jxr_linenumber" name="L419" href="#L419">419</a> .run()
<a class="jxr_linenumber" name="L420" href="#L420">420</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L421" href="#L421">421</a> f.get(<span class="jxr_string">"http://localhost/f"</span>)
+<a class="jxr_linenumber" name="L421" href="#L421">421</a> f.get(<span class="jxr_string">"http://localhost/f//"</span>)
<a class="jxr_linenumber" name="L422" href="#L422">422</a> .run()
<a class="jxr_linenumber" name="L423" href="#L423">423</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L424" href="#L424">424</a> f.get(<span class="jxr_string">"http://localhost/f//"</span>)
+<a class="jxr_linenumber" name="L424" href="#L424">424</a> f.get(<span class="jxr_string">"http://localhost/f/x/"</span>)
<a class="jxr_linenumber" name="L425" href="#L425">425</a> .run()
<a class="jxr_linenumber" name="L426" href="#L426">426</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L427" href="#L427">427</a> f.get(<span class="jxr_string">"http://localhost/f/x/"</span>)
+<a class="jxr_linenumber" name="L427" href="#L427">427</a> f.get(<span class="jxr_string">"http://localhost/f//x"</span>)
<a class="jxr_linenumber" name="L428" href="#L428">428</a> .run()
<a class="jxr_linenumber" name="L429" href="#L429">429</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L430" href="#L430">430</a> f.get(<span class="jxr_string">"http://localhost/f//x"</span>)
+<a class="jxr_linenumber" name="L430" href="#L430">430</a> f.get(<span class="jxr_string">"http://localhost/f/x1/x2/foo"</span>)
<a class="jxr_linenumber" name="L431" href="#L431">431</a> .run()
-<a class="jxr_linenumber" name="L432" href="#L432">432</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L433" href="#L433">433</a> f.get(<span class="jxr_string">"http://localhost/f/x1/x2/foo"</span>)
+<a class="jxr_linenumber" name="L432" href="#L432">432</a> .assertContent(<span class="jxr_string">"b: {a:'x1',b:'x2','/**':'foo','/*':'foo'}"</span>);
+<a class="jxr_linenumber" name="L433" href="#L433">433</a> f.get(<span class="jxr_string">"http://localhost/f///foo"</span>)
<a class="jxr_linenumber" name="L434" href="#L434">434</a> .run()
-<a class="jxr_linenumber" name="L435" href="#L435">435</a> .assertContent(<span class="jxr_string">"b: {a:'x1',b:'x2','/**':'foo','/*':'foo'}"</span>);
-<a class="jxr_linenumber" name="L436" href="#L436">436</a> f.get(<span class="jxr_string">"http://localhost/f///foo"</span>)
+<a class="jxr_linenumber" name="L435" href="#L435">435</a> .assertStatus(404);
+<a class="jxr_linenumber" name="L436" href="#L436">436</a> f.get(<span class="jxr_string">"http://localhost/f/x1//foo"</span>)
<a class="jxr_linenumber" name="L437" href="#L437">437</a> .run()
<a class="jxr_linenumber" name="L438" href="#L438">438</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L439" href="#L439">439</a> f.get(<span class="jxr_string">"http://localhost/f/x1//foo"</span>)
+<a class="jxr_linenumber" name="L439" href="#L439">439</a> f.get(<span class="jxr_string">"http://localhost/f//x2/foo"</span>)
<a class="jxr_linenumber" name="L440" href="#L440">440</a> .run()
<a class="jxr_linenumber" name="L441" href="#L441">441</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L442" href="#L442">442</a> f.get(<span class="jxr_string">"http://localhost/f//x2/foo"</span>)
+<a class="jxr_linenumber" name="L442" href="#L442">442</a> f.get(<span class="jxr_string">"http://localhost/f/x1/x2/fc"</span>)
<a class="jxr_linenumber" name="L443" href="#L443">443</a> .run()
-<a class="jxr_linenumber" name="L444" href="#L444">444</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L445" href="#L445">445</a> f.get(<span class="jxr_string">"http://localhost/f/x1/x2/fc"</span>)
+<a class="jxr_linenumber" name="L444" href="#L444">444</a> .assertContent(<span class="jxr_string">"c: {a:'x1',b:'x2'}"</span>);
+<a class="jxr_linenumber" name="L445" href="#L445">445</a> f.get(<span class="jxr_string">"http://localhost/f///a"</span>)
<a class="jxr_linenumber" name="L446" href="#L446">446</a> .run()
-<a class="jxr_linenumber" name="L447" href="#L447">447</a> .assertContent(<span class="jxr_string">"c: {a:'x1',b:'x2'}"</span>);
-<a class="jxr_linenumber" name="L448" href="#L448">448</a> f.get(<span class="jxr_string">"http://localhost/f///a"</span>)
+<a class="jxr_linenumber" name="L447" href="#L447">447</a> .assertStatus(404);
+<a class="jxr_linenumber" name="L448" href="#L448">448</a> f.get(<span class="jxr_string">"http://localhost/f/x1//a"</span>)
<a class="jxr_linenumber" name="L449" href="#L449">449</a> .run()
<a class="jxr_linenumber" name="L450" href="#L450">450</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L451" href="#L451">451</a> f.get(<span class="jxr_string">"http://localhost/f/x1//a"</span>)
+<a class="jxr_linenumber" name="L451" href="#L451">451</a> f.get(<span class="jxr_string">"http://localhost/f//x2/a"</span>)
<a class="jxr_linenumber" name="L452" href="#L452">452</a> .run()
<a class="jxr_linenumber" name="L453" href="#L453">453</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L454" href="#L454">454</a> f.get(<span class="jxr_string">"http://localhost/f//x2/a"</span>)
+<a class="jxr_linenumber" name="L454" href="#L454">454</a> f.get(<span class="jxr_string">"http://localhost/f/x1/x2/fd/x3/x4"</span>)
<a class="jxr_linenumber" name="L455" href="#L455">455</a> .run()
-<a class="jxr_linenumber" name="L456" href="#L456">456</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L457" href="#L457">457</a> f.get(<span class="jxr_string">"http://localhost/f/x1/x2/fd/x3/x4"</span>)
+<a class="jxr_linenumber" name="L456" href="#L456">456</a> .assertContent(<span class="jxr_string">"d: {a:'x1',b:'x2',c:'x3',d:'x4'}"</span>);
+<a class="jxr_linenumber" name="L457" href="#L457">457</a> f.get(<span class="jxr_string">"http://localhost/f//x2/b/x3/x4"</span>)
<a class="jxr_linenumber" name="L458" href="#L458">458</a> .run()
-<a class="jxr_linenumber" name="L459" href="#L459">459</a> .assertContent(<span class="jxr_string">"d: {a:'x1',b:'x2',c:'x3',d:'x4'}"</span>);
-<a class="jxr_linenumber" name="L460" href="#L460">460</a> f.get(<span class="jxr_string">"http://localhost/f//x2/b/x3/x4"</span>)
+<a class="jxr_linenumber" name="L459" href="#L459">459</a> .assertStatus(404);
+<a class="jxr_linenumber" name="L460" href="#L460">460</a> f.get(<span class="jxr_string">"http://localhost/f/x1//b/x3/x4"</span>)
<a class="jxr_linenumber" name="L461" href="#L461">461</a> .run()
<a class="jxr_linenumber" name="L462" href="#L462">462</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L463" href="#L463">463</a> f.get(<span class="jxr_string">"http://localhost/f/x1//b/x3/x4"</span>)
+<a class="jxr_linenumber" name="L463" href="#L463">463</a> f.get(<span class="jxr_string">"http://localhost/f/x1/x2/b//x4"</span>)
<a class="jxr_linenumber" name="L464" href="#L464">464</a> .run()
-<a class="jxr_linenumber" name="L465" href="#L465">465</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L466" href="#L466">466</a> f.get(<span class="jxr_string">"http://localhost/f/x1/x2/b//x4"</span>)
+<a class="jxr_linenumber" name="L465" href="#L465">465</a> .assertStatus(200);
+<a class="jxr_linenumber" name="L466" href="#L466">466</a> f.get(<span class="jxr_string">"http://localhost/f/x1/x2/b/x3/"</span>)
<a class="jxr_linenumber" name="L467" href="#L467">467</a> .run()
<a class="jxr_linenumber" name="L468" href="#L468">468</a> .assertStatus(200);
-<a class="jxr_linenumber" name="L469" href="#L469">469</a> f.get(<span class="jxr_string">"http://localhost/f/x1/x2/b/x3/"</span>)
+<a class="jxr_linenumber" name="L469" href="#L469">469</a> f.get(<span class="jxr_string">"http://localhost/f///b//"</span>)
<a class="jxr_linenumber" name="L470" href="#L470">470</a> .run()
-<a class="jxr_linenumber" name="L471" href="#L471">471</a> .assertStatus(200);
-<a class="jxr_linenumber" name="L472" href="#L472">472</a> f.get(<span class="jxr_string">"http://localhost/f///b//"</span>)
+<a class="jxr_linenumber" name="L471" href="#L471">471</a> .assertStatus(404);
+<a class="jxr_linenumber" name="L472" href="#L472">472</a> f.get(<span class="jxr_string">"http://localhost/f/x1/x2/fe/x3/x4"</span>)
<a class="jxr_linenumber" name="L473" href="#L473">473</a> .run()
-<a class="jxr_linenumber" name="L474" href="#L474">474</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L475" href="#L475">475</a> f.get(<span class="jxr_string">"http://localhost/f/x1/x2/fe/x3/x4"</span>)
+<a class="jxr_linenumber" name="L474" href="#L474">474</a> .assertContent(<span class="jxr_string">"e: {a:'x1, x3',b:'x2, x4'}"</span>);
+<a class="jxr_linenumber" name="L475" href="#L475">475</a> f.get(<span class="jxr_string">"http://localhost/f/x1/x2/ff/x3/x4"</span>)
<a class="jxr_linenumber" name="L476" href="#L476">476</a> .run()
-<a class="jxr_linenumber" name="L477" href="#L477">477</a> .assertContent(<span class="jxr_string">"e: {a:'x1, x3',b:'x2, x4'}"</span>);
-<a class="jxr_linenumber" name="L478" href="#L478">478</a> f.get(<span class="jxr_string">"http://localhost/f/x1/x2/ff/x3/x4"</span>)
+<a class="jxr_linenumber" name="L477" href="#L477">477</a> .assertContent(<span class="jxr_string">"f: {a:'x1',b:'x2',c:'x3',d:'x4'}"</span>);
+<a class="jxr_linenumber" name="L478" href="#L478">478</a> f.get(<span class="jxr_string">"http://localhost/f/x1/x2/ff/x3/x4/"</span>)
<a class="jxr_linenumber" name="L479" href="#L479">479</a> .run()
-<a class="jxr_linenumber" name="L480" href="#L480">480</a> .assertContent(<span class="jxr_string">"f: {a:'x1',b:'x2',c:'x3',d:'x4'}"</span>);
-<a class="jxr_linenumber" name="L481" href="#L481">481</a> f.get(<span class="jxr_string">"http://localhost/f/x1/x2/ff/x3/x4/"</span>)
+<a class="jxr_linenumber" name="L480" href="#L480">480</a> .assertContent(<span class="jxr_string">"f: {a:'x1',b:'x2',c:'x3',d:'x4','/**':'','/*':''}"</span>);
+<a class="jxr_linenumber" name="L481" href="#L481">481</a> f.get(<span class="jxr_string">"http://localhost/f/x1/x2/ff/x3/x4/foo/bar"</span>)
<a class="jxr_linenumber" name="L482" href="#L482">482</a> .run()
-<a class="jxr_linenumber" name="L483" href="#L483">483</a> .assertContent(<span class="jxr_string">"f: {a:'x1',b:'x2',c:'x3',d:'x4','/**':'','/*':''}"</span>);
-<a class="jxr_linenumber" name="L484" href="#L484">484</a> f.get(<span class="jxr_string">"http://localhost/f/x1/x2/ff/x3/x4/foo/bar"</span>)
-<a class="jxr_linenumber" name="L485" href="#L485">485</a> .run()
-<a class="jxr_linenumber" name="L486" href="#L486">486</a> .assertContent(<span class="jxr_string">"f: {a:'x1',b:'x2',c:'x3',d:'x4','/**':'foo/bar','/*':'foo/bar'}"</span>);
-<a class="jxr_linenumber" name="L487" href="#L487">487</a> }
-<a class="jxr_linenumber" name="L488" href="#L488">488</a>
-<a class="jxr_linenumber" name="L489" href="#L489">489</a> <em class="jxr_comment">//------------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="L490" href="#L490">490</a> <em class="jxr_comment">// Path variables on child class.</em>
-<a class="jxr_linenumber" name="L491" href="#L491">491</a> <em class="jxr_comment">//------------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="L483" href="#L483">483</a> .assertContent(<span class="jxr_string">"f: {a:'x1',b:'x2',c:'x3',d:'x4','/**':'foo/bar','/*':'foo/bar'}"</span>);
+<a class="jxr_linenumber" name="L484" href="#L484">484</a> }
+<a class="jxr_linenumber" name="L485" href="#L485">485</a>
+<a class="jxr_linenumber" name="L486" href="#L486">486</a> <em class="jxr_comment">//------------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="L487" href="#L487">487</a> <em class="jxr_comment">// Path variables on child class.</em>
+<a class="jxr_linenumber" name="L488" href="#L488">488</a> <em class="jxr_comment">//------------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="L489" href="#L489">489</a>
+<a class="jxr_linenumber" name="L490" href="#L490">490</a> @Rest(children={F.<strong class="jxr_keyword">class</strong>})
+<a class="jxr_linenumber" name="L491" href="#L491">491</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> G {}
<a class="jxr_linenumber" name="L492" href="#L492">492</a>
-<a class="jxr_linenumber" name="L493" href="#L493">493</a> @Rest(children={F.<strong class="jxr_keyword">class</strong>})
-<a class="jxr_linenumber" name="L494" href="#L494">494</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> G {}
-<a class="jxr_linenumber" name="L495" href="#L495">495</a>
-<a class="jxr_linenumber" name="L496" href="#L496">496</a> @Test <strong class="jxr_keyword">void</strong> g01_pathVariablesOnChildClass() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="L497" href="#L497">497</a> <strong class="jxr_keyword">var</strong> g = MockRestClient.createLax(G.<strong class="jxr_keyword">class</strong>).defaultRequestConfig(RequestConfig.custom().setNormalizeUri(false).build()).build();
-<a class="jxr_linenumber" name="L498" href="#L498">498</a> g.get(<span class="jxr_string">"http://localhost/f/x1/x2"</span>)
+<a class="jxr_linenumber" name="L493" href="#L493">493</a> @Test <strong class="jxr_keyword">void</strong> g01_pathVariablesOnChildClass() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="L494" href="#L494">494</a> <strong class="jxr_keyword">var</strong> g = MockRestClient.createLax(G.<strong class="jxr_keyword">class</strong>).defaultRequestConfig(RequestConfig.custom().setNormalizeUri(false).build()).build();
+<a class="jxr_linenumber" name="L495" href="#L495">495</a> g.get(<span class="jxr_string">"http://localhost/f/x1/x2"</span>)
+<a class="jxr_linenumber" name="L496" href="#L496">496</a> .run()
+<a class="jxr_linenumber" name="L497" href="#L497">497</a> .assertContent(<span class="jxr_string">"a: {a:'x1',b:'x2'}"</span>);
+<a class="jxr_linenumber" name="L498" href="#L498">498</a> g.get(<span class="jxr_string">"http://localhost/f/x1"</span>)
<a class="jxr_linenumber" name="L499" href="#L499">499</a> .run()
-<a class="jxr_linenumber" name="L500" href="#L500">500</a> .assertContent(<span class="jxr_string">"a: {a:'x1',b:'x2'}"</span>);
-<a class="jxr_linenumber" name="L501" href="#L501">501</a> g.get(<span class="jxr_string">"http://localhost/f/x1"</span>)
+<a class="jxr_linenumber" name="L500" href="#L500">500</a> .assertStatus(404);
+<a class="jxr_linenumber" name="L501" href="#L501">501</a> g.get(<span class="jxr_string">"http://localhost/f"</span>)
<a class="jxr_linenumber" name="L502" href="#L502">502</a> .run()
<a class="jxr_linenumber" name="L503" href="#L503">503</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L504" href="#L504">504</a> g.get(<span class="jxr_string">"http://localhost/f"</span>)
+<a class="jxr_linenumber" name="L504" href="#L504">504</a> g.get(<span class="jxr_string">"http://localhost/f//"</span>)
<a class="jxr_linenumber" name="L505" href="#L505">505</a> .run()
<a class="jxr_linenumber" name="L506" href="#L506">506</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L507" href="#L507">507</a> g.get(<span class="jxr_string">"http://localhost/f//"</span>)
+<a class="jxr_linenumber" name="L507" href="#L507">507</a> g.get(<span class="jxr_string">"http://localhost/f/x1/"</span>)
<a class="jxr_linenumber" name="L508" href="#L508">508</a> .run()
<a class="jxr_linenumber" name="L509" href="#L509">509</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L510" href="#L510">510</a> g.get(<span class="jxr_string">"http://localhost/f/x1/"</span>)
+<a class="jxr_linenumber" name="L510" href="#L510">510</a> g.get(<span class="jxr_string">"http://localhost/f//x2"</span>)
<a class="jxr_linenumber" name="L511" href="#L511">511</a> .run()
<a class="jxr_linenumber" name="L512" href="#L512">512</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L513" href="#L513">513</a> g.get(<span class="jxr_string">"http://localhost/f//x2"</span>)
+<a class="jxr_linenumber" name="L513" href="#L513">513</a> g.get(<span class="jxr_string">"http://localhost/f/x1/x2/fc"</span>)
<a class="jxr_linenumber" name="L514" href="#L514">514</a> .run()
-<a class="jxr_linenumber" name="L515" href="#L515">515</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L516" href="#L516">516</a> g.get(<span class="jxr_string">"http://localhost/f/x1/x2/fc"</span>)
+<a class="jxr_linenumber" name="L515" href="#L515">515</a> .assertContent(<span class="jxr_string">"c: {a:'x1',b:'x2'}"</span>);
+<a class="jxr_linenumber" name="L516" href="#L516">516</a> g.get(<span class="jxr_string">"http://localhost/f///a"</span>)
<a class="jxr_linenumber" name="L517" href="#L517">517</a> .run()
-<a class="jxr_linenumber" name="L518" href="#L518">518</a> .assertContent(<span class="jxr_string">"c: {a:'x1',b:'x2'}"</span>);
-<a class="jxr_linenumber" name="L519" href="#L519">519</a> g.get(<span class="jxr_string">"http://localhost/f///a"</span>)
+<a class="jxr_linenumber" name="L518" href="#L518">518</a> .assertStatus(404);
+<a class="jxr_linenumber" name="L519" href="#L519">519</a> g.get(<span class="jxr_string">"http://localhost/f/x1//a"</span>)
<a class="jxr_linenumber" name="L520" href="#L520">520</a> .run()
<a class="jxr_linenumber" name="L521" href="#L521">521</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L522" href="#L522">522</a> g.get(<span class="jxr_string">"http://localhost/f/x1//a"</span>)
+<a class="jxr_linenumber" name="L522" href="#L522">522</a> g.get(<span class="jxr_string">"http://localhost/f//x2/a"</span>)
<a class="jxr_linenumber" name="L523" href="#L523">523</a> .run()
<a class="jxr_linenumber" name="L524" href="#L524">524</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L525" href="#L525">525</a> g.get(<span class="jxr_string">"http://localhost/f//x2/a"</span>)
+<a class="jxr_linenumber" name="L525" href="#L525">525</a> g.get(<span class="jxr_string">"http://localhost/f/x1/x2/fd/x3/x4"</span>)
<a class="jxr_linenumber" name="L526" href="#L526">526</a> .run()
-<a class="jxr_linenumber" name="L527" href="#L527">527</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L528" href="#L528">528</a> g.get(<span class="jxr_string">"http://localhost/f/x1/x2/fd/x3/x4"</span>)
+<a class="jxr_linenumber" name="L527" href="#L527">527</a> .assertContent(<span class="jxr_string">"d: {a:'x1',b:'x2',c:'x3',d:'x4'}"</span>);
+<a class="jxr_linenumber" name="L528" href="#L528">528</a> g.get(<span class="jxr_string">"http://localhost/f//x2/b/x3/x4"</span>)
<a class="jxr_linenumber" name="L529" href="#L529">529</a> .run()
-<a class="jxr_linenumber" name="L530" href="#L530">530</a> .assertContent(<span class="jxr_string">"d: {a:'x1',b:'x2',c:'x3',d:'x4'}"</span>);
-<a class="jxr_linenumber" name="L531" href="#L531">531</a> g.get(<span class="jxr_string">"http://localhost/f//x2/b/x3/x4"</span>)
+<a class="jxr_linenumber" name="L530" href="#L530">530</a> .assertStatus(404);
+<a class="jxr_linenumber" name="L531" href="#L531">531</a> g.get(<span class="jxr_string">"http://localhost/f/x1//b/x3/x4"</span>)
<a class="jxr_linenumber" name="L532" href="#L532">532</a> .run()
<a class="jxr_linenumber" name="L533" href="#L533">533</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L534" href="#L534">534</a> g.get(<span class="jxr_string">"http://localhost/f/x1//b/x3/x4"</span>)
+<a class="jxr_linenumber" name="L534" href="#L534">534</a> g.get(<span class="jxr_string">"http://localhost/f/x1/x2/b//x4"</span>)
<a class="jxr_linenumber" name="L535" href="#L535">535</a> .run()
-<a class="jxr_linenumber" name="L536" href="#L536">536</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L537" href="#L537">537</a> g.get(<span class="jxr_string">"http://localhost/f/x1/x2/b//x4"</span>)
+<a class="jxr_linenumber" name="L536" href="#L536">536</a> .assertStatus(200);
+<a class="jxr_linenumber" name="L537" href="#L537">537</a> g.get(<span class="jxr_string">"http://localhost/f/x1/x2/b/x3/"</span>)
<a class="jxr_linenumber" name="L538" href="#L538">538</a> .run()
<a class="jxr_linenumber" name="L539" href="#L539">539</a> .assertStatus(200);
-<a class="jxr_linenumber" name="L540" href="#L540">540</a> g.get(<span class="jxr_string">"http://localhost/f/x1/x2/b/x3/"</span>)
+<a class="jxr_linenumber" name="L540" href="#L540">540</a> g.get(<span class="jxr_string">"http://localhost/f///b//"</span>)
<a class="jxr_linenumber" name="L541" href="#L541">541</a> .run()
-<a class="jxr_linenumber" name="L542" href="#L542">542</a> .assertStatus(200);
-<a class="jxr_linenumber" name="L543" href="#L543">543</a> g.get(<span class="jxr_string">"http://localhost/f///b//"</span>)
+<a class="jxr_linenumber" name="L542" href="#L542">542</a> .assertStatus(404);
+<a class="jxr_linenumber" name="L543" href="#L543">543</a> g.get(<span class="jxr_string">"http://localhost/f/x1/x2/fe/x3/x4"</span>)
<a class="jxr_linenumber" name="L544" href="#L544">544</a> .run()
-<a class="jxr_linenumber" name="L545" href="#L545">545</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L546" href="#L546">546</a> g.get(<span class="jxr_string">"http://localhost/f/x1/x2/fe/x3/x4"</span>)
+<a class="jxr_linenumber" name="L545" href="#L545">545</a> .assertContent(<span class="jxr_string">"e: {a:'x1, x3',b:'x2, x4'}"</span>);
+<a class="jxr_linenumber" name="L546" href="#L546">546</a> g.get(<span class="jxr_string">"http://localhost/f/x1/x2/ff/x3/x4"</span>)
<a class="jxr_linenumber" name="L547" href="#L547">547</a> .run()
-<a class="jxr_linenumber" name="L548" href="#L548">548</a> .assertContent(<span class="jxr_string">"e: {a:'x1, x3',b:'x2, x4'}"</span>);
-<a class="jxr_linenumber" name="L549" href="#L549">549</a> g.get(<span class="jxr_string">"http://localhost/f/x1/x2/ff/x3/x4"</span>)
+<a class="jxr_linenumber" name="L548" href="#L548">548</a> .assertContent(<span class="jxr_string">"f: {a:'x1',b:'x2',c:'x3',d:'x4'}"</span>);
+<a class="jxr_linenumber" name="L549" href="#L549">549</a> g.get(<span class="jxr_string">"http://localhost/f/x1/x2/ff/x3/x4/"</span>)
<a class="jxr_linenumber" name="L550" href="#L550">550</a> .run()
-<a class="jxr_linenumber" name="L551" href="#L551">551</a> .assertContent(<span class="jxr_string">"f: {a:'x1',b:'x2',c:'x3',d:'x4'}"</span>);
-<a class="jxr_linenumber" name="L552" href="#L552">552</a> g.get(<span class="jxr_string">"http://localhost/f/x1/x2/ff/x3/x4/"</span>)
+<a class="jxr_linenumber" name="L551" href="#L551">551</a> .assertContent(<span class="jxr_string">"f: {a:'x1',b:'x2',c:'x3',d:'x4','/**':'','/*':''}"</span>);
+<a class="jxr_linenumber" name="L552" href="#L552">552</a> g.get(<span class="jxr_string">"http://localhost/f/x1/x2/ff/x3/x4/foo/bar"</span>)
<a class="jxr_linenumber" name="L553" href="#L553">553</a> .run()
-<a class="jxr_linenumber" name="L554" href="#L554">554</a> .assertContent(<span class="jxr_string">"f: {a:'x1',b:'x2',c:'x3',d:'x4','/**':'','/*':''}"</span>);
-<a class="jxr_linenumber" name="L555" href="#L555">555</a> g.get(<span class="jxr_string">"http://localhost/f/x1/x2/ff/x3/x4/foo/bar"</span>)
-<a class="jxr_linenumber" name="L556" href="#L556">556</a> .run()
-<a class="jxr_linenumber" name="L557" href="#L557">557</a> .assertContent(<span class="jxr_string">"f: {a:'x1',b:'x2',c:'x3',d:'x4','/**':'foo/bar','/*':'foo/bar'}"</span>);
-<a class="jxr_linenumber" name="L558" href="#L558">558</a> }
-<a class="jxr_linenumber" name="L559" href="#L559">559</a>
-<a class="jxr_linenumber" name="L560" href="#L560">560</a> <em class="jxr_comment">//------------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="L561" href="#L561">561</a> <em class="jxr_comment">// Path variables on parent and child class.</em>
-<a class="jxr_linenumber" name="L562" href="#L562">562</a> <em class="jxr_comment">//------------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="L554" href="#L554">554</a> .assertContent(<span class="jxr_string">"f: {a:'x1',b:'x2',c:'x3',d:'x4','/**':'foo/bar','/*':'foo/bar'}"</span>);
+<a class="jxr_linenumber" name="L555" href="#L555">555</a> }
+<a class="jxr_linenumber" name="L556" href="#L556">556</a>
+<a class="jxr_linenumber" name="L557" href="#L557">557</a> <em class="jxr_comment">//------------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="L558" href="#L558">558</a> <em class="jxr_comment">// Path variables on parent and child class.</em>
+<a class="jxr_linenumber" name="L559" href="#L559">559</a> <em class="jxr_comment">//------------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="L560" href="#L560">560</a>
+<a class="jxr_linenumber" name="L561" href="#L561">561</a> @Rest(path=<span class="jxr_string">"/h/{ha}/{hb}"</span>, children={F.<strong class="jxr_keyword">class</strong>})
+<a class="jxr_linenumber" name="L562" href="#L562">562</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> H {}
<a class="jxr_linenumber" name="L563" href="#L563">563</a>
-<a class="jxr_linenumber" name="L564" href="#L564">564</a> @Rest(path=<span class="jxr_string">"/h/{ha}/{hb}"</span>, children={F.<strong class="jxr_keyword">class</strong>})
-<a class="jxr_linenumber" name="L565" href="#L565">565</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> H {}
-<a class="jxr_linenumber" name="L566" href="#L566">566</a>
-<a class="jxr_linenumber" name="L567" href="#L567">567</a> @Test <strong class="jxr_keyword">void</strong> h01_pathVariablesOnParentAndChildClass() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="L568" href="#L568">568</a> <strong class="jxr_keyword">var</strong> h = MockRestClient.createLax(H.<strong class="jxr_keyword">class</strong>).servletPath(<span class="jxr_string">"/h"</span>).defaultRequestConfig(RequestConfig.custom().setNormalizeUri(false).build()).build();
-<a class="jxr_linenumber" name="L569" href="#L569">569</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1/f/x1/x2"</span>)
-<a class="jxr_linenumber" name="L570" href="#L570">570</a> .run()
-<a class="jxr_linenumber" name="L571" href="#L571">571</a> .assertContent(<span class="jxr_string">"a: {a:'x1',b:'x2',ha:'ha1',hb:'hb1'}"</span>);
-<a class="jxr_linenumber" name="L572" href="#L572">572</a> <em class="jxr_comment">// These are 405 instead of 404 because when children don't match, we try to find a matching Java method.</em>
-<a class="jxr_linenumber" name="L573" href="#L573">573</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1/f/x1"</span>)
+<a class="jxr_linenumber" name="L564" href="#L564">564</a> @Test <strong class="jxr_keyword">void</strong> h01_pathVariablesOnParentAndChildClass() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="L565" href="#L565">565</a> <strong class="jxr_keyword">var</strong> h = MockRestClient.createLax(H.<strong class="jxr_keyword">class</strong>).servletPath(<span class="jxr_string">"/h"</span>).defaultRequestConfig(RequestConfig.custom().setNormalizeUri(false).build()).build();
+<a class="jxr_linenumber" name="L566" href="#L566">566</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1/f/x1/x2"</span>)
+<a class="jxr_linenumber" name="L567" href="#L567">567</a> .run()
+<a class="jxr_linenumber" name="L568" href="#L568">568</a> .assertContent(<span class="jxr_string">"a: {a:'x1',b:'x2',ha:'ha1',hb:'hb1'}"</span>);
+<a class="jxr_linenumber" name="L569" href="#L569">569</a> <em class="jxr_comment">// These are 405 instead of 404 because when children don't match, we try to find a matching Java method.</em>
+<a class="jxr_linenumber" name="L570" href="#L570">570</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1/f/x1"</span>)
+<a class="jxr_linenumber" name="L571" href="#L571">571</a> .run()
+<a class="jxr_linenumber" name="L572" href="#L572">572</a> .assertStatus(404);
+<a class="jxr_linenumber" name="L573" href="#L573">573</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1/f"</span>)
<a class="jxr_linenumber" name="L574" href="#L574">574</a> .run()
<a class="jxr_linenumber" name="L575" href="#L575">575</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L576" href="#L576">576</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1/f"</span>)
+<a class="jxr_linenumber" name="L576" href="#L576">576</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1"</span>)
<a class="jxr_linenumber" name="L577" href="#L577">577</a> .run()
<a class="jxr_linenumber" name="L578" href="#L578">578</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L579" href="#L579">579</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1"</span>)
+<a class="jxr_linenumber" name="L579" href="#L579">579</a> h.get(<span class="jxr_string">"http://localhost/h/ha1"</span>)
<a class="jxr_linenumber" name="L580" href="#L580">580</a> .run()
<a class="jxr_linenumber" name="L581" href="#L581">581</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L582" href="#L582">582</a> h.get(<span class="jxr_string">"http://localhost/h/ha1"</span>)
+<a class="jxr_linenumber" name="L582" href="#L582">582</a> h.get(<span class="jxr_string">"http://localhost/h"</span>)
<a class="jxr_linenumber" name="L583" href="#L583">583</a> .run()
<a class="jxr_linenumber" name="L584" href="#L584">584</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L585" href="#L585">585</a> h.get(<span class="jxr_string">"http://localhost/h"</span>)
+<a class="jxr_linenumber" name="L585" href="#L585">585</a> h.get(<span class="jxr_string">"http://localhost/h//hb1/f/x1/x2"</span>)
<a class="jxr_linenumber" name="L586" href="#L586">586</a> .run()
<a class="jxr_linenumber" name="L587" href="#L587">587</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L588" href="#L588">588</a> h.get(<span class="jxr_string">"http://localhost/h//hb1/f/x1/x2"</span>)
+<a class="jxr_linenumber" name="L588" href="#L588">588</a> h.get(<span class="jxr_string">"http://localhost/h/ha1//f/x1/x2"</span>)
<a class="jxr_linenumber" name="L589" href="#L589">589</a> .run()
<a class="jxr_linenumber" name="L590" href="#L590">590</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L591" href="#L591">591</a> h.get(<span class="jxr_string">"http://localhost/h/ha1//f/x1/x2"</span>)
+<a class="jxr_linenumber" name="L591" href="#L591">591</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1/f//x2"</span>)
<a class="jxr_linenumber" name="L592" href="#L592">592</a> .run()
<a class="jxr_linenumber" name="L593" href="#L593">593</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L594" href="#L594">594</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1/f//x2"</span>)
+<a class="jxr_linenumber" name="L594" href="#L594">594</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1/f/x1/"</span>)
<a class="jxr_linenumber" name="L595" href="#L595">595</a> .run()
<a class="jxr_linenumber" name="L596" href="#L596">596</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L597" href="#L597">597</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1/f/x1/"</span>)
+<a class="jxr_linenumber" name="L597" href="#L597">597</a> h.get(<span class="jxr_string">"http://localhost/h///f//"</span>)
<a class="jxr_linenumber" name="L598" href="#L598">598</a> .run()
<a class="jxr_linenumber" name="L599" href="#L599">599</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L600" href="#L600">600</a> h.get(<span class="jxr_string">"http://localhost/h///f//"</span>)
+<a class="jxr_linenumber" name="L600" href="#L600">600</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1/f/x1/x2/foo"</span>)
<a class="jxr_linenumber" name="L601" href="#L601">601</a> .run()
-<a class="jxr_linenumber" name="L602" href="#L602">602</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L603" href="#L603">603</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1/f/x1/x2/foo"</span>)
+<a class="jxr_linenumber" name="L602" href="#L602">602</a> .assertContent(<span class="jxr_string">"b: {a:'x1',b:'x2',ha:'ha1',hb:'hb1','/**':'foo','/*':'foo'}"</span>);
+<a class="jxr_linenumber" name="L603" href="#L603">603</a> h.get(<span class="jxr_string">"http://localhost/h//hb1/f/x1/x2/foo"</span>)
<a class="jxr_linenumber" name="L604" href="#L604">604</a> .run()
-<a class="jxr_linenumber" name="L605" href="#L605">605</a> .assertContent(<span class="jxr_string">"b: {a:'x1',b:'x2',ha:'ha1',hb:'hb1','/**':'foo','/*':'foo'}"</span>);
-<a class="jxr_linenumber" name="L606" href="#L606">606</a> h.get(<span class="jxr_string">"http://localhost/h//hb1/f/x1/x2/foo"</span>)
+<a class="jxr_linenumber" name="L605" href="#L605">605</a> .assertStatus(404);
+<a class="jxr_linenumber" name="L606" href="#L606">606</a> h.get(<span class="jxr_string">"http://localhost/h/ha1//f/x1/x2/foo"</span>)
<a class="jxr_linenumber" name="L607" href="#L607">607</a> .run()
<a class="jxr_linenumber" name="L608" href="#L608">608</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L609" href="#L609">609</a> h.get(<span class="jxr_string">"http://localhost/h/ha1//f/x1/x2/foo"</span>)
+<a class="jxr_linenumber" name="L609" href="#L609">609</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1/f//x2/foo"</span>)
<a class="jxr_linenumber" name="L610" href="#L610">610</a> .run()
<a class="jxr_linenumber" name="L611" href="#L611">611</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L612" href="#L612">612</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1/f//x2/foo"</span>)
+<a class="jxr_linenumber" name="L612" href="#L612">612</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1/f/x1//foo"</span>)
<a class="jxr_linenumber" name="L613" href="#L613">613</a> .run()
<a class="jxr_linenumber" name="L614" href="#L614">614</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L615" href="#L615">615</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1/f/x1//foo"</span>)
+<a class="jxr_linenumber" name="L615" href="#L615">615</a> h.get(<span class="jxr_string">"http://localhost/h///f///foo"</span>)
<a class="jxr_linenumber" name="L616" href="#L616">616</a> .run()
<a class="jxr_linenumber" name="L617" href="#L617">617</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L618" href="#L618">618</a> h.get(<span class="jxr_string">"http://localhost/h///f///foo"</span>)
+<a class="jxr_linenumber" name="L618" href="#L618">618</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1/f/x1/x2/fc"</span>)
<a class="jxr_linenumber" name="L619" href="#L619">619</a> .run()
-<a class="jxr_linenumber" name="L620" href="#L620">620</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L621" href="#L621">621</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1/f/x1/x2/fc"</span>)
+<a class="jxr_linenumber" name="L620" href="#L620">620</a> .assertContent(<span class="jxr_string">"c: {a:'x1',b:'x2',ha:'ha1',hb:'hb1'}"</span>);
+<a class="jxr_linenumber" name="L621" href="#L621">621</a> h.get(<span class="jxr_string">"http://localhost/h//hb1/f/x1/x2/a"</span>)
<a class="jxr_linenumber" name="L622" href="#L622">622</a> .run()
-<a class="jxr_linenumber" name="L623" href="#L623">623</a> .assertContent(<span class="jxr_string">"c: {a:'x1',b:'x2',ha:'ha1',hb:'hb1'}"</span>);
-<a class="jxr_linenumber" name="L624" href="#L624">624</a> h.get(<span class="jxr_string">"http://localhost/h//hb1/f/x1/x2/a"</span>)
+<a class="jxr_linenumber" name="L623" href="#L623">623</a> .assertStatus(404);
+<a class="jxr_linenumber" name="L624" href="#L624">624</a> h.get(<span class="jxr_string">"http://localhost/h/ha1//f/x1/x2/a"</span>)
<a class="jxr_linenumber" name="L625" href="#L625">625</a> .run()
<a class="jxr_linenumber" name="L626" href="#L626">626</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L627" href="#L627">627</a> h.get(<span class="jxr_string">"http://localhost/h/ha1//f/x1/x2/a"</span>)
+<a class="jxr_linenumber" name="L627" href="#L627">627</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1/f//x2/a"</span>)
<a class="jxr_linenumber" name="L628" href="#L628">628</a> .run()
<a class="jxr_linenumber" name="L629" href="#L629">629</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L630" href="#L630">630</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1/f//x2/a"</span>)
+<a class="jxr_linenumber" name="L630" href="#L630">630</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1/f/x1//a"</span>)
<a class="jxr_linenumber" name="L631" href="#L631">631</a> .run()
<a class="jxr_linenumber" name="L632" href="#L632">632</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L633" href="#L633">633</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1/f/x1//a"</span>)
+<a class="jxr_linenumber" name="L633" href="#L633">633</a> h.get(<span class="jxr_string">"http://localhost/h///f///a"</span>)
<a class="jxr_linenumber" name="L634" href="#L634">634</a> .run()
<a class="jxr_linenumber" name="L635" href="#L635">635</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L636" href="#L636">636</a> h.get(<span class="jxr_string">"http://localhost/h///f///a"</span>)
+<a class="jxr_linenumber" name="L636" href="#L636">636</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1/f/x1/x2/fd/x3/x4"</span>)
<a class="jxr_linenumber" name="L637" href="#L637">637</a> .run()
-<a class="jxr_linenumber" name="L638" href="#L638">638</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L639" href="#L639">639</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1/f/x1/x2/fd/x3/x4"</span>)
+<a class="jxr_linenumber" name="L638" href="#L638">638</a> .assertContent(<span class="jxr_string">"d: {a:'x1',b:'x2',ha:'ha1',hb:'hb1',c:'x3',d:'x4'}"</span>);
+<a class="jxr_linenumber" name="L639" href="#L639">639</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1/f/x1/x2/fe/x3/x4"</span>)
<a class="jxr_linenumber" name="L640" href="#L640">640</a> .run()
-<a class="jxr_linenumber" name="L641" href="#L641">641</a> .assertContent(<span class="jxr_string">"d: {a:'x1',b:'x2',ha:'ha1',hb:'hb1',c:'x3',d:'x4'}"</span>);
-<a class="jxr_linenumber" name="L642" href="#L642">642</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1/f/x1/x2/fe/x3/x4"</span>)
+<a class="jxr_linenumber" name="L641" href="#L641">641</a> .assertContent(<span class="jxr_string">"e: {a:'x1, x3',b:'x2, x4',ha:'ha1',hb:'hb1'}"</span>);
+<a class="jxr_linenumber" name="L642" href="#L642">642</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1/f/x1/x2/ff/x3/x4"</span>)
<a class="jxr_linenumber" name="L643" href="#L643">643</a> .run()
-<a class="jxr_linenumber" name="L644" href="#L644">644</a> .assertContent(<span class="jxr_string">"e: {a:'x1, x3',b:'x2, x4',ha:'ha1',hb:'hb1'}"</span>);
-<a class="jxr_linenumber" name="L645" href="#L645">645</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1/f/x1/x2/ff/x3/x4"</span>)
+<a class="jxr_linenumber" name="L644" href="#L644">644</a> .assertContent(<span class="jxr_string">"f: {a:'x1',b:'x2',ha:'ha1',hb:'hb1',c:'x3',d:'x4'}"</span>);
+<a class="jxr_linenumber" name="L645" href="#L645">645</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1/f/x1/x2/ff/x3/x4/"</span>)
<a class="jxr_linenumber" name="L646" href="#L646">646</a> .run()
-<a class="jxr_linenumber" name="L647" href="#L647">647</a> .assertContent(<span class="jxr_string">"f: {a:'x1',b:'x2',ha:'ha1',hb:'hb1',c:'x3',d:'x4'}"</span>);
-<a class="jxr_linenumber" name="L648" href="#L648">648</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1/f/x1/x2/ff/x3/x4/"</span>)
+<a class="jxr_linenumber" name="L647" href="#L647">647</a> .assertContent(<span class="jxr_string">"f: {a:'x1',b:'x2',ha:'ha1',hb:'hb1',c:'x3',d:'x4','/**':'','/*':''}"</span>);
+<a class="jxr_linenumber" name="L648" href="#L648">648</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1/f/x1/x2/ff/x3/x4/foo/bar"</span>)
<a class="jxr_linenumber" name="L649" href="#L649">649</a> .run()
-<a class="jxr_linenumber" name="L650" href="#L650">650</a> .assertContent(<span class="jxr_string">"f: {a:'x1',b:'x2',ha:'ha1',hb:'hb1',c:'x3',d:'x4','/**':'','/*':''}"</span>);
-<a class="jxr_linenumber" name="L651" href="#L651">651</a> h.get(<span class="jxr_string">"http://localhost/h/ha1/hb1/f/x1/x2/ff/x3/x4/foo/bar"</span>)
-<a class="jxr_linenumber" name="L652" href="#L652">652</a> .run()
-<a class="jxr_linenumber" name="L653" href="#L653">653</a> .assertContent(<span class="jxr_string">"f: {a:'x1',b:'x2',ha:'ha1',hb:'hb1',c:'x3',d:'x4','/**':'foo/bar','/*':'foo/bar'}"</span>);
-<a class="jxr_linenumber" name="L654" href="#L654">654</a> }
-<a class="jxr_linenumber" name="L655" href="#L655">655</a>
-<a class="jxr_linenumber" name="L656" href="#L656">656</a> <em class="jxr_comment">//------------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="L657" href="#L657">657</a> <em class="jxr_comment">// Path variables on parents and child class.</em>
-<a class="jxr_linenumber" name="L658" href="#L658">658</a> <em class="jxr_comment">//------------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="L650" href="#L650">650</a> .assertContent(<span class="jxr_string">"f: {a:'x1',b:'x2',ha:'ha1',hb:'hb1',c:'x3',d:'x4','/**':'foo/bar','/*':'foo/bar'}"</span>);
+<a class="jxr_linenumber" name="L651" href="#L651">651</a> }
+<a class="jxr_linenumber" name="L652" href="#L652">652</a>
+<a class="jxr_linenumber" name="L653" href="#L653">653</a> <em class="jxr_comment">//------------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="L654" href="#L654">654</a> <em class="jxr_comment">// Path variables on parents and child class.</em>
+<a class="jxr_linenumber" name="L655" href="#L655">655</a> <em class="jxr_comment">//------------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="L656" href="#L656">656</a>
+<a class="jxr_linenumber" name="L657" href="#L657">657</a> @Rest(path=<span class="jxr_string">"/i/{ia}/{ib}"</span>, children={H.<strong class="jxr_keyword">class</strong>})
+<a class="jxr_linenumber" name="L658" href="#L658">658</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> I {}
<a class="jxr_linenumber" name="L659" href="#L659">659</a>
-<a class="jxr_linenumber" name="L660" href="#L660">660</a> @Rest(path=<span class="jxr_string">"/i/{ia}/{ib}"</span>, children={H.<strong class="jxr_keyword">class</strong>})
-<a class="jxr_linenumber" name="L661" href="#L661">661</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> I {}
-<a class="jxr_linenumber" name="L662" href="#L662">662</a>
-<a class="jxr_linenumber" name="L663" href="#L663">663</a> @Test <strong class="jxr_keyword">void</strong> i01_pathVariablesOnParentAndChildClass() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="L664" href="#L664">664</a> <strong class="jxr_keyword">var</strong> i = MockRestClient.createLax(I.<strong class="jxr_keyword">class</strong>).servletPath(<span class="jxr_string">"/i"</span>).build();
-<a class="jxr_linenumber" name="L665" href="#L665">665</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h/ha1/hb1/f/x1/x2"</span>)
+<a class="jxr_linenumber" name="L660" href="#L660">660</a> @Test <strong class="jxr_keyword">void</strong> i01_pathVariablesOnParentAndChildClass() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="L661" href="#L661">661</a> <strong class="jxr_keyword">var</strong> i = MockRestClient.createLax(I.<strong class="jxr_keyword">class</strong>).servletPath(<span class="jxr_string">"/i"</span>).build();
+<a class="jxr_linenumber" name="L662" href="#L662">662</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h/ha1/hb1/f/x1/x2"</span>)
+<a class="jxr_linenumber" name="L663" href="#L663">663</a> .run()
+<a class="jxr_linenumber" name="L664" href="#L664">664</a> .assertContent(<span class="jxr_string">"a: {a:'x1',b:'x2',ha:'ha1',hb:'hb1',ia:'ia1',ib:'ib1'}"</span>);
+<a class="jxr_linenumber" name="L665" href="#L665">665</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h/ha1/hb1/f/x1"</span>)
<a class="jxr_linenumber" name="L666" href="#L666">666</a> .run()
-<a class="jxr_linenumber" name="L667" href="#L667">667</a> .assertContent(<span class="jxr_string">"a: {a:'x1',b:'x2',ha:'ha1',hb:'hb1',ia:'ia1',ib:'ib1'}"</span>);
-<a class="jxr_linenumber" name="L668" href="#L668">668</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h/ha1/hb1/f/x1"</span>)
+<a class="jxr_linenumber" name="L667" href="#L667">667</a> .assertStatus(404);
+<a class="jxr_linenumber" name="L668" href="#L668">668</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h/ha1/hb1/f"</span>)
<a class="jxr_linenumber" name="L669" href="#L669">669</a> .run()
<a class="jxr_linenumber" name="L670" href="#L670">670</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L671" href="#L671">671</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h/ha1/hb1/f"</span>)
+<a class="jxr_linenumber" name="L671" href="#L671">671</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h/ha1/hb1"</span>)
<a class="jxr_linenumber" name="L672" href="#L672">672</a> .run()
<a class="jxr_linenumber" name="L673" href="#L673">673</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L674" href="#L674">674</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h/ha1/hb1"</span>)
+<a class="jxr_linenumber" name="L674" href="#L674">674</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h/ha1"</span>)
<a class="jxr_linenumber" name="L675" href="#L675">675</a> .run()
<a class="jxr_linenumber" name="L676" href="#L676">676</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L677" href="#L677">677</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h/ha1"</span>)
+<a class="jxr_linenumber" name="L677" href="#L677">677</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h"</span>)
<a class="jxr_linenumber" name="L678" href="#L678">678</a> .run()
<a class="jxr_linenumber" name="L679" href="#L679">679</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L680" href="#L680">680</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h"</span>)
+<a class="jxr_linenumber" name="L680" href="#L680">680</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1"</span>)
<a class="jxr_linenumber" name="L681" href="#L681">681</a> .run()
<a class="jxr_linenumber" name="L682" href="#L682">682</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L683" href="#L683">683</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1"</span>)
+<a class="jxr_linenumber" name="L683" href="#L683">683</a> i.get(<span class="jxr_string">"http://localhost/i/ia1"</span>)
<a class="jxr_linenumber" name="L684" href="#L684">684</a> .run()
<a class="jxr_linenumber" name="L685" href="#L685">685</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L686" href="#L686">686</a> i.get(<span class="jxr_string">"http://localhost/i/ia1"</span>)
+<a class="jxr_linenumber" name="L686" href="#L686">686</a> i.get(<span class="jxr_string">"http://localhost/i"</span>)
<a class="jxr_linenumber" name="L687" href="#L687">687</a> .run()
<a class="jxr_linenumber" name="L688" href="#L688">688</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L689" href="#L689">689</a> i.get(<span class="jxr_string">"http://localhost/i"</span>)
+<a class="jxr_linenumber" name="L689" href="#L689">689</a> i.get(<span class="jxr_string">"http://localhost/i//ib1/h/ha1/hb1/f/x1/x2"</span>)
<a class="jxr_linenumber" name="L690" href="#L690">690</a> .run()
<a class="jxr_linenumber" name="L691" href="#L691">691</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L692" href="#L692">692</a> i.get(<span class="jxr_string">"http://localhost/i//ib1/h/ha1/hb1/f/x1/x2"</span>)
+<a class="jxr_linenumber" name="L692" href="#L692">692</a> i.get(<span class="jxr_string">"http://localhost/i/ia1//h/ha1/hb1/f/x1/x2"</span>)
<a class="jxr_linenumber" name="L693" href="#L693">693</a> .run()
<a class="jxr_linenumber" name="L694" href="#L694">694</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L695" href="#L695">695</a> i.get(<span class="jxr_string">"http://localhost/i/ia1//h/ha1/hb1/f/x1/x2"</span>)
+<a class="jxr_linenumber" name="L695" href="#L695">695</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h//hb1/f/x1/x2"</span>)
<a class="jxr_linenumber" name="L696" href="#L696">696</a> .run()
<a class="jxr_linenumber" name="L697" href="#L697">697</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L698" href="#L698">698</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h//hb1/f/x1/x2"</span>)
+<a class="jxr_linenumber" name="L698" href="#L698">698</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h/ha1//f/x1/x2"</span>)
<a class="jxr_linenumber" name="L699" href="#L699">699</a> .run()
<a class="jxr_linenumber" name="L700" href="#L700">700</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L701" href="#L701">701</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h/ha1//f/x1/x2"</span>)
+<a class="jxr_linenumber" name="L701" href="#L701">701</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h/ha1/hb1/f//x2"</span>)
<a class="jxr_linenumber" name="L702" href="#L702">702</a> .run()
<a class="jxr_linenumber" name="L703" href="#L703">703</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L704" href="#L704">704</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h/ha1/hb1/f//x2"</span>)
+<a class="jxr_linenumber" name="L704" href="#L704">704</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h/ha1/hb1/f/x1/"</span>)
<a class="jxr_linenumber" name="L705" href="#L705">705</a> .run()
<a class="jxr_linenumber" name="L706" href="#L706">706</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L707" href="#L707">707</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h/ha1/hb1/f/x1/"</span>)
+<a class="jxr_linenumber" name="L707" href="#L707">707</a> i.get(<span class="jxr_string">"http://localhost/i///h///f//"</span>)
<a class="jxr_linenumber" name="L708" href="#L708">708</a> .run()
<a class="jxr_linenumber" name="L709" href="#L709">709</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L710" href="#L710">710</a> i.get(<span class="jxr_string">"http://localhost/i///h///f//"</span>)
+<a class="jxr_linenumber" name="L710" href="#L710">710</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h/ha1/hb1/f/x1/x2/foo"</span>)
<a class="jxr_linenumber" name="L711" href="#L711">711</a> .run()
-<a class="jxr_linenumber" name="L712" href="#L712">712</a> .assertStatus(404);
-<a class="jxr_linenumber" name="L713" href="#L713">713</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h/ha1/hb1/f/x1/x2/foo"</span>)
+<a class="jxr_linenumber" name="L712" href="#L712">712</a> .assertContent(<span class="jxr_string">"b: {a:'x1',b:'x2',ha:'ha1',hb:'hb1',ia:'ia1',ib:'ib1','/**':'foo','/*':'foo'}"</span>);
+<a class="jxr_linenumber" name="L713" href="#L713">713</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h/ha1/hb1/f/x1/x2/fc"</span>)
<a class="jxr_linenumber" name="L714" href="#L714">714</a> .run()
-<a class="jxr_linenumber" name="L715" href="#L715">715</a> .assertContent(<span class="jxr_string">"b: {a:'x1',b:'x2',ha:'ha1',hb:'hb1',ia:'ia1',ib:'ib1','/**':'foo','/*':'foo'}"</span>);
-<a class="jxr_linenumber" name="L716" href="#L716">716</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h/ha1/hb1/f/x1/x2/fc"</span>)
+<a class="jxr_linenumber" name="L715" href="#L715">715</a> .assertContent(<span class="jxr_string">"c: {a:'x1',b:'x2',ha:'ha1',hb:'hb1',ia:'ia1',ib:'ib1'}"</span>);
+<a class="jxr_linenumber" name="L716" href="#L716">716</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h/ha1/hb1/f/x1/x2/fd/x3/x4"</span>)
<a class="jxr_linenumber" name="L717" href="#L717">717</a> .run()
-<a class="jxr_linenumber" name="L718" href="#L718">718</a> .assertContent(<span class="jxr_string">"c: {a:'x1',b:'x2',ha:'ha1',hb:'hb1',ia:'ia1',ib:'ib1'}"</span>);
-<a class="jxr_linenumber" name="L719" href="#L719">719</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h/ha1/hb1/f/x1/x2/fd/x3/x4"</span>)
+<a class="jxr_linenumber" name="L718" href="#L718">718</a> .assertContent(<span class="jxr_string">"d: {a:'x1',b:'x2',ha:'ha1',hb:'hb1',ia:'ia1',ib:'ib1',c:'x3',d:'x4'}"</span>);
+<a class="jxr_linenumber" name="L719" href="#L719">719</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h/ha1/hb1/f/x1/x2/fe/x3/x4"</span>)
<a class="jxr_linenumber" name="L720" href="#L720">720</a> .run()
-<a class="jxr_linenumber" name="L721" href="#L721">721</a> .assertContent(<span class="jxr_string">"d: {a:'x1',b:'x2',ha:'ha1',hb:'hb1',ia:'ia1',ib:'ib1',c:'x3',d:'x4'}"</span>);
-<a class="jxr_linenumber" name="L722" href="#L722">722</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h/ha1/hb1/f/x1/x2/fe/x3/x4"</span>)
+<a class="jxr_linenumber" name="L721" href="#L721">721</a> .assertContent(<span class="jxr_string">"e: {a:'x1, x3',b:'x2, x4',ha:'ha1',hb:'hb1',ia:'ia1',ib:'ib1'}"</span>);
+<a class="jxr_linenumber" name="L722" href="#L722">722</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h/ha1/hb1/f/x1/x2/ff/x3/x4"</span>)
<a class="jxr_linenumber" name="L723" href="#L723">723</a> .run()
-<a class="jxr_linenumber" name="L724" href="#L724">724</a> .assertContent(<span class="jxr_string">"e: {a:'x1, x3',b:'x2, x4',ha:'ha1',hb:'hb1',ia:'ia1',ib:'ib1'}"</span>);
-<a class="jxr_linenumber" name="L725" href="#L725">725</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h/ha1/hb1/f/x1/x2/ff/x3/x4"</span>)
+<a class="jxr_linenumber" name="L724" href="#L724">724</a> .assertContent(<span class="jxr_string">"f: {a:'x1',b:'x2',ha:'ha1',hb:'hb1',ia:'ia1',ib:'ib1',c:'x3',d:'x4'}"</span>);
+<a class="jxr_linenumber" name="L725" href="#L725">725</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h/ha1/hb1/f/x1/x2/ff/x3/x4/"</span>)
<a class="jxr_linenumber" name="L726" href="#L726">726</a> .run()
-<a class="jxr_linenumber" name="L727" href="#L727">727</a> .assertContent(<span class="jxr_string">"f: {a:'x1',b:'x2',ha:'ha1',hb:'hb1',ia:'ia1',ib:'ib1',c:'x3',d:'x4'}"</span>);
-<a class="jxr_linenumber" name="L728" href="#L728">728</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h/ha1/hb1/f/x1/x2/ff/x3/x4/"</span>)
+<a class="jxr_linenumber" name="L727" href="#L727">727</a> .assertContent(<span class="jxr_string">"f: {a:'x1',b:'x2',ha:'ha1',hb:'hb1',ia:'ia1',ib:'ib1',c:'x3',d:'x4','/**':'','/*':''}"</span>);
+<a class="jxr_linenumber" name="L728" href="#L728">728</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h/ha1/hb1/f/x1/x2/ff/x3/x4/foo/bar"</span>)
<a class="jxr_linenumber" name="L729" href="#L729">729</a> .run()
-<a class="jxr_linenumber" name="L730" href="#L730">730</a> .assertContent(<span class="jxr_string">"f: {a:'x1',b:'x2',ha:'ha1',hb:'hb1',ia:'ia1',ib:'ib1',c:'x3',d:'x4','/**':'','/*':''}"</span>);
-<a class="jxr_linenumber" name="L731" href="#L731">731</a> i.get(<span class="jxr_string">"http://localhost/i/ia1/ib1/h/ha1/hb1/f/x1/x2/ff/x3/x4/foo/bar"</span>)
-<a class="jxr_linenumber" name="L732" href="#L732">732</a> .run()
-<a class="jxr_linenumber" name="L733" href="#L733">733</a> .assertContent(<span class="jxr_string">"f: {a:'x1',b:'x2',ha:'ha1',hb:'hb1',ia:'ia1',ib:'ib1',c:'x3',d:'x4','/**':'foo/bar','/*':'foo/bar'}"</span>);
-<a class="jxr_linenumber" name="L734" href="#L734">734</a> }
-<a class="jxr_linenumber" name="L735" href="#L735">735</a>
-<a class="jxr_linenumber" name="L736" href="#L736">736</a> <em class="jxr_comment">//------------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="L737" href="#L737">737</a> <em class="jxr_comment">// Optional path parameter.</em>
-<a class="jxr_linenumber" name="L738" href="#L738">738</a> <em class="jxr_comment">//------------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="L739" href="#L739">739</a>
-<a class="jxr_linenumber" name="L740" href="#L740">740</a> @Rest(serializers=Json5Serializer.<strong class="jxr_keyword">class</strong>)
-<a class="jxr_linenumber" name="L741" href="#L741">741</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> J {
-<a class="jxr_linenumber" name="L742" href="#L742">742</a> @RestGet(path=<span class="jxr_string">"/a/{f1}"</span>)
-<a class="jxr_linenumber" name="L743" href="#L743">743</a> <strong class="jxr_keyword">public</strong> Object a(@Path(<span class="jxr_string">"f1"</span>) Optional<Integer> f1) {
-<a class="jxr_linenumber" name="L744" href="#L744">744</a> assertNotNull(f1);
-<a class="jxr_linenumber" name="L745" href="#L745">745</a> <strong class="jxr_keyword">return</strong> f1;
-<a class="jxr_linenumber" name="L746" href="#L746">746</a> }
-<a class="jxr_linenumber" name="L747" href="#L747">747</a> @RestGet(path=<span class="jxr_string">"/b/{f1}"</span>)
-<a class="jxr_linenumber" name="L748" href="#L748">748</a> <strong class="jxr_keyword">public</strong> Object b(@Path(<span class="jxr_string">"f1"</span>) Optional<ABean> f1) {
-<a class="jxr_linenumber" name="L749" href="#L749">749</a> assertNotNull(f1);
-<a class="jxr_linenumber" name="L750" href="#L750">750</a> <strong class="jxr_keyword">return</strong> f1;
-<a class="jxr_linenumber" name="L751" href="#L751">751</a> }
-<a class="jxr_linenumber" name="L752" href="#L752">752</a> @RestGet(path=<span class="jxr_string">"/c/{f1}"</span>)
-<a class="jxr_linenumber" name="L753" href="#L753">753</a> <strong class="jxr_keyword">public</strong> Object c(@Path(<span class="jxr_string">"f1"</span>) Optional<List<ABean>> f1) {
-<a class="jxr_linenumber" name="L754" href="#L754">754</a> assertNotNull(f1);
-<a class="jxr_linenumber" name="L755" href="#L755">755</a> <strong class="jxr_keyword">return</strong> f1;
-<a class="jxr_linenumber" name="L756" href="#L756">756</a> }
-<a class="jxr_linenumber" name="L757" href="#L757">757</a> @RestGet(path=<span class="jxr_string">"/d/{f1}"</span>)
-<a class="jxr_linenumber" name="L758" href="#L758">758</a> <strong class="jxr_keyword">public</strong> Object d(@Path(<span class="jxr_string">"f1"</span>) List<Optional<ABean>> f1) {
-<a class="jxr_linenumber" name="L759" href="#L759">759</a> <strong class="jxr_keyword">return</strong> f1;
-<a class="jxr_linenumber" name="L760" href="#L760">760</a> }
-<a class="jxr_linenumber" name="L761" href="#L761">761</a> }
-<a class="jxr_linenumber" name="L762" href="#L762">762</a>
-<a class="jxr_linenumber" name="L763" href="#L763">763</a> @Test <strong class="jxr_keyword">void</strong> j01_optionalParam() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="L764" href="#L764">764</a> <strong class="jxr_keyword">var</strong> j = MockRestClient.buildJson(J.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="L765" href="#L765">765</a> j.get(<span class="jxr_string">"/a/123"</span>)
-<a class="jxr_linenumber" name="L766" href="#L766">766</a> .run()
-<a class="jxr_linenumber" name="L767" href="#L767">767</a> .assertStatus(200)
-<a class="jxr_linenumber" name="L768" href="#L768">768</a> .assertContent(<span class="jxr_string">"123"</span>);
-<a class="jxr_linenumber" name="L769" href="#L769">769</a> j.get(<span class="jxr_string">"/b/a=1,b=foo"</span>)
-<a class="jxr_linenumber" name="L770" href="#L770">770</a> .run()
-<a class="jxr_linenumber" name="L771" href="#L771">771</a> .assertStatus(200)
-<a class="jxr_linenumber" name="L772" href="#L772">772</a> .assertContent(<span class="jxr_string">"{a:1,b:'foo'}"</span>);
-<a class="jxr_linenumber" name="L773" href="#L773">773</a> j.get(<span class="jxr_string">"/c/@((a=1,b=foo))"</span>)
-<a class="jxr_linenumber" name="L774" href="#L774">774</a> .run()
-<a class="jxr_linenumber" name="L775" href="#L775">775</a> .assertStatus(200)
-<a class="jxr_linenumber" name="L776" href="#L776">776</a> .assertContent(<span class="jxr_string">"[{a:1,b:'foo'}]"</span>);
-<a class="jxr_linenumber" name="L777" href="#L777">777</a> j.get(<span class="jxr_string">"/d/@((a=1,b=foo))"</span>)
-<a class="jxr_linenumber" name="L778" href="#L778">778</a> .run()
-<a class="jxr_linenumber" name="L779" href="#L779">779</a> .assertStatus(200)
-<a class="jxr_linenumber" name="L780" href="#L780">780</a> .assertContent(<span class="jxr_string">"[{a:1,b:'foo'}]"</span>);
-<a class="jxr_linenumber" name="L781" href="#L781">781</a> }
-<a class="jxr_linenumber" name="L782" href="#L782">782</a>
-<a class="jxr_linenumber" name="L783" href="#L783">783</a> <em class="jxr_comment">//------------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="L784" href="#L784">784</a> <em class="jxr_comment">// Basic tests</em>
-<a class="jxr_linenumber" name="L785" href="#L785">785</a> <em class="jxr_comment">//------------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="L730" href="#L730">730</a> .assertContent(<span class="jxr_string">"f: {a:'x1',b:'x2',ha:'ha1',hb:'hb1',ia:'ia1',ib:'ib1',c:'x3',d:'x4','/**':'foo/bar','/*':'foo/bar'}"</span>);
+<a class="jxr_linenumber" name="L731" href="#L731">731</a> }
+<a class="jxr_linenumber" name="L732" href="#L732">732</a>
+<a class="jxr_linenumber" name="L733" href="#L733">733</a> <em class="jxr_comment">//------------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="L734" href="#L734">734</a> <em class="jxr_comment">// Optional path parameter.</em>
+<a class="jxr_linenumber" name="L735" href="#L735">735</a> <em class="jxr_comment">//------------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="L736" href="#L736">736</a>
+<a class="jxr_linenumber" name="L737" href="#L737">737</a> @Rest(serializers=Json5Serializer.<strong class="jxr_keyword">class</strong>)
+<a class="jxr_linenumber" name="L738" href="#L738">738</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> J {
+<a class="jxr_linenumber" name="L739" href="#L739">739</a> @RestGet(path=<span class="jxr_string">"/a/{f1}"</span>)
+<a class="jxr_linenumber" name="L740" href="#L740">740</a> <strong class="jxr_keyword">public</strong> Object a(@Path(<span class="jxr_string">"f1"</span>) Optional<Integer> f1) {
+<a class="jxr_linenumber" name="L741" href="#L741">741</a> assertNotNull(f1);
+<a class="jxr_linenumber" name="L742" href="#L742">742</a> <strong class="jxr_keyword">return</strong> f1;
+<a class="jxr_linenumber" name="L743" href="#L743">743</a> }
+<a class="jxr_linenumber" name="L744" href="#L744">744</a> @RestGet(path=<span class="jxr_string">"/b/{f1}"</span>)
+<a class="jxr_linenumber" name="L745" href="#L745">745</a> <strong class="jxr_keyword">public</strong> Object b(@Path(<span class="jxr_string">"f1"</span>) Optional<ABean> f1) {
+<a class="jxr_linenumber" name="L746" href="#L746">746</a> assertNotNull(f1);
+<a class="jxr_linenumber" name="L747" href="#L747">747</a> <strong class="jxr_keyword">return</strong> f1;
+<a class="jxr_linenumber" name="L748" href="#L748">748</a> }
+<a class="jxr_linenumber" name="L749" href="#L749">749</a> @RestGet(path=<span class="jxr_string">"/c/{f1}"</span>)
+<a class="jxr_linenumber" name="L750" href="#L750">750</a> <strong class="jxr_keyword">public</strong> Object c(@Path(<span class="jxr_string">"f1"</span>) Optional<List<ABean>> f1) {
+<a class="jxr_linenumber" name="L751" href="#L751">751</a> assertNotNull(f1);
+<a class="jxr_linenumber" name="L752" href="#L752">752</a> <strong class="jxr_keyword">return</strong> f1;
+<a class="jxr_linenumber" name="L753" href="#L753">753</a> }
+<a class="jxr_linenumber" name="L754" href="#L754">754</a> @RestGet(path=<span class="jxr_string">"/d/{f1}"</span>)
+<a class="jxr_linenumber" name="L755" href="#L755">755</a> <strong class="jxr_keyword">public</strong> Object d(@Path(<span class="jxr_string">"f1"</span>) List<Optional<ABean>> f1) {
+<a class="jxr_linenumber" name="L756" href="#L756">756</a> <strong class="jxr_keyword">return</strong> f1;
+<a class="jxr_linenumber" name="L757" href="#L757">757</a> }
+<a class="jxr_linenumber" name="L758" href="#L758">758</a> }
+<a class="jxr_linenumber" name="L759" href="#L759">759</a>
+<a class="jxr_linenumber" name="L760" href="#L760">760</a> @Test <strong class="jxr_keyword">void</strong> j01_optionalParam() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="L761" href="#L761">761</a> <strong class="jxr_keyword">var</strong> j = MockRestClient.buildJson(J.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="L762" href="#L762">762</a> j.get(<span class="jxr_string">"/a/123"</span>)
+<a class="jxr_linenumber" name="L763" href="#L763">763</a> .run()
+<a class="jxr_linenumber" name="L764" href="#L764">764</a> .assertStatus(200)
+<a class="jxr_linenumber" name="L765" href="#L765">765</a> .assertContent(<span class="jxr_string">"123"</span>);
+<a class="jxr_linenumber" name="L766" href="#L766">766</a> j.get(<span class="jxr_string">"/b/a=1,b=foo"</span>)
+<a class="jxr_linenumber" name="L767" href="#L767">767</a> .run()
+<a class="jxr_linenumber" name="L768" href="#L768">768</a> .assertStatus(200)
+<a class="jxr_linenumber" name="L769" href="#L769">769</a> .assertContent(<span class="jxr_string">"{a:1,b:'foo'}"</span>);
+<a class="jxr_linenumber" name="L770" href="#L770">770</a> j.get(<span class="jxr_string">"/c/@((a=1,b=foo))"</span>)
+<a class="jxr_linenumber" name="L771" href="#L771">771</a> .run()
+<a class="jxr_linenumber" name="L772" href="#L772">772</a> .assertStatus(200)
+<a class="jxr_linenumber" name="L773" href="#L773">773</a> .assertContent(<span class="jxr_string">"[{a:1,b:'foo'}]"</span>);
+<a class="jxr_linenumber" name="L774" href="#L774">774</a> j.get(<span class="jxr_string">"/d/@((a=1,b=foo))"</span>)
+<a class="jxr_linenumber" name="L775" href="#L775">775</a> .run()
+<a class="jxr_linenumber" name="L776" href="#L776">776</a> .assertStatus(200)
+<a class="jxr_linenumber" name="L777" href="#L777">777</a> .assertContent(<span class="jxr_string">"[{a:1,b:'foo'}]"</span>);
+<a class="jxr_linenumber" name="L778" href="#L778">778</a> }
+<a class="jxr_linenumber" name="L779" href="#L779">779</a>
+<a class="jxr_linenumber" name="L780" href="#L780">780</a> <em class="jxr_comment">//------------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="L781" href="#L781">781</a> <em class="jxr_comment">// Basic tests</em>
+<a class="jxr_linenumber" name="L782" href="#L782">782</a> <em class="jxr_comment">//------------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="L783" href="#L783">783</a>
+<a class="jxr_linenumber" name="L784" href="#L784">784</a> @Rest(path=<span class="jxr_string">"/k1/{k1}"</span>,children=K2.<strong class="jxr_keyword">class</strong>)
+<a class="jxr_linenumber" name="L785" href="#L785">785</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> K1 {}
<a class="jxr_linenumber" name="L786" href="#L786">786</a>
-<a class="jxr_linenumber" name="L787" href="#L787">787</a> @Rest(path=<span class="jxr_string">"/k1/{k1}"</span>,children=K2.<strong class="jxr_keyword">class</strong>)
-<a class="jxr_linenumber" name="L788" href="#L788">788</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> K1 {}
-<a class="jxr_linenumber" name="L789" href="#L789">789</a>
-<a class="jxr_linenumber" name="L790" href="#L790">790</a> @Rest(path=<span class="jxr_string">"/k2"</span>)
-<a class="jxr_linenumber" name="L791" href="#L791">791</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> K2 {
-<a class="jxr_linenumber" name="L792" href="#L792">792</a> @RestGet(path=<span class="jxr_string">"/"</span>)
-<a class="jxr_linenumber" name="L793" href="#L793">793</a> <strong class="jxr_keyword">public</strong> String a(@Path(<span class="jxr_string">"k1"</span>) @Schema(r=false) String k1) {
-<a class="jxr_linenumber" name="L794" href="#L794">794</a> <strong class="jxr_keyword">return</strong> k1 == <strong class="jxr_keyword">null</strong> ? <span class="jxr_string">"nil"</span> : k1;
-<a class="jxr_linenumber" name="L795" href="#L795">795</a> }
-<a class="jxr_linenumber" name="L796" href="#L796">796</a> @RestGet(path=<span class="jxr_string">"/foo/{bar}"</span>)
-<a class="jxr_linenumber" name="L797" href="#L797">797</a> <strong class="jxr_keyword">public</strong> String b(@Path(<span class="jxr_string">"k1"</span>) @Schema(r=false) String k1, @Path(<span class="jxr_string">"bar"</span>) @Schema(r=false) String bar) {
-<a class="jxr_linenumber" name="L798" href="#L798">798</a> <strong class="jxr_keyword">return</strong> (k1 == <strong class="jxr_keyword">null</strong> ? <span class="jxr_string">"nil"</span> : k1) + <span class="jxr_string">","</span> + (bar == <strong class="jxr_keyword">null</strong> ? <span class="jxr_string">"nil"</span> : bar);
-<a class="jxr_linenumber" name="L799" href="#L799">799</a> }
-<a class="jxr_linenumber" name="L800" href="#L800">800</a> }
-<a class="jxr_linenumber" name="L801" href="#L801">801</a>
-<a class="jxr_linenumber" name="L802" href="#L802">802</a> @Test <strong class="jxr_keyword">void</strong> k01_basic() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="L803" href="#L803">803</a> <strong class="jxr_keyword">var</strong> k1 = MockRestClient.build(K1.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="L804" href="#L804">804</a> <strong class="jxr_keyword">var</strong> k2 = MockRestClient.build(K2.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="L805" href="#L805">805</a>
-<a class="jxr_linenumber" name="L806" href="#L806">806</a> k1.get(<span class="jxr_string">"http://localhost/k1/foo/k2"</span>)
-<a class="jxr_linenumber" name="L807" href="#L807">807</a> .run()
-<a class="jxr_linenumber" name="L808" href="#L808">808</a> .assertStatus(200)
-<a class="jxr_linenumber" name="L809" href="#L809">809</a> .assertContent(<span class="jxr_string">"foo"</span>);
-<a class="jxr_linenumber" name="L810" href="#L810">810</a> k1.get(<span class="jxr_string">"http://localhost/k1/foo/k2/foo/xxx"</span>)
-<a class="jxr_linenumber" name="L811" href="#L811">811</a> .run()
-<a class="jxr_linenumber" name="L812" href="#L812">812</a> .assertStatus(200)
-<a class="jxr_linenumber" name="L813" href="#L813">813</a> .assertContent(<span class="jxr_string">"foo,xxx"</span>);
-<a class="jxr_linenumber" name="L814" href="#L814">814</a> k2.get(<span class="jxr_string">"/"</span>)
-<a class="jxr_linenumber" name="L815" href="#L815">815</a> .run()
-<a class="jxr_linenumber" name="L816" href="#L816">816</a> .assertStatus(200)
-<a class="jxr_linenumber" name="L817" href="#L817">817</a> .assertContent(<span class="jxr_string">"nil"</span>);
-<a class="jxr_linenumber" name="L818" href="#L818">818</a> k2.get(<span class="jxr_string">"/foo/xxx"</span>)
-<a class="jxr_linenumber" name="L819" href="#L819">819</a> .run()
-<a class="jxr_linenumber" name="L820" href="#L820">820</a> .assertStatus(200)
-<a class="jxr_linenumber" name="L821" href="#L821">821</a> .assertContent(<span class="jxr_string">"nil,xxx"</span>);
-<a class="jxr_linenumber" name="L822" href="#L822">822</a> }
-<a class="jxr_linenumber" name="L823" href="#L823">823</a>
-<a class="jxr_linenumber" name="L824" href="#L824">824</a> <em class="jxr_comment">//------------------------------------------------------------------------------------------------------------------</em>
-<a class="jxr_linenumber" name="L825" href="#L825">825</a> <em class="jxr_comment">// Multiple paths</em>
-<a class="jxr_linenumber" name="L826" href="#L826">826</a> <em class="jxr_comment">//------------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="L787" href="#L787">787</a> @Rest(path=<span class="jxr_string">"/k2"</span>)
+<a class="jxr_linenumber" name="L788" href="#L788">788</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> K2 {
+<a class="jxr_linenumber" name="L789" href="#L789">789</a> @RestGet(path=<span class="jxr_string">"/"</span>)
+<a class="jxr_linenumber" name="L790" href="#L790">790</a> <strong class="jxr_keyword">public</strong> String a(@Path(<span class="jxr_string">"k1"</span>) @Schema(r=false) String k1) {
+<a class="jxr_linenumber" name="L791" href="#L791">791</a> <strong class="jxr_keyword">return</strong> k1 == <strong class="jxr_keyword">null</strong> ? <span class="jxr_string">"nil"</span> : k1;
+<a class="jxr_linenumber" name="L792" href="#L792">792</a> }
+<a class="jxr_linenumber" name="L793" href="#L793">793</a> @RestGet(path=<span class="jxr_string">"/foo/{bar}"</span>)
+<a class="jxr_linenumber" name="L794" href="#L794">794</a> <strong class="jxr_keyword">public</strong> String b(@Path(<span class="jxr_string">"k1"</span>) @Schema(r=false) String k1, @Path(<span class="jxr_string">"bar"</span>) @Schema(r=false) String bar) {
+<a class="jxr_linenumber" name="L795" href="#L795">795</a> <strong class="jxr_keyword">return</strong> (k1 == <strong class="jxr_keyword">null</strong> ? <span class="jxr_string">"nil"</span> : k1) + <span class="jxr_string">","</span> + (bar == <strong class="jxr_keyword">null</strong> ? <span class="jxr_string">"nil"</span> : bar);
+<a class="jxr_linenumber" name="L796" href="#L796">796</a> }
+<a class="jxr_linenumber" name="L797" href="#L797">797</a> }
+<a class="jxr_linenumber" name="L798" href="#L798">798</a>
+<a class="jxr_linenumber" name="L799" href="#L799">799</a> @Test <strong class="jxr_keyword">void</strong> k01_basic() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="L800" href="#L800">800</a> <strong class="jxr_keyword">var</strong> k1 = MockRestClient.build(K1.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="L801" href="#L801">801</a> <strong class="jxr_keyword">var</strong> k2 = MockRestClient.build(K2.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="L802" href="#L802">802</a>
+<a class="jxr_linenumber" name="L803" href="#L803">803</a> k1.get(<span class="jxr_string">"http://localhost/k1/foo/k2"</span>)
+<a class="jxr_linenumber" name="L804" href="#L804">804</a> .run()
+<a class="jxr_linenumber" name="L805" href="#L805">805</a> .assertStatus(200)
+<a class="jxr_linenumber" name="L806" href="#L806">806</a> .assertContent(<span class="jxr_string">"foo"</span>);
+<a class="jxr_linenumber" name="L807" href="#L807">807</a> k1.get(<span class="jxr_string">"http://localhost/k1/foo/k2/foo/xxx"</span>)
+<a class="jxr_linenumber" name="L808" href="#L808">808</a> .run()
+<a class="jxr_linenumber" name="L809" href="#L809">809</a> .assertStatus(200)
+<a class="jxr_linenumber" name="L810" href="#L810">810</a> .assertContent(<span class="jxr_string">"foo,xxx"</span>);
+<a class="jxr_linenumber" name="L811" href="#L811">811</a> k2.get(<span class="jxr_string">"/"</span>)
+<a class="jxr_linenumber" name="L812" href="#L812">812</a> .run()
+<a class="jxr_linenumber" name="L813" href="#L813">813</a> .assertStatus(200)
+<a class="jxr_linenumber" name="L814" href="#L814">814</a> .assertContent(<span class="jxr_string">"nil"</span>);
+<a class="jxr_linenumber" name="L815" href="#L815">815</a> k2.get(<span class="jxr_string">"/foo/xxx"</span>)
+<a class="jxr_linenumber" name="L816" href="#L816">816</a> .run()
+<a class="jxr_linenumber" name="L817" href="#L817">817</a> .assertStatus(200)
+<a class="jxr_linenumber" name="L818" href="#L818">818</a> .assertContent(<span class="jxr_string">"nil,xxx"</span>);
+<a class="jxr_linenumber" name="L819" href="#L819">819</a> }
+<a class="jxr_linenumber" name="L820" href="#L820">820</a>
+<a class="jxr_linenumber" name="L821" href="#L821">821</a> <em class="jxr_comment">//------------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="L822" href="#L822">822</a> <em class="jxr_comment">// Multiple paths</em>
+<a class="jxr_linenumber" name="L823" href="#L823">823</a> <em class="jxr_comment">//------------------------------------------------------------------------------------------------------------------</em>
+<a class="jxr_linenumber" name="L824" href="#L824">824</a>
+<a class="jxr_linenumber" name="L825" href="#L825">825</a> @Rest(path=<span class="jxr_string">"/l1/{l1}"</span>,children=L2.<strong class="jxr_keyword">class</strong>)
+<a class="jxr_linenumber" name="L826" href="#L826">826</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> L1 {}
<a class="jxr_linenumber" name="L827" href="#L827">827</a>
-<a class="jxr_linenumber" name="L828" href="#L828">828</a> @Rest(path=<span class="jxr_string">"/l1/{l1}"</span>,children=L2.<strong class="jxr_keyword">class</strong>)
-<a class="jxr_linenumber" name="L829" href="#L829">829</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> L1 {}
-<a class="jxr_linenumber" name="L830" href="#L830">830</a>
-<a class="jxr_linenumber" name="L831" href="#L831">831</a> @Rest(path=<span class="jxr_string">"/l2"</span>)
-<a class="jxr_linenumber" name="L832" href="#L832">832</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> L2 {
-<a class="jxr_linenumber" name="L833" href="#L833">833</a> @RestGet(path={<span class="jxr_string">"/"</span>,<span class="jxr_string">"/{foo}"</span>})
-<a class="jxr_linenumber" name="L834" href="#L834">834</a> <strong class="jxr_keyword">public</strong> String a(@Path(<span class="jxr_string">"l1"</span>) @Schema(r=false) String l1, @Path(<span class="jxr_string">"foo"</span>) @Schema(r=false) String foo) {
-<a class="jxr_linenumber" name="L835" href="#L835">835</a> <strong class="jxr_keyword">return</strong> <span class="jxr_string">"1,"</span> + (l1 == <strong class="jxr_keyword">null</strong> ? <span class="jxr_string">"nil"</span> : l1) + <span class="jxr_string">","</span> + (foo == <strong class="jxr_keyword">null</strong> ? <span class="jxr_string">"nil"</span> : foo);
-<a class="jxr_linenumber" name="L836" href="#L836">836</a> }
-<a class="jxr_linenumber" name="L837" href="#L837">837</a> @RestGet(path={<span class="jxr_string">"/foo"</span>,<span class="jxr_string">"/foo/{foo}"</span>})
-<a class="jxr_linenumber" name="L838" href="#L838">838</a> <strong class="jxr_keyword">public</strong> String b(@Path(<span class="jxr_string">"l1"</span>) @Schema(r=false) String l1, @Path(<span class="jxr_string">"foo"</span>) @Schema(r=false) String foo) {
-<a class="jxr_linenumber" name="L839" href="#L839">839</a> <strong class="jxr_keyword">return</strong> <span class="jxr_string">"2,"</span> + (l1 == <strong class="jxr_keyword">null</strong> ? <span class="jxr_string">"nil"</span> : l1) + <span class="jxr_string">","</span> + (foo == <strong class="jxr_keyword">null</strong> ? <span class="jxr_string">"nil"</span> : foo);
-<a class="jxr_linenumber" name="L840" href="#L840">840</a> }
-<a class="jxr_linenumber" name="L841" href="#L841">841</a> }
-<a class="jxr_linenumber" name="L842" href="#L842">842</a>
-<a class="jxr_linenumber" name="L843" href="#L843">843</a> @Test <strong class="jxr_keyword">void</strong> l01_multiplePaths() <strong class="jxr_keyword">throws</strong> Exception {
-<a class="jxr_linenumber" name="L844" href="#L844">844</a> <strong class="jxr_keyword">var</strong> l1 = MockRestClient.build(L1.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="L845" href="#L845">845</a> <strong class="jxr_keyword">var</strong> l2 = MockRestClient.build(L2.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="L846" href="#L846">846</a>
-<a class="jxr_linenumber" name="L847" href="#L847">847</a> l1.get(<span class="jxr_string">"http://localhost/l1/l1foo/l2"</span>)
-<a class="jxr_linenumber" name="L848" href="#L848">848</a> .run()
-<a class="jxr_linenumber" name="L849" href="#L849">849</a> .assertStatus(200)
-<a class="jxr_linenumber" name="L850" href="#L850">850</a> .assertContent(<span class="jxr_string">"1,l1foo,nil"</span>);
-<a class="jxr_linenumber" name="L851" href="#L851">851</a> l1.get(<span class="jxr_string">"http://localhost/l1/l1foo/l2/l2foo"</span>)
-<a class="jxr_linenumber" name="L852" href="#L852">852</a> .run()
-<a class="jxr_linenumber" name="L853" href="#L853">853</a> .assertStatus(200)
-<a class="jxr_linenumber" name="L854" href="#L854">854</a> .assertContent(<span class="jxr_string">"1,l1foo,l2foo"</span>);
-<a class="jxr_linenumber" name="L855" href="#L855">855</a> l1.get(<span class="jxr_string">"http://localhost/l1/l1foo/l2/foo"</span>)
-<a class="jxr_linenumber" name="L856" href="#L856">856</a> .run()
-<a class="jxr_linenumber" name="L857" href="#L857">857</a> .assertStatus(200)
-<a class="jxr_linenumber" name="L858" href="#L858">858</a> .assertContent(<span class="jxr_string">"2,l1foo,nil"</span>);
-<a class="jxr_linenumber" name="L859" href="#L859">859</a> l1.get(<span class="jxr_string">"http://localhost/l1/l1foo/l2/foo/l2foo"</span>)
-<a class="jxr_linenumber" name="L860" href="#L860">860</a> .run()
-<a class="jxr_linenumber" name="L861" href="#L861">861</a> .assertStatus(200)
-<a class="jxr_linenumber" name="L862" href="#L862">862</a> .assertContent(<span class="jxr_string">"2,l1foo,l2foo"</span>);
-<a class="jxr_linenumber" name="L863" href="#L863">863</a> l2.get(<span class="jxr_string">"http://localhost/l2"</span>)
-<a class="jxr_linenumber" name="L864" href="#L864">864</a> .run()
-<a class="jxr_linenumber" name="L865" href="#L865">865</a> .assertStatus(200)
-<a class="jxr_linenumber" name="L866" href="#L866">866</a> .assertContent(<span class="jxr_string">"1,nil,nil"</span>);
-<a class="jxr_linenumber" name="L867" href="#L867">867</a> l2.get(<span class="jxr_string">"http://localhost/l2/l2foo"</span>)
-<a class="jxr_linenumber" name="L868" href="#L868">868</a> .run()
-<a class="jxr_linenumber" name="L869" href="#L869">869</a> .assertStatus(200)
-<a class="jxr_linenumber" name="L870" href="#L870">870</a> .assertContent(<span class="jxr_string">"1,nil,l2foo"</span>);
-<a class="jxr_linenumber" name="L871" href="#L871">871</a> l2.get(<span class="jxr_string">"http://localhost/l2/foo"</span>)
-<a class="jxr_linenumber" name="L872" href="#L872">872</a> .run()
-<a class="jxr_linenumber" name="L873" href="#L873">873</a> .assertStatus(200)
-<a class="jxr_linenumber" name="L874" href="#L874">874</a> .assertContent(<span class="jxr_string">"2,nil,nil"</span>);
-<a class="jxr_linenumber" name="L875" href="#L875">875</a> l2.get(<span class="jxr_string">"http://localhost/l2/foo/l2foo"</span>)
-<a class="jxr_linenumber" name="L876" href="#L876">876</a> .run()
-<a class="jxr_linenumber" name="L877" href="#L877">877</a> .assertStatus(200)
-<a class="jxr_linenumber" name="L878" href="#L878">878</a> .assertContent(<span class="jxr_string">"2,nil,l2foo"</span>);
-<a class="jxr_linenumber" name="L879" href="#L879">879</a> }
-<a class="jxr_linenumber" name="L880" href="#L880">880</a> }
+<a class="jxr_linenumber" name="L828" href="#L828">828</a> @Rest(path=<span class="jxr_string">"/l2"</span>)
+<a class="jxr_linenumber" name="L829" href="#L829">829</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> L2 {
+<a class="jxr_linenumber" name="L830" href="#L830">830</a> @RestGet(path={<span class="jxr_string">"/"</span>,<span class="jxr_string">"/{foo}"</span>})
+<a class="jxr_linenumber" name="L831" href="#L831">831</a> <strong class="jxr_keyword">public</strong> String a(@Path(<span class="jxr_string">"l1"</span>) @Schema(r=false) String l1, @Path(<span class="jxr_string">"foo"</span>) @Schema(r=false) String foo) {
+<a class="jxr_linenumber" name="L832" href="#L832">832</a> <strong class="jxr_keyword">return</strong> <span class="jxr_string">"1,"</span> + (l1 == <strong class="jxr_keyword">null</strong> ? <span class="jxr_string">"nil"</span> : l1) + <span class="jxr_string">","</span> + (foo == <strong class="jxr_keyword">null</strong> ? <span class="jxr_string">"nil"</span> : foo);
+<a class="jxr_linenumber" name="L833" href="#L833">833</a> }
+<a class="jxr_linenumber" name="L834" href="#L834">834</a> @RestGet(path={<span class="jxr_string">"/foo"</span>,<span class="jxr_string">"/foo/{foo}"</span>})
+<a class="jxr_linenumber" name="L835" href="#L835">835</a> <strong class="jxr_keyword">public</strong> String b(@Path(<span class="jxr_string">"l1"</span>) @Schema(r=false) String l1, @Path(<span class="jxr_string">"foo"</span>) @Schema(r=false) String foo) {
+<a class="jxr_linenumber" name="L836" href="#L836">836</a> <strong class="jxr_keyword">return</strong> <span class="jxr_string">"2,"</span> + (l1 == <strong class="jxr_keyword">null</strong> ? <span class="jxr_string">"nil"</span> : l1) + <span class="jxr_string">","</span> + (foo == <strong class="jxr_keyword">null</strong> ? <span class="jxr_string">"nil"</span> : foo);
+<a class="jxr_linenumber" name="L837" href="#L837">837</a> }
+<a class="jxr_linenumber" name="L838" href="#L838">838</a> }
+<a class="jxr_linenumber" name="L839" href="#L839">839</a>
+<a class="jxr_linenumber" name="L840" href="#L840">840</a> @Test <strong class="jxr_keyword">void</strong> l01_multiplePaths() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="L841" href="#L841">841</a> <strong class="jxr_keyword">var</strong> l1 = MockRestClient.build(L1.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="L842" href="#L842">842</a> <strong class="jxr_keyword">var</strong> l2 = MockRestClient.build(L2.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="L843" href="#L843">843</a>
+<a class="jxr_linenumber" name="L844" href="#L844">844</a> l1.get(<span class="jxr_string">"http://localhost/l1/l1foo/l2"</span>)
+<a class="jxr_linenumber" name="L845" href="#L845">845</a> .run()
+<a class="jxr_linenumber" name="L846" href="#L846">846</a> .assertStatus(200)
+<a class="jxr_linenumber" name="L847" href="#L847">847</a> .assertContent(<span class="jxr_string">"1,l1foo,nil"</span>);
+<a class="jxr_linenumber" name="L848" href="#L848">848</a> l1.get(<span class="jxr_string">"http://localhost/l1/l1foo/l2/l2foo"</span>)
+<a class="jxr_linenumber" name="L849" href="#L849">849</a> .run()
+<a class="jxr_linenumber" name="L850" href="#L850">850</a> .assertStatus(200)
+<a class="jxr_linenumber" name="L851" href="#L851">851</a> .assertContent(<span class="jxr_string">"1,l1foo,l2foo"</span>);
+<a class="jxr_linenumber" name="L852" href="#L852">852</a> l1.get(<span class="jxr_string">"http://localhost/l1/l1foo/l2/foo"</span>)
+<a class="jxr_linenumber" name="L853" href="#L853">853</a> .run()
+<a class="jxr_linenumber" name="L854" href="#L854">854</a> .assertStatus(200)
+<a class="jxr_linenumber" name="L855" href="#L855">855</a> .assertContent(<span class="jxr_string">"2,l1foo,nil"</span>);
+<a class="jxr_linenumber" name="L856" href="#L856">856</a> l1.get(<span class="jxr_string">"http://localhost/l1/l1foo/l2/foo/l2foo"</span>)
+<a class="jxr_linenumber" name="L857" href="#L857">857</a> .run()
+<a class="jxr_linenumber" name="L858" href="#L858">858</a> .assertStatus(200)
+<a class="jxr_linenumber" name="L859" href="#L859">859</a> .assertContent(<span class="jxr_string">"2,l1foo,l2foo"</span>);
+<a class="jxr_linenumber" name="L860" href="#L860">860</a> l2.get(<span class="jxr_string">"http://localhost/l2"</span>)
+<a class="jxr_linenumber" name="L861" href="#L861">861</a> .run()
+<a class="jxr_linenumber" name="L862" href="#L862">862</a> .assertStatus(200)
+<a class="jxr_linenumber" name="L863" href="#L863">863</a> .assertContent(<span class="jxr_string">"1,nil,nil"</span>);
+<a class="jxr_linenumber" name="L864" href="#L864">864</a> l2.get(<span class="jxr_string">"http://localhost/l2/l2foo"</span>)
+<a class="jxr_linenumber" name="L865" href="#L865">865</a> .run()
+<a class="jxr_linenumber" name="L866" href="#L866">866</a> .assertStatus(200)
+<a class="jxr_linenumber" name="L867" href="#L867">867</a> .assertContent(<span class="jxr_string">"1,nil,l2foo"</span>);
+<a class="jxr_linenumber" name="L868" href="#L868">868</a> l2.get(<span class="jxr_string">"http://localhost/l2/foo"</span>)
+<a class="jxr_linenumber" name="L869" href="#L869">869</a> .run()
+<a class="jxr_linenumber" name="L870" href="#L870">870</a> .assertStatus(200)
+<a class="jxr_linenumber" name="L871" href="#L871">871</a> .assertContent(<span class="jxr_string">"2,nil,nil"</span>);
+<a class="jxr_linenumber" name="L872" href="#L872">872</a> l2.get(<span class="jxr_string">"http://localhost/l2/foo/l2foo"</span>)
+<a class="jxr_linenumber" name="L873" href="#L873">873</a> .run()
+<a class="jxr_linenumber" name="L874" href="#L874">874</a> .assertStatus(200)
+<a class="jxr_linenumber" name="L875" href="#L875">875</a> .assertContent(<span class="jxr_string">"2,nil,l2foo"</span>);
+<a class="jxr_linenumber" name="L876" href="#L876">876</a> }
+<a class="jxr_linenumber" name="L877" href="#L877">877</a> }
</pre>
<hr/>
<div id="footer">© 2016–2025 <a href="https://www.apache.org/">The Apache Software Foundation</a></div>
diff --git a/site/xref-test/org/apache/juneau/rest/client/RestClient_Config_RestClient_Test.html b/site/xref-test/org/apache/juneau/rest/client/RestClient_Config_RestClient_Test.html
index 460235b0f4..df80277d83 100644
--- a/site/xref-test/org/apache/juneau/rest/client/RestClient_Config_RestClient_Test.html
+++ b/site/xref-test/org/apache/juneau/rest/client/RestClient_Config_RestClient_Test.html
@@ -324,7 +324,7 @@
<a class="jxr_linenumber" name="L316" href="#L316">316</a> <strong class="jxr_keyword">super</strong>(builder);
<a class="jxr_linenumber" name="L317" href="#L317">317</a> }
<a class="jxr_linenumber" name="L318" href="#L318">318</a> @Override
-<a class="jxr_linenumber" name="L319" href="#L319">319</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> log(Level level,String msg,Object...args) {
+<a class="jxr_linenumber" name="L319" href="#L319">319</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> log(Level level,String msg, Object...args) {
<a class="jxr_linenumber" name="L320" href="#L320">320</a> lastMessage = msg;
<a class="jxr_linenumber" name="L321" href="#L321">321</a> }
<a class="jxr_linenumber" name="L322" href="#L322">322</a> }
diff --git a/site/xref/allclasses-frame.html b/site/xref/allclasses-frame.html
index c53643c232..92ce853acd 100644
--- a/site/xref/allclasses-frame.html
+++ b/site/xref/allclasses-frame.html
@@ -526,11 +526,6 @@
<li><a href="org/apache/juneau/http/annotation/FormDataAnnotation.html#FormDataAnnotation.Builder" target="classFrame">FormDataAnnotation.Builder</a></li>
<li><a href="org/apache/juneau/http/annotation/FormDataAnnotation.html#FormDataAnnotation.Object" target="classFrame">FormDataAnnotation.Object</a></li>
<li><a href="org/apache/juneau/rest/arg/FormDataArg.html#FormDataArg" target="classFrame">FormDataArg</a></li>
- <li><a href="org/apache/juneau/common/utils/FormatString.html#FormatString" target="classFrame">FormatString</a></li>
- <li><a href="org/apache/juneau/common/utils/FormatString.html#FormatString.LiteralToken" target="classFrame">FormatString.LiteralToken</a></li>
- <li><a href="org/apache/juneau/common/utils/FormatString.html#FormatString.MessageFormatToken" target="classFrame">FormatString.MessageFormatToken</a></li>
- <li><a href="org/apache/juneau/common/utils/FormatString.html#FormatString.StringFormatToken" target="classFrame">FormatString.StringFormatToken</a></li>
- <li><a href="org/apache/juneau/common/utils/FormatString.html#FormatString.Token" target="classFrame">FormatString.Token</a></li>
<li><a href="org/apache/juneau/http/annotation/FormatType.html#FormatType" target="classFrame">FormatType</a></li>
<li><a href="org/apache/juneau/http/header/Forwarded.html#Forwarded" target="classFrame">Forwarded</a></li>
<li><a href="org/apache/juneau/http/response/Found.html#Found" target="classFrame">Found</a></li>
diff --git a/site/xref/org/apache/juneau/BasicException.html b/site/xref/org/apache/juneau/BasicException.html
index 61a31fe72d..f722c3dff8 100644
--- a/site/xref/org/apache/juneau/BasicException.html
+++ b/site/xref/org/apache/juneau/BasicException.html
@@ -26,71 +26,72 @@
<a class="jxr_linenumber" name="L18" href="#L18">18</a>
<a class="jxr_linenumber" name="L19" href="#L19">19</a> <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.juneau.common.utils.StringUtils.*;
<a class="jxr_linenumber" name="L20" href="#L20">20</a> <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.juneau.common.utils.ThrowableUtils.*;
-<a class="jxr_linenumber" name="L21" href="#L21">21</a>
-<a class="jxr_linenumber" name="L22" href="#L22">22</a> <strong class="jxr_keyword">import</strong> java.text.*;
-<a class="jxr_linenumber" name="L23" href="#L23">23</a>
-<a class="jxr_linenumber" name="L24" href="#L24">24</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L25" href="#L25">25</a> <em class="jxr_javadoccomment"> * Subclass of non-runtime exceptions that take in a message and zero or more arguments.</em>
-<a class="jxr_linenumber" name="L26" href="#L26">26</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L21" href="#L21">21</a> <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.juneau.common.utils.Utils.*;
+<a class="jxr_linenumber" name="L22" href="#L22">22</a>
+<a class="jxr_linenumber" name="L23" href="#L23">23</a> <strong class="jxr_keyword">import</strong> java.text.*;
+<a class="jxr_linenumber" name="L24" href="#L24">24</a>
+<a class="jxr_linenumber" name="L25" href="#L25">25</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L26" href="#L26">26</a> <em class="jxr_javadoccomment"> * Subclass of non-runtime exceptions that take in a message and zero or more arguments.</em>
<a class="jxr_linenumber" name="L27" href="#L27">27</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L28" href="#L28">28</a> <em class="jxr_javadoccomment"> * @serial exclude</em>
-<a class="jxr_linenumber" name="L29" href="#L29">29</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L30" href="#L30">30</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">class</strong> <a name="BasicException" href="../../../org/apache/juneau/BasicException.html#BasicException">BasicException</a> <strong class="jxr_keyword">extends</strong> Exception {
-<a class="jxr_linenumber" name="L31" href="#L31">31</a>
-<a class="jxr_linenumber" name="L32" href="#L32">32</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> serialVersionUID = 1L;
-<a class="jxr_linenumber" name="L33" href="#L33">33</a>
-<a class="jxr_linenumber" name="L34" href="#L34">34</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L35" href="#L35">35</a> <em class="jxr_javadoccomment"> * Constructor.</em>
-<a class="jxr_linenumber" name="L36" href="#L36">36</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L37" href="#L37">37</a> <em class="jxr_javadoccomment"> * @param message The {@link MessageFormat}-style message.</em>
-<a class="jxr_linenumber" name="L38" href="#L38">38</a> <em class="jxr_javadoccomment"> * @param args Optional {@link MessageFormat}-style arguments.</em>
-<a class="jxr_linenumber" name="L39" href="#L39">39</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L40" href="#L40">40</a> <strong class="jxr_keyword">public</strong> <a name="BasicException" href="../../../org/apache/juneau/BasicException.html#BasicException">BasicException</a>(String message, Object...args) {
-<a class="jxr_linenumber" name="L41" href="#L41">41</a> <strong class="jxr_keyword">super</strong>(mformat(message, args));
-<a class="jxr_linenumber" name="L42" href="#L42">42</a> }
-<a class="jxr_linenumber" name="L43" href="#L43">43</a>
-<a class="jxr_linenumber" name="L44" href="#L44">44</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L45" href="#L45">45</a> <em class="jxr_javadoccomment"> * Constructor.</em>
-<a class="jxr_linenumber" name="L46" href="#L46">46</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L47" href="#L47">47</a> <em class="jxr_javadoccomment"> * @param causedBy The cause of this exception.</em>
-<a class="jxr_linenumber" name="L48" href="#L48">48</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L49" href="#L49">49</a> <strong class="jxr_keyword">public</strong> <a name="BasicException" href="../../../org/apache/juneau/BasicException.html#BasicException">BasicException</a>(Throwable causedBy) {
-<a class="jxr_linenumber" name="L50" href="#L50">50</a> <strong class="jxr_keyword">this</strong>(causedBy, lm(causedBy));
-<a class="jxr_linenumber" name="L51" href="#L51">51</a> }
-<a class="jxr_linenumber" name="L52" href="#L52">52</a>
-<a class="jxr_linenumber" name="L53" href="#L53">53</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L54" href="#L54">54</a> <em class="jxr_javadoccomment"> * Constructor.</em>
-<a class="jxr_linenumber" name="L55" href="#L55">55</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L56" href="#L56">56</a> <em class="jxr_javadoccomment"> * @param causedBy The cause of this exception.</em>
-<a class="jxr_linenumber" name="L57" href="#L57">57</a> <em class="jxr_javadoccomment"> * @param message The {@link MessageFormat}-style message.</em>
-<a class="jxr_linenumber" name="L58" href="#L58">58</a> <em class="jxr_javadoccomment"> * @param args Optional {@link MessageFormat}-style arguments.</em>
-<a class="jxr_linenumber" name="L59" href="#L59">59</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L60" href="#L60">60</a> <strong class="jxr_keyword">public</strong> <a name="BasicException" href="../../../org/apache/juneau/BasicException.html#BasicException">BasicException</a>(Throwable causedBy, String message, Object...args) {
-<a class="jxr_linenumber" name="L61" href="#L61">61</a> <strong class="jxr_keyword">this</strong>(message, args);
-<a class="jxr_linenumber" name="L62" href="#L62">62</a> initCause(causedBy);
-<a class="jxr_linenumber" name="L63" href="#L63">63</a> }
-<a class="jxr_linenumber" name="L64" href="#L64">64</a>
-<a class="jxr_linenumber" name="L65" href="#L65">65</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L66" href="#L66">66</a> <em class="jxr_javadoccomment"> * Same as {@link #getCause()} but searches the throwable chain for an exception of the specified type.</em>
-<a class="jxr_linenumber" name="L67" href="#L67">67</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L68" href="#L68">68</a> <em class="jxr_javadoccomment"> * @param c The throwable type to search for.</em>
-<a class="jxr_linenumber" name="L69" href="#L69">69</a> <em class="jxr_javadoccomment"> * @param <T> The throwable type to search for.</em>
-<a class="jxr_linenumber" name="L70" href="#L70">70</a> <em class="jxr_javadoccomment"> * @return The exception, or <jk>null</jk> if not found.</em>
-<a class="jxr_linenumber" name="L71" href="#L71">71</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L72" href="#L72">72</a> <strong class="jxr_keyword">public</strong> <T <strong class="jxr_keyword">extends</strong> Throwable> T getCause(Class<T> c) {
-<a class="jxr_linenumber" name="L73" href="#L73">73</a> <strong class="jxr_keyword">return</strong> getThrowableCause(c, <strong class="jxr_keyword">this</strong>);
-<a class="jxr_linenumber" name="L74" href="#L74">74</a> }
-<a class="jxr_linenumber" name="L75" href="#L75">75</a>
-<a class="jxr_linenumber" name="L76" href="#L76">76</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L77" href="#L77">77</a> <em class="jxr_javadoccomment"> * Returns the caused-by exception if there is one.</em>
-<a class="jxr_linenumber" name="L78" href="#L78">78</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L79" href="#L79">79</a> <em class="jxr_javadoccomment"> * @return The caused-by exception if there is one, or this exception if there isn't.</em>
-<a class="jxr_linenumber" name="L80" href="#L80">80</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L81" href="#L81">81</a> <strong class="jxr_keyword">public</strong> Throwable unwrap() {
-<a class="jxr_linenumber" name="L82" href="#L82">82</a> Throwable t = getCause();
-<a class="jxr_linenumber" name="L83" href="#L83">83</a> <strong class="jxr_keyword">return</strong> t == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">this</strong> : t;
-<a class="jxr_linenumber" name="L84" href="#L84">84</a> }
-<a class="jxr_linenumber" name="L85" href="#L85">85</a> }
+<a class="jxr_linenumber" name="L28" href="#L28">28</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L29" href="#L29">29</a> <em class="jxr_javadoccomment"> * @serial exclude</em>
+<a class="jxr_linenumber" name="L30" href="#L30">30</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L31" href="#L31">31</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">class</strong> <a name="BasicException" href="../../../org/apache/juneau/BasicException.html#BasicException">BasicException</a> <strong class="jxr_keyword">extends</strong> Exception {
+<a class="jxr_linenumber" name="L32" href="#L32">32</a>
+<a class="jxr_linenumber" name="L33" href="#L33">33</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> serialVersionUID = 1L;
+<a class="jxr_linenumber" name="L34" href="#L34">34</a>
+<a class="jxr_linenumber" name="L35" href="#L35">35</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L36" href="#L36">36</a> <em class="jxr_javadoccomment"> * Constructor.</em>
+<a class="jxr_linenumber" name="L37" href="#L37">37</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L38" href="#L38">38</a> <em class="jxr_javadoccomment"> * @param message The {@link MessageFormat}-style message.</em>
+<a class="jxr_linenumber" name="L39" href="#L39">39</a> <em class="jxr_javadoccomment"> * @param args Optional {@link MessageFormat}-style arguments.</em>
+<a class="jxr_linenumber" name="L40" href="#L40">40</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L41" href="#L41">41</a> <strong class="jxr_keyword">public</strong> <a name="BasicException" href="../../../org/apache/juneau/BasicException.html#BasicException">BasicException</a>(String message, Object...args) {
+<a class="jxr_linenumber" name="L42" href="#L42">42</a> <strong class="jxr_keyword">super</strong>(f(message, args));
+<a class="jxr_linenumber" name="L43" href="#L43">43</a> }
+<a class="jxr_linenumber" name="L44" href="#L44">44</a>
+<a class="jxr_linenumber" name="L45" href="#L45">45</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L46" href="#L46">46</a> <em class="jxr_javadoccomment"> * Constructor.</em>
+<a class="jxr_linenumber" name="L47" href="#L47">47</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L48" href="#L48">48</a> <em class="jxr_javadoccomment"> * @param causedBy The cause of this exception.</em>
+<a class="jxr_linenumber" name="L49" href="#L49">49</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L50" href="#L50">50</a> <strong class="jxr_keyword">public</strong> <a name="BasicException" href="../../../org/apache/juneau/BasicException.html#BasicException">BasicException</a>(Throwable causedBy) {
+<a class="jxr_linenumber" name="L51" href="#L51">51</a> <strong class="jxr_keyword">this</strong>(causedBy, lm(causedBy));
+<a class="jxr_linenumber" name="L52" href="#L52">52</a> }
+<a class="jxr_linenumber" name="L53" href="#L53">53</a>
+<a class="jxr_linenumber" name="L54" href="#L54">54</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L55" href="#L55">55</a> <em class="jxr_javadoccomment"> * Constructor.</em>
+<a class="jxr_linenumber" name="L56" href="#L56">56</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L57" href="#L57">57</a> <em class="jxr_javadoccomment"> * @param causedBy The cause of this exception.</em>
+<a class="jxr_linenumber" name="L58" href="#L58">58</a> <em class="jxr_javadoccomment"> * @param message The {@link MessageFormat}-style message.</em>
+<a class="jxr_linenumber" name="L59" href="#L59">59</a> <em class="jxr_javadoccomment"> * @param args Optional {@link MessageFormat}-style arguments.</em>
+<a class="jxr_linenumber" name="L60" href="#L60">60</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L61" href="#L61">61</a> <strong class="jxr_keyword">public</strong> <a name="BasicException" href="../../../org/apache/juneau/BasicException.html#BasicException">BasicException</a>(Throwable causedBy, String message, Object...args) {
+<a class="jxr_linenumber" name="L62" href="#L62">62</a> <strong class="jxr_keyword">this</strong>(message, args);
+<a class="jxr_linenumber" name="L63" href="#L63">63</a> initCause(causedBy);
+<a class="jxr_linenumber" name="L64" href="#L64">64</a> }
+<a class="jxr_linenumber" name="L65" href="#L65">65</a>
+<a class="jxr_linenumber" name="L66" href="#L66">66</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L67" href="#L67">67</a> <em class="jxr_javadoccomment"> * Same as {@link #getCause()} but searches the throwable chain for an exception of the specified type.</em>
+<a class="jxr_linenumber" name="L68" href="#L68">68</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L69" href="#L69">69</a> <em class="jxr_javadoccomment"> * @param c The throwable type to search for.</em>
+<a class="jxr_linenumber" name="L70" href="#L70">70</a> <em class="jxr_javadoccomment"> * @param <T> The throwable type to search for.</em>
+<a class="jxr_linenumber" name="L71" href="#L71">71</a> <em class="jxr_javadoccomment"> * @return The exception, or <jk>null</jk> if not found.</em>
+<a class="jxr_linenumber" name="L72" href="#L72">72</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L73" href="#L73">73</a> <strong class="jxr_keyword">public</strong> <T <strong class="jxr_keyword">extends</strong> Throwable> T getCause(Class<T> c) {
+<a class="jxr_linenumber" name="L74" href="#L74">74</a> <strong class="jxr_keyword">return</strong> getThrowableCause(c, <strong class="jxr_keyword">this</strong>);
+<a class="jxr_linenumber" name="L75" href="#L75">75</a> }
+<a class="jxr_linenumber" name="L76" href="#L76">76</a>
+<a class="jxr_linenumber" name="L77" href="#L77">77</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L78" href="#L78">78</a> <em class="jxr_javadoccomment"> * Returns the caused-by exception if there is one.</em>
+<a class="jxr_linenumber" name="L79" href="#L79">79</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L80" href="#L80">80</a> <em class="jxr_javadoccomment"> * @return The caused-by exception if there is one, or this exception if there isn't.</em>
+<a class="jxr_linenumber" name="L81" href="#L81">81</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L82" href="#L82">82</a> <strong class="jxr_keyword">public</strong> Throwable unwrap() {
+<a class="jxr_linenumber" name="L83" href="#L83">83</a> Throwable t = getCause();
+<a class="jxr_linenumber" name="L84" href="#L84">84</a> <strong class="jxr_keyword">return</strong> t == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">this</strong> : t;
+<a class="jxr_linenumber" name="L85" href="#L85">85</a> }
+<a class="jxr_linenumber" name="L86" href="#L86">86</a> }
</pre>
<hr/>
<div id="footer">© 2016–2025 <a href="https://www.apache.org/">The Apache Software Foundation</a></div>
diff --git a/site/xref/org/apache/juneau/BasicRuntimeException.html b/site/xref/org/apache/juneau/BasicRuntimeException.html
index e08a0f2f83..3a131c19ff 100644
--- a/site/xref/org/apache/juneau/BasicRuntimeException.html
+++ b/site/xref/org/apache/juneau/BasicRuntimeException.html
@@ -24,142 +24,141 @@
<a class="jxr_linenumber" name="L16" href="#L16">16</a> <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="L17" href="#L17">17</a> <strong class="jxr_keyword">package</strong> org.apache.juneau;
<a class="jxr_linenumber" name="L18" href="#L18">18</a>
-<a class="jxr_linenumber" name="L19" href="#L19">19</a> <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.juneau.common.utils.StringUtils.*;
-<a class="jxr_linenumber" name="L20" href="#L20">20</a> <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.juneau.common.utils.ThrowableUtils.*;
-<a class="jxr_linenumber" name="L21" href="#L21">21</a> <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.juneau.common.utils.Utils.*;
-<a class="jxr_linenumber" name="L22" href="#L22">22</a>
-<a class="jxr_linenumber" name="L23" href="#L23">23</a> <strong class="jxr_keyword">import</strong> java.text.*;
-<a class="jxr_linenumber" name="L24" href="#L24">24</a>
-<a class="jxr_linenumber" name="L25" href="#L25">25</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L26" href="#L26">26</a> <em class="jxr_javadoccomment"> * Subclass of runtime exceptions that take in a message and zero or more arguments.</em>
+<a class="jxr_linenumber" name="L19" href="#L19">19</a> <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.juneau.common.utils.ThrowableUtils.*;
+<a class="jxr_linenumber" name="L20" href="#L20">20</a> <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.juneau.common.utils.Utils.*;
+<a class="jxr_linenumber" name="L21" href="#L21">21</a>
+<a class="jxr_linenumber" name="L22" href="#L22">22</a> <strong class="jxr_keyword">import</strong> java.text.*;
+<a class="jxr_linenumber" name="L23" href="#L23">23</a>
+<a class="jxr_linenumber" name="L24" href="#L24">24</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L25" href="#L25">25</a> <em class="jxr_javadoccomment"> * Subclass of runtime exceptions that take in a message and zero or more arguments.</em>
+<a class="jxr_linenumber" name="L26" href="#L26">26</a> <em class="jxr_javadoccomment"> *</em>
<a class="jxr_linenumber" name="L27" href="#L27">27</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L28" href="#L28">28</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L29" href="#L29">29</a> <em class="jxr_javadoccomment"> * @serial exclude</em>
-<a class="jxr_linenumber" name="L30" href="#L30">30</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L31" href="#L31">31</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a name="BasicRuntimeException" href="../../../org/apache/juneau/BasicRuntimeException.html#BasicRuntimeException">BasicRuntimeException</a> <strong class="jxr_keyword">extends</strong> RuntimeException {
-<a class="jxr_linenumber" name="L32" href="#L32">32</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> serialVersionUID = 1L;
-<a class="jxr_linenumber" name="L33" href="#L33">33</a> <strong class="jxr_keyword">boolean</strong> unmodifiable;
-<a class="jxr_linenumber" name="L34" href="#L34">34</a> String message;
-<a class="jxr_linenumber" name="L35" href="#L35">35</a>
-<a class="jxr_linenumber" name="L36" href="#L36">36</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L37" href="#L37">37</a> <em class="jxr_javadoccomment"> * Constructor.</em>
-<a class="jxr_linenumber" name="L38" href="#L38">38</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L39" href="#L39">39</a> <em class="jxr_javadoccomment"> * @param message The {@link MessageFormat}-style message.</em>
-<a class="jxr_linenumber" name="L40" href="#L40">40</a> <em class="jxr_javadoccomment"> * @param args Optional {@link MessageFormat}-style arguments.</em>
-<a class="jxr_linenumber" name="L41" href="#L41">41</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L42" href="#L42">42</a> <strong class="jxr_keyword">public</strong> <a name="BasicRuntimeException" href="../../../org/apache/juneau/BasicRuntimeException.html#BasicRuntimeException">BasicRuntimeException</a>(String message, Object...args) {
-<a class="jxr_linenumber" name="L43" href="#L43">43</a> <strong class="jxr_keyword">super</strong>(mformat(message, args));
-<a class="jxr_linenumber" name="L44" href="#L44">44</a> }
-<a class="jxr_linenumber" name="L45" href="#L45">45</a>
-<a class="jxr_linenumber" name="L46" href="#L46">46</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L47" href="#L47">47</a> <em class="jxr_javadoccomment"> * Constructor.</em>
-<a class="jxr_linenumber" name="L48" href="#L48">48</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L49" href="#L49">49</a> <em class="jxr_javadoccomment"> * @param cause The cause of this exception.</em>
-<a class="jxr_linenumber" name="L50" href="#L50">50</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L51" href="#L51">51</a> <strong class="jxr_keyword">public</strong> <a name="BasicRuntimeException" href="../../../org/apache/juneau/BasicRuntimeException.html#BasicRuntimeException">BasicRuntimeException</a>(Throwable cause) {
-<a class="jxr_linenumber" name="L52" href="#L52">52</a> <strong class="jxr_keyword">super</strong>(cause);
-<a class="jxr_linenumber" name="L53" href="#L53">53</a> }
-<a class="jxr_linenumber" name="L54" href="#L54">54</a>
-<a class="jxr_linenumber" name="L55" href="#L55">55</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L56" href="#L56">56</a> <em class="jxr_javadoccomment"> * Constructor.</em>
-<a class="jxr_linenumber" name="L57" href="#L57">57</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L58" href="#L58">58</a> <em class="jxr_javadoccomment"> * @param cause The cause of this exception.</em>
-<a class="jxr_linenumber" name="L59" href="#L59">59</a> <em class="jxr_javadoccomment"> * @param message The {@link MessageFormat}-style message.</em>
-<a class="jxr_linenumber" name="L60" href="#L60">60</a> <em class="jxr_javadoccomment"> * @param args Optional {@link MessageFormat}-style arguments.</em>
-<a class="jxr_linenumber" name="L61" href="#L61">61</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L62" href="#L62">62</a> <strong class="jxr_keyword">public</strong> <a name="BasicRuntimeException" href="../../../org/apache/juneau/BasicRuntimeException.html#BasicRuntimeException">BasicRuntimeException</a>(Throwable cause, String message, Object...args) {
-<a class="jxr_linenumber" name="L63" href="#L63">63</a> <strong class="jxr_keyword">super</strong>(mformat(message, args), cause);
-<a class="jxr_linenumber" name="L64" href="#L64">64</a> }
-<a class="jxr_linenumber" name="L65" href="#L65">65</a>
-<a class="jxr_linenumber" name="L66" href="#L66">66</a> @Override <em class="jxr_comment">/* Overridden from Throwable */</em>
-<a class="jxr_linenumber" name="L67" href="#L67">67</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">synchronized</strong> Throwable fillInStackTrace() {
-<a class="jxr_linenumber" name="L68" href="#L68">68</a> assertModifiable();
-<a class="jxr_linenumber" name="L69" href="#L69">69</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.fillInStackTrace();
-<a class="jxr_linenumber" name="L70" href="#L70">70</a> }
-<a class="jxr_linenumber" name="L71" href="#L71">71</a>
-<a class="jxr_linenumber" name="L72" href="#L72">72</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L73" href="#L73">73</a> <em class="jxr_javadoccomment"> * Same as {@link #getCause()} but searches the throwable chain for an exception of the specified type.</em>
-<a class="jxr_linenumber" name="L74" href="#L74">74</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L75" href="#L75">75</a> <em class="jxr_javadoccomment"> * @param c The throwable type to search for.</em>
-<a class="jxr_linenumber" name="L76" href="#L76">76</a> <em class="jxr_javadoccomment"> * @param <T> The throwable type to search for.</em>
-<a class="jxr_linenumber" name="L77" href="#L77">77</a> <em class="jxr_javadoccomment"> * @return The exception, or <jk>null</jk> if not found.</em>
-<a class="jxr_linenumber" name="L78" href="#L78">78</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L79" href="#L79">79</a> <strong class="jxr_keyword">public</strong> <T <strong class="jxr_keyword">extends</strong> Throwable> T getCause(Class<T> c) {
-<a class="jxr_linenumber" name="L80" href="#L80">80</a> <strong class="jxr_keyword">return</strong> getThrowableCause(c, <strong class="jxr_keyword">this</strong>);
-<a class="jxr_linenumber" name="L81" href="#L81">81</a> }
-<a class="jxr_linenumber" name="L82" href="#L82">82</a>
-<a class="jxr_linenumber" name="L83" href="#L83">83</a> @Override <em class="jxr_comment">/* Overridden from Throwable */</em>
-<a class="jxr_linenumber" name="L84" href="#L84">84</a> <strong class="jxr_keyword">public</strong> String getMessage() {
-<a class="jxr_linenumber" name="L85" href="#L85">85</a> <strong class="jxr_keyword">if</strong> (nn(message))
-<a class="jxr_linenumber" name="L86" href="#L86">86</a> <strong class="jxr_keyword">return</strong> message;
-<a class="jxr_linenumber" name="L87" href="#L87">87</a> String m = <strong class="jxr_keyword">super</strong>.getMessage();
-<a class="jxr_linenumber" name="L88" href="#L88">88</a> <strong class="jxr_keyword">if</strong> (m == <strong class="jxr_keyword">null</strong> && nn(getCause()))
-<a class="jxr_linenumber" name="L89" href="#L89">89</a> m = getCause().getMessage();
-<a class="jxr_linenumber" name="L90" href="#L90">90</a> <strong class="jxr_keyword">return</strong> m;
-<a class="jxr_linenumber" name="L91" href="#L91">91</a> }
-<a class="jxr_linenumber" name="L92" href="#L92">92</a>
-<a class="jxr_linenumber" name="L93" href="#L93">93</a> @Override <em class="jxr_comment">/* Overridden from Throwable */</em>
-<a class="jxr_linenumber" name="L94" href="#L94">94</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">synchronized</strong> Throwable initCause(Throwable cause) {
-<a class="jxr_linenumber" name="L95" href="#L95">95</a> assertModifiable();
-<a class="jxr_linenumber" name="L96" href="#L96">96</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.initCause(cause);
-<a class="jxr_linenumber" name="L97" href="#L97">97</a> }
-<a class="jxr_linenumber" name="L98" href="#L98">98</a>
-<a class="jxr_linenumber" name="L99" href="#L99">99</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L100" href="#L100">100</a> <em class="jxr_javadoccomment"> * Returns <jk>true</jk> if this bean is unmodifiable.</em>
-<a class="jxr_linenumber" name="L101" href="#L101">101</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L102" href="#L102">102</a> <em class="jxr_javadoccomment"> * @return <jk>true</jk> if this bean is unmodifiable.</em>
-<a class="jxr_linenumber" name="L103" href="#L103">103</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L104" href="#L104">104</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isUnmodifiable() { <strong class="jxr_keyword">return</strong> unmodifiable; }
-<a class="jxr_linenumber" name="L105" href="#L105">105</a>
-<a class="jxr_linenumber" name="L106" href="#L106">106</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L107" href="#L107">107</a> <em class="jxr_javadoccomment"> * Sets the detail message on this exception.</em>
-<a class="jxr_linenumber" name="L108" href="#L108">108</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L109" href="#L109">109</a> <em class="jxr_javadoccomment"> * @param message The message.</em>
-<a class="jxr_linenumber" name="L110" href="#L110">110</a> <em class="jxr_javadoccomment"> * @param args The message args.</em>
-<a class="jxr_linenumber" name="L111" href="#L111">111</a> <em class="jxr_javadoccomment"> * @return This object.</em>
-<a class="jxr_linenumber" name="L112" href="#L112">112</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L113" href="#L113">113</a> <strong class="jxr_keyword">public</strong> <a name="BasicRuntimeException" href="../../../org/apache/juneau/BasicRuntimeException.html#BasicRuntimeException">BasicRuntimeException</a> setMessage(String message, Object...args) {
-<a class="jxr_linenumber" name="L114" href="#L114">114</a> assertModifiable();
-<a class="jxr_linenumber" name="L115" href="#L115">115</a> <strong class="jxr_keyword">this</strong>.message = mformat(message, args);
-<a class="jxr_linenumber" name="L116" href="#L116">116</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L117" href="#L117">117</a> }
-<a class="jxr_linenumber" name="L118" href="#L118">118</a>
-<a class="jxr_linenumber" name="L119" href="#L119">119</a> @Override <em class="jxr_comment">/* Overridden from Throwable */</em>
-<a class="jxr_linenumber" name="L120" href="#L120">120</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setStackTrace(StackTraceElement[] stackTrace) {
-<a class="jxr_linenumber" name="L121" href="#L121">121</a> assertModifiable();
-<a class="jxr_linenumber" name="L122" href="#L122">122</a> <strong class="jxr_keyword">super</strong>.setStackTrace(stackTrace);
-<a class="jxr_linenumber" name="L123" href="#L123">123</a> }
-<a class="jxr_linenumber" name="L124" href="#L124">124</a>
-<a class="jxr_linenumber" name="L125" href="#L125">125</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L126" href="#L126">126</a> <em class="jxr_javadoccomment"> * Returns the caused-by exception if there is one.</em>
-<a class="jxr_linenumber" name="L127" href="#L127">127</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L128" href="#L128">128</a> <em class="jxr_javadoccomment"> * @return The caused-by exception if there is one, or this exception if there isn't.</em>
-<a class="jxr_linenumber" name="L129" href="#L129">129</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L130" href="#L130">130</a> <strong class="jxr_keyword">public</strong> Throwable unwrap() {
-<a class="jxr_linenumber" name="L131" href="#L131">131</a> Throwable t = getCause();
-<a class="jxr_linenumber" name="L132" href="#L132">132</a> <strong class="jxr_keyword">return</strong> t == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">this</strong> : t;
-<a class="jxr_linenumber" name="L133" href="#L133">133</a> }
-<a class="jxr_linenumber" name="L134" href="#L134">134</a>
-<a class="jxr_linenumber" name="L135" href="#L135">135</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L136" href="#L136">136</a> <em class="jxr_javadoccomment"> * Throws an {@link UnsupportedOperationException} if the unmodifiable flag is set on this bean.</em>
-<a class="jxr_linenumber" name="L137" href="#L137">137</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L138" href="#L138">138</a> <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> assertModifiable() {
-<a class="jxr_linenumber" name="L139" href="#L139">139</a> <strong class="jxr_keyword">if</strong> (unmodifiable)
-<a class="jxr_linenumber" name="L140" href="#L140">140</a> <strong class="jxr_keyword">throw</strong> unsupportedOp(<span class="jxr_string">"Bean is read-only"</span>);
-<a class="jxr_linenumber" name="L141" href="#L141">141</a> }
-<a class="jxr_linenumber" name="L142" href="#L142">142</a>
-<a class="jxr_linenumber" name="L143" href="#L143">143</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L144" href="#L144">144</a> <em class="jxr_javadoccomment"> * Specifies whether this bean should be unmodifiable.</em>
-<a class="jxr_linenumber" name="L145" href="#L145">145</a> <em class="jxr_javadoccomment"> * <p></em>
-<a class="jxr_linenumber" name="L146" href="#L146">146</a> <em class="jxr_javadoccomment"> * When enabled, attempting to set any properties on this bean will cause an {@link UnsupportedOperationException}.</em>
-<a class="jxr_linenumber" name="L147" href="#L147">147</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L148" href="#L148">148</a> <em class="jxr_javadoccomment"> * @return This object.</em>
-<a class="jxr_linenumber" name="L149" href="#L149">149</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L150" href="#L150">150</a> <strong class="jxr_keyword">protected</strong> <a name="BasicRuntimeException" href="../../../org/apache/juneau/BasicRuntimeException.html#BasicRuntimeException">BasicRuntimeException</a> setUnmodifiable() {
-<a class="jxr_linenumber" name="L151" href="#L151">151</a> unmodifiable = <strong class="jxr_keyword">true</strong>;
-<a class="jxr_linenumber" name="L152" href="#L152">152</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L153" href="#L153">153</a> }
-<a class="jxr_linenumber" name="L154" href="#L154">154</a> }
+<a class="jxr_linenumber" name="L28" href="#L28">28</a> <em class="jxr_javadoccomment"> * @serial exclude</em>
+<a class="jxr_linenumber" name="L29" href="#L29">29</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L30" href="#L30">30</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a name="BasicRuntimeException" href="../../../org/apache/juneau/BasicRuntimeException.html#BasicRuntimeException">BasicRuntimeException</a> <strong class="jxr_keyword">extends</strong> RuntimeException {
+<a class="jxr_linenumber" name="L31" href="#L31">31</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> serialVersionUID = 1L;
+<a class="jxr_linenumber" name="L32" href="#L32">32</a> <strong class="jxr_keyword">boolean</strong> unmodifiable;
+<a class="jxr_linenumber" name="L33" href="#L33">33</a> String message;
+<a class="jxr_linenumber" name="L34" href="#L34">34</a>
+<a class="jxr_linenumber" name="L35" href="#L35">35</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L36" href="#L36">36</a> <em class="jxr_javadoccomment"> * Constructor.</em>
+<a class="jxr_linenumber" name="L37" href="#L37">37</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L38" href="#L38">38</a> <em class="jxr_javadoccomment"> * @param message The {@link MessageFormat}-style message.</em>
+<a class="jxr_linenumber" name="L39" href="#L39">39</a> <em class="jxr_javadoccomment"> * @param args Optional {@link MessageFormat}-style arguments.</em>
+<a class="jxr_linenumber" name="L40" href="#L40">40</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L41" href="#L41">41</a> <strong class="jxr_keyword">public</strong> <a name="BasicRuntimeException" href="../../../org/apache/juneau/BasicRuntimeException.html#BasicRuntimeException">BasicRuntimeException</a>(String message, Object...args) {
+<a class="jxr_linenumber" name="L42" href="#L42">42</a> <strong class="jxr_keyword">super</strong>(f(message, args));
+<a class="jxr_linenumber" name="L43" href="#L43">43</a> }
+<a class="jxr_linenumber" name="L44" href="#L44">44</a>
+<a class="jxr_linenumber" name="L45" href="#L45">45</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L46" href="#L46">46</a> <em class="jxr_javadoccomment"> * Constructor.</em>
+<a class="jxr_linenumber" name="L47" href="#L47">47</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L48" href="#L48">48</a> <em class="jxr_javadoccomment"> * @param cause The cause of this exception.</em>
+<a class="jxr_linenumber" name="L49" href="#L49">49</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L50" href="#L50">50</a> <strong class="jxr_keyword">public</strong> <a name="BasicRuntimeException" href="../../../org/apache/juneau/BasicRuntimeException.html#BasicRuntimeException">BasicRuntimeException</a>(Throwable cause) {
+<a class="jxr_linenumber" name="L51" href="#L51">51</a> <strong class="jxr_keyword">super</strong>(cause);
+<a class="jxr_linenumber" name="L52" href="#L52">52</a> }
+<a class="jxr_linenumber" name="L53" href="#L53">53</a>
+<a class="jxr_linenumber" name="L54" href="#L54">54</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L55" href="#L55">55</a> <em class="jxr_javadoccomment"> * Constructor.</em>
+<a class="jxr_linenumber" name="L56" href="#L56">56</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L57" href="#L57">57</a> <em class="jxr_javadoccomment"> * @param cause The cause of this exception.</em>
+<a class="jxr_linenumber" name="L58" href="#L58">58</a> <em class="jxr_javadoccomment"> * @param message The {@link MessageFormat}-style message.</em>
+<a class="jxr_linenumber" name="L59" href="#L59">59</a> <em class="jxr_javadoccomment"> * @param args Optional {@link MessageFormat}-style arguments.</em>
+<a class="jxr_linenumber" name="L60" href="#L60">60</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L61" href="#L61">61</a> <strong class="jxr_keyword">public</strong> <a name="BasicRuntimeException" href="../../../org/apache/juneau/BasicRuntimeException.html#BasicRuntimeException">BasicRuntimeException</a>(Throwable cause, String message, Object...args) {
+<a class="jxr_linenumber" name="L62" href="#L62">62</a> <strong class="jxr_keyword">super</strong>(f(message, args), cause);
+<a class="jxr_linenumber" name="L63" href="#L63">63</a> }
+<a class="jxr_linenumber" name="L64" href="#L64">64</a>
+<a class="jxr_linenumber" name="L65" href="#L65">65</a> @Override <em class="jxr_comment">/* Overridden from Throwable */</em>
+<a class="jxr_linenumber" name="L66" href="#L66">66</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">synchronized</strong> Throwable fillInStackTrace() {
+<a class="jxr_linenumber" name="L67" href="#L67">67</a> assertModifiable();
+<a class="jxr_linenumber" name="L68" href="#L68">68</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.fillInStackTrace();
+<a class="jxr_linenumber" name="L69" href="#L69">69</a> }
+<a class="jxr_linenumber" name="L70" href="#L70">70</a>
+<a class="jxr_linenumber" name="L71" href="#L71">71</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L72" href="#L72">72</a> <em class="jxr_javadoccomment"> * Same as {@link #getCause()} but searches the throwable chain for an exception of the specified type.</em>
+<a class="jxr_linenumber" name="L73" href="#L73">73</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L74" href="#L74">74</a> <em class="jxr_javadoccomment"> * @param c The throwable type to search for.</em>
+<a class="jxr_linenumber" name="L75" href="#L75">75</a> <em class="jxr_javadoccomment"> * @param <T> The throwable type to search for.</em>
+<a class="jxr_linenumber" name="L76" href="#L76">76</a> <em class="jxr_javadoccomment"> * @return The exception, or <jk>null</jk> if not found.</em>
+<a class="jxr_linenumber" name="L77" href="#L77">77</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L78" href="#L78">78</a> <strong class="jxr_keyword">public</strong> <T <strong class="jxr_keyword">extends</strong> Throwable> T getCause(Class<T> c) {
+<a class="jxr_linenumber" name="L79" href="#L79">79</a> <strong class="jxr_keyword">return</strong> getThrowableCause(c, <strong class="jxr_keyword">this</strong>);
+<a class="jxr_linenumber" name="L80" href="#L80">80</a> }
+<a class="jxr_linenumber" name="L81" href="#L81">81</a>
+<a class="jxr_linenumber" name="L82" href="#L82">82</a> @Override <em class="jxr_comment">/* Overridden from Throwable */</em>
+<a class="jxr_linenumber" name="L83" href="#L83">83</a> <strong class="jxr_keyword">public</strong> String getMessage() {
+<a class="jxr_linenumber" name="L84" href="#L84">84</a> <strong class="jxr_keyword">if</strong> (nn(message))
+<a class="jxr_linenumber" name="L85" href="#L85">85</a> <strong class="jxr_keyword">return</strong> message;
+<a class="jxr_linenumber" name="L86" href="#L86">86</a> String m = <strong class="jxr_keyword">super</strong>.getMessage();
+<a class="jxr_linenumber" name="L87" href="#L87">87</a> <strong class="jxr_keyword">if</strong> (m == <strong class="jxr_keyword">null</strong> && nn(getCause()))
+<a class="jxr_linenumber" name="L88" href="#L88">88</a> m = getCause().getMessage();
+<a class="jxr_linenumber" name="L89" href="#L89">89</a> <strong class="jxr_keyword">return</strong> m;
+<a class="jxr_linenumber" name="L90" href="#L90">90</a> }
+<a class="jxr_linenumber" name="L91" href="#L91">91</a>
+<a class="jxr_linenumber" name="L92" href="#L92">92</a> @Override <em class="jxr_comment">/* Overridden from Throwable */</em>
+<a class="jxr_linenumber" name="L93" href="#L93">93</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">synchronized</strong> Throwable initCause(Throwable cause) {
+<a class="jxr_linenumber" name="L94" href="#L94">94</a> assertModifiable();
+<a class="jxr_linenumber" name="L95" href="#L95">95</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.initCause(cause);
+<a class="jxr_linenumber" name="L96" href="#L96">96</a> }
+<a class="jxr_linenumber" name="L97" href="#L97">97</a>
+<a class="jxr_linenumber" name="L98" href="#L98">98</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L99" href="#L99">99</a> <em class="jxr_javadoccomment"> * Returns <jk>true</jk> if this bean is unmodifiable.</em>
+<a class="jxr_linenumber" name="L100" href="#L100">100</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L101" href="#L101">101</a> <em class="jxr_javadoccomment"> * @return <jk>true</jk> if this bean is unmodifiable.</em>
+<a class="jxr_linenumber" name="L102" href="#L102">102</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L103" href="#L103">103</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isUnmodifiable() { <strong class="jxr_keyword">return</strong> unmodifiable; }
+<a class="jxr_linenumber" name="L104" href="#L104">104</a>
+<a class="jxr_linenumber" name="L105" href="#L105">105</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L106" href="#L106">106</a> <em class="jxr_javadoccomment"> * Sets the detail message on this exception.</em>
+<a class="jxr_linenumber" name="L107" href="#L107">107</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L108" href="#L108">108</a> <em class="jxr_javadoccomment"> * @param message The message.</em>
+<a class="jxr_linenumber" name="L109" href="#L109">109</a> <em class="jxr_javadoccomment"> * @param args The message args.</em>
+<a class="jxr_linenumber" name="L110" href="#L110">110</a> <em class="jxr_javadoccomment"> * @return This object.</em>
+<a class="jxr_linenumber" name="L111" href="#L111">111</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L112" href="#L112">112</a> <strong class="jxr_keyword">public</strong> <a name="BasicRuntimeException" href="../../../org/apache/juneau/BasicRuntimeException.html#BasicRuntimeException">BasicRuntimeException</a> setMessage(String message, Object...args) {
+<a class="jxr_linenumber" name="L113" href="#L113">113</a> assertModifiable();
+<a class="jxr_linenumber" name="L114" href="#L114">114</a> <strong class="jxr_keyword">this</strong>.message = f(message, args);
+<a class="jxr_linenumber" name="L115" href="#L115">115</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L116" href="#L116">116</a> }
+<a class="jxr_linenumber" name="L117" href="#L117">117</a>
+<a class="jxr_linenumber" name="L118" href="#L118">118</a> @Override <em class="jxr_comment">/* Overridden from Throwable */</em>
+<a class="jxr_linenumber" name="L119" href="#L119">119</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setStackTrace(StackTraceElement[] stackTrace) {
+<a class="jxr_linenumber" name="L120" href="#L120">120</a> assertModifiable();
+<a class="jxr_linenumber" name="L121" href="#L121">121</a> <strong class="jxr_keyword">super</strong>.setStackTrace(stackTrace);
+<a class="jxr_linenumber" name="L122" href="#L122">122</a> }
+<a class="jxr_linenumber" name="L123" href="#L123">123</a>
+<a class="jxr_linenumber" name="L124" href="#L124">124</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L125" href="#L125">125</a> <em class="jxr_javadoccomment"> * Returns the caused-by exception if there is one.</em>
+<a class="jxr_linenumber" name="L126" href="#L126">126</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L127" href="#L127">127</a> <em class="jxr_javadoccomment"> * @return The caused-by exception if there is one, or this exception if there isn't.</em>
+<a class="jxr_linenumber" name="L128" href="#L128">128</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L129" href="#L129">129</a> <strong class="jxr_keyword">public</strong> Throwable unwrap() {
+<a class="jxr_linenumber" name="L130" href="#L130">130</a> Throwable t = getCause();
+<a class="jxr_linenumber" name="L131" href="#L131">131</a> <strong class="jxr_keyword">return</strong> t == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">this</strong> : t;
+<a class="jxr_linenumber" name="L132" href="#L132">132</a> }
+<a class="jxr_linenumber" name="L133" href="#L133">133</a>
+<a class="jxr_linenumber" name="L134" href="#L134">134</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L135" href="#L135">135</a> <em class="jxr_javadoccomment"> * Throws an {@link UnsupportedOperationException} if the unmodifiable flag is set on this bean.</em>
+<a class="jxr_linenumber" name="L136" href="#L136">136</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L137" href="#L137">137</a> <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> assertModifiable() {
+<a class="jxr_linenumber" name="L138" href="#L138">138</a> <strong class="jxr_keyword">if</strong> (unmodifiable)
+<a class="jxr_linenumber" name="L139" href="#L139">139</a> <strong class="jxr_keyword">throw</strong> unsupportedOp(<span class="jxr_string">"Bean is read-only"</span>);
+<a class="jxr_linenumber" name="L140" href="#L140">140</a> }
+<a class="jxr_linenumber" name="L141" href="#L141">141</a>
+<a class="jxr_linenumber" name="L142" href="#L142">142</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L143" href="#L143">143</a> <em class="jxr_javadoccomment"> * Specifies whether this bean should be unmodifiable.</em>
+<a class="jxr_linenumber" name="L144" href="#L144">144</a> <em class="jxr_javadoccomment"> * <p></em>
+<a class="jxr_linenumber" name="L145" href="#L145">145</a> <em class="jxr_javadoccomment"> * When enabled, attempting to set any properties on this bean will cause an {@link UnsupportedOperationException}.</em>
+<a class="jxr_linenumber" name="L146" href="#L146">146</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L147" href="#L147">147</a> <em class="jxr_javadoccomment"> * @return This object.</em>
+<a class="jxr_linenumber" name="L148" href="#L148">148</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L149" href="#L149">149</a> <strong class="jxr_keyword">protected</strong> <a name="BasicRuntimeException" href="../../../org/apache/juneau/BasicRuntimeException.html#BasicRuntimeException">BasicRuntimeException</a> setUnmodifiable() {
+<a class="jxr_linenumber" name="L150" href="#L150">150</a> unmodifiable = <strong class="jxr_keyword">true</strong>;
+<a class="jxr_linenumber" name="L151" href="#L151">151</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L152" href="#L152">152</a> }
+<a class="jxr_linenumber" name="L153" href="#L153">153</a> }
</pre>
<hr/>
<div id="footer">© 2016–2025 <a href="https://www.apache.org/">The Apache Software Foundation</a></div>
diff --git a/site/xref/org/apache/juneau/BeanSession.html b/site/xref/org/apache/juneau/BeanSession.html
index 3a438235c8..91a9293828 100644
--- a/site/xref/org/apache/juneau/BeanSession.html
+++ b/site/xref/org/apache/juneau/BeanSession.html
@@ -317,7 +317,7 @@
<a class="jxr_linenumber" name="L309" href="#L309">309</a> @Override
<a class="jxr_linenumber" name="L310" href="#L310">310</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addWarning(String msg, Object...args) {
<a class="jxr_linenumber" name="L311" href="#L311">311</a> <strong class="jxr_keyword">if</strong> (isDebug())
-<a class="jxr_linenumber" name="L312" href="#L312">312</a> LOG.log(Level.WARNING, () -> args.length == 0 ? msg : MessageFormat.format(msg, args));
+<a class="jxr_linenumber" name="L312" href="#L312">312</a> LOG.log(Level.WARNING, () -> args.length == 0 ? msg : f(msg, args));
<a class="jxr_linenumber" name="L313" href="#L313">313</a> <strong class="jxr_keyword">super</strong>.addWarning(msg, args);
<a class="jxr_linenumber" name="L314" href="#L314">314</a> }
<a class="jxr_linenumber" name="L315" href="#L315">315</a>
diff --git a/site/xref/org/apache/juneau/ContextSession.html b/site/xref/org/apache/juneau/ContextSession.html
index ae130366d8..8a76818189 100644
--- a/site/xref/org/apache/juneau/ContextSession.html
+++ b/site/xref/org/apache/juneau/ContextSession.html
@@ -197,7 +197,7 @@
<a class="jxr_linenumber" name="L189" href="#L189">189</a> <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L190" href="#L190">190</a> <strong class="jxr_keyword">if</strong> (warnings == <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L191" href="#L191">191</a> warnings = <strong class="jxr_keyword">new</strong> LinkedList<>();
-<a class="jxr_linenumber" name="L192" href="#L192">192</a> warnings.add((warnings.size() + 1) + <span class="jxr_string">": "</span> + mformat(msg, args));
+<a class="jxr_linenumber" name="L192" href="#L192">192</a> warnings.add((warnings.size() + 1) + <span class="jxr_string">": "</span> + f(msg, args));
<a class="jxr_linenumber" name="L193" href="#L193">193</a> }
<a class="jxr_linenumber" name="L194" href="#L194">194</a>
<a class="jxr_linenumber" name="L195" href="#L195">195</a> <em class="jxr_javadoccomment">/**</em>
diff --git a/site/xref/org/apache/juneau/assertions/Assertion.html b/site/xref/org/apache/juneau/assertions/Assertion.html
index 07471ba431..12d5a107e1 100644
--- a/site/xref/org/apache/juneau/assertions/Assertion.html
+++ b/site/xref/org/apache/juneau/assertions/Assertion.html
@@ -223,7 +223,7 @@
<a class="jxr_linenumber" name="L215" href="#L215">215</a> <strong class="jxr_keyword">protected</strong> <a name="BasicAssertionError" href="../../../../org/apache/juneau/BasicAssertionError.html#BasicAssertionError">BasicAssertionError</a> error(Throwable cause, String msg, Object...args) {
<a class="jxr_linenumber" name="L216" href="#L216">216</a> msg = mformat(msg, args);
<a class="jxr_linenumber" name="L217" href="#L217">217</a> <strong class="jxr_keyword">if</strong> (nn(<strong class="jxr_keyword">this</strong>.msg))
-<a class="jxr_linenumber" name="L218" href="#L218">218</a> msg = mformat(<strong class="jxr_keyword">this</strong>.msg, <strong class="jxr_keyword">this</strong>.msgArgs).replace(<span class="jxr_string">"<<<MSG>>>"</span>, msg);
+<a class="jxr_linenumber" name="L218" href="#L218">218</a> msg = f(<strong class="jxr_keyword">this</strong>.msg, <strong class="jxr_keyword">this</strong>.msgArgs).replace(<span class="jxr_string">"<<<MSG>>>"</span>, msg);
<a class="jxr_linenumber" name="L219" href="#L219">219</a> <strong class="jxr_keyword">if</strong> (nn(out))
<a class="jxr_linenumber" name="L220" href="#L220">220</a> out.println(msg);
<a class="jxr_linenumber" name="L221" href="#L221">221</a> <strong class="jxr_keyword">if</strong> (nn(throwable)) {
diff --git a/site/xref/org/apache/juneau/bean/LinkString.html b/site/xref/org/apache/juneau/bean/LinkString.html
index 9937cf633c..0f2f95b043 100644
--- a/site/xref/org/apache/juneau/bean/LinkString.html
+++ b/site/xref/org/apache/juneau/bean/LinkString.html
@@ -160,7 +160,7 @@
<a class="jxr_linenumber" name="L152" href="#L152">152</a> } <strong class="jxr_keyword">catch</strong> (<a name="SchemaValidationException" href="../../../../org/apache/juneau/httppart/SchemaValidationException.html#SchemaValidationException">SchemaValidationException</a> | <a name="SerializeException" href="../../../../org/apache/juneau/serializer/SerializeException.html#SerializeException">SerializeException</a> e) {
<a class="jxr_linenumber" name="L153" href="#L153">153</a> <strong class="jxr_keyword">throw</strong> toRex(e);
<a class="jxr_linenumber" name="L154" href="#L154">154</a> }
-<a class="jxr_linenumber" name="L155" href="#L155">155</a> <strong class="jxr_keyword">this</strong>.uri = java.net.URI.create(mformat(value, args));
+<a class="jxr_linenumber" name="L155" href="#L155">155</a> <strong class="jxr_keyword">this</strong>.uri = java.net.URI.create(f(value, args));
<a class="jxr_linenumber" name="L156" href="#L156">156</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
<a class="jxr_linenumber" name="L157" href="#L157">157</a> }
<a class="jxr_linenumber" name="L158" href="#L158">158</a>
diff --git a/site/xref/org/apache/juneau/common/reflect/ExecutableInfo.html b/site/xref/org/apache/juneau/common/reflect/ExecutableInfo.html
index 3f4780fdcc..4acc1518c4 100644
--- a/site/xref/org/apache/juneau/common/reflect/ExecutableInfo.html
+++ b/site/xref/org/apache/juneau/common/reflect/ExecutableInfo.html
@@ -761,9 +761,9 @@
<a class="jxr_linenumber" name="L753" href="#L753">753</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> checkIndex(<strong class="jxr_keyword">int</strong> index) {
<a class="jxr_linenumber" name="L754" href="#L754">754</a> <strong class="jxr_keyword">int</strong> pc = getParameterCount();
<a class="jxr_linenumber" name="L755" href="#L755">755</a> <strong class="jxr_keyword">if</strong> (pc == 0)
-<a class="jxr_linenumber" name="L756" href="#L756">756</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IndexOutOfBoundsException(mformat(<span class="jxr_string">"Invalid index ''{0}''. No parameters."</span>, index));
+<a class="jxr_linenumber" name="L756" href="#L756">756</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IndexOutOfBoundsException(f(<span class="jxr_string">"Invalid index ''{0}''. No parameters."</span>, index));
<a class="jxr_linenumber" name="L757" href="#L757">757</a> <strong class="jxr_keyword">if</strong> (index < 0 || index >= pc)
-<a class="jxr_linenumber" name="L758" href="#L758">758</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IndexOutOfBoundsException(mformat(<span class="jxr_string">"Invalid index ''{0}''. Parameter count: {1}"</span>, index, pc));
+<a class="jxr_linenumber" name="L758" href="#L758">758</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IndexOutOfBoundsException(f(<span class="jxr_string">"Invalid index ''{0}''. Parameter count: {1}"</span>, index, pc));
<a class="jxr_linenumber" name="L759" href="#L759">759</a> }
<a class="jxr_linenumber" name="L760" href="#L760">760</a>
<a class="jxr_linenumber" name="L761" href="#L761">761</a> <strong class="jxr_keyword">private</strong> List<ParameterInfo> findParameters() {
diff --git a/site/xref/org/apache/juneau/common/utils/FormatString.html b/site/xref/org/apache/juneau/common/utils/FormatString.html
deleted file mode 100644
index 1612d56cc5..0000000000
--- a/site/xref/org/apache/juneau/common/utils/FormatString.html
+++ /dev/null
@@ -1,737 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="" lang="">
-<head><meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-<title>FormatString xref</title>
-<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
-</head>
-<body>
-<div id="overview"><a href="../../../../../../apidocs/org/apache/juneau/common/utils/FormatString.html">View Javadoc</a></div><pre>
-<a class="jxr_linenumber" name="L1" href="#L1">1</a> <em class="jxr_comment">/*</em>
-<a class="jxr_linenumber" name="L2" href="#L2">2</a> <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</em>
-<a class="jxr_linenumber" name="L3" href="#L3">3</a> <em class="jxr_comment"> * contributor license agreements. See the NOTICE file distributed with</em>
-<a class="jxr_linenumber" name="L4" href="#L4">4</a> <em class="jxr_comment"> * this work for additional information regarding copyright ownership.</em>
-<a class="jxr_linenumber" name="L5" href="#L5">5</a> <em class="jxr_comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</em>
-<a class="jxr_linenumber" name="L6" href="#L6">6</a> <em class="jxr_comment"> * (the "License"); you may not use this file except in compliance with</em>
-<a class="jxr_linenumber" name="L7" href="#L7">7</a> <em class="jxr_comment"> * the License. You may obtain a copy of the License at</em>
-<a class="jxr_linenumber" name="L8" href="#L8">8</a> <em class="jxr_comment"> *</em>
-<a class="jxr_linenumber" name="L9" href="#L9">9</a> <em class="jxr_comment"> * <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
-<a class="jxr_linenumber" name="L10" href="#L10">10</a> <em class="jxr_comment"> *</em>
-<a class="jxr_linenumber" name="L11" href="#L11">11</a> <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing, software</em>
-<a class="jxr_linenumber" name="L12" href="#L12">12</a> <em class="jxr_comment"> * distributed under the License is distributed on an "AS IS" BASIS,</em>
-<a class="jxr_linenumber" name="L13" href="#L13">13</a> <em class="jxr_comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
-<a class="jxr_linenumber" name="L14" href="#L14">14</a> <em class="jxr_comment"> * See the License for the specific language governing permissions and</em>
-<a class="jxr_linenumber" name="L15" href="#L15">15</a> <em class="jxr_comment"> * limitations under the License.</em>
-<a class="jxr_linenumber" name="L16" href="#L16">16</a> <em class="jxr_comment"> */</em>
-<a class="jxr_linenumber" name="L17" href="#L17">17</a> <strong class="jxr_keyword">package</strong> org.apache.juneau.common.utils;
-<a class="jxr_linenumber" name="L18" href="#L18">18</a>
-<a class="jxr_linenumber" name="L19" href="#L19">19</a> <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.juneau.common.utils.AssertionUtils.*;
-<a class="jxr_linenumber" name="L20" href="#L20">20</a> <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.juneau.common.utils.CollectionUtils.*;
-<a class="jxr_linenumber" name="L21" href="#L21">21</a> <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.juneau.common.utils.StateEnum.*;
-<a class="jxr_linenumber" name="L22" href="#L22">22</a> <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.juneau.common.utils.Utils.*;
-<a class="jxr_linenumber" name="L23" href="#L23">23</a>
-<a class="jxr_linenumber" name="L24" href="#L24">24</a> <strong class="jxr_keyword">import</strong> java.text.*;
-<a class="jxr_linenumber" name="L25" href="#L25">25</a> <strong class="jxr_keyword">import</strong> java.util.*;
-<a class="jxr_linenumber" name="L26" href="#L26">26</a> <strong class="jxr_keyword">import</strong> java.util.stream.*;
-<a class="jxr_linenumber" name="L27" href="#L27">27</a> <strong class="jxr_keyword">import</strong> java.util.MissingFormatArgumentException;
-<a class="jxr_linenumber" name="L28" href="#L28">28</a>
-<a class="jxr_linenumber" name="L29" href="#L29">29</a> <strong class="jxr_keyword">import</strong> org.apache.juneau.common.collections.*;
-<a class="jxr_linenumber" name="L30" href="#L30">30</a>
-<a class="jxr_linenumber" name="L31" href="#L31">31</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L32" href="#L32">32</a> <em class="jxr_javadoccomment"> * Unified string formatter supporting both MessageFormat-style and printf-style formatting in the same pattern.</em>
-<a class="jxr_linenumber" name="L33" href="#L33">33</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L34" href="#L34">34</a> <em class="jxr_javadoccomment"> * <p></em>
-<a class="jxr_linenumber" name="L35" href="#L35">35</a> <em class="jxr_javadoccomment"> * This class provides a thread-safe, cacheable formatter that can handle mixed format styles in a single pattern.</em>
-<a class="jxr_linenumber" name="L36" href="#L36">36</a> <em class="jxr_javadoccomment"> * It supports both MessageFormat syntax (<js>"{0}"</js>, <js>"{1,number}"</js>) and printf syntax (<js>"%s"</js>, <js>"%d"</js>)</em>
-<a class="jxr_linenumber" name="L37" href="#L37">37</a> <em class="jxr_javadoccomment"> * within the same string.</em>
-<a class="jxr_linenumber" name="L38" href="#L38">38</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L39" href="#L39">39</a> <em class="jxr_javadoccomment"> * <h5 class='section'>Features:</h5></em>
-<a class="jxr_linenumber" name="L40" href="#L40">40</a> <em class="jxr_javadoccomment"> * <ul></em>
-<a class="jxr_linenumber" name="L41" href="#L41">41</a> <em class="jxr_javadoccomment"> * <li><b>Dual Format Support:</b> Mix MessageFormat and printf-style placeholders in the same pattern</li></em>
-<a class="jxr_linenumber" name="L42" href="#L42">42</a> <em class="jxr_javadoccomment"> * <li><b>Thread-Safe:</b> Immutable class, safe for concurrent use</li></em>
-<a class="jxr_linenumber" name="L43" href="#L43">43</a> <em class="jxr_javadoccomment"> * <li><b>Cacheable:</b> Use {@link #of(String)} for cached instances</li></em>
-<a class="jxr_linenumber" name="L44" href="#L44">44</a> <em class="jxr_javadoccomment"> * <li><b>Argument Sharing:</b> Both format styles share the same argument array</li></em>
-<a class="jxr_linenumber" name="L45" href="#L45">45</a> <em class="jxr_javadoccomment"> * </ul></em>
-<a class="jxr_linenumber" name="L46" href="#L46">46</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L47" href="#L47">47</a> <em class="jxr_javadoccomment"> * <h5 class='section'>Format Style Detection:</h5></em>
-<a class="jxr_linenumber" name="L48" href="#L48">48</a> <em class="jxr_javadoccomment"> * <p></em>
-<a class="jxr_linenumber" name="L49" href="#L49">49</a> <em class="jxr_javadoccomment"> * The formatter automatically detects which style to use for each placeholder:</em>
-<a class="jxr_linenumber" name="L50" href="#L50">50</a> <em class="jxr_javadoccomment"> * <ul></em>
-<a class="jxr_linenumber" name="L51" href="#L51">51</a> <em class="jxr_javadoccomment"> * <li><b>MessageFormat style:</b> <js>"{0}"</js>, <js>"{1,number}"</js>, <js>"{2,date}"</js>, etc.</li></em>
-<a class="jxr_linenumber" name="L52" href="#L52">52</a> <em class="jxr_javadoccomment"> * <li><b>Printf style:</b> <js>"%s"</js>, <js>"%d"</js>, <js>"%.2f"</js>, <js>"%1$s"</js>, etc.</li></em>
-<a class="jxr_linenumber" name="L53" href="#L53">53</a> <em class="jxr_javadoccomment"> * </ul></em>
-<a class="jxr_linenumber" name="L54" href="#L54">54</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L55" href="#L55">55</a> <em class="jxr_javadoccomment"> * <h5 class='section'>Argument Mapping:</h5></em>
-<a class="jxr_linenumber" name="L56" href="#L56">56</a> <em class="jxr_javadoccomment"> * <p></em>
-<a class="jxr_linenumber" name="L57" href="#L57">57</a> <em class="jxr_javadoccomment"> * Arguments are processed in order of appearance:</em>
-<a class="jxr_linenumber" name="L58" href="#L58">58</a> <em class="jxr_javadoccomment"> * <ul></em>
-<a class="jxr_linenumber" name="L59" href="#L59">59</a> <em class="jxr_javadoccomment"> * <li><b>MessageFormat placeholders:</b> Use explicit indices (e.g., <js>"{0}"</js> uses <c>args[0]</c>)</li></em>
-<a class="jxr_linenumber" name="L60" href="#L60">60</a> <em class="jxr_javadoccomment"> * <li><b>Printf placeholders:</b> Use sequential indices starting after the highest MessageFormat index</li></em>
-<a class="jxr_linenumber" name="L61" href="#L61">61</a> <em class="jxr_javadoccomment"> * </ul></em>
-<a class="jxr_linenumber" name="L62" href="#L62">62</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L63" href="#L63">63</a> <em class="jxr_javadoccomment"> * <h5 class='section'>Examples:</h5></em>
-<a class="jxr_linenumber" name="L64" href="#L64">64</a> <em class="jxr_javadoccomment"> * <p class='bjava'></em>
-<a class="jxr_linenumber" name="L65" href="#L65">65</a> <em class="jxr_javadoccomment"> * <jc>// Mixed format styles</jc></em>
-<a class="jxr_linenumber" name="L66" href="#L66">66</a> <em class="jxr_javadoccomment"> * FormatString <jv>fmt</jv> = FormatString.<jsm>of</jsm>(<js>"Hello {0}, you have %d items"</js>);</em>
-<a class="jxr_linenumber" name="L67" href="#L67">67</a> <em class="jxr_javadoccomment"> * String <jv>result</jv> = <jv>fmt</jv>.<jsm>format</jsm>(<js>"John"</js>, 5);</em>
-<a class="jxr_linenumber" name="L68" href="#L68">68</a> <em class="jxr_javadoccomment"> * <jc>// Returns: "Hello John, you have 5 items"</jc></em>
-<a class="jxr_linenumber" name="L69" href="#L69">69</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L70" href="#L70">70</a> <em class="jxr_javadoccomment"> * <jc>// MessageFormat with explicit indices, printf with sequential</jc></em>
-<a class="jxr_linenumber" name="L71" href="#L71">71</a> <em class="jxr_javadoccomment"> * FormatString <jv>fmt2</jv> = FormatString.<jsm>of</jsm>(<js>"User {0} has %s and {1} items"</js>);</em>
-<a class="jxr_linenumber" name="L72" href="#L72">72</a> <em class="jxr_javadoccomment"> * String <jv>result2</jv> = <jv>fmt2</jv>.<jsm>format</jsm>(<js>"Alice"</js>, 10, <js>"admin"</js>);</em>
-<a class="jxr_linenumber" name="L73" href="#L73">73</a> <em class="jxr_javadoccomment"> * <jc>// Returns: "User Alice has admin and 10 items"</jc></em>
-<a class="jxr_linenumber" name="L74" href="#L74">74</a> <em class="jxr_javadoccomment"> * <jc>// {0} -> "Alice", {1} -> 10, %s -> "admin"</jc></em>
-<a class="jxr_linenumber" name="L75" href="#L75">75</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L76" href="#L76">76</a> <em class="jxr_javadoccomment"> * <jc>// Printf with explicit indices</jc></em>
-<a class="jxr_linenumber" name="L77" href="#L77">77</a> <em class="jxr_javadoccomment"> * FormatString <jv>fmt3</jv> = FormatString.<jsm>of</jsm>(<js>"%1$s loves %2$s, and {0} also loves %3$s"</js>);</em>
-<a class="jxr_linenumber" name="L78" href="#L78">78</a> <em class="jxr_javadoccomment"> * String <jv>result3</jv> = <jv>fmt3</jv>.<jsm>format</jsm>(<js>"Alice"</js>, <js>"Bob"</js>, <js>"Charlie"</js>);</em>
-<a class="jxr_linenumber" name="L79" href="#L79">79</a> <em class="jxr_javadoccomment"> * <jc>// Returns: "Alice loves Bob, and Alice also loves Charlie"</jc></em>
-<a class="jxr_linenumber" name="L80" href="#L80">80</a> <em class="jxr_javadoccomment"> * </p></em>
-<a class="jxr_linenumber" name="L81" href="#L81">81</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L82" href="#L82">82</a> <em class="jxr_javadoccomment"> * <h5 class='section'>Caching:</h5></em>
-<a class="jxr_linenumber" name="L83" href="#L83">83</a> <em class="jxr_javadoccomment"> * <p></em>
-<a class="jxr_linenumber" name="L84" href="#L84">84</a> <em class="jxr_javadoccomment"> * Use {@link #of(String)} to get cached instances. The cache is thread-safe and limited to 1000 entries.</em>
-<a class="jxr_linenumber" name="L85" href="#L85">85</a> <em class="jxr_javadoccomment"> * For uncached instances, use the constructor directly.</em>
-<a class="jxr_linenumber" name="L86" href="#L86">86</a> <em class="jxr_javadoccomment"> * </p></em>
-<a class="jxr_linenumber" name="L87" href="#L87">87</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L88" href="#L88">88</a> <em class="jxr_javadoccomment"> * <h5 class='section'>Thread Safety:</h5></em>
-<a class="jxr_linenumber" name="L89" href="#L89">89</a> <em class="jxr_javadoccomment"> * <p></em>
-<a class="jxr_linenumber" name="L90" href="#L90">90</a> <em class="jxr_javadoccomment"> * This class is immutable and thread-safe. Multiple threads can safely use the same instance concurrently.</em>
-<a class="jxr_linenumber" name="L91" href="#L91">91</a> <em class="jxr_javadoccomment"> * </p></em>
-<a class="jxr_linenumber" name="L92" href="#L92">92</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L93" href="#L93">93</a> <em class="jxr_javadoccomment"> * @see StringUtils#format(String, Object...)</em>
-<a class="jxr_linenumber" name="L94" href="#L94">94</a> <em class="jxr_javadoccomment"> * @see StringUtils#mformat(String, Object...)</em>
-<a class="jxr_linenumber" name="L95" href="#L95">95</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L96" href="#L96">96</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a name="FormatString" href="../../../../../org/apache/juneau/common/utils/FormatString.html#FormatString">FormatString</a> {
-<a class="jxr_linenumber" name="L97" href="#L97">97</a>
-<a class="jxr_linenumber" name="L98" href="#L98">98</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Cache<String,FormatString> CACHE = Cache.of(String.<strong class="jxr_keyword">class</strong>, FormatString.<strong class="jxr_keyword">class</strong>).maxSize(1000).weak().build();
-<a class="jxr_linenumber" name="L99" href="#L99">99</a>
-<a class="jxr_linenumber" name="L100" href="#L100">100</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Cache2<Locale,String,MessageFormat> MESSAGE_FORMAT_CACHE = Cache2.of(Locale.<strong class="jxr_keyword">class</strong>, String.<strong class="jxr_keyword">class</strong>, MessageFormat.<strong class="jxr_keyword">class</strong>).maxSize(100).threadLocal().weak()
-<a class="jxr_linenumber" name="L101" href="#L101">101</a> .supplier((locale, content) -> <strong class="jxr_keyword">new</strong> MessageFormat(content, locale)).build();
-<a class="jxr_linenumber" name="L102" href="#L102">102</a>
-<a class="jxr_linenumber" name="L103" href="#L103">103</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Cache<Locale,NumberFormat> NUMBER_FORMAT_CACHE = Cache.of(Locale.<strong class="jxr_keyword">class</strong>, NumberFormat.<strong class="jxr_keyword">class</strong>).maxSize(50).threadLocal().weak().supplier(NumberFormat::getInstance).build();
-<a class="jxr_linenumber" name="L104" href="#L104">104</a>
-<a class="jxr_linenumber" name="L105" href="#L105">105</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Cache<Locale,DateFormat> DATE_FORMAT_CACHE = Cache.of(Locale.<strong class="jxr_keyword">class</strong>, DateFormat.<strong class="jxr_keyword">class</strong>).maxSize(50).threadLocal().weak()
-<a class="jxr_linenumber" name="L106" href="#L106">106</a> .supplier(locale -> DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, locale)).build();
-<a class="jxr_linenumber" name="L107" href="#L107">107</a>
-<a class="jxr_linenumber" name="L108" href="#L108">108</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <a name="AsciiSet" href="../../../../../org/apache/juneau/common/utils/AsciiSet.html#AsciiSet">AsciiSet</a> PRINTF_CONVERSION_CHARS = AsciiSet.of(<span class="jxr_string">"bBhHsScCdoxXeEfgGaAtTn%"</span>);
-<a class="jxr_linenumber" name="L109" href="#L109">109</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <a name="AsciiSet" href="../../../../../org/apache/juneau/common/utils/AsciiSet.html#AsciiSet">AsciiSet</a> PRINTF_FORMAT_CHARS = AsciiSet.of(<span class="jxr_string">"-+ 0(#.*$"</span>);
-<a class="jxr_linenumber" name="L110" href="#L110">110</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <a name="AsciiSet" href="../../../../../org/apache/juneau/common/utils/AsciiSet.html#AsciiSet">AsciiSet</a> FORMAT_CHARS = AsciiSet.of(<span class="jxr_string">"%{'"</span>);
-<a class="jxr_linenumber" name="L111" href="#L111">111</a>
-<a class="jxr_linenumber" name="L112" href="#L112">112</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L113" href="#L113">113</a> <em class="jxr_javadoccomment"> * Formats a pattern string with the given arguments using the default locale.</em>
-<a class="jxr_linenumber" name="L114" href="#L114">114</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L115" href="#L115">115</a> <em class="jxr_javadoccomment"> * <p></em>
-<a class="jxr_linenumber" name="L116" href="#L116">116</a> <em class="jxr_javadoccomment"> * This is a convenience method that creates a FormatString instance and formats it.</em>
-<a class="jxr_linenumber" name="L117" href="#L117">117</a> <em class="jxr_javadoccomment"> * If the pattern contains no format specifiers (no '%', '{', or '''), the pattern is returned as-is.</em>
-<a class="jxr_linenumber" name="L118" href="#L118">118</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L119" href="#L119">119</a> <em class="jxr_javadoccomment"> * @param pattern The format pattern.</em>
-<a class="jxr_linenumber" name="L120" href="#L120">120</a> <em class="jxr_javadoccomment"> * @param args The arguments to format.</em>
-<a class="jxr_linenumber" name="L121" href="#L121">121</a> <em class="jxr_javadoccomment"> * @return The formatted string.</em>
-<a class="jxr_linenumber" name="L122" href="#L122">122</a> <em class="jxr_javadoccomment"> * @throws IllegalArgumentException If the pattern is <jk>null</jk> or format specifiers are invalid.</em>
-<a class="jxr_linenumber" name="L123" href="#L123">123</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L124" href="#L124">124</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String format(String pattern, Object...args) {
-<a class="jxr_linenumber" name="L125" href="#L125">125</a> <strong class="jxr_keyword">if</strong> (!hasArgs(pattern))
-<a class="jxr_linenumber" name="L126" href="#L126">126</a> <strong class="jxr_keyword">return</strong> pattern;
-<a class="jxr_linenumber" name="L127" href="#L127">127</a> <strong class="jxr_keyword">return</strong> of(pattern).format(args);
-<a class="jxr_linenumber" name="L128" href="#L128">128</a> }
-<a class="jxr_linenumber" name="L129" href="#L129">129</a>
-<a class="jxr_linenumber" name="L130" href="#L130">130</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L131" href="#L131">131</a> <em class="jxr_javadoccomment"> * Formats a pattern string with the given arguments using the specified locale.</em>
-<a class="jxr_linenumber" name="L132" href="#L132">132</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L133" href="#L133">133</a> <em class="jxr_javadoccomment"> * <p></em>
-<a class="jxr_linenumber" name="L134" href="#L134">134</a> <em class="jxr_javadoccomment"> * This is a convenience method that creates a FormatString instance and formats it.</em>
-<a class="jxr_linenumber" name="L135" href="#L135">135</a> <em class="jxr_javadoccomment"> * If the pattern contains no format specifiers (no '%', '{', or '''), the pattern is returned as-is.</em>
-<a class="jxr_linenumber" name="L136" href="#L136">136</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L137" href="#L137">137</a> <em class="jxr_javadoccomment"> * @param pattern The format pattern.</em>
-<a class="jxr_linenumber" name="L138" href="#L138">138</a> <em class="jxr_javadoccomment"> * @param locale The locale to use for formatting. If <jk>null</jk>, uses the default locale.</em>
-<a class="jxr_linenumber" name="L139" href="#L139">139</a> <em class="jxr_javadoccomment"> * @param args The arguments to format.</em>
-<a class="jxr_linenumber" name="L140" href="#L140">140</a> <em class="jxr_javadoccomment"> * @return The formatted string.</em>
-<a class="jxr_linenumber" name="L141" href="#L141">141</a> <em class="jxr_javadoccomment"> * @throws IllegalArgumentException If the pattern is <jk>null</jk> or format specifiers are invalid.</em>
-<a class="jxr_linenumber" name="L142" href="#L142">142</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L143" href="#L143">143</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String format(String pattern, Locale locale, Object...args) {
-<a class="jxr_linenumber" name="L144" href="#L144">144</a> <strong class="jxr_keyword">if</strong> (!hasArgs(pattern))
-<a class="jxr_linenumber" name="L145" href="#L145">145</a> <strong class="jxr_keyword">return</strong> pattern;
-<a class="jxr_linenumber" name="L146" href="#L146">146</a> <strong class="jxr_keyword">return</strong> of(pattern).format(locale, args);
-<a class="jxr_linenumber" name="L147" href="#L147">147</a> }
-<a class="jxr_linenumber" name="L148" href="#L148">148</a>
-<a class="jxr_linenumber" name="L149" href="#L149">149</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L150" href="#L150">150</a> <em class="jxr_javadoccomment"> * Checks if a pattern contains any format specifiers.</em>
-<a class="jxr_linenumber" name="L151" href="#L151">151</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L152" href="#L152">152</a> <em class="jxr_javadoccomment"> * <p></em>
-<a class="jxr_linenumber" name="L153" href="#L153">153</a> <em class="jxr_javadoccomment"> * Returns <jk>true</jk> if the pattern contains any of the following characters:</em>
-<a class="jxr_linenumber" name="L154" href="#L154">154</a> <em class="jxr_javadoccomment"> * <ul></em>
-<a class="jxr_linenumber" name="L155" href="#L155">155</a> <em class="jxr_javadoccomment"> * <li><js>'%'</js> - Printf-style format specifier</li></em>
-<a class="jxr_linenumber" name="L156" href="#L156">156</a> <em class="jxr_javadoccomment"> * <li><js>'{'</js> - MessageFormat-style placeholder</li></em>
-<a class="jxr_linenumber" name="L157" href="#L157">157</a> <em class="jxr_javadoccomment"> * <li><js>'''</js> - MessageFormat quote</li></em>
-<a class="jxr_linenumber" name="L158" href="#L158">158</a> <em class="jxr_javadoccomment"> * </ul></em>
-<a class="jxr_linenumber" name="L159" href="#L159">159</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L160" href="#L160">160</a> <em class="jxr_javadoccomment"> * <p></em>
-<a class="jxr_linenumber" name="L161" href="#L161">161</a> <em class="jxr_javadoccomment"> * Uses {@link AsciiSet} for efficient single-pass scanning of the string.</em>
-<a class="jxr_linenumber" name="L162" href="#L162">162</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L163" href="#L163">163</a> <em class="jxr_javadoccomment"> * @param pattern The pattern to check.</em>
-<a class="jxr_linenumber" name="L164" href="#L164">164</a> <em class="jxr_javadoccomment"> * @return <jk>true</jk> if the pattern contains format specifiers, <jk>false</jk> otherwise.</em>
-<a class="jxr_linenumber" name="L165" href="#L165">165</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L166" href="#L166">166</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> hasArgs(String pattern) {
-<a class="jxr_linenumber" name="L167" href="#L167">167</a> <strong class="jxr_keyword">if</strong> (pattern == <strong class="jxr_keyword">null</strong> || pattern.isEmpty())
-<a class="jxr_linenumber" name="L168" href="#L168">168</a> <strong class="jxr_keyword">return</strong> false;
-<a class="jxr_linenumber" name="L169" href="#L169">169</a> <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> i = 0; i < pattern.length(); i++) {
-<a class="jxr_linenumber" name="L170" href="#L170">170</a> <strong class="jxr_keyword">if</strong> (FORMAT_CHARS.contains(pattern.charAt(i)))
-<a class="jxr_linenumber" name="L171" href="#L171">171</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
-<a class="jxr_linenumber" name="L172" href="#L172">172</a> }
-<a class="jxr_linenumber" name="L173" href="#L173">173</a> <strong class="jxr_keyword">return</strong> false;
-<a class="jxr_linenumber" name="L174" href="#L174">174</a> }
-<a class="jxr_linenumber" name="L175" href="#L175">175</a>
-<a class="jxr_linenumber" name="L176" href="#L176">176</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L177" href="#L177">177</a> <em class="jxr_javadoccomment"> * Base class for format tokens.</em>
-<a class="jxr_linenumber" name="L178" href="#L178">178</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L179" href="#L179">179</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> Token {
-<a class="jxr_linenumber" name="L180" href="#L180">180</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L181" href="#L181">181</a> <em class="jxr_javadoccomment"> * Appends the formatted content to the StringBuilder.</em>
-<a class="jxr_linenumber" name="L182" href="#L182">182</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L183" href="#L183">183</a> <em class="jxr_javadoccomment"> * @param sb The StringBuilder to append to.</em>
-<a class="jxr_linenumber" name="L184" href="#L184">184</a> <em class="jxr_javadoccomment"> * @param args The arguments array.</em>
-<a class="jxr_linenumber" name="L185" href="#L185">185</a> <em class="jxr_javadoccomment"> * @param locale The locale for formatting (can be null for default).</em>
-<a class="jxr_linenumber" name="L186" href="#L186">186</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L187" href="#L187">187</a> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">void</strong> append(StringBuilder sb, Object[] args, Locale locale);
-<a class="jxr_linenumber" name="L188" href="#L188">188</a> }
-<a class="jxr_linenumber" name="L189" href="#L189">189</a>
-<a class="jxr_linenumber" name="L190" href="#L190">190</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L191" href="#L191">191</a> <em class="jxr_javadoccomment"> * Literal text token.</em>
-<a class="jxr_linenumber" name="L192" href="#L192">192</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L193" href="#L193">193</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> LiteralToken <strong class="jxr_keyword">extends</strong> Token {
-<a class="jxr_linenumber" name="L194" href="#L194">194</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String text;
-<a class="jxr_linenumber" name="L195" href="#L195">195</a>
-<a class="jxr_linenumber" name="L196" href="#L196">196</a> LiteralToken(String text) {
-<a class="jxr_linenumber" name="L197" href="#L197">197</a> <strong class="jxr_keyword">this</strong>.text = text;
-<a class="jxr_linenumber" name="L198" href="#L198">198</a> }
-<a class="jxr_linenumber" name="L199" href="#L199">199</a>
-<a class="jxr_linenumber" name="L200" href="#L200">200</a> @Override
-<a class="jxr_linenumber" name="L201" href="#L201">201</a> <strong class="jxr_keyword">void</strong> append(StringBuilder sb, Object[] args, Locale locale) {
-<a class="jxr_linenumber" name="L202" href="#L202">202</a> sb.append(text);
-<a class="jxr_linenumber" name="L203" href="#L203">203</a> }
-<a class="jxr_linenumber" name="L204" href="#L204">204</a>
-<a class="jxr_linenumber" name="L205" href="#L205">205</a> @Override
-<a class="jxr_linenumber" name="L206" href="#L206">206</a> <strong class="jxr_keyword">public</strong> String toString() {
-<a class="jxr_linenumber" name="L207" href="#L207">207</a> <strong class="jxr_keyword">return</strong> <span class="jxr_string">"[L:"</span> + text + <span class="jxr_string">"]"</span>;
-<a class="jxr_linenumber" name="L208" href="#L208">208</a> }
-<a class="jxr_linenumber" name="L209" href="#L209">209</a> }
-<a class="jxr_linenumber" name="L210" href="#L210">210</a>
-<a class="jxr_linenumber" name="L211" href="#L211">211</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L212" href="#L212">212</a> <em class="jxr_javadoccomment"> * MessageFormat-style token (e.g., {0}, {1,number}).</em>
-<a class="jxr_linenumber" name="L213" href="#L213">213</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L214" href="#L214">214</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> MessageFormatToken <strong class="jxr_keyword">extends</strong> Token {
-<a class="jxr_linenumber" name="L215" href="#L215">215</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">char</strong> format;
-<a class="jxr_linenumber" name="L216" href="#L216">216</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String content; <em class="jxr_comment">// null for simple tokens, normalized pattern like "{0,number}" for complex tokens</em>
-<a class="jxr_linenumber" name="L217" href="#L217">217</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> index; <em class="jxr_comment">// 0-based index</em>
-<a class="jxr_linenumber" name="L218" href="#L218">218</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String placeholder; <em class="jxr_comment">// Original placeholder text like "{0}" or "{0,number}"</em>
-<a class="jxr_linenumber" name="L219" href="#L219">219</a>
-<a class="jxr_linenumber" name="L220" href="#L220">220</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L221" href="#L221">221</a> <em class="jxr_javadoccomment"> * @param content - The variable content such as "{}" or "{0}", or "{0,number}"</em>
-<a class="jxr_linenumber" name="L222" href="#L222">222</a> <em class="jxr_javadoccomment"> * The content should have the curly-braces already removed so that we're only looking at the inner parts.</em>
-<a class="jxr_linenumber" name="L223" href="#L223">223</a> <em class="jxr_javadoccomment"> * @param index - The zero-based index of the variable in the message (used for sequential {} placeholders).</em>
-<a class="jxr_linenumber" name="L224" href="#L224">224</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L225" href="#L225">225</a> MessageFormatToken(String content, <strong class="jxr_keyword">int</strong> index) {
-<a class="jxr_linenumber" name="L226" href="#L226">226</a> <strong class="jxr_keyword">if</strong> (content.isBlank()) {
-<a class="jxr_linenumber" name="L227" href="#L227">227</a> <strong class="jxr_keyword">this</strong>.content = <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L228" href="#L228">228</a> <strong class="jxr_keyword">this</strong>.index = index;
-<a class="jxr_linenumber" name="L229" href="#L229">229</a> <strong class="jxr_keyword">this</strong>.format = 's';
-<a class="jxr_linenumber" name="L230" href="#L230">230</a> <strong class="jxr_keyword">this</strong>.placeholder = <span class="jxr_string">"{"</span> + index + <span class="jxr_string">"}"</span>;
-<a class="jxr_linenumber" name="L231" href="#L231">231</a> } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (content.indexOf(',') == -1) {
-<a class="jxr_linenumber" name="L232" href="#L232">232</a> <strong class="jxr_keyword">this</strong>.content = <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L233" href="#L233">233</a> <strong class="jxr_keyword">this</strong>.index = parseIndexMF(content);
-<a class="jxr_linenumber" name="L234" href="#L234">234</a> <strong class="jxr_keyword">this</strong>.format = 's';
-<a class="jxr_linenumber" name="L235" href="#L235">235</a> <strong class="jxr_keyword">this</strong>.placeholder = <span class="jxr_string">"{"</span> + <strong class="jxr_keyword">this</strong>.index + <span class="jxr_string">"}"</span>;
-<a class="jxr_linenumber" name="L236" href="#L236">236</a> } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="L237" href="#L237">237</a> <strong class="jxr_keyword">var</strong> tokens = content.split(<span class="jxr_string">","</span>, 2);
-<a class="jxr_linenumber" name="L238" href="#L238">238</a> <strong class="jxr_keyword">this</strong>.index = parseIndexMF(tokens[0]);
-<a class="jxr_linenumber" name="L239" href="#L239">239</a> <strong class="jxr_keyword">this</strong>.content = <span class="jxr_string">"{0,"</span> + tokens[1] + <span class="jxr_string">"}"</span>;
-<a class="jxr_linenumber" name="L240" href="#L240">240</a> <strong class="jxr_keyword">this</strong>.format = 'o';
-<a class="jxr_linenumber" name="L241" href="#L241">241</a> <strong class="jxr_keyword">this</strong>.placeholder = <span class="jxr_string">"{"</span> + <strong class="jxr_keyword">this</strong>.index + <span class="jxr_string">","</span> + tokens[1] + <span class="jxr_string">"}"</span>;
-<a class="jxr_linenumber" name="L242" href="#L242">242</a> }
-<a class="jxr_linenumber" name="L243" href="#L243">243</a> }
-<a class="jxr_linenumber" name="L244" href="#L244">244</a>
-<a class="jxr_linenumber" name="L245" href="#L245">245</a> @Override
-<a class="jxr_linenumber" name="L246" href="#L246">246</a> <strong class="jxr_keyword">void</strong> append(StringBuilder sb, Object[] args, Locale locale) {
-<a class="jxr_linenumber" name="L247" href="#L247">247</a> <em class="jxr_comment">// MessageFormat inserts the placeholder text if argument is missing</em>
-<a class="jxr_linenumber" name="L248" href="#L248">248</a> <strong class="jxr_keyword">if</strong> (args == <strong class="jxr_keyword">null</strong> || index >= args.length || index < 0) {
-<a class="jxr_linenumber" name="L249" href="#L249">249</a> sb.append(placeholder);
-<a class="jxr_linenumber" name="L250" href="#L250">250</a> <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="L251" href="#L251">251</a> }
-<a class="jxr_linenumber" name="L252" href="#L252">252</a> <strong class="jxr_keyword">var</strong> o = args[index];
-<a class="jxr_linenumber" name="L253" href="#L253">253</a> <strong class="jxr_keyword">var</strong> l = locale == <strong class="jxr_keyword">null</strong> ? Locale.getDefault() : locale;
-<a class="jxr_linenumber" name="L254" href="#L254">254</a> <strong class="jxr_keyword">switch</strong> (format) {
-<a class="jxr_linenumber" name="L255" href="#L255">255</a> <strong class="jxr_keyword">case</strong> 's':
-<a class="jxr_linenumber" name="L256" href="#L256">256</a> <strong class="jxr_keyword">if</strong> (o == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L257" href="#L257">257</a> sb.append(<span class="jxr_string">"null"</span>);
-<a class="jxr_linenumber" name="L258" href="#L258">258</a> } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (o instanceof Number o2) {
-<a class="jxr_linenumber" name="L259" href="#L259">259</a> sb.append(NUMBER_FORMAT_CACHE.get(l).format(o2));
-<a class="jxr_linenumber" name="L260" href="#L260">260</a> } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (o instanceof Date o2) {
-<a class="jxr_linenumber" name="L261" href="#L261">261</a> sb.append(DATE_FORMAT_CACHE.get(l).format(o2));
-<a class="jxr_linenumber" name="L262" href="#L262">262</a> } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="L263" href="#L263">263</a> sb.append(o.toString());
-<a class="jxr_linenumber" name="L264" href="#L264">264</a> }
-<a class="jxr_linenumber" name="L265" href="#L265">265</a> <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="L266" href="#L266">266</a> <strong class="jxr_keyword">default</strong>:
-<a class="jxr_linenumber" name="L267" href="#L267">267</a> <em class="jxr_comment">// Use Cache2 with Locale and content as separate keys to avoid string concatenation</em>
-<a class="jxr_linenumber" name="L268" href="#L268">268</a> <strong class="jxr_keyword">var</strong> mf = MESSAGE_FORMAT_CACHE.get(l, content);
-<a class="jxr_linenumber" name="L269" href="#L269">269</a> sb.append(mf.format(a(o)));
-<a class="jxr_linenumber" name="L270" href="#L270">270</a> <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="L271" href="#L271">271</a> }
-<a class="jxr_linenumber" name="L272" href="#L272">272</a> }
-<a class="jxr_linenumber" name="L273" href="#L273">273</a>
-<a class="jxr_linenumber" name="L274" href="#L274">274</a> @Override
-<a class="jxr_linenumber" name="L275" href="#L275">275</a> <strong class="jxr_keyword">public</strong> String toString() {
-<a class="jxr_linenumber" name="L276" href="#L276">276</a> <strong class="jxr_keyword">return</strong> <span class="jxr_string">"[M:"</span> + format + index + (content == <strong class="jxr_keyword">null</strong> ? <span class="jxr_string">""</span> : (':' + content)) + <span class="jxr_string">"]"</span>;
-<a class="jxr_linenumber" name="L277" href="#L277">277</a> }
-<a class="jxr_linenumber" name="L278" href="#L278">278</a> }
-<a class="jxr_linenumber" name="L279" href="#L279">279</a>
-<a class="jxr_linenumber" name="L280" href="#L280">280</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L281" href="#L281">281</a> <em class="jxr_javadoccomment"> * Printf-style token (e.g., %s, %d, %.2f).</em>
-<a class="jxr_linenumber" name="L282" href="#L282">282</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L283" href="#L283">283</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> StringFormatToken <strong class="jxr_keyword">extends</strong> Token {
-<a class="jxr_linenumber" name="L284" href="#L284">284</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">char</strong> format; <em class="jxr_comment">// 's' = simple (handle directly), 'o' = other (use String.format)</em>
-<a class="jxr_linenumber" name="L285" href="#L285">285</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String content; <em class="jxr_comment">// The format string to pass to String.format (null for simple formats)</em>
-<a class="jxr_linenumber" name="L286" href="#L286">286</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> index; <em class="jxr_comment">// 0-based index</em>
-<a class="jxr_linenumber" name="L287" href="#L287">287</a>
-<a class="jxr_linenumber" name="L288" href="#L288">288</a> StringFormatToken(String content, <strong class="jxr_keyword">int</strong> index) {
-<a class="jxr_linenumber" name="L289" href="#L289">289</a> <em class="jxr_comment">// content is everything after '%' (e.g., "s", "1$s", "d", ".2f", "1$.2f")</em>
-<a class="jxr_linenumber" name="L290" href="#L290">290</a> <strong class="jxr_keyword">var</strong> $ = content.indexOf('$');
-<a class="jxr_linenumber" name="L291" href="#L291">291</a> <strong class="jxr_keyword">if</strong> ($ >= 0) {
-<a class="jxr_linenumber" name="L292" href="#L292">292</a> index = parseIndexSF(content.substring(0, $)) - 1;
-<a class="jxr_linenumber" name="L293" href="#L293">293</a> content = content.substring($ + 1);
-<a class="jxr_linenumber" name="L294" href="#L294">294</a> }
-<a class="jxr_linenumber" name="L295" href="#L295">295</a> <strong class="jxr_keyword">this</strong>.format = content.length() == 1 ? content.charAt(content.length() - 1) : 'z';
-<a class="jxr_linenumber" name="L296" href="#L296">296</a> <strong class="jxr_keyword">this</strong>.index = index;
-<a class="jxr_linenumber" name="L297" href="#L297">297</a> <strong class="jxr_keyword">this</strong>.content = <span class="jxr_string">"%"</span> + content;
-<a class="jxr_linenumber" name="L298" href="#L298">298</a> }
-<a class="jxr_linenumber" name="L299" href="#L299">299</a>
-<a class="jxr_linenumber" name="L300" href="#L300">300</a> @Override
-<a class="jxr_linenumber" name="L301" href="#L301">301</a> <strong class="jxr_keyword">void</strong> append(StringBuilder sb, Object[] args, Locale locale) {
-<a class="jxr_linenumber" name="L302" href="#L302">302</a> <em class="jxr_comment">// String.format() throws MissingFormatArgumentException when argument is missing</em>
-<a class="jxr_linenumber" name="L303" href="#L303">303</a> <strong class="jxr_keyword">if</strong> (args == <strong class="jxr_keyword">null</strong> || index >= args.length || index < 0) {
-<a class="jxr_linenumber" name="L304" href="#L304">304</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MissingFormatArgumentException(content);
-<a class="jxr_linenumber" name="L305" href="#L305">305</a> }
-<a class="jxr_linenumber" name="L306" href="#L306">306</a> <strong class="jxr_keyword">var</strong> o = args[index];
-<a class="jxr_linenumber" name="L307" href="#L307">307</a> <strong class="jxr_keyword">var</strong> l = locale == <strong class="jxr_keyword">null</strong> ? Locale.getDefault() : locale;
-<a class="jxr_linenumber" name="L308" href="#L308">308</a> <strong class="jxr_keyword">var</strong> dl = locale == <strong class="jxr_keyword">null</strong> || locale.equals(Locale.getDefault());
-<a class="jxr_linenumber" name="L309" href="#L309">309</a> <strong class="jxr_keyword">switch</strong> (format) {
-<a class="jxr_linenumber" name="L310" href="#L310">310</a> <strong class="jxr_keyword">case</strong> 'b':
-<a class="jxr_linenumber" name="L311" href="#L311">311</a> <em class="jxr_comment">// String.format() with %b converts:</em>
-<a class="jxr_linenumber" name="L312" href="#L312">312</a> <em class="jxr_comment">// - null -> "false"</em>
-<a class="jxr_linenumber" name="L313" href="#L313">313</a> <em class="jxr_comment">// - Boolean -> toString()</em>
-<a class="jxr_linenumber" name="L314" href="#L314">314</a> <em class="jxr_comment">// - Any other non-null value -> "true"</em>
-<a class="jxr_linenumber" name="L315" href="#L315">315</a> <strong class="jxr_keyword">if</strong> (o == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L316" href="#L316">316</a> sb.append(<span class="jxr_string">"false"</span>);
-<a class="jxr_linenumber" name="L317" href="#L317">317</a> } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (o instanceof Boolean) {
-<a class="jxr_linenumber" name="L318" href="#L318">318</a> sb.append(o.toString());
-<a class="jxr_linenumber" name="L319" href="#L319">319</a> } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="L320" href="#L320">320</a> sb.append(<span class="jxr_string">"true"</span>);
-<a class="jxr_linenumber" name="L321" href="#L321">321</a> }
-<a class="jxr_linenumber" name="L322" href="#L322">322</a> <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="L323" href="#L323">323</a> <strong class="jxr_keyword">case</strong> 'B':
-<a class="jxr_linenumber" name="L324" href="#L324">324</a> <em class="jxr_comment">// String.format() with %B converts:</em>
-<a class="jxr_linenumber" name="L325" href="#L325">325</a> <em class="jxr_comment">// - null -> "FALSE"</em>
-<a class="jxr_linenumber" name="L326" href="#L326">326</a> <em class="jxr_comment">// - Boolean -> toString().toUpperCase()</em>
-<a class="jxr_linenumber" name="L327" href="#L327">327</a> <em class="jxr_comment">// - Any other non-null value -> "TRUE"</em>
-<a class="jxr_linenumber" name="L328" href="#L328">328</a> <strong class="jxr_keyword">if</strong> (o == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L329" href="#L329">329</a> sb.append(<span class="jxr_string">"FALSE"</span>);
-<a class="jxr_linenumber" name="L330" href="#L330">330</a> } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (o instanceof Boolean) {
-<a class="jxr_linenumber" name="L331" href="#L331">331</a> sb.append(o.toString().toUpperCase());
-<a class="jxr_linenumber" name="L332" href="#L332">332</a> } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="L333" href="#L333">333</a> sb.append(<span class="jxr_string">"TRUE"</span>);
-<a class="jxr_linenumber" name="L334" href="#L334">334</a> }
-<a class="jxr_linenumber" name="L335" href="#L335">335</a> <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="L336" href="#L336">336</a> <strong class="jxr_keyword">case</strong> 's':
-<a class="jxr_linenumber" name="L337" href="#L337">337</a> <strong class="jxr_keyword">if</strong> (o == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L338" href="#L338">338</a> sb.append(<span class="jxr_string">"null"</span>);
-<a class="jxr_linenumber" name="L339" href="#L339">339</a> <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="L340" href="#L340">340</a> }
-<a class="jxr_linenumber" name="L341" href="#L341">341</a> sb.append(o.toString());
-<a class="jxr_linenumber" name="L342" href="#L342">342</a> <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="L343" href="#L343">343</a> <strong class="jxr_keyword">case</strong> 'S':
-<a class="jxr_linenumber" name="L344" href="#L344">344</a> <strong class="jxr_keyword">if</strong> (o == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L345" href="#L345">345</a> sb.append(<span class="jxr_string">"NULL"</span>);
-<a class="jxr_linenumber" name="L346" href="#L346">346</a> <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="L347" href="#L347">347</a> }
-<a class="jxr_linenumber" name="L348" href="#L348">348</a> sb.append(o.toString().toUpperCase());
-<a class="jxr_linenumber" name="L349" href="#L349">349</a> <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="L350" href="#L350">350</a> <strong class="jxr_keyword">case</strong> 'd':
-<a class="jxr_linenumber" name="L351" href="#L351">351</a> <strong class="jxr_keyword">if</strong> (o == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L352" href="#L352">352</a> sb.append(<span class="jxr_string">"null"</span>);
-<a class="jxr_linenumber" name="L353" href="#L353">353</a> <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="L354" href="#L354">354</a> }
-<a class="jxr_linenumber" name="L355" href="#L355">355</a> <strong class="jxr_keyword">if</strong> (o instanceof Number o2) {
-<a class="jxr_linenumber" name="L356" href="#L356">356</a> <strong class="jxr_keyword">if</strong> (dl) {
-<a class="jxr_linenumber" name="L357" href="#L357">357</a> <strong class="jxr_keyword">if</strong> (o instanceof Integer || o instanceof Long || o instanceof Byte || o instanceof Short) {
-<a class="jxr_linenumber" name="L358" href="#L358">358</a> sb.append(o);
-<a class="jxr_linenumber" name="L359" href="#L359">359</a> } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="L360" href="#L360">360</a> <em class="jxr_comment">// For other Number types (BigDecimal, BigInteger, etc.), convert to long</em>
-<a class="jxr_linenumber" name="L361" href="#L361">361</a> sb.append(o2.longValue());
-<a class="jxr_linenumber" name="L362" href="#L362">362</a> }
-<a class="jxr_linenumber" name="L363" href="#L363">363</a> <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="L364" href="#L364">364</a> }
-<a class="jxr_linenumber" name="L365" href="#L365">365</a> <em class="jxr_comment">// For non-default locales, use String.format to ensure printf-style consistency</em>
-<a class="jxr_linenumber" name="L366" href="#L366">366</a> sb.append(sf(l, <span class="jxr_string">"%d"</span>, o));
-<a class="jxr_linenumber" name="L367" href="#L367">367</a> <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="L368" href="#L368">368</a> }
-<a class="jxr_linenumber" name="L369" href="#L369">369</a> <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="L370" href="#L370">370</a> <strong class="jxr_keyword">case</strong> 'x':
-<a class="jxr_linenumber" name="L371" href="#L371">371</a> <strong class="jxr_keyword">if</strong> (o == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L372" href="#L372">372</a> sb.append(<span class="jxr_string">"null"</span>);
-<a class="jxr_linenumber" name="L373" href="#L373">373</a> <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="L374" href="#L374">374</a> }
-<a class="jxr_linenumber" name="L375" href="#L375">375</a> <strong class="jxr_keyword">if</strong> (o instanceof Integer o2) {
-<a class="jxr_linenumber" name="L376" href="#L376">376</a> sb.append(Integer.toHexString(o2));
-<a class="jxr_linenumber" name="L377" href="#L377">377</a> <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="L378" href="#L378">378</a> } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (o instanceof Long o2) {
-<a class="jxr_linenumber" name="L379" href="#L379">379</a> sb.append(Long.toHexString(o2));
-<a class="jxr_linenumber" name="L380" href="#L380">380</a> <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="L381" href="#L381">381</a> }
-<a class="jxr_linenumber" name="L382" href="#L382">382</a> <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="L383" href="#L383">383</a> <strong class="jxr_keyword">case</strong> 'X':
-<a class="jxr_linenumber" name="L384" href="#L384">384</a> <strong class="jxr_keyword">if</strong> (o == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L385" href="#L385">385</a> sb.append(<span class="jxr_string">"NULL"</span>);
-<a class="jxr_linenumber" name="L386" href="#L386">386</a> <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="L387" href="#L387">387</a> }
-<a class="jxr_linenumber" name="L388" href="#L388">388</a> <strong class="jxr_keyword">if</strong> (o instanceof Integer o2) {
-<a class="jxr_linenumber" name="L389" href="#L389">389</a> sb.append(Integer.toHexString(o2).toUpperCase());
-<a class="jxr_linenumber" name="L390" href="#L390">390</a> <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="L391" href="#L391">391</a> } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (o instanceof Long o2) {
-<a class="jxr_linenumber" name="L392" href="#L392">392</a> sb.append(Long.toHexString(o2).toUpperCase());
-<a class="jxr_linenumber" name="L393" href="#L393">393</a> <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="L394" href="#L394">394</a> }
-<a class="jxr_linenumber" name="L395" href="#L395">395</a> <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="L396" href="#L396">396</a> <strong class="jxr_keyword">case</strong> 'o':
-<a class="jxr_linenumber" name="L397" href="#L397">397</a> <strong class="jxr_keyword">if</strong> (o == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L398" href="#L398">398</a> sb.append(<span class="jxr_string">"null"</span>);
-<a class="jxr_linenumber" name="L399" href="#L399">399</a> <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="L400" href="#L400">400</a> }
-<a class="jxr_linenumber" name="L401" href="#L401">401</a> <strong class="jxr_keyword">if</strong> (o instanceof Integer o2) {
-<a class="jxr_linenumber" name="L402" href="#L402">402</a> sb.append(Integer.toOctalString(o2));
-<a class="jxr_linenumber" name="L403" href="#L403">403</a> <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="L404" href="#L404">404</a> } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (o instanceof Long o2) {
-<a class="jxr_linenumber" name="L405" href="#L405">405</a> sb.append(Long.toOctalString(o2));
-<a class="jxr_linenumber" name="L406" href="#L406">406</a> <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="L407" href="#L407">407</a> }
-<a class="jxr_linenumber" name="L408" href="#L408">408</a> <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="L409" href="#L409">409</a> <strong class="jxr_keyword">case</strong> 'c':
-<a class="jxr_linenumber" name="L410" href="#L410">410</a> <strong class="jxr_keyword">if</strong> (o == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L411" href="#L411">411</a> sb.append(<span class="jxr_string">"null"</span>);
-<a class="jxr_linenumber" name="L412" href="#L412">412</a> <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="L413" href="#L413">413</a> }
-<a class="jxr_linenumber" name="L414" href="#L414">414</a> <strong class="jxr_keyword">if</strong> (o instanceof Character) {
-<a class="jxr_linenumber" name="L415" href="#L415">415</a> sb.append(o);
-<a class="jxr_linenumber" name="L416" href="#L416">416</a> <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="L417" href="#L417">417</a> } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (o instanceof Integer o2) {
-<a class="jxr_linenumber" name="L418" href="#L418">418</a> sb.append((<strong class="jxr_keyword">char</strong>)o2.intValue());
-<a class="jxr_linenumber" name="L419" href="#L419">419</a> <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="L420" href="#L420">420</a> }
-<a class="jxr_linenumber" name="L421" href="#L421">421</a> <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="L422" href="#L422">422</a> <strong class="jxr_keyword">case</strong> 'C':
-<a class="jxr_linenumber" name="L423" href="#L423">423</a> <strong class="jxr_keyword">if</strong> (o == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L424" href="#L424">424</a> sb.append(<span class="jxr_string">"NULL"</span>);
-<a class="jxr_linenumber" name="L425" href="#L425">425</a> <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="L426" href="#L426">426</a> }
-<a class="jxr_linenumber" name="L427" href="#L427">427</a> <strong class="jxr_keyword">if</strong> (o instanceof Character o2) {
-<a class="jxr_linenumber" name="L428" href="#L428">428</a> sb.append(Character.toUpperCase(o2));
-<a class="jxr_linenumber" name="L429" href="#L429">429</a> <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="L430" href="#L430">430</a> } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (o instanceof Integer o2) {
-<a class="jxr_linenumber" name="L431" href="#L431">431</a> sb.append(Character.toUpperCase((<strong class="jxr_keyword">char</strong>)o2.intValue()));
-<a class="jxr_linenumber" name="L432" href="#L432">432</a> <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="L433" href="#L433">433</a> }
-<a class="jxr_linenumber" name="L434" href="#L434">434</a> <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="L435" href="#L435">435</a> <strong class="jxr_keyword">case</strong> 'f':
-<a class="jxr_linenumber" name="L436" href="#L436">436</a> <strong class="jxr_keyword">if</strong> (o == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L437" href="#L437">437</a> sb.append(<span class="jxr_string">"null"</span>);
-<a class="jxr_linenumber" name="L438" href="#L438">438</a> <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="L439" href="#L439">439</a> }
-<a class="jxr_linenumber" name="L440" href="#L440">440</a> <em class="jxr_comment">// Always use String.format() to match exact behavior (precision, etc.)</em>
-<a class="jxr_linenumber" name="L441" href="#L441">441</a> <strong class="jxr_keyword">if</strong> (o instanceof Number) {
-<a class="jxr_linenumber" name="L442" href="#L442">442</a> sb.append(sf(l, <span class="jxr_string">"%f"</span>, o));
-<a class="jxr_linenumber" name="L443" href="#L443">443</a> <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="L444" href="#L444">444</a> }
-<a class="jxr_linenumber" name="L445" href="#L445">445</a> <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="L446" href="#L446">446</a> <strong class="jxr_keyword">default</strong>:
-<a class="jxr_linenumber" name="L447" href="#L447">447</a> <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="L448" href="#L448">448</a> }
-<a class="jxr_linenumber" name="L449" href="#L449">449</a>
-<a class="jxr_linenumber" name="L450" href="#L450">450</a> <em class="jxr_comment">// Fallback to String.format for any other simple format</em>
-<a class="jxr_linenumber" name="L451" href="#L451">451</a> sb.append(sf(l, content, o));
-<a class="jxr_linenumber" name="L452" href="#L452">452</a> }
-<a class="jxr_linenumber" name="L453" href="#L453">453</a>
-<a class="jxr_linenumber" name="L454" href="#L454">454</a> @Override
-<a class="jxr_linenumber" name="L455" href="#L455">455</a> <strong class="jxr_keyword">public</strong> String toString() {
-<a class="jxr_linenumber" name="L456" href="#L456">456</a> <strong class="jxr_keyword">return</strong> <span class="jxr_string">"[S:"</span> + format + index + <span class="jxr_string">":"</span> + content + <span class="jxr_string">"]"</span>;
-<a class="jxr_linenumber" name="L457" href="#L457">457</a> }
-<a class="jxr_linenumber" name="L458" href="#L458">458</a> }
-<a class="jxr_linenumber" name="L459" href="#L459">459</a>
-<a class="jxr_linenumber" name="L460" href="#L460">460</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> String sf(Locale l, String s, Object o) {
-<a class="jxr_linenumber" name="L461" href="#L461">461</a> <strong class="jxr_keyword">return</strong> String.format(l, s, a(o));
-<a class="jxr_linenumber" name="L462" href="#L462">462</a> }
-<a class="jxr_linenumber" name="L463" href="#L463">463</a>
-<a class="jxr_linenumber" name="L464" href="#L464">464</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String pattern;
-<a class="jxr_linenumber" name="L465" href="#L465">465</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Token[] tokens;
-<a class="jxr_linenumber" name="L466" href="#L466">466</a>
-<a class="jxr_linenumber" name="L467" href="#L467">467</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L468" href="#L468">468</a> <em class="jxr_javadoccomment"> * Creates a new FormatString instance.</em>
-<a class="jxr_linenumber" name="L469" href="#L469">469</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L470" href="#L470">470</a> <em class="jxr_javadoccomment"> * @param pattern The format pattern. Can contain both MessageFormat and printf-style placeholders.</em>
-<a class="jxr_linenumber" name="L471" href="#L471">471</a> <em class="jxr_javadoccomment"> * @throws IllegalArgumentException If the pattern is <jk>null</jk>.</em>
-<a class="jxr_linenumber" name="L472" href="#L472">472</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L473" href="#L473">473</a> <strong class="jxr_keyword">public</strong> <a name="FormatString" href="../../../../../org/apache/juneau/common/utils/FormatString.html#FormatString">FormatString</a>(String pattern) {
-<a class="jxr_linenumber" name="L474" href="#L474">474</a> <strong class="jxr_keyword">this</strong>.pattern = assertArgNotNull(<span class="jxr_string">"pattern"</span>, pattern);
-<a class="jxr_linenumber" name="L475" href="#L475">475</a> <strong class="jxr_keyword">this</strong>.tokens = parseTokens(pattern).toArray(Token[]::<strong class="jxr_keyword">new</strong>);
-<a class="jxr_linenumber" name="L476" href="#L476">476</a> }
-<a class="jxr_linenumber" name="L477" href="#L477">477</a>
-<a class="jxr_linenumber" name="L478" href="#L478">478</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L479" href="#L479">479</a> <em class="jxr_javadoccomment"> * Returns a cached FormatString instance for the given pattern.</em>
-<a class="jxr_linenumber" name="L480" href="#L480">480</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L481" href="#L481">481</a> <em class="jxr_javadoccomment"> * <p></em>
-<a class="jxr_linenumber" name="L482" href="#L482">482</a> <em class="jxr_javadoccomment"> * This method uses a thread-safe cache to avoid recreating FormatString instances for the same pattern.</em>
-<a class="jxr_linenumber" name="L483" href="#L483">483</a> <em class="jxr_javadoccomment"> * The cache is limited to 1000 entries.</em>
-<a class="jxr_linenumber" name="L484" href="#L484">484</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L485" href="#L485">485</a> <em class="jxr_javadoccomment"> * @param pattern The format pattern.</em>
-<a class="jxr_linenumber" name="L486" href="#L486">486</a> <em class="jxr_javadoccomment"> * @return A cached or new FormatString instance.</em>
-<a class="jxr_linenumber" name="L487" href="#L487">487</a> <em class="jxr_javadoccomment"> * @throws IllegalArgumentException If the pattern is <jk>null</jk>.</em>
-<a class="jxr_linenumber" name="L488" href="#L488">488</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L489" href="#L489">489</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a name="FormatString" href="../../../../../org/apache/juneau/common/utils/FormatString.html#FormatString">FormatString</a> of(String pattern) {
-<a class="jxr_linenumber" name="L490" href="#L490">490</a> assertArgNotNull(<span class="jxr_string">"pattern"</span>, pattern);
-<a class="jxr_linenumber" name="L491" href="#L491">491</a> <strong class="jxr_keyword">return</strong> CACHE.get(pattern, () -> <strong class="jxr_keyword">new</strong> <a name="FormatString" href="../../../../../org/apache/juneau/common/utils/FormatString.html#FormatString">FormatString</a>(pattern));
-<a class="jxr_linenumber" name="L492" href="#L492">492</a> }
-<a class="jxr_linenumber" name="L493" href="#L493">493</a>
-<a class="jxr_linenumber" name="L494" href="#L494">494</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L495" href="#L495">495</a> <em class="jxr_javadoccomment"> * Formats the pattern with the given arguments using the default locale.</em>
-<a class="jxr_linenumber" name="L496" href="#L496">496</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L497" href="#L497">497</a> <em class="jxr_javadoccomment"> * @param args The arguments to format.</em>
-<a class="jxr_linenumber" name="L498" href="#L498">498</a> <em class="jxr_javadoccomment"> * @return The formatted string.</em>
-<a class="jxr_linenumber" name="L499" href="#L499">499</a> <em class="jxr_javadoccomment"> * @throws IllegalArgumentException If format specifiers are invalid or arguments don't match.</em>
-<a class="jxr_linenumber" name="L500" href="#L500">500</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L501" href="#L501">501</a> <strong class="jxr_keyword">public</strong> String format(Object...args) {
-<a class="jxr_linenumber" name="L502" href="#L502">502</a> <strong class="jxr_keyword">return</strong> format(Locale.getDefault(), args);
-<a class="jxr_linenumber" name="L503" href="#L503">503</a> }
-<a class="jxr_linenumber" name="L504" href="#L504">504</a>
-<a class="jxr_linenumber" name="L505" href="#L505">505</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L506" href="#L506">506</a> <em class="jxr_javadoccomment"> * Formats the pattern with the given arguments using the specified locale.</em>
-<a class="jxr_linenumber" name="L507" href="#L507">507</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L508" href="#L508">508</a> <em class="jxr_javadoccomment"> * <p></em>
-<a class="jxr_linenumber" name="L509" href="#L509">509</a> <em class="jxr_javadoccomment"> * The locale affects both MessageFormat and printf-style formatting:</em>
-<a class="jxr_linenumber" name="L510" href="#L510">510</a> <em class="jxr_javadoccomment"> * <ul></em>
-<a class="jxr_linenumber" name="L511" href="#L511">511</a> <em class="jxr_javadoccomment"> * <li><b>MessageFormat:</b> Locale-specific number, date, and time formatting</li></em>
-<a class="jxr_linenumber" name="L512" href="#L512">512</a> <em class="jxr_javadoccomment"> * <li><b>Printf:</b> Locale-specific number formatting (decimal separators, etc.)</li></em>
-<a class="jxr_linenumber" name="L513" href="#L513">513</a> <em class="jxr_javadoccomment"> * </ul></em>
-<a class="jxr_linenumber" name="L514" href="#L514">514</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L515" href="#L515">515</a> <em class="jxr_javadoccomment"> * @param locale The locale to use for formatting. If <jk>null</jk>, uses the default locale.</em>
-<a class="jxr_linenumber" name="L516" href="#L516">516</a> <em class="jxr_javadoccomment"> * @param args The arguments to format.</em>
-<a class="jxr_linenumber" name="L517" href="#L517">517</a> <em class="jxr_javadoccomment"> * @return The formatted string.</em>
-<a class="jxr_linenumber" name="L518" href="#L518">518</a> <em class="jxr_javadoccomment"> * @throws IllegalArgumentException If format specifiers are invalid or arguments don't match.</em>
-<a class="jxr_linenumber" name="L519" href="#L519">519</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L520" href="#L520">520</a> <strong class="jxr_keyword">public</strong> String format(Locale locale, Object...args) {
-<a class="jxr_linenumber" name="L521" href="#L521">521</a> <strong class="jxr_keyword">var</strong> sb = <strong class="jxr_keyword">new</strong> StringBuilder(pattern.length() + 64);
-<a class="jxr_linenumber" name="L522" href="#L522">522</a> <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> token : tokens) {
-<a class="jxr_linenumber" name="L523" href="#L523">523</a> token.append(sb, args, locale);
-<a class="jxr_linenumber" name="L524" href="#L524">524</a> }
-<a class="jxr_linenumber" name="L525" href="#L525">525</a> <strong class="jxr_keyword">return</strong> sb.toString();
-<a class="jxr_linenumber" name="L526" href="#L526">526</a> }
-<a class="jxr_linenumber" name="L527" href="#L527">527</a>
-<a class="jxr_linenumber" name="L528" href="#L528">528</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L529" href="#L529">529</a> <em class="jxr_javadoccomment"> * Parses the pattern into a list of tokens.</em>
-<a class="jxr_linenumber" name="L530" href="#L530">530</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L531" href="#L531">531</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List<Token> parseTokens(String pattern) {
-<a class="jxr_linenumber" name="L532" href="#L532">532</a> <strong class="jxr_keyword">var</strong> tokens = <strong class="jxr_keyword">new</strong> ArrayList<Token>();
-<a class="jxr_linenumber" name="L533" href="#L533">533</a> <strong class="jxr_keyword">var</strong> length = pattern.length();
-<a class="jxr_linenumber" name="L534" href="#L534">534</a> <strong class="jxr_keyword">var</strong> i = 0;
-<a class="jxr_linenumber" name="L535" href="#L535">535</a> <strong class="jxr_keyword">var</strong> sequentialIndex = 0; <em class="jxr_comment">// 0-based index for sequential placeholders</em>
-<a class="jxr_linenumber" name="L536" href="#L536">536</a>
-<a class="jxr_linenumber" name="L537" href="#L537">537</a> <em class="jxr_comment">// Possible String.format variable formats:</em>
-<a class="jxr_linenumber" name="L538" href="#L538">538</a> <em class="jxr_comment">// %[argument_index$][flags][width][.precision]conversion</em>
-<a class="jxr_linenumber" name="L539" href="#L539">539</a> <em class="jxr_comment">// %[argument_index$][flags][width]conversion</em>
-<a class="jxr_linenumber" name="L540" href="#L540">540</a> <em class="jxr_comment">// %[flags][width]conversion</em>
-<a class="jxr_linenumber" name="L541" href="#L541">541</a>
-<a class="jxr_linenumber" name="L542" href="#L542">542</a> <em class="jxr_comment">// Possible MessageFormat variable formats:</em>
-<a class="jxr_linenumber" name="L543" href="#L543">543</a> <em class="jxr_comment">// {}</em>
-<a class="jxr_linenumber" name="L544" href="#L544">544</a> <em class="jxr_comment">// {#,formatType}</em>
-<a class="jxr_linenumber" name="L545" href="#L545">545</a> <em class="jxr_comment">// {#,formatType,formatStyle}</em>
-<a class="jxr_linenumber" name="L546" href="#L546">546</a>
-<a class="jxr_linenumber" name="L547" href="#L547">547</a> <em class="jxr_comment">// S1 - In literal, looking for %, {, or '</em>
-<a class="jxr_linenumber" name="L548" href="#L548">548</a> <em class="jxr_comment">// S2 - Found %, looking for conversion char or t or T</em>
-<a class="jxr_linenumber" name="L549" href="#L549">549</a> <em class="jxr_comment">// S3 - Found {, looking for }</em>
-<a class="jxr_linenumber" name="L550" href="#L550">550</a> <em class="jxr_comment">// S4 - Found ', in quoted section (MessageFormat single quotes escape special chars), looking for '</em>
-<a class="jxr_linenumber" name="L551" href="#L551">551</a> <strong class="jxr_keyword">var</strong> state = S1;
-<a class="jxr_linenumber" name="L552" href="#L552">552</a>
-<a class="jxr_linenumber" name="L553" href="#L553">553</a> <strong class="jxr_keyword">var</strong> nestedBracketDepth = 0;
-<a class="jxr_linenumber" name="L554" href="#L554">554</a>
-<a class="jxr_linenumber" name="L555" href="#L555">555</a> <strong class="jxr_keyword">var</strong> mark = 0;
-<a class="jxr_linenumber" name="L556" href="#L556">556</a> <strong class="jxr_keyword">while</strong> (i < length) {
-<a class="jxr_linenumber" name="L557" href="#L557">557</a> <strong class="jxr_keyword">var</strong> ch = pattern.charAt(i++);
-<a class="jxr_linenumber" name="L558" href="#L558">558</a>
-<a class="jxr_linenumber" name="L559" href="#L559">559</a> <strong class="jxr_keyword">if</strong> (state == S1) {
-<a class="jxr_linenumber" name="L560" href="#L560">560</a> <strong class="jxr_keyword">if</strong> (ch == '%') {
-<a class="jxr_linenumber" name="L561" href="#L561">561</a> lit(tokens, pattern, mark, i - 1);
-<a class="jxr_linenumber" name="L562" href="#L562">562</a> state = S2;
-<a class="jxr_linenumber" name="L563" href="#L563">563</a> mark = i;
-<a class="jxr_linenumber" name="L564" href="#L564">564</a> } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (ch == '{') {
-<a class="jxr_linenumber" name="L565" href="#L565">565</a> lit(tokens, pattern, mark, i - 1);
-<a class="jxr_linenumber" name="L566" href="#L566">566</a> state = S3;
-<a class="jxr_linenumber" name="L567" href="#L567">567</a> mark = i - 1;
-<a class="jxr_linenumber" name="L568" href="#L568">568</a> } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (ch == '\'') {
-<a class="jxr_linenumber" name="L569" href="#L569">569</a> lit(tokens, pattern, mark, i - 1);
-<a class="jxr_linenumber" name="L570" href="#L570">570</a> state = S4;
-<a class="jxr_linenumber" name="L571" href="#L571">571</a> mark = i;
-<a class="jxr_linenumber" name="L572" href="#L572">572</a> }
-<a class="jxr_linenumber" name="L573" href="#L573">573</a> } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S2) {
-<a class="jxr_linenumber" name="L574" href="#L574">574</a> <strong class="jxr_keyword">if</strong> (ch == '%') {
-<a class="jxr_linenumber" name="L575" href="#L575">575</a> tokens.add(<strong class="jxr_keyword">new</strong> LiteralToken(<span class="jxr_string">"%"</span>));
-<a class="jxr_linenumber" name="L576" href="#L576">576</a> state = S1;
-<a class="jxr_linenumber" name="L577" href="#L577">577</a> mark = i;
-<a class="jxr_linenumber" name="L578" href="#L578">578</a> } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (ch == 't' || ch == 'T') {
-<a class="jxr_linenumber" name="L579" href="#L579">579</a> <em class="jxr_comment">// Do nothing. Part of 2-character time conversion.</em>
-<a class="jxr_linenumber" name="L580" href="#L580">580</a> } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (PRINTF_CONVERSION_CHARS.contains(ch)) {
-<a class="jxr_linenumber" name="L581" href="#L581">581</a> sf(tokens, pattern, mark, i, sequentialIndex++);
-<a class="jxr_linenumber" name="L582" href="#L582">582</a> state = S1;
-<a class="jxr_linenumber" name="L583" href="#L583">583</a> mark = i;
-<a class="jxr_linenumber" name="L584" href="#L584">584</a> } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (PRINTF_FORMAT_CHARS.contains(ch) || Character.isDigit(ch)) {
-<a class="jxr_linenumber" name="L585" href="#L585">585</a> <em class="jxr_comment">// Do nothing.</em>
-<a class="jxr_linenumber" name="L586" href="#L586">586</a> } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="L587" href="#L587">587</a> <em class="jxr_comment">// Unknown character - could be invalid conversion or end of format</em>
-<a class="jxr_linenumber" name="L588" href="#L588">588</a> <em class="jxr_comment">// Create StringFormatToken and let String.format() validate it</em>
-<a class="jxr_linenumber" name="L589" href="#L589">589</a> <em class="jxr_comment">// This allows String.format() to throw IllegalFormatException for invalid conversions like %F</em>
-<a class="jxr_linenumber" name="L590" href="#L590">590</a> <em class="jxr_comment">// printfStart is position after '%', so substring from printfStart-1 (the '%') to i (after the char)</em>
-<a class="jxr_linenumber" name="L591" href="#L591">591</a> sf(tokens, pattern, mark, i, sequentialIndex++);
-<a class="jxr_linenumber" name="L592" href="#L592">592</a> state = S1;
-<a class="jxr_linenumber" name="L593" href="#L593">593</a> mark = i;
-<a class="jxr_linenumber" name="L594" href="#L594">594</a> }
-<a class="jxr_linenumber" name="L595" href="#L595">595</a> } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S3) {
-<a class="jxr_linenumber" name="L596" href="#L596">596</a> <strong class="jxr_keyword">if</strong> (ch == '{') {
-<a class="jxr_linenumber" name="L597" href="#L597">597</a> nestedBracketDepth++;
-<a class="jxr_linenumber" name="L598" href="#L598">598</a> } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (ch == '}') {
-<a class="jxr_linenumber" name="L599" href="#L599">599</a> <strong class="jxr_keyword">if</strong> (nestedBracketDepth > 0) {
-<a class="jxr_linenumber" name="L600" href="#L600">600</a> nestedBracketDepth--;
-<a class="jxr_linenumber" name="L601" href="#L601">601</a> } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="L602" href="#L602">602</a> mf(tokens, pattern, mark + 1, i - 1, sequentialIndex++);
-<a class="jxr_linenumber" name="L603" href="#L603">603</a> state = S1;
-<a class="jxr_linenumber" name="L604" href="#L604">604</a> mark = i;
-<a class="jxr_linenumber" name="L605" href="#L605">605</a> }
-<a class="jxr_linenumber" name="L606" href="#L606">606</a> }
-<a class="jxr_linenumber" name="L607" href="#L607">607</a> } <strong class="jxr_keyword">else</strong> <em class="jxr_comment">/* if (state == S4) */</em> {
-<a class="jxr_linenumber" name="L608" href="#L608">608</a> <strong class="jxr_keyword">if</strong> (ch == '\'') {
-<a class="jxr_linenumber" name="L609" href="#L609">609</a> <strong class="jxr_keyword">if</strong> (mark == i - 1) {
-<a class="jxr_linenumber" name="L610" href="#L610">610</a> lit(tokens, pattern, mark, i); <em class="jxr_comment">// '' becomes '</em>
-<a class="jxr_linenumber" name="L611" href="#L611">611</a> state = S1;
-<a class="jxr_linenumber" name="L612" href="#L612">612</a> mark = i;
-<a class="jxr_linenumber" name="L613" href="#L613">613</a> } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="L614" href="#L614">614</a> lit(tokens, pattern, mark, i - 1);
-<a class="jxr_linenumber" name="L615" href="#L615">615</a> state = S1;
-<a class="jxr_linenumber" name="L616" href="#L616">616</a> mark = i;
-<a class="jxr_linenumber" name="L617" href="#L617">617</a> }
-<a class="jxr_linenumber" name="L618" href="#L618">618</a> }
-<a class="jxr_linenumber" name="L619" href="#L619">619</a> }
-<a class="jxr_linenumber" name="L620" href="#L620">620</a> }
-<a class="jxr_linenumber" name="L621" href="#L621">621</a>
-<a class="jxr_linenumber" name="L622" href="#L622">622</a> <em class="jxr_comment">// Process remaining content based on final state</em>
-<a class="jxr_linenumber" name="L623" href="#L623">623</a> <strong class="jxr_keyword">if</strong> (state == S1) {
-<a class="jxr_linenumber" name="L624" href="#L624">624</a> lit(tokens, pattern, mark);
-<a class="jxr_linenumber" name="L625" href="#L625">625</a> } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S2) {
-<a class="jxr_linenumber" name="L626" href="#L626">626</a> <em class="jxr_comment">// Dangling '%' without conversion - throw exception to match String.format() behavior</em>
-<a class="jxr_linenumber" name="L627" href="#L627">627</a> <em class="jxr_comment">// UnknownFormatConversionException constructor takes just the conversion character</em>
-<a class="jxr_linenumber" name="L628" href="#L628">628</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> java.util.UnknownFormatConversionException(<span class="jxr_string">"%"</span>);
-<a class="jxr_linenumber" name="L629" href="#L629">629</a> } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (state == S3) {
-<a class="jxr_linenumber" name="L630" href="#L630">630</a> <em class="jxr_comment">// Unmatched '{' - throw exception to match MessageFormat behavior</em>
-<a class="jxr_linenumber" name="L631" href="#L631">631</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Unmatched braces in the pattern."</span>);
-<a class="jxr_linenumber" name="L632" href="#L632">632</a> } <strong class="jxr_keyword">else</strong> <em class="jxr_comment">/* if (state == S4) */</em> {
-<a class="jxr_linenumber" name="L633" href="#L633">633</a> <em class="jxr_comment">// Unmatched quote - MessageFormat treats it as ending the quoted section</em>
-<a class="jxr_linenumber" name="L634" href="#L634">634</a> <em class="jxr_comment">// Add the quoted content as literal (from mark to end of pattern)</em>
-<a class="jxr_linenumber" name="L635" href="#L635">635</a> lit(tokens, pattern, mark);
-<a class="jxr_linenumber" name="L636" href="#L636">636</a> }
-<a class="jxr_linenumber" name="L637" href="#L637">637</a>
-<a class="jxr_linenumber" name="L638" href="#L638">638</a> <strong class="jxr_keyword">return</strong> tokens;
-<a class="jxr_linenumber" name="L639" href="#L639">639</a> }
-<a class="jxr_linenumber" name="L640" href="#L640">640</a>
-<a class="jxr_linenumber" name="L641" href="#L641">641</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> lit(List<Token> tokens, String pattern, <strong class="jxr_keyword">int</strong> start, <strong class="jxr_keyword">int</strong> end) {
-<a class="jxr_linenumber" name="L642" href="#L642">642</a> <strong class="jxr_keyword">if</strong> (start == end)
-<a class="jxr_linenumber" name="L643" href="#L643">643</a> <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="L644" href="#L644">644</a> tokens.add(<strong class="jxr_keyword">new</strong> LiteralToken(pattern.substring(start, end)));
-<a class="jxr_linenumber" name="L645" href="#L645">645</a> }
-<a class="jxr_linenumber" name="L646" href="#L646">646</a>
-<a class="jxr_linenumber" name="L647" href="#L647">647</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> lit(List<Token> tokens, String pattern, <strong class="jxr_keyword">int</strong> start) {
-<a class="jxr_linenumber" name="L648" href="#L648">648</a> <strong class="jxr_keyword">if</strong> (start == pattern.length())
-<a class="jxr_linenumber" name="L649" href="#L649">649</a> <strong class="jxr_keyword">return</strong>;
-<a class="jxr_linenumber" name="L650" href="#L650">650</a> tokens.add(<strong class="jxr_keyword">new</strong> LiteralToken(pattern.substring(start)));
-<a class="jxr_linenumber" name="L651" href="#L651">651</a> }
-<a class="jxr_linenumber" name="L652" href="#L652">652</a>
-<a class="jxr_linenumber" name="L653" href="#L653">653</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> sf(List<Token> tokens, String pattern, <strong class="jxr_keyword">int</strong> start, <strong class="jxr_keyword">int</strong> end, <strong class="jxr_keyword">int</strong> index) {
-<a class="jxr_linenumber" name="L654" href="#L654">654</a> tokens.add(<strong class="jxr_keyword">new</strong> StringFormatToken(pattern.substring(start, end), index));
-<a class="jxr_linenumber" name="L655" href="#L655">655</a> }
-<a class="jxr_linenumber" name="L656" href="#L656">656</a>
-<a class="jxr_linenumber" name="L657" href="#L657">657</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> mf(List<Token> tokens, String pattern, <strong class="jxr_keyword">int</strong> start, <strong class="jxr_keyword">int</strong> end, <strong class="jxr_keyword">int</strong> index) {
-<a class="jxr_linenumber" name="L658" href="#L658">658</a> tokens.add(<strong class="jxr_keyword">new</strong> MessageFormatToken(pattern.substring(start, end), index));
-<a class="jxr_linenumber" name="L659" href="#L659">659</a> }
-<a class="jxr_linenumber" name="L660" href="#L660">660</a>
-<a class="jxr_linenumber" name="L661" href="#L661">661</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> parseIndexMF(String s) {
-<a class="jxr_linenumber" name="L662" href="#L662">662</a> <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="L663" href="#L663">663</a> <strong class="jxr_keyword">return</strong> Integer.parseInt(s.trim());
-<a class="jxr_linenumber" name="L664" href="#L664">664</a> } <strong class="jxr_keyword">catch</strong> (@SuppressWarnings(<span class="jxr_string">"unused"</span>) NumberFormatException e) {
-<a class="jxr_linenumber" name="L665" href="#L665">665</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"can't parse argument number: "</span> + s);
-<a class="jxr_linenumber" name="L666" href="#L666">666</a> }
-<a class="jxr_linenumber" name="L667" href="#L667">667</a> }
-<a class="jxr_linenumber" name="L668" href="#L668">668</a>
-<a class="jxr_linenumber" name="L669" href="#L669">669</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> parseIndexSF(String s) {
-<a class="jxr_linenumber" name="L670" href="#L670">670</a> <strong class="jxr_keyword">return</strong> Integer.parseInt(s.trim());
-<a class="jxr_linenumber" name="L671" href="#L671">671</a> }
-<a class="jxr_linenumber" name="L672" href="#L672">672</a>
-<a class="jxr_linenumber" name="L673" href="#L673">673</a> @Override
-<a class="jxr_linenumber" name="L674" href="#L674">674</a> <strong class="jxr_keyword">public</strong> String toString() {
-<a class="jxr_linenumber" name="L675" href="#L675">675</a> <strong class="jxr_keyword">return</strong> pattern;
-<a class="jxr_linenumber" name="L676" href="#L676">676</a> }
-<a class="jxr_linenumber" name="L677" href="#L677">677</a>
-<a class="jxr_linenumber" name="L678" href="#L678">678</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L679" href="#L679">679</a> <em class="jxr_javadoccomment"> * Returns a debug representation of the parsed pattern showing the token structure.</em>
-<a class="jxr_linenumber" name="L680" href="#L680">680</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L681" href="#L681">681</a> <em class="jxr_javadoccomment"> * <p></em>
-<a class="jxr_linenumber" name="L682" href="#L682">682</a> <em class="jxr_javadoccomment"> * This method is useful for debugging and understanding how a pattern was parsed.</em>
-<a class="jxr_linenumber" name="L683" href="#L683">683</a> <em class="jxr_javadoccomment"> * It returns a string showing each token in the format:</em>
-<a class="jxr_linenumber" name="L684" href="#L684">684</a> <em class="jxr_javadoccomment"> * <ul></em>
-<a class="jxr_linenumber" name="L685" href="#L685">685</a> <em class="jxr_javadoccomment"> * <li><b>Literal tokens:</b> <js>"[L:text]"</js> - Literal text</li></em>
-<a class="jxr_linenumber" name="L686" href="#L686">686</a> <em class="jxr_javadoccomment"> * <li><b>MessageFormat tokens (simple):</b> <js>"[M:s0]"</js> - Simple MessageFormat placeholder (format='s', index=0)</li></em>
-<a class="jxr_linenumber" name="L687" href="#L687">687</a> <em class="jxr_javadoccomment"> * <li><b>MessageFormat tokens (complex):</b> <js>"[M:o0:{0,number,currency}]"</js> - Complex MessageFormat placeholder (format='o', index=0, content)</li></em>
-<a class="jxr_linenumber" name="L688" href="#L688">688</a> <em class="jxr_javadoccomment"> * <li><b>StringFormat tokens (simple):</b> <js>"[S:s0:%s]"</js> - Simple printf placeholder (format='s', index=0, content)</li></em>
-<a class="jxr_linenumber" name="L689" href="#L689">689</a> <em class="jxr_javadoccomment"> * <li><b>StringFormat tokens (complex):</b> <js>"[S:z0:%.2f]"</js> - Complex printf placeholder (format='z', index=0, content)</li></em>
-<a class="jxr_linenumber" name="L690" href="#L690">690</a> <em class="jxr_javadoccomment"> * </ul></em>
-<a class="jxr_linenumber" name="L691" href="#L691">691</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L692" href="#L692">692</a> <em class="jxr_javadoccomment"> * <h5 class='section'>Token Format:</h5></em>
-<a class="jxr_linenumber" name="L693" href="#L693">693</a> <em class="jxr_javadoccomment"> * <ul></em>
-<a class="jxr_linenumber" name="L694" href="#L694">694</a> <em class="jxr_javadoccomment"> * <li><b>L</b> = Literal token</li></em>
-<a class="jxr_linenumber" name="L695" href="#L695">695</a> <em class="jxr_javadoccomment"> * <li><b>M</b> = MessageFormat token</li></em>
-<a class="jxr_linenumber" name="L696" href="#L696">696</a> <em class="jxr_javadoccomment"> * <li><b>S</b> = StringFormat (printf) token</li></em>
-<a class="jxr_linenumber" name="L697" href="#L697">697</a> <em class="jxr_javadoccomment"> * <li><b>Format character:</b> 's' = simple, 'o' = other/complex, 'z' = complex printf</li></em>
-<a class="jxr_linenumber" name="L698" href="#L698">698</a> <em class="jxr_javadoccomment"> * <li><b>Index:</b> 0-based argument index</li></em>
-<a class="jxr_linenumber" name="L699" href="#L699">699</a> <em class="jxr_javadoccomment"> * <li><b>Content:</b> The format string content (for complex tokens)</li></em>
-<a class="jxr_linenumber" name="L700" href="#L700">700</a> <em class="jxr_javadoccomment"> * </ul></em>
-<a class="jxr_linenumber" name="L701" href="#L701">701</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L702" href="#L702">702</a> <em class="jxr_javadoccomment"> * <h5 class='section'>Examples:</h5></em>
-<a class="jxr_linenumber" name="L703" href="#L703">703</a> <em class="jxr_javadoccomment"> * <p class='bjava'></em>
-<a class="jxr_linenumber" name="L704" href="#L704">704</a> <em class="jxr_javadoccomment"> * FormatString <jv>fmt</jv> = FormatString.<jsm>of</jsm>(<js>"Hello {0}, you have %d items"</js>);</em>
-<a class="jxr_linenumber" name="L705" href="#L705">705</a> <em class="jxr_javadoccomment"> * <jv>fmt</jv>.<jsm>toPattern</jsm>();</em>
-<a class="jxr_linenumber" name="L706" href="#L706">706</a> <em class="jxr_javadoccomment"> * <jc>// Returns: "[L:Hello ][M:s0][L:, you have ][S:d1:%d][L: items]"</jc></em>
-<a class="jxr_linenumber" name="L707" href="#L707">707</a> <em class="jxr_javadoccomment"> * </p></em>
-<a class="jxr_linenumber" name="L708" href="#L708">708</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L709" href="#L709">709</a> <em class="jxr_javadoccomment"> * @return A debug string showing the parsed token structure.</em>
-<a class="jxr_linenumber" name="L710" href="#L710">710</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L711" href="#L711">711</a> <strong class="jxr_keyword">public</strong> String toPattern() {
-<a class="jxr_linenumber" name="L712" href="#L712">712</a> <strong class="jxr_keyword">return</strong> Arrays.stream(tokens).map(Object::toString).collect(Collectors.joining());
-<a class="jxr_linenumber" name="L713" href="#L713">713</a> }
-<a class="jxr_linenumber" name="L714" href="#L714">714</a>
-<a class="jxr_linenumber" name="L715" href="#L715">715</a> @Override
-<a class="jxr_linenumber" name="L716" href="#L716">716</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> equals(Object o) {
-<a class="jxr_linenumber" name="L717" href="#L717">717</a> <strong class="jxr_keyword">return</strong> o instanceof <a name="FormatString" href="../../../../../org/apache/juneau/common/utils/FormatString.html#FormatString">FormatString</a> o2 && eq(<strong class="jxr_keyword">this</strong>, o2, (x, y) -> eq(x.pattern, y.pattern));
-<a class="jxr_linenumber" name="L718" href="#L718">718</a> }
-<a class="jxr_linenumber" name="L719" href="#L719">719</a>
-<a class="jxr_linenumber" name="L720" href="#L720">720</a> @Override
-<a class="jxr_linenumber" name="L721" href="#L721">721</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> hashCode() {
-<a class="jxr_linenumber" name="L722" href="#L722">722</a> <strong class="jxr_keyword">return</strong> pattern.hashCode();
-<a class="jxr_linenumber" name="L723" href="#L723">723</a> }
-<a class="jxr_linenumber" name="L724" href="#L724">724</a> }
-</pre>
-<hr/>
-<div id="footer">© 2016–2025 <a href="https://www.apache.org/">The Apache Software Foundation</a></div>
-</body>
-</html>
diff --git a/site/xref/org/apache/juneau/common/utils/StringFormat.html b/site/xref/org/apache/juneau/common/utils/StringFormat.html
index ca82f8c6a9..d641c8e20f 100644
--- a/site/xref/org/apache/juneau/common/utils/StringFormat.html
+++ b/site/xref/org/apache/juneau/common/utils/StringFormat.html
@@ -122,7 +122,7 @@
<a class="jxr_linenumber" name="L114" href="#L114">114</a> <em class="jxr_javadoccomment"> *</em>
<a class="jxr_linenumber" name="L115" href="#L115">115</a> <em class="jxr_javadoccomment"> * <p></em>
<a class="jxr_linenumber" name="L116" href="#L116">116</a> <em class="jxr_javadoccomment"> * This is a convenience method that creates a StringFormat instance and formats it.</em>
-<a class="jxr_linenumber" name="L117" href="#L117">117</a> <em class="jxr_javadoccomment"> * If the pattern contains no format specifiers (no '%', '{', or '''), the pattern is returned as-is.</em>
+<a class="jxr_linenumber" name="L117" href="#L117">117</a> <em class="jxr_javadoccomment"> * If no arguments are passed in, the pattern is simply returned as-is.</em>
<a class="jxr_linenumber" name="L118" href="#L118">118</a> <em class="jxr_javadoccomment"> *</em>
<a class="jxr_linenumber" name="L119" href="#L119">119</a> <em class="jxr_javadoccomment"> * @param pattern The format pattern.</em>
<a class="jxr_linenumber" name="L120" href="#L120">120</a> <em class="jxr_javadoccomment"> * @param args The arguments to format.</em>
@@ -130,7 +130,7 @@
<a class="jxr_linenumber" name="L122" href="#L122">122</a> <em class="jxr_javadoccomment"> * @throws IllegalArgumentException If the pattern is <jk>null</jk> or format specifiers are invalid.</em>
<a class="jxr_linenumber" name="L123" href="#L123">123</a> <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L124" href="#L124">124</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String format(String pattern, Object...args) {
-<a class="jxr_linenumber" name="L125" href="#L125">125</a> <strong class="jxr_keyword">if</strong> (!hasArgs(pattern))
+<a class="jxr_linenumber" name="L125" href="#L125">125</a> <strong class="jxr_keyword">if</strong> (args.length == 0)
<a class="jxr_linenumber" name="L126" href="#L126">126</a> <strong class="jxr_keyword">return</strong> pattern;
<a class="jxr_linenumber" name="L127" href="#L127">127</a> <strong class="jxr_keyword">return</strong> of(pattern).format(args);
<a class="jxr_linenumber" name="L128" href="#L128">128</a> }
@@ -140,7 +140,7 @@
<a class="jxr_linenumber" name="L132" href="#L132">132</a> <em class="jxr_javadoccomment"> *</em>
<a class="jxr_linenumber" name="L133" href="#L133">133</a> <em class="jxr_javadoccomment"> * <p></em>
<a class="jxr_linenumber" name="L134" href="#L134">134</a> <em class="jxr_javadoccomment"> * This is a convenience method that creates a StringFormat instance and formats it.</em>
-<a class="jxr_linenumber" name="L135" href="#L135">135</a> <em class="jxr_javadoccomment"> * If the pattern contains no format specifiers (no '%', '{', or '''), the pattern is returned as-is.</em>
+<a class="jxr_linenumber" name="L135" href="#L135">135</a> <em class="jxr_javadoccomment"> * If no arguments are passed in, the pattern is returned as-is.</em>
<a class="jxr_linenumber" name="L136" href="#L136">136</a> <em class="jxr_javadoccomment"> *</em>
<a class="jxr_linenumber" name="L137" href="#L137">137</a> <em class="jxr_javadoccomment"> * @param pattern The format pattern.</em>
<a class="jxr_linenumber" name="L138" href="#L138">138</a> <em class="jxr_javadoccomment"> * @param locale The locale to use for formatting. If <jk>null</jk>, uses the default locale.</em>
@@ -149,7 +149,7 @@
<a class="jxr_linenumber" name="L141" href="#L141">141</a> <em class="jxr_javadoccomment"> * @throws IllegalArgumentException If the pattern is <jk>null</jk> or format specifiers are invalid.</em>
<a class="jxr_linenumber" name="L142" href="#L142">142</a> <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L143" href="#L143">143</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String format(String pattern, Locale locale, Object...args) {
-<a class="jxr_linenumber" name="L144" href="#L144">144</a> <strong class="jxr_keyword">if</strong> (!hasArgs(pattern))
+<a class="jxr_linenumber" name="L144" href="#L144">144</a> <strong class="jxr_keyword">if</strong> (args.length == 0)
<a class="jxr_linenumber" name="L145" href="#L145">145</a> <strong class="jxr_keyword">return</strong> pattern;
<a class="jxr_linenumber" name="L146" href="#L146">146</a> <strong class="jxr_keyword">return</strong> of(pattern).format(locale, args);
<a class="jxr_linenumber" name="L147" href="#L147">147</a> }
diff --git a/site/xref/org/apache/juneau/common/utils/ThrowableUtils.html b/site/xref/org/apache/juneau/common/utils/ThrowableUtils.html
index 2c00293e4c..5254732541 100644
--- a/site/xref/org/apache/juneau/common/utils/ThrowableUtils.html
+++ b/site/xref/org/apache/juneau/common/utils/ThrowableUtils.html
@@ -146,7 +146,7 @@
<a class="jxr_linenumber" name="L138" href="#L138">138</a> <em class="jxr_javadoccomment"> * @return A new IllegalArgumentException with the formatted message.</em>
<a class="jxr_linenumber" name="L139" href="#L139">139</a> <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L140" href="#L140">140</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> IllegalArgumentException illegalArg(String msg, Object...args) {
-<a class="jxr_linenumber" name="L141" href="#L141">141</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(args.length == 0 ? msg : f(msg, args));
+<a class="jxr_linenumber" name="L141" href="#L141">141</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(f(msg, args));
<a class="jxr_linenumber" name="L142" href="#L142">142</a> }
<a class="jxr_linenumber" name="L143" href="#L143">143</a>
<a class="jxr_linenumber" name="L144" href="#L144">144</a> <em class="jxr_javadoccomment">/**</em>
@@ -168,7 +168,7 @@
<a class="jxr_linenumber" name="L160" href="#L160">160</a> <em class="jxr_javadoccomment"> * @return A new IllegalArgumentException with the formatted message and cause.</em>
<a class="jxr_linenumber" name="L161" href="#L161">161</a> <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L162" href="#L162">162</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> IllegalArgumentException illegalArg(Throwable cause, String msg, Object...args) {
-<a class="jxr_linenumber" name="L163" href="#L163">163</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(args.length == 0 ? msg : f(msg, args), cause);
+<a class="jxr_linenumber" name="L163" href="#L163">163</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(f(msg, args), cause);
<a class="jxr_linenumber" name="L164" href="#L164">164</a> }
<a class="jxr_linenumber" name="L165" href="#L165">165</a>
<a class="jxr_linenumber" name="L166" href="#L166">166</a> <em class="jxr_javadoccomment">/**</em>
@@ -179,7 +179,7 @@
<a class="jxr_linenumber" name="L171" href="#L171">171</a> <em class="jxr_javadoccomment"> * @return A new IOException with the formatted message.</em>
<a class="jxr_linenumber" name="L172" href="#L172">172</a> <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L173" href="#L173">173</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> java.io.IOException ioex(String msg, Object...args) {
-<a class="jxr_linenumber" name="L174" href="#L174">174</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> java.io.IOException(args.length == 0 ? msg : f(msg, args));
+<a class="jxr_linenumber" name="L174" href="#L174">174</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> java.io.IOException(f(msg, args));
<a class="jxr_linenumber" name="L175" href="#L175">175</a> }
<a class="jxr_linenumber" name="L176" href="#L176">176</a>
<a class="jxr_linenumber" name="L177" href="#L177">177</a> <em class="jxr_javadoccomment">/**</em>
@@ -201,7 +201,7 @@
<a class="jxr_linenumber" name="L193" href="#L193">193</a> <em class="jxr_javadoccomment"> * @return A new IOException with the formatted message and cause.</em>
<a class="jxr_linenumber" name="L194" href="#L194">194</a> <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L195" href="#L195">195</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> java.io.IOException ioex(Throwable cause, String msg, Object...args) {
-<a class="jxr_linenumber" name="L196" href="#L196">196</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> java.io.IOException(args.length == 0 ? msg : f(msg, args), cause);
+<a class="jxr_linenumber" name="L196" href="#L196">196</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> java.io.IOException(f(msg, args), cause);
<a class="jxr_linenumber" name="L197" href="#L197">197</a> }
<a class="jxr_linenumber" name="L198" href="#L198">198</a>
<a class="jxr_linenumber" name="L199" href="#L199">199</a> <em class="jxr_javadoccomment">/**</em>
@@ -222,7 +222,7 @@
<a class="jxr_linenumber" name="L214" href="#L214">214</a> <em class="jxr_javadoccomment"> * @return A new RuntimeException with the formatted message.</em>
<a class="jxr_linenumber" name="L215" href="#L215">215</a> <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L216" href="#L216">216</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> RuntimeException rex(String msg, Object...args) {
-<a class="jxr_linenumber" name="L217" href="#L217">217</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> RuntimeException(args.length == 0 ? msg : f(msg, args));
+<a class="jxr_linenumber" name="L217" href="#L217">217</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> RuntimeException(f(msg, args));
<a class="jxr_linenumber" name="L218" href="#L218">218</a> }
<a class="jxr_linenumber" name="L219" href="#L219">219</a>
<a class="jxr_linenumber" name="L220" href="#L220">220</a> <em class="jxr_javadoccomment">/**</em>
@@ -302,7 +302,7 @@
<a class="jxr_linenumber" name="L294" href="#L294">294</a> <em class="jxr_javadoccomment"> * @return A new RuntimeException with the formatted message and cause.</em>
<a class="jxr_linenumber" name="L295" href="#L295">295</a> <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L296" href="#L296">296</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a name="BeanRuntimeException" href="../../../../../org/apache/juneau/common/reflect/BeanRuntimeException.html#BeanRuntimeException">BeanRuntimeException</a> bex(Throwable cause, String msg, Object...args) {
-<a class="jxr_linenumber" name="L297" href="#L297">297</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a name="BeanRuntimeException" href="../../../../../org/apache/juneau/common/reflect/BeanRuntimeException.html#BeanRuntimeException">BeanRuntimeException</a>(args.length == 0 ? msg : f(msg, args), cause);
+<a class="jxr_linenumber" name="L297" href="#L297">297</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a name="BeanRuntimeException" href="../../../../../org/apache/juneau/common/reflect/BeanRuntimeException.html#BeanRuntimeException">BeanRuntimeException</a>(f(msg, args), cause);
<a class="jxr_linenumber" name="L298" href="#L298">298</a> }
<a class="jxr_linenumber" name="L299" href="#L299">299</a>
<a class="jxr_linenumber" name="L300" href="#L300">300</a> <em class="jxr_javadoccomment">/**</em>
@@ -332,7 +332,7 @@
<a class="jxr_linenumber" name="L324" href="#L324">324</a> <em class="jxr_javadoccomment"> * @return A new UnsupportedOperationException with the formatted message.</em>
<a class="jxr_linenumber" name="L325" href="#L325">325</a> <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L326" href="#L326">326</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> UnsupportedOperationException unsupportedOp(String msg, Object...args) {
-<a class="jxr_linenumber" name="L327" href="#L327">327</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> UnsupportedOperationException(args.length == 0 ? msg : f(msg, args));
+<a class="jxr_linenumber" name="L327" href="#L327">327</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> UnsupportedOperationException(f(msg, args));
<a class="jxr_linenumber" name="L328" href="#L328">328</a> }
<a class="jxr_linenumber" name="L329" href="#L329">329</a>
<a class="jxr_linenumber" name="L330" href="#L330">330</a> <em class="jxr_javadoccomment">/**</em>
@@ -354,7 +354,7 @@
<a class="jxr_linenumber" name="L346" href="#L346">346</a> <em class="jxr_javadoccomment"> * @return A new UnsupportedOperationException with the formatted message and cause.</em>
<a class="jxr_linenumber" name="L347" href="#L347">347</a> <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L348" href="#L348">348</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> UnsupportedOperationException unsupportedOp(Throwable cause, String msg, Object...args) {
-<a class="jxr_linenumber" name="L349" href="#L349">349</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> UnsupportedOperationException(args.length == 0 ? msg : f(msg, args), cause);
+<a class="jxr_linenumber" name="L349" href="#L349">349</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> UnsupportedOperationException(f(msg, args), cause);
<a class="jxr_linenumber" name="L350" href="#L350">350</a> }
<a class="jxr_linenumber" name="L351" href="#L351">351</a>
<a class="jxr_linenumber" name="L352" href="#L352">352</a> <em class="jxr_javadoccomment">/**</em>
diff --git a/site/xref/org/apache/juneau/common/utils/package-frame.html b/site/xref/org/apache/juneau/common/utils/package-frame.html
index 36175ca5fd..46be571f91 100644
--- a/site/xref/org/apache/juneau/common/utils/package-frame.html
+++ b/site/xref/org/apache/juneau/common/utils/package-frame.html
@@ -48,21 +48,6 @@
<li>
<a href="FileUtils.html#FileUtils" target="classFrame">FileUtils</a>
</li>
- <li>
- <a href="FormatString.html#FormatString" target="classFrame">FormatString</a>
- </li>
- <li>
- <a href="FormatString.html#FormatString.LiteralToken" target="classFrame">FormatString.LiteralToken</a>
- </li>
- <li>
- <a href="FormatString.html#FormatString.MessageFormatToken" target="classFrame">FormatString.MessageFormatToken</a>
- </li>
- <li>
- <a href="FormatString.html#FormatString.StringFormatToken" target="classFrame">FormatString.StringFormatToken</a>
- </li>
- <li>
- <a href="FormatString.html#FormatString.Token" target="classFrame">FormatString.Token</a>
- </li>
<li>
<a href="GranularZonedDateTime.html#GranularZonedDateTime" target="classFrame">GranularZonedDateTime</a>
</li>
diff --git a/site/xref/org/apache/juneau/common/utils/package-summary.html b/site/xref/org/apache/juneau/common/utils/package-summary.html
index 1badb164de..ad7a9d56d4 100644
--- a/site/xref/org/apache/juneau/common/utils/package-summary.html
+++ b/site/xref/org/apache/juneau/common/utils/package-summary.html
@@ -117,141 +117,116 @@
</td>
</tr>
<tr class="altColor">
- <td class="colFirst colLast">
- <a href="FormatString.html#FormatString" target="classFrame" title="class in org.apache.juneau.common.utils">FormatString</a>
- </td>
- </tr>
- <tr class="rowColor">
- <td class="colFirst colLast">
- <a href="FormatString.html#FormatString.LiteralToken" target="classFrame" title="class in org.apache.juneau.common.utils">FormatString.LiteralToken</a>
- </td>
- </tr>
- <tr class="altColor">
- <td class="colFirst colLast">
- <a href="FormatString.html#FormatString.MessageFormatToken" target="classFrame" title="class in org.apache.juneau.common.utils">FormatString.MessageFormatToken</a>
- </td>
- </tr>
- <tr class="rowColor">
- <td class="colFirst colLast">
- <a href="FormatString.html#FormatString.StringFormatToken" target="classFrame" title="class in org.apache.juneau.common.utils">FormatString.StringFormatToken</a>
- </td>
- </tr>
- <tr class="altColor">
- <td class="colFirst colLast">
- <a href="FormatString.html#FormatString.Token" target="classFrame" title="class in org.apache.juneau.common.utils">FormatString.Token</a>
- </td>
- </tr>
- <tr class="rowColor">
<td class="colFirst colLast">
<a href="GranularZonedDateTime.html#GranularZonedDateTime" target="classFrame" title="class in org.apache.juneau.common.utils">GranularZonedDateTime</a>
</td>
</tr>
- <tr class="altColor">
+ <tr class="rowColor">
<td class="colFirst colLast">
<a href="HashCode.html#HashCode" target="classFrame" title="class in org.apache.juneau.common.utils">HashCode</a>
</td>
</tr>
- <tr class="rowColor">
+ <tr class="altColor">
<td class="colFirst colLast">
<a href="IOUtils.html#IOUtils" target="classFrame" title="class in org.apache.juneau.common.utils">IOUtils</a>
</td>
</tr>
- <tr class="altColor">
+ <tr class="rowColor">
<td class="colFirst colLast">
<a href="MimeTypeDetector.html#MimeTypeDetector" target="classFrame" title="class in org.apache.juneau.common.utils">MimeTypeDetector</a>
</td>
</tr>
- <tr class="rowColor">
+ <tr class="altColor">
<td class="colFirst colLast">
<a href="MimeTypeDetector.html#MimeTypeDetector.Builder" target="classFrame" title="class in org.apache.juneau.common.utils">MimeTypeDetector.Builder</a>
</td>
</tr>
- <tr class="altColor">
+ <tr class="rowColor">
<td class="colFirst colLast">
<a href="PredicateUtils.html#PredicateUtils" target="classFrame" title="class in org.apache.juneau.common.utils">PredicateUtils</a>
</td>
</tr>
- <tr class="rowColor">
+ <tr class="altColor">
<td class="colFirst colLast">
<a href="ResourceBundleUtils.html#ResourceBundleUtils" target="classFrame" title="class in org.apache.juneau.common.utils">ResourceBundleUtils</a>
</td>
</tr>
- <tr class="altColor">
+ <tr class="rowColor">
<td class="colFirst colLast">
<a href="SimpleLock.html#SimpleLock" target="classFrame" title="class in org.apache.juneau.common.utils">SimpleLock</a>
</td>
</tr>
- <tr class="rowColor">
+ <tr class="altColor">
<td class="colFirst colLast">
<a href="SimpleReadWriteLock.html#SimpleReadWriteLock" target="classFrame" title="class in org.apache.juneau.common.utils">SimpleReadWriteLock</a>
</td>
</tr>
- <tr class="altColor">
+ <tr class="rowColor">
<td class="colFirst colLast">
<a href="StateEnum.html#StateEnum" target="classFrame" title="class in org.apache.juneau.common.utils">StateEnum</a>
</td>
</tr>
- <tr class="rowColor">
+ <tr class="altColor">
<td class="colFirst colLast">
<a href="StringFormat.html#StringFormat" target="classFrame" title="class in org.apache.juneau.common.utils">StringFormat</a>
</td>
</tr>
- <tr class="altColor">
+ <tr class="rowColor">
<td class="colFirst colLast">
<a href="StringFormat.html#StringFormat.LiteralToken" target="classFrame" title="class in org.apache.juneau.common.utils">StringFormat.LiteralToken</a>
</td>
</tr>
- <tr class="rowColor">
+ <tr class="altColor">
<td class="colFirst colLast">
<a href="StringFormat.html#StringFormat.MessageFormatToken" target="classFrame" title="class in org.apache.juneau.common.utils">StringFormat.MessageFormatToken</a>
</td>
</tr>
- <tr class="altColor">
+ <tr class="rowColor">
<td class="colFirst colLast">
<a href="StringFormat.html#StringFormat.StringFormatToken" target="classFrame" title="class in org.apache.juneau.common.utils">StringFormat.StringFormatToken</a>
</td>
</tr>
- <tr class="rowColor">
+ <tr class="altColor">
<td class="colFirst colLast">
<a href="StringFormat.html#StringFormat.Token" target="classFrame" title="class in org.apache.juneau.common.utils">StringFormat.Token</a>
</td>
</tr>
- <tr class="altColor">
+ <tr class="rowColor">
<td class="colFirst colLast">
<a href="StringUtils.html#StringUtils" target="classFrame" title="class in org.apache.juneau.common.utils">StringUtils</a>
</td>
</tr>
- <tr class="rowColor">
+ <tr class="altColor">
<td class="colFirst colLast">
<a href="SystemUtils.html#SystemUtils" target="classFrame" title="class in org.apache.juneau.common.utils">SystemUtils</a>
</td>
</tr>
- <tr class="altColor">
+ <tr class="rowColor">
<td class="colFirst colLast">
<a href="ThrowableUtils.html#ThrowableUtils" target="classFrame" title="class in org.apache.juneau.common.utils">ThrowableUtils</a>
</td>
</tr>
- <tr class="rowColor">
+ <tr class="altColor">
<td class="colFirst colLast">
<a href="ThrowableUtils.html#ThrowableUtils.SupplierWithThrowable" target="classFrame" title="class in org.apache.juneau.common.utils">ThrowableUtils.SupplierWithThrowable</a>
</td>
</tr>
- <tr class="altColor">
+ <tr class="rowColor">
<td class="colFirst colLast">
<a href="Utils.html#Utils" target="classFrame" title="class in org.apache.juneau.common.utils">Utils</a>
</td>
</tr>
- <tr class="rowColor">
+ <tr class="altColor">
<td class="colFirst colLast">
<a href="Version.html#Version" target="classFrame" title="class in org.apache.juneau.common.utils">Version</a>
</td>
</tr>
- <tr class="altColor">
+ <tr class="rowColor">
<td class="colFirst colLast">
<a href="VersionRange.html#VersionRange" target="classFrame" title="class in org.apache.juneau.common.utils">VersionRange</a>
</td>
</tr>
- <tr class="rowColor">
+ <tr class="altColor">
<td class="colFirst colLast">
<a href="WeightedAverage.html#WeightedAverage" target="classFrame" title="class in org.apache.juneau.common.utils">WeightedAverage</a>
</td>
diff --git a/site/xref/org/apache/juneau/cp/Messages.html b/site/xref/org/apache/juneau/cp/Messages.html
index 4dd2035d1c..b2da9dbf33 100644
--- a/site/xref/org/apache/juneau/cp/Messages.html
+++ b/site/xref/org/apache/juneau/cp/Messages.html
@@ -449,7 +449,7 @@
<a class="jxr_linenumber" name="L441" href="#L441">441</a> <strong class="jxr_keyword">var</strong> s = getString(key);
<a class="jxr_linenumber" name="L442" href="#L442">442</a> <strong class="jxr_keyword">if</strong> (s.startsWith(<span class="jxr_string">"{!"</span>))
<a class="jxr_linenumber" name="L443" href="#L443">443</a> <strong class="jxr_keyword">return</strong> s;
-<a class="jxr_linenumber" name="L444" href="#L444">444</a> <strong class="jxr_keyword">return</strong> mformat(s, args);
+<a class="jxr_linenumber" name="L444" href="#L444">444</a> <strong class="jxr_keyword">return</strong> f(s, args);
<a class="jxr_linenumber" name="L445" href="#L445">445</a> }
<a class="jxr_linenumber" name="L446" href="#L446">446</a>
<a class="jxr_linenumber" name="L447" href="#L447">447</a> @Override <em class="jxr_comment">/* Overridden from ResourceBundle */</em>
diff --git a/site/xref/org/apache/juneau/microservice/Microservice.html b/site/xref/org/apache/juneau/microservice/Microservice.html
index c293de1c53..fc195bb3c8 100644
--- a/site/xref/org/apache/juneau/microservice/Microservice.html
+++ b/site/xref/org/apache/juneau/microservice/Microservice.html
@@ -1163,7 +1163,7 @@
<a class="jxr_linenumber" name="L1155" href="#L1155">1155</a> <em class="jxr_javadoccomment"> * @param args Optional {@link MessageFormat}-style arguments.</em>
<a class="jxr_linenumber" name="L1156" href="#L1156">1156</a> <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L1157" href="#L1157">1157</a> <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> log(Level level, String message, Object...args) {
-<a class="jxr_linenumber" name="L1158" href="#L1158">1158</a> <strong class="jxr_keyword">var</strong> msg = args.length == 0 ? message : MessageFormat.format(message, args);
+<a class="jxr_linenumber" name="L1158" href="#L1158">1158</a> <strong class="jxr_keyword">var</strong> msg = args.length == 0 ? message : f(message, args);
<a class="jxr_linenumber" name="L1159" href="#L1159">1159</a> getLogger().log(level, msg);
<a class="jxr_linenumber" name="L1160" href="#L1160">1160</a> }
<a class="jxr_linenumber" name="L1161" href="#L1161">1161</a>
diff --git a/site/xref/org/apache/juneau/microservice/jetty/JettyLogger.html b/site/xref/org/apache/juneau/microservice/jetty/JettyLogger.html
index 74d80116af..c1e877c01d 100644
--- a/site/xref/org/apache/juneau/microservice/jetty/JettyLogger.html
+++ b/site/xref/org/apache/juneau/microservice/jetty/JettyLogger.html
@@ -65,513 +65,497 @@
<a class="jxr_linenumber" name="L57" href="#L57">57</a> <em class="jxr_javadoccomment"> * @return The formatted message string.</em>
<a class="jxr_linenumber" name="L58" href="#L58">58</a> <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L59" href="#L59">59</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> String format(String msg, Object...args) {
-<a class="jxr_linenumber" name="L60" href="#L60">60</a> msg = String.valueOf(msg);
-<a class="jxr_linenumber" name="L61" href="#L61">61</a> <strong class="jxr_keyword">if</strong> (args.length == 0)
-<a class="jxr_linenumber" name="L62" href="#L62">62</a> <strong class="jxr_keyword">return</strong> msg;
-<a class="jxr_linenumber" name="L63" href="#L63">63</a> <strong class="jxr_keyword">var</strong> sb = <strong class="jxr_keyword">new</strong> StringBuilder();
-<a class="jxr_linenumber" name="L64" href="#L64">64</a> <strong class="jxr_keyword">int</strong> start = 0;
-<a class="jxr_linenumber" name="L65" href="#L65">65</a> <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> arg : args) {
-<a class="jxr_linenumber" name="L66" href="#L66">66</a> <strong class="jxr_keyword">int</strong> bi = msg.indexOf(<span class="jxr_string">"{}"</span>, start);
-<a class="jxr_linenumber" name="L67" href="#L67">67</a> <strong class="jxr_keyword">if</strong> (bi < 0) {
-<a class="jxr_linenumber" name="L68" href="#L68">68</a> sb.append(msg.substring(start)).append(<span class="jxr_string">" "</span>).append(arg);
-<a class="jxr_linenumber" name="L69" href="#L69">69</a> start = msg.length();
-<a class="jxr_linenumber" name="L70" href="#L70">70</a> } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="L71" href="#L71">71</a> sb.append(msg.substring(start, bi)).append(String.valueOf(arg));
-<a class="jxr_linenumber" name="L72" href="#L72">72</a> start = bi + 2;
-<a class="jxr_linenumber" name="L73" href="#L73">73</a> }
-<a class="jxr_linenumber" name="L74" href="#L74">74</a> }
-<a class="jxr_linenumber" name="L75" href="#L75">75</a> sb.append(msg.substring(start));
-<a class="jxr_linenumber" name="L76" href="#L76">76</a> <strong class="jxr_keyword">return</strong> sb.toString();
-<a class="jxr_linenumber" name="L77" href="#L77">77</a> }
-<a class="jxr_linenumber" name="L78" href="#L78">78</a>
-<a class="jxr_linenumber" name="L79" href="#L79">79</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L80" href="#L80">80</a> <em class="jxr_javadoccomment"> * The originally configured log level, used to restore the level when debug mode is disabled.</em>
-<a class="jxr_linenumber" name="L81" href="#L81">81</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L82" href="#L82">82</a> <strong class="jxr_keyword">private</strong> Level configuredLevel;
-<a class="jxr_linenumber" name="L83" href="#L83">83</a>
-<a class="jxr_linenumber" name="L84" href="#L84">84</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L85" href="#L85">85</a> <em class="jxr_javadoccomment"> * The underlying Java Util Logger instance.</em>
-<a class="jxr_linenumber" name="L86" href="#L86">86</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L87" href="#L87">87</a> <strong class="jxr_keyword">private</strong> Logger logger;
-<a class="jxr_linenumber" name="L88" href="#L88">88</a>
-<a class="jxr_linenumber" name="L89" href="#L89">89</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L90" href="#L90">90</a> <em class="jxr_javadoccomment"> * Default constructor.</em>
-<a class="jxr_linenumber" name="L91" href="#L91">91</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L92" href="#L92">92</a> <em class="jxr_javadoccomment"> * <p></em>
-<a class="jxr_linenumber" name="L93" href="#L93">93</a> <em class="jxr_javadoccomment"> * Returns the logger with name <js>"org.eclipse.jetty.util.log.javautil"</js>.</em>
-<a class="jxr_linenumber" name="L94" href="#L94">94</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L95" href="#L95">95</a> <strong class="jxr_keyword">public</strong> <a name="JettyLogger" href="../../../../../org/apache/juneau/microservice/jetty/JettyLogger.html#JettyLogger">JettyLogger</a>() {
-<a class="jxr_linenumber" name="L96" href="#L96">96</a> <strong class="jxr_keyword">this</strong>(<span class="jxr_string">"org.eclipse.jetty.util.log.javautil"</span>);
+<a class="jxr_linenumber" name="L60" href="#L60">60</a> <strong class="jxr_keyword">return</strong> f(msg, args);
+<a class="jxr_linenumber" name="L61" href="#L61">61</a> }
+<a class="jxr_linenumber" name="L62" href="#L62">62</a>
+<a class="jxr_linenumber" name="L63" href="#L63">63</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L64" href="#L64">64</a> <em class="jxr_javadoccomment"> * The originally configured log level, used to restore the level when debug mode is disabled.</em>
+<a class="jxr_linenumber" name="L65" href="#L65">65</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L66" href="#L66">66</a> <strong class="jxr_keyword">private</strong> Level configuredLevel;
+<a class="jxr_linenumber" name="L67" href="#L67">67</a>
+<a class="jxr_linenumber" name="L68" href="#L68">68</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L69" href="#L69">69</a> <em class="jxr_javadoccomment"> * The underlying Java Util Logger instance.</em>
+<a class="jxr_linenumber" name="L70" href="#L70">70</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L71" href="#L71">71</a> <strong class="jxr_keyword">private</strong> Logger logger;
+<a class="jxr_linenumber" name="L72" href="#L72">72</a>
+<a class="jxr_linenumber" name="L73" href="#L73">73</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L74" href="#L74">74</a> <em class="jxr_javadoccomment"> * Default constructor.</em>
+<a class="jxr_linenumber" name="L75" href="#L75">75</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L76" href="#L76">76</a> <em class="jxr_javadoccomment"> * <p></em>
+<a class="jxr_linenumber" name="L77" href="#L77">77</a> <em class="jxr_javadoccomment"> * Returns the logger with name <js>"org.eclipse.jetty.util.log.javautil"</js>.</em>
+<a class="jxr_linenumber" name="L78" href="#L78">78</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L79" href="#L79">79</a> <strong class="jxr_keyword">public</strong> <a name="JettyLogger" href="../../../../../org/apache/juneau/microservice/jetty/JettyLogger.html#JettyLogger">JettyLogger</a>() {
+<a class="jxr_linenumber" name="L80" href="#L80">80</a> <strong class="jxr_keyword">this</strong>(<span class="jxr_string">"org.eclipse.jetty.util.log.javautil"</span>);
+<a class="jxr_linenumber" name="L81" href="#L81">81</a> }
+<a class="jxr_linenumber" name="L82" href="#L82">82</a>
+<a class="jxr_linenumber" name="L83" href="#L83">83</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L84" href="#L84">84</a> <em class="jxr_javadoccomment"> * Normal constructor.</em>
+<a class="jxr_linenumber" name="L85" href="#L85">85</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L86" href="#L86">86</a> <em class="jxr_javadoccomment"> * @param name The logger name.</em>
+<a class="jxr_linenumber" name="L87" href="#L87">87</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L88" href="#L88">88</a> <strong class="jxr_keyword">public</strong> <a name="JettyLogger" href="../../../../../org/apache/juneau/microservice/jetty/JettyLogger.html#JettyLogger">JettyLogger</a>(String name) {
+<a class="jxr_linenumber" name="L89" href="#L89">89</a> logger = Logger.getLogger(name);
+<a class="jxr_linenumber" name="L90" href="#L90">90</a> configuredLevel = logger.getLevel();
+<a class="jxr_linenumber" name="L91" href="#L91">91</a> }
+<a class="jxr_linenumber" name="L92" href="#L92">92</a>
+<a class="jxr_linenumber" name="L93" href="#L93">93</a> @Override
+<a class="jxr_linenumber" name="L94" href="#L94">94</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> debug(Marker marker, String msg) {
+<a class="jxr_linenumber" name="L95" href="#L95">95</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="L96" href="#L96">96</a>
<a class="jxr_linenumber" name="L97" href="#L97">97</a> }
<a class="jxr_linenumber" name="L98" href="#L98">98</a>
-<a class="jxr_linenumber" name="L99" href="#L99">99</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L100" href="#L100">100</a> <em class="jxr_javadoccomment"> * Normal constructor.</em>
-<a class="jxr_linenumber" name="L101" href="#L101">101</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L102" href="#L102">102</a> <em class="jxr_javadoccomment"> * @param name The logger name.</em>
-<a class="jxr_linenumber" name="L103" href="#L103">103</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L104" href="#L104">104</a> <strong class="jxr_keyword">public</strong> <a name="JettyLogger" href="../../../../../org/apache/juneau/microservice/jetty/JettyLogger.html#JettyLogger">JettyLogger</a>(String name) {
-<a class="jxr_linenumber" name="L105" href="#L105">105</a> logger = Logger.getLogger(name);
-<a class="jxr_linenumber" name="L106" href="#L106">106</a> configuredLevel = logger.getLevel();
-<a class="jxr_linenumber" name="L107" href="#L107">107</a> }
+<a class="jxr_linenumber" name="L99" href="#L99">99</a> @Override
+<a class="jxr_linenumber" name="L100" href="#L100">100</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> debug(Marker marker, String format, Object arg) {
+<a class="jxr_linenumber" name="L101" href="#L101">101</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="L102" href="#L102">102</a>
+<a class="jxr_linenumber" name="L103" href="#L103">103</a> }
+<a class="jxr_linenumber" name="L104" href="#L104">104</a>
+<a class="jxr_linenumber" name="L105" href="#L105">105</a> @Override
+<a class="jxr_linenumber" name="L106" href="#L106">106</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> debug(Marker marker, String format, Object...arguments) {
+<a class="jxr_linenumber" name="L107" href="#L107">107</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
<a class="jxr_linenumber" name="L108" href="#L108">108</a>
-<a class="jxr_linenumber" name="L109" href="#L109">109</a> @Override
-<a class="jxr_linenumber" name="L110" href="#L110">110</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> debug(Marker marker, String msg) {
-<a class="jxr_linenumber" name="L111" href="#L111">111</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L112" href="#L112">112</a>
-<a class="jxr_linenumber" name="L113" href="#L113">113</a> }
+<a class="jxr_linenumber" name="L109" href="#L109">109</a> }
+<a class="jxr_linenumber" name="L110" href="#L110">110</a>
+<a class="jxr_linenumber" name="L111" href="#L111">111</a> @Override
+<a class="jxr_linenumber" name="L112" href="#L112">112</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> debug(Marker marker, String format, Object arg1, Object arg2) {
+<a class="jxr_linenumber" name="L113" href="#L113">113</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
<a class="jxr_linenumber" name="L114" href="#L114">114</a>
-<a class="jxr_linenumber" name="L115" href="#L115">115</a> @Override
-<a class="jxr_linenumber" name="L116" href="#L116">116</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> debug(Marker marker, String format, Object arg) {
-<a class="jxr_linenumber" name="L117" href="#L117">117</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L118" href="#L118">118</a>
-<a class="jxr_linenumber" name="L119" href="#L119">119</a> }
+<a class="jxr_linenumber" name="L115" href="#L115">115</a> }
+<a class="jxr_linenumber" name="L116" href="#L116">116</a>
+<a class="jxr_linenumber" name="L117" href="#L117">117</a> @Override
+<a class="jxr_linenumber" name="L118" href="#L118">118</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> debug(Marker marker, String msg, Throwable t) {
+<a class="jxr_linenumber" name="L119" href="#L119">119</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
<a class="jxr_linenumber" name="L120" href="#L120">120</a>
-<a class="jxr_linenumber" name="L121" href="#L121">121</a> @Override
-<a class="jxr_linenumber" name="L122" href="#L122">122</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> debug(Marker marker, String format, Object...arguments) {
-<a class="jxr_linenumber" name="L123" href="#L123">123</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L124" href="#L124">124</a>
-<a class="jxr_linenumber" name="L125" href="#L125">125</a> }
+<a class="jxr_linenumber" name="L121" href="#L121">121</a> }
+<a class="jxr_linenumber" name="L122" href="#L122">122</a>
+<a class="jxr_linenumber" name="L123" href="#L123">123</a> @Override
+<a class="jxr_linenumber" name="L124" href="#L124">124</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> debug(String msg) {
+<a class="jxr_linenumber" name="L125" href="#L125">125</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
<a class="jxr_linenumber" name="L126" href="#L126">126</a>
-<a class="jxr_linenumber" name="L127" href="#L127">127</a> @Override
-<a class="jxr_linenumber" name="L128" href="#L128">128</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> debug(Marker marker, String format, Object arg1, Object arg2) {
-<a class="jxr_linenumber" name="L129" href="#L129">129</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L130" href="#L130">130</a>
-<a class="jxr_linenumber" name="L131" href="#L131">131</a> }
-<a class="jxr_linenumber" name="L132" href="#L132">132</a>
-<a class="jxr_linenumber" name="L133" href="#L133">133</a> @Override
-<a class="jxr_linenumber" name="L134" href="#L134">134</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> debug(Marker marker, String msg, Throwable t) {
-<a class="jxr_linenumber" name="L135" href="#L135">135</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L136" href="#L136">136</a>
-<a class="jxr_linenumber" name="L137" href="#L137">137</a> }
-<a class="jxr_linenumber" name="L138" href="#L138">138</a>
-<a class="jxr_linenumber" name="L139" href="#L139">139</a> @Override
-<a class="jxr_linenumber" name="L140" href="#L140">140</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> debug(String msg) {
-<a class="jxr_linenumber" name="L141" href="#L141">141</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L142" href="#L142">142</a>
-<a class="jxr_linenumber" name="L143" href="#L143">143</a> }
-<a class="jxr_linenumber" name="L144" href="#L144">144</a>
-<a class="jxr_linenumber" name="L145" href="#L145">145</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L146" href="#L146">146</a> <em class="jxr_javadoccomment"> * Logs a debug message with a long argument.</em>
-<a class="jxr_linenumber" name="L147" href="#L147">147</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L148" href="#L148">148</a> <em class="jxr_javadoccomment"> * @param msg The message template with "{}" placeholder.</em>
-<a class="jxr_linenumber" name="L149" href="#L149">149</a> <em class="jxr_javadoccomment"> * @param arg The long argument to substitute into the message.</em>
-<a class="jxr_linenumber" name="L150" href="#L150">150</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L151" href="#L151">151</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> debug(String msg, <strong class="jxr_keyword">long</strong> arg) {
-<a class="jxr_linenumber" name="L152" href="#L152">152</a> <strong class="jxr_keyword">if</strong> (isLoggable(FINE))
-<a class="jxr_linenumber" name="L153" href="#L153">153</a> log(FINE, format(msg, arg), <strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L154" href="#L154">154</a> }
+<a class="jxr_linenumber" name="L127" href="#L127">127</a> }
+<a class="jxr_linenumber" name="L128" href="#L128">128</a>
+<a class="jxr_linenumber" name="L129" href="#L129">129</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L130" href="#L130">130</a> <em class="jxr_javadoccomment"> * Logs a debug message with a long argument.</em>
+<a class="jxr_linenumber" name="L131" href="#L131">131</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L132" href="#L132">132</a> <em class="jxr_javadoccomment"> * @param msg The message template with "{}" placeholder.</em>
+<a class="jxr_linenumber" name="L133" href="#L133">133</a> <em class="jxr_javadoccomment"> * @param arg The long argument to substitute into the message.</em>
+<a class="jxr_linenumber" name="L134" href="#L134">134</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L135" href="#L135">135</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> debug(String msg, <strong class="jxr_keyword">long</strong> arg) {
+<a class="jxr_linenumber" name="L136" href="#L136">136</a> <strong class="jxr_keyword">if</strong> (isLoggable(FINE))
+<a class="jxr_linenumber" name="L137" href="#L137">137</a> log(FINE, format(msg, arg), <strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="L138" href="#L138">138</a> }
+<a class="jxr_linenumber" name="L139" href="#L139">139</a>
+<a class="jxr_linenumber" name="L140" href="#L140">140</a> @Override
+<a class="jxr_linenumber" name="L141" href="#L141">141</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> debug(String msg, Object...args) {
+<a class="jxr_linenumber" name="L142" href="#L142">142</a> <strong class="jxr_keyword">if</strong> (isLoggable(FINE))
+<a class="jxr_linenumber" name="L143" href="#L143">143</a> log(FINE, format(msg, args), <strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="L144" href="#L144">144</a> }
+<a class="jxr_linenumber" name="L145" href="#L145">145</a>
+<a class="jxr_linenumber" name="L146" href="#L146">146</a> @Override
+<a class="jxr_linenumber" name="L147" href="#L147">147</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> debug(String format, Object arg) {
+<a class="jxr_linenumber" name="L148" href="#L148">148</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="L149" href="#L149">149</a>
+<a class="jxr_linenumber" name="L150" href="#L150">150</a> }
+<a class="jxr_linenumber" name="L151" href="#L151">151</a>
+<a class="jxr_linenumber" name="L152" href="#L152">152</a> @Override
+<a class="jxr_linenumber" name="L153" href="#L153">153</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> debug(String format, Object arg1, Object arg2) {
+<a class="jxr_linenumber" name="L154" href="#L154">154</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
<a class="jxr_linenumber" name="L155" href="#L155">155</a>
-<a class="jxr_linenumber" name="L156" href="#L156">156</a> @Override
-<a class="jxr_linenumber" name="L157" href="#L157">157</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> debug(String msg, Object...args) {
-<a class="jxr_linenumber" name="L158" href="#L158">158</a> <strong class="jxr_keyword">if</strong> (isLoggable(FINE))
-<a class="jxr_linenumber" name="L159" href="#L159">159</a> log(FINE, format(msg, args), <strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L160" href="#L160">160</a> }
-<a class="jxr_linenumber" name="L161" href="#L161">161</a>
-<a class="jxr_linenumber" name="L162" href="#L162">162</a> @Override
-<a class="jxr_linenumber" name="L163" href="#L163">163</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> debug(String format, Object arg) {
-<a class="jxr_linenumber" name="L164" href="#L164">164</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L165" href="#L165">165</a>
-<a class="jxr_linenumber" name="L166" href="#L166">166</a> }
-<a class="jxr_linenumber" name="L167" href="#L167">167</a>
-<a class="jxr_linenumber" name="L168" href="#L168">168</a> @Override
-<a class="jxr_linenumber" name="L169" href="#L169">169</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> debug(String format, Object arg1, Object arg2) {
-<a class="jxr_linenumber" name="L170" href="#L170">170</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L171" href="#L171">171</a>
+<a class="jxr_linenumber" name="L156" href="#L156">156</a> }
+<a class="jxr_linenumber" name="L157" href="#L157">157</a>
+<a class="jxr_linenumber" name="L158" href="#L158">158</a> @Override
+<a class="jxr_linenumber" name="L159" href="#L159">159</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> debug(String msg, Throwable thrown) {
+<a class="jxr_linenumber" name="L160" href="#L160">160</a> <strong class="jxr_keyword">if</strong> (isLoggable(FINE))
+<a class="jxr_linenumber" name="L161" href="#L161">161</a> log(FINE, msg, thrown);
+<a class="jxr_linenumber" name="L162" href="#L162">162</a> }
+<a class="jxr_linenumber" name="L163" href="#L163">163</a>
+<a class="jxr_linenumber" name="L164" href="#L164">164</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L165" href="#L165">165</a> <em class="jxr_javadoccomment"> * Logs a debug message with only a throwable.</em>
+<a class="jxr_linenumber" name="L166" href="#L166">166</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L167" href="#L167">167</a> <em class="jxr_javadoccomment"> * @param thrown The throwable to log.</em>
+<a class="jxr_linenumber" name="L168" href="#L168">168</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L169" href="#L169">169</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> debug(Throwable thrown) {
+<a class="jxr_linenumber" name="L170" href="#L170">170</a> <strong class="jxr_keyword">if</strong> (isLoggable(FINE))
+<a class="jxr_linenumber" name="L171" href="#L171">171</a> log(FINE, <span class="jxr_string">""</span>, thrown);
<a class="jxr_linenumber" name="L172" href="#L172">172</a> }
<a class="jxr_linenumber" name="L173" href="#L173">173</a>
<a class="jxr_linenumber" name="L174" href="#L174">174</a> @Override
-<a class="jxr_linenumber" name="L175" href="#L175">175</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> debug(String msg, Throwable thrown) {
-<a class="jxr_linenumber" name="L176" href="#L176">176</a> <strong class="jxr_keyword">if</strong> (isLoggable(FINE))
-<a class="jxr_linenumber" name="L177" href="#L177">177</a> log(FINE, msg, thrown);
-<a class="jxr_linenumber" name="L178" href="#L178">178</a> }
-<a class="jxr_linenumber" name="L179" href="#L179">179</a>
-<a class="jxr_linenumber" name="L180" href="#L180">180</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L181" href="#L181">181</a> <em class="jxr_javadoccomment"> * Logs a debug message with only a throwable.</em>
-<a class="jxr_linenumber" name="L182" href="#L182">182</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L183" href="#L183">183</a> <em class="jxr_javadoccomment"> * @param thrown The throwable to log.</em>
-<a class="jxr_linenumber" name="L184" href="#L184">184</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L185" href="#L185">185</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> debug(Throwable thrown) {
-<a class="jxr_linenumber" name="L186" href="#L186">186</a> <strong class="jxr_keyword">if</strong> (isLoggable(FINE))
-<a class="jxr_linenumber" name="L187" href="#L187">187</a> log(FINE, <span class="jxr_string">""</span>, thrown);
-<a class="jxr_linenumber" name="L188" href="#L188">188</a> }
-<a class="jxr_linenumber" name="L189" href="#L189">189</a>
-<a class="jxr_linenumber" name="L190" href="#L190">190</a> @Override
-<a class="jxr_linenumber" name="L191" href="#L191">191</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> error(Marker marker, String msg) {
-<a class="jxr_linenumber" name="L192" href="#L192">192</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L193" href="#L193">193</a> }
-<a class="jxr_linenumber" name="L194" href="#L194">194</a>
-<a class="jxr_linenumber" name="L195" href="#L195">195</a> @Override
-<a class="jxr_linenumber" name="L196" href="#L196">196</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> error(Marker marker, String format, Object arg) {
-<a class="jxr_linenumber" name="L197" href="#L197">197</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L198" href="#L198">198</a> }
-<a class="jxr_linenumber" name="L199" href="#L199">199</a>
-<a class="jxr_linenumber" name="L200" href="#L200">200</a> @Override
-<a class="jxr_linenumber" name="L201" href="#L201">201</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> error(Marker marker, String format, Object...arguments) {
-<a class="jxr_linenumber" name="L202" href="#L202">202</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L203" href="#L203">203</a> }
-<a class="jxr_linenumber" name="L204" href="#L204">204</a>
-<a class="jxr_linenumber" name="L205" href="#L205">205</a> @Override
-<a class="jxr_linenumber" name="L206" href="#L206">206</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> error(Marker marker, String format, Object arg1, Object arg2) {
-<a class="jxr_linenumber" name="L207" href="#L207">207</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L208" href="#L208">208</a> }
-<a class="jxr_linenumber" name="L209" href="#L209">209</a>
-<a class="jxr_linenumber" name="L210" href="#L210">210</a> @Override
-<a class="jxr_linenumber" name="L211" href="#L211">211</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> error(Marker marker, String msg, Throwable t) {
-<a class="jxr_linenumber" name="L212" href="#L212">212</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L213" href="#L213">213</a> }
-<a class="jxr_linenumber" name="L214" href="#L214">214</a>
-<a class="jxr_linenumber" name="L215" href="#L215">215</a> @Override
-<a class="jxr_linenumber" name="L216" href="#L216">216</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> error(String msg) {
-<a class="jxr_linenumber" name="L217" href="#L217">217</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L218" href="#L218">218</a> }
-<a class="jxr_linenumber" name="L219" href="#L219">219</a>
-<a class="jxr_linenumber" name="L220" href="#L220">220</a> @Override
-<a class="jxr_linenumber" name="L221" href="#L221">221</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> error(String format, Object arg) {
-<a class="jxr_linenumber" name="L222" href="#L222">222</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L223" href="#L223">223</a> }
-<a class="jxr_linenumber" name="L224" href="#L224">224</a>
-<a class="jxr_linenumber" name="L225" href="#L225">225</a> @Override
-<a class="jxr_linenumber" name="L226" href="#L226">226</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> error(String format, Object...arguments) {
-<a class="jxr_linenumber" name="L227" href="#L227">227</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L228" href="#L228">228</a> }
-<a class="jxr_linenumber" name="L229" href="#L229">229</a>
-<a class="jxr_linenumber" name="L230" href="#L230">230</a> @Override
-<a class="jxr_linenumber" name="L231" href="#L231">231</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> error(String format, Object arg1, Object arg2) {
-<a class="jxr_linenumber" name="L232" href="#L232">232</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L233" href="#L233">233</a> }
-<a class="jxr_linenumber" name="L234" href="#L234">234</a>
-<a class="jxr_linenumber" name="L235" href="#L235">235</a> @Override
-<a class="jxr_linenumber" name="L236" href="#L236">236</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> error(String msg, Throwable t) {
-<a class="jxr_linenumber" name="L237" href="#L237">237</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L238" href="#L238">238</a> }
-<a class="jxr_linenumber" name="L239" href="#L239">239</a>
-<a class="jxr_linenumber" name="L240" href="#L240">240</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L241" href="#L241">241</a> <em class="jxr_javadoccomment"> * Creates a child logger with the specified name.</em>
-<a class="jxr_linenumber" name="L242" href="#L242">242</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L243" href="#L243">243</a> <em class="jxr_javadoccomment"> * @param name The logger name.</em>
-<a class="jxr_linenumber" name="L244" href="#L244">244</a> <em class="jxr_javadoccomment"> * @return A new JettyLogger instance for the specified name.</em>
-<a class="jxr_linenumber" name="L245" href="#L245">245</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L246" href="#L246">246</a> <strong class="jxr_keyword">public</strong> <a name="JettyLogger" href="../../../../../org/apache/juneau/microservice/jetty/JettyLogger.html#JettyLogger">JettyLogger</a> getLogger(String name) {
-<a class="jxr_linenumber" name="L247" href="#L247">247</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a name="JettyLogger" href="../../../../../org/apache/juneau/microservice/jetty/JettyLogger.html#JettyLogger">JettyLogger</a>(name);
-<a class="jxr_linenumber" name="L248" href="#L248">248</a> }
-<a class="jxr_linenumber" name="L249" href="#L249">249</a>
-<a class="jxr_linenumber" name="L250" href="#L250">250</a> @Override
-<a class="jxr_linenumber" name="L251" href="#L251">251</a> <strong class="jxr_keyword">public</strong> String getName() { <strong class="jxr_keyword">return</strong> logger.getName(); }
-<a class="jxr_linenumber" name="L252" href="#L252">252</a>
-<a class="jxr_linenumber" name="L253" href="#L253">253</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L254" href="#L254">254</a> <em class="jxr_javadoccomment"> * Logs an ignored exception at the FINEST level.</em>
-<a class="jxr_linenumber" name="L255" href="#L255">255</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L256" href="#L256">256</a> <em class="jxr_javadoccomment"> * @param ignored The exception to log as ignored.</em>
-<a class="jxr_linenumber" name="L257" href="#L257">257</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L258" href="#L258">258</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> ignore(Throwable ignored) {
-<a class="jxr_linenumber" name="L259" href="#L259">259</a> <strong class="jxr_keyword">if</strong> (isLoggable(FINEST))
-<a class="jxr_linenumber" name="L260" href="#L260">260</a> log(FINEST, <span class="jxr_string">"IGNORED EXCEPTION "</span>, ignored);
+<a class="jxr_linenumber" name="L175" href="#L175">175</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> error(Marker marker, String msg) {
+<a class="jxr_linenumber" name="L176" href="#L176">176</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="L177" href="#L177">177</a> }
+<a class="jxr_linenumber" name="L178" href="#L178">178</a>
+<a class="jxr_linenumber" name="L179" href="#L179">179</a> @Override
+<a class="jxr_linenumber" name="L180" href="#L180">180</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> error(Marker marker, String format, Object arg) {
+<a class="jxr_linenumber" name="L181" href="#L181">181</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="L182" href="#L182">182</a> }
+<a class="jxr_linenumber" name="L183" href="#L183">183</a>
+<a class="jxr_linenumber" name="L184" href="#L184">184</a> @Override
+<a class="jxr_linenumber" name="L185" href="#L185">185</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> error(Marker marker, String format, Object...arguments) {
+<a class="jxr_linenumber" name="L186" href="#L186">186</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="L187" href="#L187">187</a> }
+<a class="jxr_linenumber" name="L188" href="#L188">188</a>
+<a class="jxr_linenumber" name="L189" href="#L189">189</a> @Override
+<a class="jxr_linenumber" name="L190" href="#L190">190</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> error(Marker marker, String format, Object arg1, Object arg2) {
+<a class="jxr_linenumber" name="L191" href="#L191">191</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="L192" href="#L192">192</a> }
+<a class="jxr_linenumber" name="L193" href="#L193">193</a>
+<a class="jxr_linenumber" name="L194" href="#L194">194</a> @Override
+<a class="jxr_linenumber" name="L195" href="#L195">195</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> error(Marker marker, String msg, Throwable t) {
+<a class="jxr_linenumber" name="L196" href="#L196">196</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="L197" href="#L197">197</a> }
+<a class="jxr_linenumber" name="L198" href="#L198">198</a>
+<a class="jxr_linenumber" name="L199" href="#L199">199</a> @Override
+<a class="jxr_linenumber" name="L200" href="#L200">200</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> error(String msg) {
+<a class="jxr_linenumber" name="L201" href="#L201">201</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="L202" href="#L202">202</a> }
+<a class="jxr_linenumber" name="L203" href="#L203">203</a>
+<a class="jxr_linenumber" name="L204" href="#L204">204</a> @Override
+<a class="jxr_linenumber" name="L205" href="#L205">205</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> error(String format, Object arg) {
+<a class="jxr_linenumber" name="L206" href="#L206">206</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="L207" href="#L207">207</a> }
+<a class="jxr_linenumber" name="L208" href="#L208">208</a>
+<a class="jxr_linenumber" name="L209" href="#L209">209</a> @Override
+<a class="jxr_linenumber" name="L210" href="#L210">210</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> error(String format, Object...arguments) {
+<a class="jxr_linenumber" name="L211" href="#L211">211</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="L212" href="#L212">212</a> }
+<a class="jxr_linenumber" name="L213" href="#L213">213</a>
+<a class="jxr_linenumber" name="L214" href="#L214">214</a> @Override
+<a class="jxr_linenumber" name="L215" href="#L215">215</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> error(String format, Object arg1, Object arg2) {
+<a class="jxr_linenumber" name="L216" href="#L216">216</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="L217" href="#L217">217</a> }
+<a class="jxr_linenumber" name="L218" href="#L218">218</a>
+<a class="jxr_linenumber" name="L219" href="#L219">219</a> @Override
+<a class="jxr_linenumber" name="L220" href="#L220">220</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> error(String msg, Throwable t) {
+<a class="jxr_linenumber" name="L221" href="#L221">221</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="L222" href="#L222">222</a> }
+<a class="jxr_linenumber" name="L223" href="#L223">223</a>
+<a class="jxr_linenumber" name="L224" href="#L224">224</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L225" href="#L225">225</a> <em class="jxr_javadoccomment"> * Creates a child logger with the specified name.</em>
+<a class="jxr_linenumber" name="L226" href="#L226">226</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L227" href="#L227">227</a> <em class="jxr_javadoccomment"> * @param name The logger name.</em>
+<a class="jxr_linenumber" name="L228" href="#L228">228</a> <em class="jxr_javadoccomment"> * @return A new JettyLogger instance for the specified name.</em>
+<a class="jxr_linenumber" name="L229" href="#L229">229</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L230" href="#L230">230</a> <strong class="jxr_keyword">public</strong> <a name="JettyLogger" href="../../../../../org/apache/juneau/microservice/jetty/JettyLogger.html#JettyLogger">JettyLogger</a> getLogger(String name) {
+<a class="jxr_linenumber" name="L231" href="#L231">231</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a name="JettyLogger" href="../../../../../org/apache/juneau/microservice/jetty/JettyLogger.html#JettyLogger">JettyLogger</a>(name);
+<a class="jxr_linenumber" name="L232" href="#L232">232</a> }
+<a class="jxr_linenumber" name="L233" href="#L233">233</a>
+<a class="jxr_linenumber" name="L234" href="#L234">234</a> @Override
+<a class="jxr_linenumber" name="L235" href="#L235">235</a> <strong class="jxr_keyword">public</strong> String getName() { <strong class="jxr_keyword">return</strong> logger.getName(); }
+<a class="jxr_linenumber" name="L236" href="#L236">236</a>
+<a class="jxr_linenumber" name="L237" href="#L237">237</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L238" href="#L238">238</a> <em class="jxr_javadoccomment"> * Logs an ignored exception at the FINEST level.</em>
+<a class="jxr_linenumber" name="L239" href="#L239">239</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L240" href="#L240">240</a> <em class="jxr_javadoccomment"> * @param ignored The exception to log as ignored.</em>
+<a class="jxr_linenumber" name="L241" href="#L241">241</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L242" href="#L242">242</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> ignore(Throwable ignored) {
+<a class="jxr_linenumber" name="L243" href="#L243">243</a> <strong class="jxr_keyword">if</strong> (isLoggable(FINEST))
+<a class="jxr_linenumber" name="L244" href="#L244">244</a> log(FINEST, <span class="jxr_string">"IGNORED EXCEPTION "</span>, ignored);
+<a class="jxr_linenumber" name="L245" href="#L245">245</a> }
+<a class="jxr_linenumber" name="L246" href="#L246">246</a>
+<a class="jxr_linenumber" name="L247" href="#L247">247</a> @Override
+<a class="jxr_linenumber" name="L248" href="#L248">248</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> info(Marker marker, String msg) {
+<a class="jxr_linenumber" name="L249" href="#L249">249</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="L250" href="#L250">250</a> }
+<a class="jxr_linenumber" name="L251" href="#L251">251</a>
+<a class="jxr_linenumber" name="L252" href="#L252">252</a> @Override
+<a class="jxr_linenumber" name="L253" href="#L253">253</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> info(Marker marker, String format, Object arg) {
+<a class="jxr_linenumber" name="L254" href="#L254">254</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="L255" href="#L255">255</a>
+<a class="jxr_linenumber" name="L256" href="#L256">256</a> }
+<a class="jxr_linenumber" name="L257" href="#L257">257</a>
+<a class="jxr_linenumber" name="L258" href="#L258">258</a> @Override
+<a class="jxr_linenumber" name="L259" href="#L259">259</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> info(Marker marker, String format, Object...arguments) {
+<a class="jxr_linenumber" name="L260" href="#L260">260</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
<a class="jxr_linenumber" name="L261" href="#L261">261</a> }
<a class="jxr_linenumber" name="L262" href="#L262">262</a>
<a class="jxr_linenumber" name="L263" href="#L263">263</a> @Override
-<a class="jxr_linenumber" name="L264" href="#L264">264</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> info(Marker marker, String msg) {
+<a class="jxr_linenumber" name="L264" href="#L264">264</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> info(Marker marker, String format, Object arg1, Object arg2) {
<a class="jxr_linenumber" name="L265" href="#L265">265</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
<a class="jxr_linenumber" name="L266" href="#L266">266</a> }
<a class="jxr_linenumber" name="L267" href="#L267">267</a>
<a class="jxr_linenumber" name="L268" href="#L268">268</a> @Override
-<a class="jxr_linenumber" name="L269" href="#L269">269</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> info(Marker marker, String format, Object arg) {
+<a class="jxr_linenumber" name="L269" href="#L269">269</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> info(Marker marker, String msg, Throwable t) {
<a class="jxr_linenumber" name="L270" href="#L270">270</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
<a class="jxr_linenumber" name="L271" href="#L271">271</a>
<a class="jxr_linenumber" name="L272" href="#L272">272</a> }
<a class="jxr_linenumber" name="L273" href="#L273">273</a>
<a class="jxr_linenumber" name="L274" href="#L274">274</a> @Override
-<a class="jxr_linenumber" name="L275" href="#L275">275</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> info(Marker marker, String format, Object...arguments) {
+<a class="jxr_linenumber" name="L275" href="#L275">275</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> info(String msg) {
<a class="jxr_linenumber" name="L276" href="#L276">276</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
<a class="jxr_linenumber" name="L277" href="#L277">277</a> }
<a class="jxr_linenumber" name="L278" href="#L278">278</a>
<a class="jxr_linenumber" name="L279" href="#L279">279</a> @Override
-<a class="jxr_linenumber" name="L280" href="#L280">280</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> info(Marker marker, String format, Object arg1, Object arg2) {
-<a class="jxr_linenumber" name="L281" href="#L281">281</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L282" href="#L282">282</a> }
-<a class="jxr_linenumber" name="L283" href="#L283">283</a>
-<a class="jxr_linenumber" name="L284" href="#L284">284</a> @Override
-<a class="jxr_linenumber" name="L285" href="#L285">285</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> info(Marker marker, String msg, Throwable t) {
-<a class="jxr_linenumber" name="L286" href="#L286">286</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L287" href="#L287">287</a>
+<a class="jxr_linenumber" name="L280" href="#L280">280</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> info(String msg, Object...args) {
+<a class="jxr_linenumber" name="L281" href="#L281">281</a> <strong class="jxr_keyword">if</strong> (isLoggable(INFO))
+<a class="jxr_linenumber" name="L282" href="#L282">282</a> log(INFO, format(msg, args), <strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="L283" href="#L283">283</a> }
+<a class="jxr_linenumber" name="L284" href="#L284">284</a>
+<a class="jxr_linenumber" name="L285" href="#L285">285</a> @Override
+<a class="jxr_linenumber" name="L286" href="#L286">286</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> info(String format, Object arg) {
+<a class="jxr_linenumber" name="L287" href="#L287">287</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
<a class="jxr_linenumber" name="L288" href="#L288">288</a> }
<a class="jxr_linenumber" name="L289" href="#L289">289</a>
<a class="jxr_linenumber" name="L290" href="#L290">290</a> @Override
-<a class="jxr_linenumber" name="L291" href="#L291">291</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> info(String msg) {
+<a class="jxr_linenumber" name="L291" href="#L291">291</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> info(String format, Object arg1, Object arg2) {
<a class="jxr_linenumber" name="L292" href="#L292">292</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
<a class="jxr_linenumber" name="L293" href="#L293">293</a> }
<a class="jxr_linenumber" name="L294" href="#L294">294</a>
<a class="jxr_linenumber" name="L295" href="#L295">295</a> @Override
-<a class="jxr_linenumber" name="L296" href="#L296">296</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> info(String msg, Object...args) {
+<a class="jxr_linenumber" name="L296" href="#L296">296</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> info(String msg, Throwable thrown) {
<a class="jxr_linenumber" name="L297" href="#L297">297</a> <strong class="jxr_keyword">if</strong> (isLoggable(INFO))
-<a class="jxr_linenumber" name="L298" href="#L298">298</a> log(INFO, format(msg, args), <strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="L298" href="#L298">298</a> log(INFO, msg, thrown);
<a class="jxr_linenumber" name="L299" href="#L299">299</a> }
<a class="jxr_linenumber" name="L300" href="#L300">300</a>
-<a class="jxr_linenumber" name="L301" href="#L301">301</a> @Override
-<a class="jxr_linenumber" name="L302" href="#L302">302</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> info(String format, Object arg) {
-<a class="jxr_linenumber" name="L303" href="#L303">303</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L304" href="#L304">304</a> }
-<a class="jxr_linenumber" name="L305" href="#L305">305</a>
-<a class="jxr_linenumber" name="L306" href="#L306">306</a> @Override
-<a class="jxr_linenumber" name="L307" href="#L307">307</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> info(String format, Object arg1, Object arg2) {
-<a class="jxr_linenumber" name="L308" href="#L308">308</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="L301" href="#L301">301</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L302" href="#L302">302</a> <em class="jxr_javadoccomment"> * Logs an info message with only a throwable.</em>
+<a class="jxr_linenumber" name="L303" href="#L303">303</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L304" href="#L304">304</a> <em class="jxr_javadoccomment"> * @param thrown The throwable to log.</em>
+<a class="jxr_linenumber" name="L305" href="#L305">305</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L306" href="#L306">306</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> info(Throwable thrown) {
+<a class="jxr_linenumber" name="L307" href="#L307">307</a> <strong class="jxr_keyword">if</strong> (isLoggable(INFO))
+<a class="jxr_linenumber" name="L308" href="#L308">308</a> log(INFO, <span class="jxr_string">""</span>, thrown);
<a class="jxr_linenumber" name="L309" href="#L309">309</a> }
<a class="jxr_linenumber" name="L310" href="#L310">310</a>
<a class="jxr_linenumber" name="L311" href="#L311">311</a> @Override
-<a class="jxr_linenumber" name="L312" href="#L312">312</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> info(String msg, Throwable thrown) {
-<a class="jxr_linenumber" name="L313" href="#L313">313</a> <strong class="jxr_keyword">if</strong> (isLoggable(INFO))
-<a class="jxr_linenumber" name="L314" href="#L314">314</a> log(INFO, msg, thrown);
-<a class="jxr_linenumber" name="L315" href="#L315">315</a> }
-<a class="jxr_linenumber" name="L316" href="#L316">316</a>
-<a class="jxr_linenumber" name="L317" href="#L317">317</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L318" href="#L318">318</a> <em class="jxr_javadoccomment"> * Logs an info message with only a throwable.</em>
-<a class="jxr_linenumber" name="L319" href="#L319">319</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L320" href="#L320">320</a> <em class="jxr_javadoccomment"> * @param thrown The throwable to log.</em>
-<a class="jxr_linenumber" name="L321" href="#L321">321</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L322" href="#L322">322</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> info(Throwable thrown) {
-<a class="jxr_linenumber" name="L323" href="#L323">323</a> <strong class="jxr_keyword">if</strong> (isLoggable(INFO))
-<a class="jxr_linenumber" name="L324" href="#L324">324</a> log(INFO, <span class="jxr_string">""</span>, thrown);
-<a class="jxr_linenumber" name="L325" href="#L325">325</a> }
-<a class="jxr_linenumber" name="L326" href="#L326">326</a>
-<a class="jxr_linenumber" name="L327" href="#L327">327</a> @Override
-<a class="jxr_linenumber" name="L328" href="#L328">328</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isDebugEnabled() { <strong class="jxr_keyword">return</strong> isLoggable(FINE); }
-<a class="jxr_linenumber" name="L329" href="#L329">329</a>
-<a class="jxr_linenumber" name="L330" href="#L330">330</a> @Override
-<a class="jxr_linenumber" name="L331" href="#L331">331</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isDebugEnabled(Marker marker) {
-<a class="jxr_linenumber" name="L332" href="#L332">332</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L333" href="#L333">333</a> <strong class="jxr_keyword">return</strong> false;
-<a class="jxr_linenumber" name="L334" href="#L334">334</a> }
-<a class="jxr_linenumber" name="L335" href="#L335">335</a>
-<a class="jxr_linenumber" name="L336" href="#L336">336</a> @Override
-<a class="jxr_linenumber" name="L337" href="#L337">337</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isErrorEnabled() {
-<a class="jxr_linenumber" name="L338" href="#L338">338</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L339" href="#L339">339</a> <strong class="jxr_keyword">return</strong> false;
-<a class="jxr_linenumber" name="L340" href="#L340">340</a> }
-<a class="jxr_linenumber" name="L341" href="#L341">341</a>
-<a class="jxr_linenumber" name="L342" href="#L342">342</a> @Override
-<a class="jxr_linenumber" name="L343" href="#L343">343</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isErrorEnabled(Marker marker) {
-<a class="jxr_linenumber" name="L344" href="#L344">344</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L345" href="#L345">345</a> <strong class="jxr_keyword">return</strong> false;
-<a class="jxr_linenumber" name="L346" href="#L346">346</a> }
-<a class="jxr_linenumber" name="L347" href="#L347">347</a>
-<a class="jxr_linenumber" name="L348" href="#L348">348</a> @Override
-<a class="jxr_linenumber" name="L349" href="#L349">349</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isInfoEnabled() {
-<a class="jxr_linenumber" name="L350" href="#L350">350</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L351" href="#L351">351</a> <strong class="jxr_keyword">return</strong> false;
-<a class="jxr_linenumber" name="L352" href="#L352">352</a> }
-<a class="jxr_linenumber" name="L353" href="#L353">353</a>
-<a class="jxr_linenumber" name="L354" href="#L354">354</a> @Override
-<a class="jxr_linenumber" name="L355" href="#L355">355</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isInfoEnabled(Marker marker) {
-<a class="jxr_linenumber" name="L356" href="#L356">356</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L357" href="#L357">357</a> <strong class="jxr_keyword">return</strong> false;
-<a class="jxr_linenumber" name="L358" href="#L358">358</a> }
-<a class="jxr_linenumber" name="L359" href="#L359">359</a>
-<a class="jxr_linenumber" name="L360" href="#L360">360</a> @Override
-<a class="jxr_linenumber" name="L361" href="#L361">361</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isTraceEnabled() {
-<a class="jxr_linenumber" name="L362" href="#L362">362</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L363" href="#L363">363</a> <strong class="jxr_keyword">return</strong> false;
-<a class="jxr_linenumber" name="L364" href="#L364">364</a> }
-<a class="jxr_linenumber" name="L365" href="#L365">365</a>
-<a class="jxr_linenumber" name="L366" href="#L366">366</a> @Override
-<a class="jxr_linenumber" name="L367" href="#L367">367</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isTraceEnabled(Marker marker) {
-<a class="jxr_linenumber" name="L368" href="#L368">368</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L369" href="#L369">369</a> <strong class="jxr_keyword">return</strong> false;
-<a class="jxr_linenumber" name="L370" href="#L370">370</a> }
-<a class="jxr_linenumber" name="L371" href="#L371">371</a>
-<a class="jxr_linenumber" name="L372" href="#L372">372</a> @Override
-<a class="jxr_linenumber" name="L373" href="#L373">373</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isWarnEnabled() {
-<a class="jxr_linenumber" name="L374" href="#L374">374</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L375" href="#L375">375</a> <strong class="jxr_keyword">return</strong> false;
-<a class="jxr_linenumber" name="L376" href="#L376">376</a> }
-<a class="jxr_linenumber" name="L377" href="#L377">377</a>
-<a class="jxr_linenumber" name="L378" href="#L378">378</a> @Override
-<a class="jxr_linenumber" name="L379" href="#L379">379</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isWarnEnabled(Marker marker) {
-<a class="jxr_linenumber" name="L380" href="#L380">380</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L381" href="#L381">381</a> <strong class="jxr_keyword">return</strong> false;
-<a class="jxr_linenumber" name="L382" href="#L382">382</a> }
-<a class="jxr_linenumber" name="L383" href="#L383">383</a>
-<a class="jxr_linenumber" name="L384" href="#L384">384</a> @Override
-<a class="jxr_linenumber" name="L385" href="#L385">385</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> log(Marker marker, String fqcn, <strong class="jxr_keyword">int</strong> level, String message, Object[] argArray, Throwable t) {
-<a class="jxr_linenumber" name="L386" href="#L386">386</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L387" href="#L387">387</a> }
-<a class="jxr_linenumber" name="L388" href="#L388">388</a>
-<a class="jxr_linenumber" name="L389" href="#L389">389</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L390" href="#L390">390</a> <em class="jxr_javadoccomment"> * Enables or disables debug logging.</em>
-<a class="jxr_linenumber" name="L391" href="#L391">391</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L392" href="#L392">392</a> <em class="jxr_javadoccomment"> * <p></em>
-<a class="jxr_linenumber" name="L393" href="#L393">393</a> <em class="jxr_javadoccomment"> * When enabled, sets the log level to FINE. When disabled, restores the previously configured log level.</em>
-<a class="jxr_linenumber" name="L394" href="#L394">394</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L395" href="#L395">395</a> <em class="jxr_javadoccomment"> * @param enabled <jk>true</jk> to enable debug logging, <jk>false</jk> to disable.</em>
-<a class="jxr_linenumber" name="L396" href="#L396">396</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L397" href="#L397">397</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setDebugEnabled(<strong class="jxr_keyword">boolean</strong> enabled) {
-<a class="jxr_linenumber" name="L398" href="#L398">398</a> <strong class="jxr_keyword">if</strong> (enabled) {
-<a class="jxr_linenumber" name="L399" href="#L399">399</a> configuredLevel = logger.getLevel();
-<a class="jxr_linenumber" name="L400" href="#L400">400</a> logger.setLevel(FINE);
-<a class="jxr_linenumber" name="L401" href="#L401">401</a> } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="L402" href="#L402">402</a> logger.setLevel(configuredLevel);
-<a class="jxr_linenumber" name="L403" href="#L403">403</a> }
-<a class="jxr_linenumber" name="L404" href="#L404">404</a> }
+<a class="jxr_linenumber" name="L312" href="#L312">312</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isDebugEnabled() { <strong class="jxr_keyword">return</strong> isLoggable(FINE); }
+<a class="jxr_linenumber" name="L313" href="#L313">313</a>
+<a class="jxr_linenumber" name="L314" href="#L314">314</a> @Override
+<a class="jxr_linenumber" name="L315" href="#L315">315</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isDebugEnabled(Marker marker) {
+<a class="jxr_linenumber" name="L316" href="#L316">316</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="L317" href="#L317">317</a> <strong class="jxr_keyword">return</strong> false;
+<a class="jxr_linenumber" name="L318" href="#L318">318</a> }
+<a class="jxr_linenumber" name="L319" href="#L319">319</a>
+<a class="jxr_linenumber" name="L320" href="#L320">320</a> @Override
+<a class="jxr_linenumber" name="L321" href="#L321">321</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isErrorEnabled() {
+<a class="jxr_linenumber" name="L322" href="#L322">322</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="L323" href="#L323">323</a> <strong class="jxr_keyword">return</strong> false;
+<a class="jxr_linenumber" name="L324" href="#L324">324</a> }
+<a class="jxr_linenumber" name="L325" href="#L325">325</a>
+<a class="jxr_linenumber" name="L326" href="#L326">326</a> @Override
+<a class="jxr_linenumber" name="L327" href="#L327">327</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isErrorEnabled(Marker marker) {
+<a class="jxr_linenumber" name="L328" href="#L328">328</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="L329" href="#L329">329</a> <strong class="jxr_keyword">return</strong> false;
+<a class="jxr_linenumber" name="L330" href="#L330">330</a> }
+<a class="jxr_linenumber" name="L331" href="#L331">331</a>
+<a class="jxr_linenumber" name="L332" href="#L332">332</a> @Override
+<a class="jxr_linenumber" name="L333" href="#L333">333</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isInfoEnabled() {
+<a class="jxr_linenumber" name="L334" href="#L334">334</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="L335" href="#L335">335</a> <strong class="jxr_keyword">return</strong> false;
+<a class="jxr_linenumber" name="L336" href="#L336">336</a> }
+<a class="jxr_linenumber" name="L337" href="#L337">337</a>
+<a class="jxr_linenumber" name="L338" href="#L338">338</a> @Override
+<a class="jxr_linenumber" name="L339" href="#L339">339</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isInfoEnabled(Marker marker) {
+<a class="jxr_linenumber" name="L340" href="#L340">340</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="L341" href="#L341">341</a> <strong class="jxr_keyword">return</strong> false;
+<a class="jxr_linenumber" name="L342" href="#L342">342</a> }
+<a class="jxr_linenumber" name="L343" href="#L343">343</a>
+<a class="jxr_linenumber" name="L344" href="#L344">344</a> @Override
+<a class="jxr_linenumber" name="L345" href="#L345">345</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isTraceEnabled() {
+<a class="jxr_linenumber" name="L346" href="#L346">346</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="L347" href="#L347">347</a> <strong class="jxr_keyword">return</strong> false;
+<a class="jxr_linenumber" name="L348" href="#L348">348</a> }
+<a class="jxr_linenumber" name="L349" href="#L349">349</a>
+<a class="jxr_linenumber" name="L350" href="#L350">350</a> @Override
+<a class="jxr_linenumber" name="L351" href="#L351">351</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isTraceEnabled(Marker marker) {
+<a class="jxr_linenumber" name="L352" href="#L352">352</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="L353" href="#L353">353</a> <strong class="jxr_keyword">return</strong> false;
+<a class="jxr_linenumber" name="L354" href="#L354">354</a> }
+<a class="jxr_linenumber" name="L355" href="#L355">355</a>
+<a class="jxr_linenumber" name="L356" href="#L356">356</a> @Override
+<a class="jxr_linenumber" name="L357" href="#L357">357</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isWarnEnabled() {
+<a class="jxr_linenumber" name="L358" href="#L358">358</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="L359" href="#L359">359</a> <strong class="jxr_keyword">return</strong> false;
+<a class="jxr_linenumber" name="L360" href="#L360">360</a> }
+<a class="jxr_linenumber" name="L361" href="#L361">361</a>
+<a class="jxr_linenumber" name="L362" href="#L362">362</a> @Override
+<a class="jxr_linenumber" name="L363" href="#L363">363</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isWarnEnabled(Marker marker) {
+<a class="jxr_linenumber" name="L364" href="#L364">364</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="L365" href="#L365">365</a> <strong class="jxr_keyword">return</strong> false;
+<a class="jxr_linenumber" name="L366" href="#L366">366</a> }
+<a class="jxr_linenumber" name="L367" href="#L367">367</a>
+<a class="jxr_linenumber" name="L368" href="#L368">368</a> @Override
+<a class="jxr_linenumber" name="L369" href="#L369">369</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> log(Marker marker, String fqcn, <strong class="jxr_keyword">int</strong> level, String message, Object[] argArray, Throwable t) {
+<a class="jxr_linenumber" name="L370" href="#L370">370</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="L371" href="#L371">371</a> }
+<a class="jxr_linenumber" name="L372" href="#L372">372</a>
+<a class="jxr_linenumber" name="L373" href="#L373">373</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L374" href="#L374">374</a> <em class="jxr_javadoccomment"> * Enables or disables debug logging.</em>
+<a class="jxr_linenumber" name="L375" href="#L375">375</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L376" href="#L376">376</a> <em class="jxr_javadoccomment"> * <p></em>
+<a class="jxr_linenumber" name="L377" href="#L377">377</a> <em class="jxr_javadoccomment"> * When enabled, sets the log level to FINE. When disabled, restores the previously configured log level.</em>
+<a class="jxr_linenumber" name="L378" href="#L378">378</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L379" href="#L379">379</a> <em class="jxr_javadoccomment"> * @param enabled <jk>true</jk> to enable debug logging, <jk>false</jk> to disable.</em>
+<a class="jxr_linenumber" name="L380" href="#L380">380</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L381" href="#L381">381</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setDebugEnabled(<strong class="jxr_keyword">boolean</strong> enabled) {
+<a class="jxr_linenumber" name="L382" href="#L382">382</a> <strong class="jxr_keyword">if</strong> (enabled) {
+<a class="jxr_linenumber" name="L383" href="#L383">383</a> configuredLevel = logger.getLevel();
+<a class="jxr_linenumber" name="L384" href="#L384">384</a> logger.setLevel(FINE);
+<a class="jxr_linenumber" name="L385" href="#L385">385</a> } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="L386" href="#L386">386</a> logger.setLevel(configuredLevel);
+<a class="jxr_linenumber" name="L387" href="#L387">387</a> }
+<a class="jxr_linenumber" name="L388" href="#L388">388</a> }
+<a class="jxr_linenumber" name="L389" href="#L389">389</a>
+<a class="jxr_linenumber" name="L390" href="#L390">390</a> @Override
+<a class="jxr_linenumber" name="L391" href="#L391">391</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> trace(Marker marker, String msg) {
+<a class="jxr_linenumber" name="L392" href="#L392">392</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="L393" href="#L393">393</a>
+<a class="jxr_linenumber" name="L394" href="#L394">394</a> }
+<a class="jxr_linenumber" name="L395" href="#L395">395</a>
+<a class="jxr_linenumber" name="L396" href="#L396">396</a> @Override
+<a class="jxr_linenumber" name="L397" href="#L397">397</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> trace(Marker marker, String format, Object arg) {
+<a class="jxr_linenumber" name="L398" href="#L398">398</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="L399" href="#L399">399</a>
+<a class="jxr_linenumber" name="L400" href="#L400">400</a> }
+<a class="jxr_linenumber" name="L401" href="#L401">401</a>
+<a class="jxr_linenumber" name="L402" href="#L402">402</a> @Override
+<a class="jxr_linenumber" name="L403" href="#L403">403</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> trace(Marker marker, String format, Object...argArray) {
+<a class="jxr_linenumber" name="L404" href="#L404">404</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
<a class="jxr_linenumber" name="L405" href="#L405">405</a>
-<a class="jxr_linenumber" name="L406" href="#L406">406</a> @Override
-<a class="jxr_linenumber" name="L407" href="#L407">407</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> trace(Marker marker, String msg) {
-<a class="jxr_linenumber" name="L408" href="#L408">408</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L409" href="#L409">409</a>
-<a class="jxr_linenumber" name="L410" href="#L410">410</a> }
+<a class="jxr_linenumber" name="L406" href="#L406">406</a> }
+<a class="jxr_linenumber" name="L407" href="#L407">407</a>
+<a class="jxr_linenumber" name="L408" href="#L408">408</a> @Override
+<a class="jxr_linenumber" name="L409" href="#L409">409</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> trace(Marker marker, String format, Object arg1, Object arg2) {
+<a class="jxr_linenumber" name="L410" href="#L410">410</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
<a class="jxr_linenumber" name="L411" href="#L411">411</a>
-<a class="jxr_linenumber" name="L412" href="#L412">412</a> @Override
-<a class="jxr_linenumber" name="L413" href="#L413">413</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> trace(Marker marker, String format, Object arg) {
-<a class="jxr_linenumber" name="L414" href="#L414">414</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L415" href="#L415">415</a>
-<a class="jxr_linenumber" name="L416" href="#L416">416</a> }
+<a class="jxr_linenumber" name="L412" href="#L412">412</a> }
+<a class="jxr_linenumber" name="L413" href="#L413">413</a>
+<a class="jxr_linenumber" name="L414" href="#L414">414</a> @Override
+<a class="jxr_linenumber" name="L415" href="#L415">415</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> trace(Marker marker, String msg, Throwable t) {
+<a class="jxr_linenumber" name="L416" href="#L416">416</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
<a class="jxr_linenumber" name="L417" href="#L417">417</a>
-<a class="jxr_linenumber" name="L418" href="#L418">418</a> @Override
-<a class="jxr_linenumber" name="L419" href="#L419">419</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> trace(Marker marker, String format, Object...argArray) {
-<a class="jxr_linenumber" name="L420" href="#L420">420</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L421" href="#L421">421</a>
-<a class="jxr_linenumber" name="L422" href="#L422">422</a> }
+<a class="jxr_linenumber" name="L418" href="#L418">418</a> }
+<a class="jxr_linenumber" name="L419" href="#L419">419</a>
+<a class="jxr_linenumber" name="L420" href="#L420">420</a> @Override
+<a class="jxr_linenumber" name="L421" href="#L421">421</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> trace(String msg) {
+<a class="jxr_linenumber" name="L422" href="#L422">422</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
<a class="jxr_linenumber" name="L423" href="#L423">423</a>
-<a class="jxr_linenumber" name="L424" href="#L424">424</a> @Override
-<a class="jxr_linenumber" name="L425" href="#L425">425</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> trace(Marker marker, String format, Object arg1, Object arg2) {
-<a class="jxr_linenumber" name="L426" href="#L426">426</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L427" href="#L427">427</a>
-<a class="jxr_linenumber" name="L428" href="#L428">428</a> }
+<a class="jxr_linenumber" name="L424" href="#L424">424</a> }
+<a class="jxr_linenumber" name="L425" href="#L425">425</a>
+<a class="jxr_linenumber" name="L426" href="#L426">426</a> @Override
+<a class="jxr_linenumber" name="L427" href="#L427">427</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> trace(String format, Object arg) {
+<a class="jxr_linenumber" name="L428" href="#L428">428</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
<a class="jxr_linenumber" name="L429" href="#L429">429</a>
-<a class="jxr_linenumber" name="L430" href="#L430">430</a> @Override
-<a class="jxr_linenumber" name="L431" href="#L431">431</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> trace(Marker marker, String msg, Throwable t) {
-<a class="jxr_linenumber" name="L432" href="#L432">432</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L433" href="#L433">433</a>
-<a class="jxr_linenumber" name="L434" href="#L434">434</a> }
+<a class="jxr_linenumber" name="L430" href="#L430">430</a> }
+<a class="jxr_linenumber" name="L431" href="#L431">431</a>
+<a class="jxr_linenumber" name="L432" href="#L432">432</a> @Override
+<a class="jxr_linenumber" name="L433" href="#L433">433</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> trace(String format, Object...arguments) {
+<a class="jxr_linenumber" name="L434" href="#L434">434</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
<a class="jxr_linenumber" name="L435" href="#L435">435</a>
-<a class="jxr_linenumber" name="L436" href="#L436">436</a> @Override
-<a class="jxr_linenumber" name="L437" href="#L437">437</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> trace(String msg) {
-<a class="jxr_linenumber" name="L438" href="#L438">438</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L439" href="#L439">439</a>
-<a class="jxr_linenumber" name="L440" href="#L440">440</a> }
+<a class="jxr_linenumber" name="L436" href="#L436">436</a> }
+<a class="jxr_linenumber" name="L437" href="#L437">437</a>
+<a class="jxr_linenumber" name="L438" href="#L438">438</a> @Override
+<a class="jxr_linenumber" name="L439" href="#L439">439</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> trace(String format, Object arg1, Object arg2) {
+<a class="jxr_linenumber" name="L440" href="#L440">440</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
<a class="jxr_linenumber" name="L441" href="#L441">441</a>
-<a class="jxr_linenumber" name="L442" href="#L442">442</a> @Override
-<a class="jxr_linenumber" name="L443" href="#L443">443</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> trace(String format, Object arg) {
-<a class="jxr_linenumber" name="L444" href="#L444">444</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L445" href="#L445">445</a>
-<a class="jxr_linenumber" name="L446" href="#L446">446</a> }
+<a class="jxr_linenumber" name="L442" href="#L442">442</a> }
+<a class="jxr_linenumber" name="L443" href="#L443">443</a>
+<a class="jxr_linenumber" name="L444" href="#L444">444</a> @Override
+<a class="jxr_linenumber" name="L445" href="#L445">445</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> trace(String msg, Throwable t) {
+<a class="jxr_linenumber" name="L446" href="#L446">446</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
<a class="jxr_linenumber" name="L447" href="#L447">447</a>
-<a class="jxr_linenumber" name="L448" href="#L448">448</a> @Override
-<a class="jxr_linenumber" name="L449" href="#L449">449</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> trace(String format, Object...arguments) {
-<a class="jxr_linenumber" name="L450" href="#L450">450</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L451" href="#L451">451</a>
-<a class="jxr_linenumber" name="L452" href="#L452">452</a> }
-<a class="jxr_linenumber" name="L453" href="#L453">453</a>
-<a class="jxr_linenumber" name="L454" href="#L454">454</a> @Override
-<a class="jxr_linenumber" name="L455" href="#L455">455</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> trace(String format, Object arg1, Object arg2) {
-<a class="jxr_linenumber" name="L456" href="#L456">456</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L457" href="#L457">457</a>
+<a class="jxr_linenumber" name="L448" href="#L448">448</a> }
+<a class="jxr_linenumber" name="L449" href="#L449">449</a>
+<a class="jxr_linenumber" name="L450" href="#L450">450</a> @Override
+<a class="jxr_linenumber" name="L451" href="#L451">451</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> warn(Marker marker, String msg) {
+<a class="jxr_linenumber" name="L452" href="#L452">452</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="L453" href="#L453">453</a> }
+<a class="jxr_linenumber" name="L454" href="#L454">454</a>
+<a class="jxr_linenumber" name="L455" href="#L455">455</a> @Override
+<a class="jxr_linenumber" name="L456" href="#L456">456</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> warn(Marker marker, String format, Object arg) {
+<a class="jxr_linenumber" name="L457" href="#L457">457</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
<a class="jxr_linenumber" name="L458" href="#L458">458</a> }
<a class="jxr_linenumber" name="L459" href="#L459">459</a>
<a class="jxr_linenumber" name="L460" href="#L460">460</a> @Override
-<a class="jxr_linenumber" name="L461" href="#L461">461</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> trace(String msg, Throwable t) {
+<a class="jxr_linenumber" name="L461" href="#L461">461</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> warn(Marker marker, String format, Object...arguments) {
<a class="jxr_linenumber" name="L462" href="#L462">462</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L463" href="#L463">463</a>
-<a class="jxr_linenumber" name="L464" href="#L464">464</a> }
-<a class="jxr_linenumber" name="L465" href="#L465">465</a>
-<a class="jxr_linenumber" name="L466" href="#L466">466</a> @Override
-<a class="jxr_linenumber" name="L467" href="#L467">467</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> warn(Marker marker, String msg) {
-<a class="jxr_linenumber" name="L468" href="#L468">468</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L469" href="#L469">469</a> }
-<a class="jxr_linenumber" name="L470" href="#L470">470</a>
-<a class="jxr_linenumber" name="L471" href="#L471">471</a> @Override
-<a class="jxr_linenumber" name="L472" href="#L472">472</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> warn(Marker marker, String format, Object arg) {
-<a class="jxr_linenumber" name="L473" href="#L473">473</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L474" href="#L474">474</a> }
-<a class="jxr_linenumber" name="L475" href="#L475">475</a>
-<a class="jxr_linenumber" name="L476" href="#L476">476</a> @Override
-<a class="jxr_linenumber" name="L477" href="#L477">477</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> warn(Marker marker, String format, Object...arguments) {
-<a class="jxr_linenumber" name="L478" href="#L478">478</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L479" href="#L479">479</a> }
-<a class="jxr_linenumber" name="L480" href="#L480">480</a>
-<a class="jxr_linenumber" name="L481" href="#L481">481</a> @Override
-<a class="jxr_linenumber" name="L482" href="#L482">482</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> warn(Marker marker, String format, Object arg1, Object arg2) {
-<a class="jxr_linenumber" name="L483" href="#L483">483</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="L463" href="#L463">463</a> }
+<a class="jxr_linenumber" name="L464" href="#L464">464</a>
+<a class="jxr_linenumber" name="L465" href="#L465">465</a> @Override
+<a class="jxr_linenumber" name="L466" href="#L466">466</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> warn(Marker marker, String format, Object arg1, Object arg2) {
+<a class="jxr_linenumber" name="L467" href="#L467">467</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="L468" href="#L468">468</a> }
+<a class="jxr_linenumber" name="L469" href="#L469">469</a>
+<a class="jxr_linenumber" name="L470" href="#L470">470</a> @Override
+<a class="jxr_linenumber" name="L471" href="#L471">471</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> warn(Marker marker, String msg, Throwable t) {
+<a class="jxr_linenumber" name="L472" href="#L472">472</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="L473" href="#L473">473</a> }
+<a class="jxr_linenumber" name="L474" href="#L474">474</a>
+<a class="jxr_linenumber" name="L475" href="#L475">475</a> @Override
+<a class="jxr_linenumber" name="L476" href="#L476">476</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> warn(String msg) {
+<a class="jxr_linenumber" name="L477" href="#L477">477</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
+<a class="jxr_linenumber" name="L478" href="#L478">478</a> }
+<a class="jxr_linenumber" name="L479" href="#L479">479</a>
+<a class="jxr_linenumber" name="L480" href="#L480">480</a> @Override
+<a class="jxr_linenumber" name="L481" href="#L481">481</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> warn(String msg, Object...args) {
+<a class="jxr_linenumber" name="L482" href="#L482">482</a> <strong class="jxr_keyword">if</strong> (isLoggable(WARNING))
+<a class="jxr_linenumber" name="L483" href="#L483">483</a> log(WARNING, format(msg, args), <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L484" href="#L484">484</a> }
<a class="jxr_linenumber" name="L485" href="#L485">485</a>
<a class="jxr_linenumber" name="L486" href="#L486">486</a> @Override
-<a class="jxr_linenumber" name="L487" href="#L487">487</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> warn(Marker marker, String msg, Throwable t) {
+<a class="jxr_linenumber" name="L487" href="#L487">487</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> warn(String format, Object arg) {
<a class="jxr_linenumber" name="L488" href="#L488">488</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
<a class="jxr_linenumber" name="L489" href="#L489">489</a> }
<a class="jxr_linenumber" name="L490" href="#L490">490</a>
<a class="jxr_linenumber" name="L491" href="#L491">491</a> @Override
-<a class="jxr_linenumber" name="L492" href="#L492">492</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> warn(String msg) {
+<a class="jxr_linenumber" name="L492" href="#L492">492</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> warn(String format, Object arg1, Object arg2) {
<a class="jxr_linenumber" name="L493" href="#L493">493</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L494" href="#L494">494</a> }
-<a class="jxr_linenumber" name="L495" href="#L495">495</a>
-<a class="jxr_linenumber" name="L496" href="#L496">496</a> @Override
-<a class="jxr_linenumber" name="L497" href="#L497">497</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> warn(String msg, Object...args) {
-<a class="jxr_linenumber" name="L498" href="#L498">498</a> <strong class="jxr_keyword">if</strong> (isLoggable(WARNING))
-<a class="jxr_linenumber" name="L499" href="#L499">499</a> log(WARNING, format(msg, args), <strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L500" href="#L500">500</a> }
-<a class="jxr_linenumber" name="L501" href="#L501">501</a>
-<a class="jxr_linenumber" name="L502" href="#L502">502</a> @Override
-<a class="jxr_linenumber" name="L503" href="#L503">503</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> warn(String format, Object arg) {
-<a class="jxr_linenumber" name="L504" href="#L504">504</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L505" href="#L505">505</a> }
-<a class="jxr_linenumber" name="L506" href="#L506">506</a>
-<a class="jxr_linenumber" name="L507" href="#L507">507</a> @Override
-<a class="jxr_linenumber" name="L508" href="#L508">508</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> warn(String format, Object arg1, Object arg2) {
-<a class="jxr_linenumber" name="L509" href="#L509">509</a> <em class="jxr_comment">// TODO Auto-generated method stub</em>
-<a class="jxr_linenumber" name="L510" href="#L510">510</a>
+<a class="jxr_linenumber" name="L494" href="#L494">494</a>
+<a class="jxr_linenumber" name="L495" href="#L495">495</a> }
+<a class="jxr_linenumber" name="L496" href="#L496">496</a>
+<a class="jxr_linenumber" name="L497" href="#L497">497</a> @Override
+<a class="jxr_linenumber" name="L498" href="#L498">498</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> warn(String msg, Throwable thrown) {
+<a class="jxr_linenumber" name="L499" href="#L499">499</a> <strong class="jxr_keyword">if</strong> (isLoggable(WARNING))
+<a class="jxr_linenumber" name="L500" href="#L500">500</a> log(WARNING, msg, thrown);
+<a class="jxr_linenumber" name="L501" href="#L501">501</a> }
+<a class="jxr_linenumber" name="L502" href="#L502">502</a>
+<a class="jxr_linenumber" name="L503" href="#L503">503</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L504" href="#L504">504</a> <em class="jxr_javadoccomment"> * Logs a warning message with only a throwable.</em>
+<a class="jxr_linenumber" name="L505" href="#L505">505</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L506" href="#L506">506</a> <em class="jxr_javadoccomment"> * @param thrown The throwable to log.</em>
+<a class="jxr_linenumber" name="L507" href="#L507">507</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L508" href="#L508">508</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> warn(Throwable thrown) {
+<a class="jxr_linenumber" name="L509" href="#L509">509</a> <strong class="jxr_keyword">if</strong> (isLoggable(WARNING))
+<a class="jxr_linenumber" name="L510" href="#L510">510</a> log(WARNING, <span class="jxr_string">""</span>, thrown);
<a class="jxr_linenumber" name="L511" href="#L511">511</a> }
<a class="jxr_linenumber" name="L512" href="#L512">512</a>
-<a class="jxr_linenumber" name="L513" href="#L513">513</a> @Override
-<a class="jxr_linenumber" name="L514" href="#L514">514</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> warn(String msg, Throwable thrown) {
-<a class="jxr_linenumber" name="L515" href="#L515">515</a> <strong class="jxr_keyword">if</strong> (isLoggable(WARNING))
-<a class="jxr_linenumber" name="L516" href="#L516">516</a> log(WARNING, msg, thrown);
-<a class="jxr_linenumber" name="L517" href="#L517">517</a> }
-<a class="jxr_linenumber" name="L518" href="#L518">518</a>
-<a class="jxr_linenumber" name="L519" href="#L519">519</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L520" href="#L520">520</a> <em class="jxr_javadoccomment"> * Logs a warning message with only a throwable.</em>
-<a class="jxr_linenumber" name="L521" href="#L521">521</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L522" href="#L522">522</a> <em class="jxr_javadoccomment"> * @param thrown The throwable to log.</em>
-<a class="jxr_linenumber" name="L523" href="#L523">523</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L524" href="#L524">524</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> warn(Throwable thrown) {
-<a class="jxr_linenumber" name="L525" href="#L525">525</a> <strong class="jxr_keyword">if</strong> (isLoggable(WARNING))
-<a class="jxr_linenumber" name="L526" href="#L526">526</a> log(WARNING, <span class="jxr_string">""</span>, thrown);
-<a class="jxr_linenumber" name="L527" href="#L527">527</a> }
-<a class="jxr_linenumber" name="L528" href="#L528">528</a>
-<a class="jxr_linenumber" name="L529" href="#L529">529</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L530" href="#L530">530</a> <em class="jxr_javadoccomment"> * Checks if a message at the specified level would be logged.</em>
-<a class="jxr_linenumber" name="L531" href="#L531">531</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L532" href="#L532">532</a> <em class="jxr_javadoccomment"> * @param level The log level to check.</em>
-<a class="jxr_linenumber" name="L533" href="#L533">533</a> <em class="jxr_javadoccomment"> * @return <jk>true</jk> if the level is loggable, <jk>false</jk> otherwise.</em>
-<a class="jxr_linenumber" name="L534" href="#L534">534</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L535" href="#L535">535</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> isLoggable(Level level) {
-<a class="jxr_linenumber" name="L536" href="#L536">536</a> <strong class="jxr_keyword">return</strong> logger.isLoggable(level);
-<a class="jxr_linenumber" name="L537" href="#L537">537</a> }
-<a class="jxr_linenumber" name="L538" href="#L538">538</a>
-<a class="jxr_linenumber" name="L539" href="#L539">539</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L540" href="#L540">540</a> <em class="jxr_javadoccomment"> * Internal log method that creates a LogRecord and logs it.</em>
-<a class="jxr_linenumber" name="L541" href="#L541">541</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L542" href="#L542">542</a> <em class="jxr_javadoccomment"> * <p></em>
-<a class="jxr_linenumber" name="L543" href="#L543">543</a> <em class="jxr_javadoccomment"> * Optionally includes source class and method name in the log record if SHOW_SOURCE is enabled.</em>
-<a class="jxr_linenumber" name="L544" href="#L544">544</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L545" href="#L545">545</a> <em class="jxr_javadoccomment"> * @param level The log level.</em>
-<a class="jxr_linenumber" name="L546" href="#L546">546</a> <em class="jxr_javadoccomment"> * @param msg The log message.</em>
-<a class="jxr_linenumber" name="L547" href="#L547">547</a> <em class="jxr_javadoccomment"> * @param thrown The throwable to log, or <jk>null</jk> if none.</em>
-<a class="jxr_linenumber" name="L548" href="#L548">548</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L549" href="#L549">549</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> log(Level level, String msg, Throwable thrown) {
-<a class="jxr_linenumber" name="L550" href="#L550">550</a> <strong class="jxr_keyword">var</strong> r = <strong class="jxr_keyword">new</strong> LogRecord(level, msg);
-<a class="jxr_linenumber" name="L551" href="#L551">551</a> <strong class="jxr_keyword">if</strong> (nn(thrown))
-<a class="jxr_linenumber" name="L552" href="#L552">552</a> r.setThrown(thrown);
-<a class="jxr_linenumber" name="L553" href="#L553">553</a> r.setLoggerName(logger.getName());
-<a class="jxr_linenumber" name="L554" href="#L554">554</a> <strong class="jxr_keyword">if</strong> (SHOW_SOURCE) {
-<a class="jxr_linenumber" name="L555" href="#L555">555</a> StackTraceElement[] stack = <strong class="jxr_keyword">new</strong> Throwable().getStackTrace();
-<a class="jxr_linenumber" name="L556" href="#L556">556</a> <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> e : stack) {
-<a class="jxr_linenumber" name="L557" href="#L557">557</a> <strong class="jxr_keyword">if</strong> (! e.getClassName().equals(getClass().getName())) {
-<a class="jxr_linenumber" name="L558" href="#L558">558</a> r.setSourceClassName(e.getClassName());
-<a class="jxr_linenumber" name="L559" href="#L559">559</a> r.setSourceMethodName(e.getMethodName());
-<a class="jxr_linenumber" name="L560" href="#L560">560</a> <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="L561" href="#L561">561</a> }
-<a class="jxr_linenumber" name="L562" href="#L562">562</a> }
-<a class="jxr_linenumber" name="L563" href="#L563">563</a> }
-<a class="jxr_linenumber" name="L564" href="#L564">564</a> logger.log(r);
-<a class="jxr_linenumber" name="L565" href="#L565">565</a> }
-<a class="jxr_linenumber" name="L566" href="#L566">566</a> }
+<a class="jxr_linenumber" name="L513" href="#L513">513</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L514" href="#L514">514</a> <em class="jxr_javadoccomment"> * Checks if a message at the specified level would be logged.</em>
+<a class="jxr_linenumber" name="L515" href="#L515">515</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L516" href="#L516">516</a> <em class="jxr_javadoccomment"> * @param level The log level to check.</em>
+<a class="jxr_linenumber" name="L517" href="#L517">517</a> <em class="jxr_javadoccomment"> * @return <jk>true</jk> if the level is loggable, <jk>false</jk> otherwise.</em>
+<a class="jxr_linenumber" name="L518" href="#L518">518</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L519" href="#L519">519</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> isLoggable(Level level) {
+<a class="jxr_linenumber" name="L520" href="#L520">520</a> <strong class="jxr_keyword">return</strong> logger.isLoggable(level);
+<a class="jxr_linenumber" name="L521" href="#L521">521</a> }
+<a class="jxr_linenumber" name="L522" href="#L522">522</a>
+<a class="jxr_linenumber" name="L523" href="#L523">523</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L524" href="#L524">524</a> <em class="jxr_javadoccomment"> * Internal log method that creates a LogRecord and logs it.</em>
+<a class="jxr_linenumber" name="L525" href="#L525">525</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L526" href="#L526">526</a> <em class="jxr_javadoccomment"> * <p></em>
+<a class="jxr_linenumber" name="L527" href="#L527">527</a> <em class="jxr_javadoccomment"> * Optionally includes source class and method name in the log record if SHOW_SOURCE is enabled.</em>
+<a class="jxr_linenumber" name="L528" href="#L528">528</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L529" href="#L529">529</a> <em class="jxr_javadoccomment"> * @param level The log level.</em>
+<a class="jxr_linenumber" name="L530" href="#L530">530</a> <em class="jxr_javadoccomment"> * @param msg The log message.</em>
+<a class="jxr_linenumber" name="L531" href="#L531">531</a> <em class="jxr_javadoccomment"> * @param thrown The throwable to log, or <jk>null</jk> if none.</em>
+<a class="jxr_linenumber" name="L532" href="#L532">532</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L533" href="#L533">533</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> log(Level level, String msg, Throwable thrown) {
+<a class="jxr_linenumber" name="L534" href="#L534">534</a> <strong class="jxr_keyword">var</strong> r = <strong class="jxr_keyword">new</strong> LogRecord(level, msg);
+<a class="jxr_linenumber" name="L535" href="#L535">535</a> <strong class="jxr_keyword">if</strong> (nn(thrown))
+<a class="jxr_linenumber" name="L536" href="#L536">536</a> r.setThrown(thrown);
+<a class="jxr_linenumber" name="L537" href="#L537">537</a> r.setLoggerName(logger.getName());
+<a class="jxr_linenumber" name="L538" href="#L538">538</a> <strong class="jxr_keyword">if</strong> (SHOW_SOURCE) {
+<a class="jxr_linenumber" name="L539" href="#L539">539</a> StackTraceElement[] stack = <strong class="jxr_keyword">new</strong> Throwable().getStackTrace();
+<a class="jxr_linenumber" name="L540" href="#L540">540</a> <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> e : stack) {
+<a class="jxr_linenumber" name="L541" href="#L541">541</a> <strong class="jxr_keyword">if</strong> (! e.getClassName().equals(getClass().getName())) {
+<a class="jxr_linenumber" name="L542" href="#L542">542</a> r.setSourceClassName(e.getClassName());
+<a class="jxr_linenumber" name="L543" href="#L543">543</a> r.setSourceMethodName(e.getMethodName());
+<a class="jxr_linenumber" name="L544" href="#L544">544</a> <strong class="jxr_keyword">break</strong>;
+<a class="jxr_linenumber" name="L545" href="#L545">545</a> }
+<a class="jxr_linenumber" name="L546" href="#L546">546</a> }
+<a class="jxr_linenumber" name="L547" href="#L547">547</a> }
+<a class="jxr_linenumber" name="L548" href="#L548">548</a> logger.log(r);
+<a class="jxr_linenumber" name="L549" href="#L549">549</a> }
+<a class="jxr_linenumber" name="L550" href="#L550">550</a> }
</pre>
<hr/>
<div id="footer">© 2016–2025 <a href="https://www.apache.org/">The Apache Software Foundation</a></div>
diff --git a/site/xref/org/apache/juneau/parser/ParseException.html b/site/xref/org/apache/juneau/parser/ParseException.html
index 803d021e71..6cf3f34074 100644
--- a/site/xref/org/apache/juneau/parser/ParseException.html
+++ b/site/xref/org/apache/juneau/parser/ParseException.html
@@ -68,7 +68,7 @@
<a class="jxr_linenumber" name="L60" href="#L60">60</a>
<a class="jxr_linenumber" name="L61" href="#L61">61</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> String getMessage(<a name="ParserSession" href="../../../../org/apache/juneau/parser/ParserSession.html#ParserSession">ParserSession</a> session, String msg, Object...args) {
<a class="jxr_linenumber" name="L62" href="#L62">62</a> <strong class="jxr_keyword">if</strong> (args.length != 0)
-<a class="jxr_linenumber" name="L63" href="#L63">63</a> msg = mformat(msg, args);
+<a class="jxr_linenumber" name="L63" href="#L63">63</a> msg = f(msg, args);
<a class="jxr_linenumber" name="L64" href="#L64">64</a>
<a class="jxr_linenumber" name="L65" href="#L65">65</a> <strong class="jxr_keyword">if</strong> (nn(session)) {
<a class="jxr_linenumber" name="L66" href="#L66">66</a> Position p = session.getPosition();
diff --git a/site/xref/org/apache/juneau/parser/ParserListener.html b/site/xref/org/apache/juneau/parser/ParserListener.html
index 063862aa2e..77d0f1a645 100644
--- a/site/xref/org/apache/juneau/parser/ParserListener.html
+++ b/site/xref/org/apache/juneau/parser/ParserListener.html
@@ -26,63 +26,64 @@
<a class="jxr_linenumber" name="L18" href="#L18">18</a>
<a class="jxr_linenumber" name="L19" href="#L19">19</a> <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.juneau.common.utils.StringUtils.*;
<a class="jxr_linenumber" name="L20" href="#L20">20</a> <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.juneau.common.utils.ThrowableUtils.*;
-<a class="jxr_linenumber" name="L21" href="#L21">21</a>
-<a class="jxr_linenumber" name="L22" href="#L22">22</a> <strong class="jxr_keyword">import</strong> org.apache.juneau.*;
-<a class="jxr_linenumber" name="L23" href="#L23">23</a>
-<a class="jxr_linenumber" name="L24" href="#L24">24</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L25" href="#L25">25</a> <em class="jxr_javadoccomment"> * Class for listening for certain parse events during a document parse.</em>
-<a class="jxr_linenumber" name="L26" href="#L26">26</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L27" href="#L27">27</a> <em class="jxr_javadoccomment"> * <h5 class='section'>See Also:</h5><ul></em>
-<a class="jxr_linenumber" name="L28" href="#L28">28</a> <em class="jxr_javadoccomment"> * <li class='link'><a class="doclink" href="<a href="https://juneau.apache.org/docs/topics/SerializersAndParsers" target="alexandria_uri">https://juneau.apache.org/docs/topics/SerializersAndParsers</a>">Serializers and Parsers</a></em>
-<a class="jxr_linenumber" name="L29" href="#L29">29</a>
-<a class="jxr_linenumber" name="L30" href="#L30">30</a> <em class="jxr_javadoccomment"> * </ul></em>
-<a class="jxr_linenumber" name="L31" href="#L31">31</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L32" href="#L32">32</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a name="ParserListener" href="../../../../org/apache/juneau/parser/ParserListener.html#ParserListener">ParserListener</a> {
-<a class="jxr_linenumber" name="L33" href="#L33">33</a>
-<a class="jxr_linenumber" name="L34" href="#L34">34</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L35" href="#L35">35</a> <em class="jxr_javadoccomment"> * Represents no parser listener.</em>
-<a class="jxr_linenumber" name="L36" href="#L36">36</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L37" href="#L37">37</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> Void <strong class="jxr_keyword">extends</strong> <a name="ParserListener" href="../../../../org/apache/juneau/parser/ParserListener.html#ParserListener">ParserListener</a> {}
-<a class="jxr_linenumber" name="L38" href="#L38">38</a>
-<a class="jxr_linenumber" name="L39" href="#L39">39</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L40" href="#L40">40</a> <em class="jxr_javadoccomment"> * Called when an exception is thrown when trying to call a bean setter method.</em>
-<a class="jxr_linenumber" name="L41" href="#L41">41</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L42" href="#L42">42</a> <em class="jxr_javadoccomment"> * @param session The serializer session.</em>
-<a class="jxr_linenumber" name="L43" href="#L43">43</a> <em class="jxr_javadoccomment"> * @param t The throwable that was thrown by the setter method.</em>
-<a class="jxr_linenumber" name="L44" href="#L44">44</a> <em class="jxr_javadoccomment"> * @param p The bean property we had an issue on.</em>
-<a class="jxr_linenumber" name="L45" href="#L45">45</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L46" href="#L46">46</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> onBeanSetterException(<a name="ParserSession" href="../../../../org/apache/juneau/parser/ParserSession.html#ParserSession">ParserSession</a> session, Throwable t, BeanPropertyMeta p) {
-<a class="jxr_linenumber" name="L47" href="#L47">47</a> onError(session, t, mformat(<span class="jxr_string">"Could not call setValue() on property ''{0}'' of class ''{1}'', exception = {2}"</span>, p.getName(), p.getBeanMeta().getClassMeta(), lm(t)));
-<a class="jxr_linenumber" name="L48" href="#L48">48</a> }
-<a class="jxr_linenumber" name="L49" href="#L49">49</a>
-<a class="jxr_linenumber" name="L50" href="#L50">50</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L51" href="#L51">51</a> <em class="jxr_javadoccomment"> * Called when an error occurs during parsing but is ignored.</em>
-<a class="jxr_linenumber" name="L52" href="#L52">52</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L53" href="#L53">53</a> <em class="jxr_javadoccomment"> * @param session The parser session.</em>
-<a class="jxr_linenumber" name="L54" href="#L54">54</a> <em class="jxr_javadoccomment"> * @param t The throwable that was thrown by the getter method.</em>
-<a class="jxr_linenumber" name="L55" href="#L55">55</a> <em class="jxr_javadoccomment"> * @param msg The error message.</em>
-<a class="jxr_linenumber" name="L56" href="#L56">56</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L57" href="#L57">57</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> onError(<a name="ParserSession" href="../../../../org/apache/juneau/parser/ParserSession.html#ParserSession">ParserSession</a> session, Throwable t, String msg) {
-<a class="jxr_linenumber" name="L58" href="#L58">58</a> <em class="jxr_comment">// Do something with this information.</em>
-<a class="jxr_linenumber" name="L59" href="#L59">59</a> }
-<a class="jxr_linenumber" name="L60" href="#L60">60</a>
-<a class="jxr_linenumber" name="L61" href="#L61">61</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L62" href="#L62">62</a> <em class="jxr_javadoccomment"> * Gets called when an unknown bean property is detected in a document.</em>
-<a class="jxr_linenumber" name="L63" href="#L63">63</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L64" href="#L64">64</a> <em class="jxr_javadoccomment"> * <p></em>
-<a class="jxr_linenumber" name="L65" href="#L65">65</a> <em class="jxr_javadoccomment"> * This method only gets called if {@link org.apache.juneau.BeanContext.Builder#ignoreUnknownBeanProperties()} setting is <jk>true</jk>.</em>
-<a class="jxr_linenumber" name="L66" href="#L66">66</a> <em class="jxr_javadoccomment"> * Otherwise, the parser will throw a {@link ParseException}.</em>
-<a class="jxr_linenumber" name="L67" href="#L67">67</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L68" href="#L68">68</a> <em class="jxr_javadoccomment"> * @param <T> The class type of the bean.</em>
-<a class="jxr_linenumber" name="L69" href="#L69">69</a> <em class="jxr_javadoccomment"> * @param session The parser session.</em>
-<a class="jxr_linenumber" name="L70" href="#L70">70</a> <em class="jxr_javadoccomment"> * @param propertyName The property name encountered in the document.</em>
-<a class="jxr_linenumber" name="L71" href="#L71">71</a> <em class="jxr_javadoccomment"> * @param beanClass The bean class.</em>
-<a class="jxr_linenumber" name="L72" href="#L72">72</a> <em class="jxr_javadoccomment"> * @param bean The bean.</em>
-<a class="jxr_linenumber" name="L73" href="#L73">73</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L74" href="#L74">74</a> <strong class="jxr_keyword">public</strong> <T> <strong class="jxr_keyword">void</strong> onUnknownBeanProperty(<a name="ParserSession" href="../../../../org/apache/juneau/parser/ParserSession.html#ParserSession">ParserSession</a> session, String propertyName, Class<T> beanClass, T bean) {
-<a class="jxr_linenumber" name="L75" href="#L75">75</a> onError(session, <strong class="jxr_keyword">null</strong>, mformat(<span class="jxr_string">"Unknown property ''{0}'' encountered while trying to parse into class ''{1}'' at location {2}"</span>, propertyName, beanClass, session.getPosition()));
-<a class="jxr_linenumber" name="L76" href="#L76">76</a> }
-<a class="jxr_linenumber" name="L77" href="#L77">77</a> }
+<a class="jxr_linenumber" name="L21" href="#L21">21</a> <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.juneau.common.utils.Utils.*;
+<a class="jxr_linenumber" name="L22" href="#L22">22</a>
+<a class="jxr_linenumber" name="L23" href="#L23">23</a> <strong class="jxr_keyword">import</strong> org.apache.juneau.*;
+<a class="jxr_linenumber" name="L24" href="#L24">24</a>
+<a class="jxr_linenumber" name="L25" href="#L25">25</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L26" href="#L26">26</a> <em class="jxr_javadoccomment"> * Class for listening for certain parse events during a document parse.</em>
+<a class="jxr_linenumber" name="L27" href="#L27">27</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L28" href="#L28">28</a> <em class="jxr_javadoccomment"> * <h5 class='section'>See Also:</h5><ul></em>
+<a class="jxr_linenumber" name="L29" href="#L29">29</a> <em class="jxr_javadoccomment"> * <li class='link'><a class="doclink" href="<a href="https://juneau.apache.org/docs/topics/SerializersAndParsers" target="alexandria_uri">https://juneau.apache.org/docs/topics/SerializersAndParsers</a>">Serializers and Parsers</a></em>
+<a class="jxr_linenumber" name="L30" href="#L30">30</a>
+<a class="jxr_linenumber" name="L31" href="#L31">31</a> <em class="jxr_javadoccomment"> * </ul></em>
+<a class="jxr_linenumber" name="L32" href="#L32">32</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L33" href="#L33">33</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a name="ParserListener" href="../../../../org/apache/juneau/parser/ParserListener.html#ParserListener">ParserListener</a> {
+<a class="jxr_linenumber" name="L34" href="#L34">34</a>
+<a class="jxr_linenumber" name="L35" href="#L35">35</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L36" href="#L36">36</a> <em class="jxr_javadoccomment"> * Represents no parser listener.</em>
+<a class="jxr_linenumber" name="L37" href="#L37">37</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L38" href="#L38">38</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> Void <strong class="jxr_keyword">extends</strong> <a name="ParserListener" href="../../../../org/apache/juneau/parser/ParserListener.html#ParserListener">ParserListener</a> {}
+<a class="jxr_linenumber" name="L39" href="#L39">39</a>
+<a class="jxr_linenumber" name="L40" href="#L40">40</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L41" href="#L41">41</a> <em class="jxr_javadoccomment"> * Called when an exception is thrown when trying to call a bean setter method.</em>
+<a class="jxr_linenumber" name="L42" href="#L42">42</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L43" href="#L43">43</a> <em class="jxr_javadoccomment"> * @param session The serializer session.</em>
+<a class="jxr_linenumber" name="L44" href="#L44">44</a> <em class="jxr_javadoccomment"> * @param t The throwable that was thrown by the setter method.</em>
+<a class="jxr_linenumber" name="L45" href="#L45">45</a> <em class="jxr_javadoccomment"> * @param p The bean property we had an issue on.</em>
+<a class="jxr_linenumber" name="L46" href="#L46">46</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L47" href="#L47">47</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> onBeanSetterException(<a name="ParserSession" href="../../../../org/apache/juneau/parser/ParserSession.html#ParserSession">ParserSession</a> session, Throwable t, BeanPropertyMeta p) {
+<a class="jxr_linenumber" name="L48" href="#L48">48</a> onError(session, t, f(<span class="jxr_string">"Could not call setValue() on property ''{0}'' of class ''{1}'', exception = {2}"</span>, p.getName(), p.getBeanMeta().getClassMeta(), lm(t)));
+<a class="jxr_linenumber" name="L49" href="#L49">49</a> }
+<a class="jxr_linenumber" name="L50" href="#L50">50</a>
+<a class="jxr_linenumber" name="L51" href="#L51">51</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L52" href="#L52">52</a> <em class="jxr_javadoccomment"> * Called when an error occurs during parsing but is ignored.</em>
+<a class="jxr_linenumber" name="L53" href="#L53">53</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L54" href="#L54">54</a> <em class="jxr_javadoccomment"> * @param session The parser session.</em>
+<a class="jxr_linenumber" name="L55" href="#L55">55</a> <em class="jxr_javadoccomment"> * @param t The throwable that was thrown by the getter method.</em>
+<a class="jxr_linenumber" name="L56" href="#L56">56</a> <em class="jxr_javadoccomment"> * @param msg The error message.</em>
+<a class="jxr_linenumber" name="L57" href="#L57">57</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L58" href="#L58">58</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> onError(<a name="ParserSession" href="../../../../org/apache/juneau/parser/ParserSession.html#ParserSession">ParserSession</a> session, Throwable t, String msg) {
+<a class="jxr_linenumber" name="L59" href="#L59">59</a> <em class="jxr_comment">// Do something with this information.</em>
+<a class="jxr_linenumber" name="L60" href="#L60">60</a> }
+<a class="jxr_linenumber" name="L61" href="#L61">61</a>
+<a class="jxr_linenumber" name="L62" href="#L62">62</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L63" href="#L63">63</a> <em class="jxr_javadoccomment"> * Gets called when an unknown bean property is detected in a document.</em>
+<a class="jxr_linenumber" name="L64" href="#L64">64</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L65" href="#L65">65</a> <em class="jxr_javadoccomment"> * <p></em>
+<a class="jxr_linenumber" name="L66" href="#L66">66</a> <em class="jxr_javadoccomment"> * This method only gets called if {@link org.apache.juneau.BeanContext.Builder#ignoreUnknownBeanProperties()} setting is <jk>true</jk>.</em>
+<a class="jxr_linenumber" name="L67" href="#L67">67</a> <em class="jxr_javadoccomment"> * Otherwise, the parser will throw a {@link ParseException}.</em>
+<a class="jxr_linenumber" name="L68" href="#L68">68</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L69" href="#L69">69</a> <em class="jxr_javadoccomment"> * @param <T> The class type of the bean.</em>
+<a class="jxr_linenumber" name="L70" href="#L70">70</a> <em class="jxr_javadoccomment"> * @param session The parser session.</em>
+<a class="jxr_linenumber" name="L71" href="#L71">71</a> <em class="jxr_javadoccomment"> * @param propertyName The property name encountered in the document.</em>
+<a class="jxr_linenumber" name="L72" href="#L72">72</a> <em class="jxr_javadoccomment"> * @param beanClass The bean class.</em>
+<a class="jxr_linenumber" name="L73" href="#L73">73</a> <em class="jxr_javadoccomment"> * @param bean The bean.</em>
+<a class="jxr_linenumber" name="L74" href="#L74">74</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L75" href="#L75">75</a> <strong class="jxr_keyword">public</strong> <T> <strong class="jxr_keyword">void</strong> onUnknownBeanProperty(<a name="ParserSession" href="../../../../org/apache/juneau/parser/ParserSession.html#ParserSession">ParserSession</a> session, String propertyName, Class<T> beanClass, T bean) {
+<a class="jxr_linenumber" name="L76" href="#L76">76</a> onError(session, <strong class="jxr_keyword">null</strong>, f(<span class="jxr_string">"Unknown property ''{0}'' encountered while trying to parse into class ''{1}'' at location {2}"</span>, propertyName, beanClass, session.getPosition()));
+<a class="jxr_linenumber" name="L77" href="#L77">77</a> }
+<a class="jxr_linenumber" name="L78" href="#L78">78</a> }
</pre>
<hr/>
<div id="footer">© 2016–2025 <a href="https://www.apache.org/">The Apache Software Foundation</a></div>
diff --git a/site/xref/org/apache/juneau/rest/arg/ArgException.html b/site/xref/org/apache/juneau/rest/arg/ArgException.html
index fbcb63500b..4d4684103c 100644
--- a/site/xref/org/apache/juneau/rest/arg/ArgException.html
+++ b/site/xref/org/apache/juneau/rest/arg/ArgException.html
@@ -25,130 +25,131 @@
<a class="jxr_linenumber" name="L17" href="#L17">17</a> <strong class="jxr_keyword">package</strong> org.apache.juneau.<strong class="jxr_keyword">rest</strong>.arg;
<a class="jxr_linenumber" name="L18" href="#L18">18</a>
<a class="jxr_linenumber" name="L19" href="#L19">19</a> <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.juneau.common.utils.StringUtils.*;
-<a class="jxr_linenumber" name="L20" href="#L20">20</a>
-<a class="jxr_linenumber" name="L21" href="#L21">21</a> <strong class="jxr_keyword">import</strong> java.util.*;
-<a class="jxr_linenumber" name="L22" href="#L22">22</a>
-<a class="jxr_linenumber" name="L23" href="#L23">23</a> <strong class="jxr_keyword">import</strong> org.apache.http.*;
-<a class="jxr_linenumber" name="L24" href="#L24">24</a> <strong class="jxr_keyword">import</strong> org.apache.juneau.http.*;
-<a class="jxr_linenumber" name="L25" href="#L25">25</a> <strong class="jxr_keyword">import</strong> org.apache.juneau.http.header.*;
-<a class="jxr_linenumber" name="L26" href="#L26">26</a> <strong class="jxr_keyword">import</strong> org.apache.juneau.http.response.*;
-<a class="jxr_linenumber" name="L27" href="#L27">27</a> <strong class="jxr_keyword">import</strong> org.apache.juneau.common.reflect.*;
-<a class="jxr_linenumber" name="L28" href="#L28">28</a>
-<a class="jxr_linenumber" name="L29" href="#L29">29</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L30" href="#L30">30</a> <em class="jxr_javadoccomment"> * General exception due to a malformed Java parameter.</em>
-<a class="jxr_linenumber" name="L31" href="#L31">31</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L32" href="#L32">32</a> <em class="jxr_javadoccomment"> * <h5 class='section'>See Also:</h5><ul></em>
-<a class="jxr_linenumber" name="L33" href="#L33">33</a> <em class="jxr_javadoccomment"> * <li class='link'><a class="doclink" href="<a href="https://juneau.apache.org/docs/topics/JavaMethodParameters" target="alexandria_uri">https://juneau.apache.org/docs/topics/JavaMethodParameters</a>">Java Method Parameters</a></em>
-<a class="jxr_linenumber" name="L34" href="#L34">34</a> <em class="jxr_javadoccomment"> * </ul></em>
-<a class="jxr_linenumber" name="L35" href="#L35">35</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L36" href="#L36">36</a> <em class="jxr_javadoccomment"> * @serial exclude</em>
-<a class="jxr_linenumber" name="L37" href="#L37">37</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L38" href="#L38">38</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a> <strong class="jxr_keyword">extends</strong> <a name="InternalServerError" href="../../../../../org/apache/juneau/http/response/InternalServerError.html#InternalServerError">InternalServerError</a> {
-<a class="jxr_linenumber" name="L39" href="#L39">39</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> serialVersionUID = 1L;
-<a class="jxr_linenumber" name="L40" href="#L40">40</a>
-<a class="jxr_linenumber" name="L41" href="#L41">41</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L42" href="#L42">42</a> <em class="jxr_javadoccomment"> * Constructor.</em>
-<a class="jxr_linenumber" name="L43" href="#L43">43</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L44" href="#L44">44</a> <em class="jxr_javadoccomment"> * @param pi The parameter with the issue.</em>
-<a class="jxr_linenumber" name="L45" href="#L45">45</a> <em class="jxr_javadoccomment"> * @param msg The message.</em>
-<a class="jxr_linenumber" name="L46" href="#L46">46</a> <em class="jxr_javadoccomment"> * @param args The message args.</em>
-<a class="jxr_linenumber" name="L47" href="#L47">47</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L48" href="#L48">48</a> <strong class="jxr_keyword">public</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a>(<a name="ParameterInfo" href="../../../../../org/apache/juneau/common/reflect/ParameterInfo.html#ParameterInfo">ParameterInfo</a> pi, String msg, Object...args) {
-<a class="jxr_linenumber" name="L49" href="#L49">49</a> <strong class="jxr_keyword">super</strong>(mformat(msg, args) + <span class="jxr_string">" on parameter "</span> + pi.getIndex() + <span class="jxr_string">" of method "</span> + pi.getMethod().getFullName() + <span class="jxr_string">"."</span>);
-<a class="jxr_linenumber" name="L50" href="#L50">50</a> }
-<a class="jxr_linenumber" name="L51" href="#L51">51</a>
-<a class="jxr_linenumber" name="L52" href="#L52">52</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L53" href="#L53">53</a> <em class="jxr_javadoccomment"> * Copy constructor.</em>
-<a class="jxr_linenumber" name="L54" href="#L54">54</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L55" href="#L55">55</a> <em class="jxr_javadoccomment"> * @param copyFrom The object to copy.</em>
-<a class="jxr_linenumber" name="L56" href="#L56">56</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L57" href="#L57">57</a> <strong class="jxr_keyword">protected</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a>(<a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a> copyFrom) {
-<a class="jxr_linenumber" name="L58" href="#L58">58</a> <strong class="jxr_keyword">super</strong>(copyFrom);
-<a class="jxr_linenumber" name="L59" href="#L59">59</a> }
-<a class="jxr_linenumber" name="L60" href="#L60">60</a>
-<a class="jxr_linenumber" name="L61" href="#L61">61</a> @Override <em class="jxr_comment">/* Overridden from InternalServerError */</em>
-<a class="jxr_linenumber" name="L62" href="#L62">62</a> <strong class="jxr_keyword">public</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a> copy() {
-<a class="jxr_linenumber" name="L63" href="#L63">63</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a>(<strong class="jxr_keyword">this</strong>);
-<a class="jxr_linenumber" name="L64" href="#L64">64</a> }
-<a class="jxr_linenumber" name="L65" href="#L65">65</a>
-<a class="jxr_linenumber" name="L66" href="#L66">66</a> @Override <em class="jxr_comment">/* Overridden from InternalServerError */</em>
-<a class="jxr_linenumber" name="L67" href="#L67">67</a> <strong class="jxr_keyword">public</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a> setContent(HttpEntity value) {
-<a class="jxr_linenumber" name="L68" href="#L68">68</a> <strong class="jxr_keyword">super</strong>.setContent(value);
-<a class="jxr_linenumber" name="L69" href="#L69">69</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L70" href="#L70">70</a> }
-<a class="jxr_linenumber" name="L71" href="#L71">71</a>
-<a class="jxr_linenumber" name="L72" href="#L72">72</a> @Override <em class="jxr_comment">/* Overridden from InternalServerError */</em>
-<a class="jxr_linenumber" name="L73" href="#L73">73</a> <strong class="jxr_keyword">public</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a> setContent(String value) {
-<a class="jxr_linenumber" name="L74" href="#L74">74</a> <strong class="jxr_keyword">super</strong>.setContent(value);
-<a class="jxr_linenumber" name="L75" href="#L75">75</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L76" href="#L76">76</a> }
-<a class="jxr_linenumber" name="L77" href="#L77">77</a>
-<a class="jxr_linenumber" name="L78" href="#L78">78</a> @Override <em class="jxr_comment">/* Overridden from InternalServerError */</em>
-<a class="jxr_linenumber" name="L79" href="#L79">79</a> <strong class="jxr_keyword">public</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a> setHeader2(String name, Object value) {
-<a class="jxr_linenumber" name="L80" href="#L80">80</a> <strong class="jxr_keyword">super</strong>.setHeader2(name, value);
-<a class="jxr_linenumber" name="L81" href="#L81">81</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L82" href="#L82">82</a> }
-<a class="jxr_linenumber" name="L83" href="#L83">83</a>
-<a class="jxr_linenumber" name="L84" href="#L84">84</a> @Override <em class="jxr_comment">/* Overridden from InternalServerError */</em>
-<a class="jxr_linenumber" name="L85" href="#L85">85</a> <strong class="jxr_keyword">public</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a> setHeaders(<a name="HeaderList" href="../../../../../org/apache/juneau/http/header/HeaderList.html#HeaderList">HeaderList</a> value) {
-<a class="jxr_linenumber" name="L86" href="#L86">86</a> <strong class="jxr_keyword">super</strong>.setHeaders(value);
-<a class="jxr_linenumber" name="L87" href="#L87">87</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L88" href="#L88">88</a> }
-<a class="jxr_linenumber" name="L89" href="#L89">89</a>
-<a class="jxr_linenumber" name="L90" href="#L90">90</a> @Override <em class="jxr_comment">/* Overridden from InternalServerError */</em>
-<a class="jxr_linenumber" name="L91" href="#L91">91</a> <strong class="jxr_keyword">public</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a> setHeaders(List<Header> values) {
-<a class="jxr_linenumber" name="L92" href="#L92">92</a> <strong class="jxr_keyword">super</strong>.setHeaders(values);
-<a class="jxr_linenumber" name="L93" href="#L93">93</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L94" href="#L94">94</a> }
-<a class="jxr_linenumber" name="L95" href="#L95">95</a>
-<a class="jxr_linenumber" name="L96" href="#L96">96</a> @Override <em class="jxr_comment">/* Overridden from InternalServerError */</em>
-<a class="jxr_linenumber" name="L97" href="#L97">97</a> <strong class="jxr_keyword">public</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a> setHeaders2(Header...values) {
-<a class="jxr_linenumber" name="L98" href="#L98">98</a> <strong class="jxr_keyword">super</strong>.setHeaders2(values);
-<a class="jxr_linenumber" name="L99" href="#L99">99</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L100" href="#L100">100</a> }
-<a class="jxr_linenumber" name="L101" href="#L101">101</a>
-<a class="jxr_linenumber" name="L102" href="#L102">102</a> @Override <em class="jxr_comment">/* Overridden from InternalServerError */</em>
-<a class="jxr_linenumber" name="L103" href="#L103">103</a> <strong class="jxr_keyword">public</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a> setLocale2(Locale value) {
-<a class="jxr_linenumber" name="L104" href="#L104">104</a> <strong class="jxr_keyword">super</strong>.setLocale2(value);
-<a class="jxr_linenumber" name="L105" href="#L105">105</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L106" href="#L106">106</a> }
-<a class="jxr_linenumber" name="L107" href="#L107">107</a>
-<a class="jxr_linenumber" name="L108" href="#L108">108</a> @Override <em class="jxr_comment">/* Overridden from InternalServerError */</em>
-<a class="jxr_linenumber" name="L109" href="#L109">109</a> <strong class="jxr_keyword">public</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a> setMessage(String message, Object...args) {
-<a class="jxr_linenumber" name="L110" href="#L110">110</a> <strong class="jxr_keyword">super</strong>.setMessage(message, args);
-<a class="jxr_linenumber" name="L111" href="#L111">111</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L112" href="#L112">112</a> }
-<a class="jxr_linenumber" name="L113" href="#L113">113</a>
-<a class="jxr_linenumber" name="L114" href="#L114">114</a> @Override <em class="jxr_comment">/* Overridden from InternalServerError */</em>
-<a class="jxr_linenumber" name="L115" href="#L115">115</a> <strong class="jxr_keyword">public</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a> setProtocolVersion(ProtocolVersion value) {
-<a class="jxr_linenumber" name="L116" href="#L116">116</a> <strong class="jxr_keyword">super</strong>.setProtocolVersion(value);
-<a class="jxr_linenumber" name="L117" href="#L117">117</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L118" href="#L118">118</a> }
-<a class="jxr_linenumber" name="L119" href="#L119">119</a>
-<a class="jxr_linenumber" name="L120" href="#L120">120</a> @Override <em class="jxr_comment">/* Overridden from InternalServerError */</em>
-<a class="jxr_linenumber" name="L121" href="#L121">121</a> <strong class="jxr_keyword">public</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a> setReasonPhrase2(String value) {
-<a class="jxr_linenumber" name="L122" href="#L122">122</a> <strong class="jxr_keyword">super</strong>.setReasonPhrase2(value);
-<a class="jxr_linenumber" name="L123" href="#L123">123</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L124" href="#L124">124</a> }
-<a class="jxr_linenumber" name="L125" href="#L125">125</a>
-<a class="jxr_linenumber" name="L126" href="#L126">126</a> @Override <em class="jxr_comment">/* Overridden from InternalServerError */</em>
-<a class="jxr_linenumber" name="L127" href="#L127">127</a> <strong class="jxr_keyword">public</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a> setReasonPhraseCatalog(ReasonPhraseCatalog value) {
-<a class="jxr_linenumber" name="L128" href="#L128">128</a> <strong class="jxr_keyword">super</strong>.setReasonPhraseCatalog(value);
-<a class="jxr_linenumber" name="L129" href="#L129">129</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L130" href="#L130">130</a> }
-<a class="jxr_linenumber" name="L131" href="#L131">131</a>
-<a class="jxr_linenumber" name="L132" href="#L132">132</a> @Override <em class="jxr_comment">/* Overridden from InternalServerError */</em>
-<a class="jxr_linenumber" name="L133" href="#L133">133</a> <strong class="jxr_keyword">public</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a> setStatusLine(<a name="BasicStatusLine" href="../../../../../org/apache/juneau/http/BasicStatusLine.html#BasicStatusLine">BasicStatusLine</a> value) {
-<a class="jxr_linenumber" name="L134" href="#L134">134</a> <strong class="jxr_keyword">super</strong>.setStatusLine(value);
-<a class="jxr_linenumber" name="L135" href="#L135">135</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L136" href="#L136">136</a> }
-<a class="jxr_linenumber" name="L137" href="#L137">137</a>
-<a class="jxr_linenumber" name="L138" href="#L138">138</a> @Override <em class="jxr_comment">/* Overridden from InternalServerError */</em>
-<a class="jxr_linenumber" name="L139" href="#L139">139</a> <strong class="jxr_keyword">public</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a> setUnmodifiable() {
-<a class="jxr_linenumber" name="L140" href="#L140">140</a> <strong class="jxr_keyword">super</strong>.setUnmodifiable();
-<a class="jxr_linenumber" name="L141" href="#L141">141</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
-<a class="jxr_linenumber" name="L142" href="#L142">142</a> }
-<a class="jxr_linenumber" name="L143" href="#L143">143</a> }
+<a class="jxr_linenumber" name="L20" href="#L20">20</a> <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.juneau.common.utils.Utils.*;
+<a class="jxr_linenumber" name="L21" href="#L21">21</a>
+<a class="jxr_linenumber" name="L22" href="#L22">22</a> <strong class="jxr_keyword">import</strong> java.util.*;
+<a class="jxr_linenumber" name="L23" href="#L23">23</a>
+<a class="jxr_linenumber" name="L24" href="#L24">24</a> <strong class="jxr_keyword">import</strong> org.apache.http.*;
+<a class="jxr_linenumber" name="L25" href="#L25">25</a> <strong class="jxr_keyword">import</strong> org.apache.juneau.http.*;
+<a class="jxr_linenumber" name="L26" href="#L26">26</a> <strong class="jxr_keyword">import</strong> org.apache.juneau.http.header.*;
+<a class="jxr_linenumber" name="L27" href="#L27">27</a> <strong class="jxr_keyword">import</strong> org.apache.juneau.http.response.*;
+<a class="jxr_linenumber" name="L28" href="#L28">28</a> <strong class="jxr_keyword">import</strong> org.apache.juneau.common.reflect.*;
+<a class="jxr_linenumber" name="L29" href="#L29">29</a>
+<a class="jxr_linenumber" name="L30" href="#L30">30</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L31" href="#L31">31</a> <em class="jxr_javadoccomment"> * General exception due to a malformed Java parameter.</em>
+<a class="jxr_linenumber" name="L32" href="#L32">32</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L33" href="#L33">33</a> <em class="jxr_javadoccomment"> * <h5 class='section'>See Also:</h5><ul></em>
+<a class="jxr_linenumber" name="L34" href="#L34">34</a> <em class="jxr_javadoccomment"> * <li class='link'><a class="doclink" href="<a href="https://juneau.apache.org/docs/topics/JavaMethodParameters" target="alexandria_uri">https://juneau.apache.org/docs/topics/JavaMethodParameters</a>">Java Method Parameters</a></em>
+<a class="jxr_linenumber" name="L35" href="#L35">35</a> <em class="jxr_javadoccomment"> * </ul></em>
+<a class="jxr_linenumber" name="L36" href="#L36">36</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L37" href="#L37">37</a> <em class="jxr_javadoccomment"> * @serial exclude</em>
+<a class="jxr_linenumber" name="L38" href="#L38">38</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L39" href="#L39">39</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a> <strong class="jxr_keyword">extends</strong> <a name="InternalServerError" href="../../../../../org/apache/juneau/http/response/InternalServerError.html#InternalServerError">InternalServerError</a> {
+<a class="jxr_linenumber" name="L40" href="#L40">40</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> serialVersionUID = 1L;
+<a class="jxr_linenumber" name="L41" href="#L41">41</a>
+<a class="jxr_linenumber" name="L42" href="#L42">42</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L43" href="#L43">43</a> <em class="jxr_javadoccomment"> * Constructor.</em>
+<a class="jxr_linenumber" name="L44" href="#L44">44</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L45" href="#L45">45</a> <em class="jxr_javadoccomment"> * @param pi The parameter with the issue.</em>
+<a class="jxr_linenumber" name="L46" href="#L46">46</a> <em class="jxr_javadoccomment"> * @param msg The message.</em>
+<a class="jxr_linenumber" name="L47" href="#L47">47</a> <em class="jxr_javadoccomment"> * @param args The message args.</em>
+<a class="jxr_linenumber" name="L48" href="#L48">48</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L49" href="#L49">49</a> <strong class="jxr_keyword">public</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a>(<a name="ParameterInfo" href="../../../../../org/apache/juneau/common/reflect/ParameterInfo.html#ParameterInfo">ParameterInfo</a> pi, String msg, Object...args) {
+<a class="jxr_linenumber" name="L50" href="#L50">50</a> <strong class="jxr_keyword">super</strong>(f(msg, args) + <span class="jxr_string">" on parameter "</span> + pi.getIndex() + <span class="jxr_string">" of method "</span> + pi.getMethod().getFullName() + <span class="jxr_string">"."</span>);
+<a class="jxr_linenumber" name="L51" href="#L51">51</a> }
+<a class="jxr_linenumber" name="L52" href="#L52">52</a>
+<a class="jxr_linenumber" name="L53" href="#L53">53</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L54" href="#L54">54</a> <em class="jxr_javadoccomment"> * Copy constructor.</em>
+<a class="jxr_linenumber" name="L55" href="#L55">55</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L56" href="#L56">56</a> <em class="jxr_javadoccomment"> * @param copyFrom The object to copy.</em>
+<a class="jxr_linenumber" name="L57" href="#L57">57</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L58" href="#L58">58</a> <strong class="jxr_keyword">protected</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a>(<a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a> copyFrom) {
+<a class="jxr_linenumber" name="L59" href="#L59">59</a> <strong class="jxr_keyword">super</strong>(copyFrom);
+<a class="jxr_linenumber" name="L60" href="#L60">60</a> }
+<a class="jxr_linenumber" name="L61" href="#L61">61</a>
+<a class="jxr_linenumber" name="L62" href="#L62">62</a> @Override <em class="jxr_comment">/* Overridden from InternalServerError */</em>
+<a class="jxr_linenumber" name="L63" href="#L63">63</a> <strong class="jxr_keyword">public</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a> copy() {
+<a class="jxr_linenumber" name="L64" href="#L64">64</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a>(<strong class="jxr_keyword">this</strong>);
+<a class="jxr_linenumber" name="L65" href="#L65">65</a> }
+<a class="jxr_linenumber" name="L66" href="#L66">66</a>
+<a class="jxr_linenumber" name="L67" href="#L67">67</a> @Override <em class="jxr_comment">/* Overridden from InternalServerError */</em>
+<a class="jxr_linenumber" name="L68" href="#L68">68</a> <strong class="jxr_keyword">public</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a> setContent(HttpEntity value) {
+<a class="jxr_linenumber" name="L69" href="#L69">69</a> <strong class="jxr_keyword">super</strong>.setContent(value);
+<a class="jxr_linenumber" name="L70" href="#L70">70</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L71" href="#L71">71</a> }
+<a class="jxr_linenumber" name="L72" href="#L72">72</a>
+<a class="jxr_linenumber" name="L73" href="#L73">73</a> @Override <em class="jxr_comment">/* Overridden from InternalServerError */</em>
+<a class="jxr_linenumber" name="L74" href="#L74">74</a> <strong class="jxr_keyword">public</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a> setContent(String value) {
+<a class="jxr_linenumber" name="L75" href="#L75">75</a> <strong class="jxr_keyword">super</strong>.setContent(value);
+<a class="jxr_linenumber" name="L76" href="#L76">76</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L77" href="#L77">77</a> }
+<a class="jxr_linenumber" name="L78" href="#L78">78</a>
+<a class="jxr_linenumber" name="L79" href="#L79">79</a> @Override <em class="jxr_comment">/* Overridden from InternalServerError */</em>
+<a class="jxr_linenumber" name="L80" href="#L80">80</a> <strong class="jxr_keyword">public</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a> setHeader2(String name, Object value) {
+<a class="jxr_linenumber" name="L81" href="#L81">81</a> <strong class="jxr_keyword">super</strong>.setHeader2(name, value);
+<a class="jxr_linenumber" name="L82" href="#L82">82</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L83" href="#L83">83</a> }
+<a class="jxr_linenumber" name="L84" href="#L84">84</a>
+<a class="jxr_linenumber" name="L85" href="#L85">85</a> @Override <em class="jxr_comment">/* Overridden from InternalServerError */</em>
+<a class="jxr_linenumber" name="L86" href="#L86">86</a> <strong class="jxr_keyword">public</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a> setHeaders(<a name="HeaderList" href="../../../../../org/apache/juneau/http/header/HeaderList.html#HeaderList">HeaderList</a> value) {
+<a class="jxr_linenumber" name="L87" href="#L87">87</a> <strong class="jxr_keyword">super</strong>.setHeaders(value);
+<a class="jxr_linenumber" name="L88" href="#L88">88</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L89" href="#L89">89</a> }
+<a class="jxr_linenumber" name="L90" href="#L90">90</a>
+<a class="jxr_linenumber" name="L91" href="#L91">91</a> @Override <em class="jxr_comment">/* Overridden from InternalServerError */</em>
+<a class="jxr_linenumber" name="L92" href="#L92">92</a> <strong class="jxr_keyword">public</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a> setHeaders(List<Header> values) {
+<a class="jxr_linenumber" name="L93" href="#L93">93</a> <strong class="jxr_keyword">super</strong>.setHeaders(values);
+<a class="jxr_linenumber" name="L94" href="#L94">94</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L95" href="#L95">95</a> }
+<a class="jxr_linenumber" name="L96" href="#L96">96</a>
+<a class="jxr_linenumber" name="L97" href="#L97">97</a> @Override <em class="jxr_comment">/* Overridden from InternalServerError */</em>
+<a class="jxr_linenumber" name="L98" href="#L98">98</a> <strong class="jxr_keyword">public</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a> setHeaders2(Header...values) {
+<a class="jxr_linenumber" name="L99" href="#L99">99</a> <strong class="jxr_keyword">super</strong>.setHeaders2(values);
+<a class="jxr_linenumber" name="L100" href="#L100">100</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L101" href="#L101">101</a> }
+<a class="jxr_linenumber" name="L102" href="#L102">102</a>
+<a class="jxr_linenumber" name="L103" href="#L103">103</a> @Override <em class="jxr_comment">/* Overridden from InternalServerError */</em>
+<a class="jxr_linenumber" name="L104" href="#L104">104</a> <strong class="jxr_keyword">public</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a> setLocale2(Locale value) {
+<a class="jxr_linenumber" name="L105" href="#L105">105</a> <strong class="jxr_keyword">super</strong>.setLocale2(value);
+<a class="jxr_linenumber" name="L106" href="#L106">106</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L107" href="#L107">107</a> }
+<a class="jxr_linenumber" name="L108" href="#L108">108</a>
+<a class="jxr_linenumber" name="L109" href="#L109">109</a> @Override <em class="jxr_comment">/* Overridden from InternalServerError */</em>
+<a class="jxr_linenumber" name="L110" href="#L110">110</a> <strong class="jxr_keyword">public</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a> setMessage(String message, Object...args) {
+<a class="jxr_linenumber" name="L111" href="#L111">111</a> <strong class="jxr_keyword">super</strong>.setMessage(message, args);
+<a class="jxr_linenumber" name="L112" href="#L112">112</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L113" href="#L113">113</a> }
+<a class="jxr_linenumber" name="L114" href="#L114">114</a>
+<a class="jxr_linenumber" name="L115" href="#L115">115</a> @Override <em class="jxr_comment">/* Overridden from InternalServerError */</em>
+<a class="jxr_linenumber" name="L116" href="#L116">116</a> <strong class="jxr_keyword">public</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a> setProtocolVersion(ProtocolVersion value) {
+<a class="jxr_linenumber" name="L117" href="#L117">117</a> <strong class="jxr_keyword">super</strong>.setProtocolVersion(value);
+<a class="jxr_linenumber" name="L118" href="#L118">118</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L119" href="#L119">119</a> }
+<a class="jxr_linenumber" name="L120" href="#L120">120</a>
+<a class="jxr_linenumber" name="L121" href="#L121">121</a> @Override <em class="jxr_comment">/* Overridden from InternalServerError */</em>
+<a class="jxr_linenumber" name="L122" href="#L122">122</a> <strong class="jxr_keyword">public</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a> setReasonPhrase2(String value) {
+<a class="jxr_linenumber" name="L123" href="#L123">123</a> <strong class="jxr_keyword">super</strong>.setReasonPhrase2(value);
+<a class="jxr_linenumber" name="L124" href="#L124">124</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L125" href="#L125">125</a> }
+<a class="jxr_linenumber" name="L126" href="#L126">126</a>
+<a class="jxr_linenumber" name="L127" href="#L127">127</a> @Override <em class="jxr_comment">/* Overridden from InternalServerError */</em>
+<a class="jxr_linenumber" name="L128" href="#L128">128</a> <strong class="jxr_keyword">public</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a> setReasonPhraseCatalog(ReasonPhraseCatalog value) {
+<a class="jxr_linenumber" name="L129" href="#L129">129</a> <strong class="jxr_keyword">super</strong>.setReasonPhraseCatalog(value);
+<a class="jxr_linenumber" name="L130" href="#L130">130</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L131" href="#L131">131</a> }
+<a class="jxr_linenumber" name="L132" href="#L132">132</a>
+<a class="jxr_linenumber" name="L133" href="#L133">133</a> @Override <em class="jxr_comment">/* Overridden from InternalServerError */</em>
+<a class="jxr_linenumber" name="L134" href="#L134">134</a> <strong class="jxr_keyword">public</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a> setStatusLine(<a name="BasicStatusLine" href="../../../../../org/apache/juneau/http/BasicStatusLine.html#BasicStatusLine">BasicStatusLine</a> value) {
+<a class="jxr_linenumber" name="L135" href="#L135">135</a> <strong class="jxr_keyword">super</strong>.setStatusLine(value);
+<a class="jxr_linenumber" name="L136" href="#L136">136</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L137" href="#L137">137</a> }
+<a class="jxr_linenumber" name="L138" href="#L138">138</a>
+<a class="jxr_linenumber" name="L139" href="#L139">139</a> @Override <em class="jxr_comment">/* Overridden from InternalServerError */</em>
+<a class="jxr_linenumber" name="L140" href="#L140">140</a> <strong class="jxr_keyword">public</strong> <a name="ArgException" href="../../../../../org/apache/juneau/rest/arg/ArgException.html#ArgException">ArgException</a> setUnmodifiable() {
+<a class="jxr_linenumber" name="L141" href="#L141">141</a> <strong class="jxr_keyword">super</strong>.setUnmodifiable();
+<a class="jxr_linenumber" name="L142" href="#L142">142</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
+<a class="jxr_linenumber" name="L143" href="#L143">143</a> }
+<a class="jxr_linenumber" name="L144" href="#L144">144</a> }
</pre>
<hr/>
<div id="footer">© 2016–2025 <a href="https://www.apache.org/">The Apache Software Foundation</a></div>
diff --git a/site/xref/org/apache/juneau/rest/client/RestClient.html b/site/xref/org/apache/juneau/rest/client/RestClient.html
index 6b1d8d48eb..475f118f97 100644
--- a/site/xref/org/apache/juneau/rest/client/RestClient.html
+++ b/site/xref/org/apache/juneau/rest/client/RestClient.html
@@ -7545,475 +7545,471 @@
<a class="jxr_linenumber" name="L7537" href="#L7537">7537</a> <strong class="jxr_keyword">return</strong> request(op(method, uri, body));
<a class="jxr_linenumber" name="L7538" href="#L7538">7538</a> }
<a class="jxr_linenumber" name="L7539" href="#L7539">7539</a>
-<a class="jxr_linenumber" name="L7540" href="#L7540">7540</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Supplier<String> msg(String msg, Object...args) {
-<a class="jxr_linenumber" name="L7541" href="#L7541">7541</a> <strong class="jxr_keyword">return</strong> () -> args.length == 0 ? msg : MessageFormat.format(msg, args);
+<a class="jxr_linenumber" name="L7540" href="#L7540">7540</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <a name="RestOperation" href="../../../../../org/apache/juneau/rest/client/RestOperation.html#RestOperation">RestOperation</a> op(String method, Object url, Object body) {
+<a class="jxr_linenumber" name="L7541" href="#L7541">7541</a> <strong class="jxr_keyword">return</strong> RestOperation.of(method, url, body);
<a class="jxr_linenumber" name="L7542" href="#L7542">7542</a> }
<a class="jxr_linenumber" name="L7543" href="#L7543">7543</a>
-<a class="jxr_linenumber" name="L7544" href="#L7544">7544</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <a name="RestOperation" href="../../../../../org/apache/juneau/rest/client/RestOperation.html#RestOperation">RestOperation</a> op(String method, Object url, Object body) {
-<a class="jxr_linenumber" name="L7545" href="#L7545">7545</a> <strong class="jxr_keyword">return</strong> RestOperation.of(method, url, body);
+<a class="jxr_linenumber" name="L7544" href="#L7544">7544</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Reader stringBody(String body) {
+<a class="jxr_linenumber" name="L7545" href="#L7545">7545</a> <strong class="jxr_keyword">return</strong> body == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">null</strong> : <strong class="jxr_keyword">new</strong> StringReader(s(body));
<a class="jxr_linenumber" name="L7546" href="#L7546">7546</a> }
<a class="jxr_linenumber" name="L7547" href="#L7547">7547</a>
-<a class="jxr_linenumber" name="L7548" href="#L7548">7548</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Reader stringBody(String body) {
-<a class="jxr_linenumber" name="L7549" href="#L7549">7549</a> <strong class="jxr_keyword">return</strong> body == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">null</strong> : <strong class="jxr_keyword">new</strong> StringReader(s(body));
-<a class="jxr_linenumber" name="L7550" href="#L7550">7550</a> }
-<a class="jxr_linenumber" name="L7551" href="#L7551">7551</a>
-<a class="jxr_linenumber" name="L7552" href="#L7552">7552</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L7553" href="#L7553">7553</a> <em class="jxr_javadoccomment"> * Creates a {@link RestRequest} object from the specified {@link HttpRequest} object.</em>
-<a class="jxr_linenumber" name="L7554" href="#L7554">7554</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L7555" href="#L7555">7555</a> <em class="jxr_javadoccomment"> * <p></em>
-<a class="jxr_linenumber" name="L7556" href="#L7556">7556</a> <em class="jxr_javadoccomment"> * Subclasses can override this method to provide their own specialized {@link RestRequest} objects.</em>
-<a class="jxr_linenumber" name="L7557" href="#L7557">7557</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L7558" href="#L7558">7558</a> <em class="jxr_javadoccomment"> * @param uri The target.</em>
-<a class="jxr_linenumber" name="L7559" href="#L7559">7559</a> <em class="jxr_javadoccomment"> * @param method The HTTP method (uppercase).</em>
-<a class="jxr_linenumber" name="L7560" href="#L7560">7560</a> <em class="jxr_javadoccomment"> * @param hasBody Whether this method has a request entity.</em>
-<a class="jxr_linenumber" name="L7561" href="#L7561">7561</a> <em class="jxr_javadoccomment"> * @return A new {@link RestRequest} object.</em>
-<a class="jxr_linenumber" name="L7562" href="#L7562">7562</a> <em class="jxr_javadoccomment"> * @throws RestCallException If an exception or non-200 response code occurred during the connection attempt.</em>
-<a class="jxr_linenumber" name="L7563" href="#L7563">7563</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L7564" href="#L7564">7564</a> <strong class="jxr_keyword">protected</strong> <a name="RestRequest" href="../../../../../org/apache/juneau/rest/client/RestRequest.html#RestRequest">RestRequest</a> createRequest(URI uri, String method, <strong class="jxr_keyword">boolean</strong> hasBody) <strong class="jxr_keyword">throws</strong> <a name="RestCallException" href="../../../../../org/apache/juneau/rest/client/RestCallException.html#RestCallException">RestCa [...]
-<a class="jxr_linenumber" name="L7565" href="#L7565">7565</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a name="RestRequest" href="../../../../../org/apache/juneau/rest/client/RestRequest.html#RestRequest">RestRequest</a>(<strong class="jxr_keyword">this</strong>, uri, method, hasBody);
-<a class="jxr_linenumber" name="L7566" href="#L7566">7566</a> }
-<a class="jxr_linenumber" name="L7567" href="#L7567">7567</a>
-<a class="jxr_linenumber" name="L7568" href="#L7568">7568</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L7569" href="#L7569">7569</a> <em class="jxr_javadoccomment"> * Creates a {@link RestResponse} object from the specified {@link HttpResponse} object.</em>
-<a class="jxr_linenumber" name="L7570" href="#L7570">7570</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L7571" href="#L7571">7571</a> <em class="jxr_javadoccomment"> * <p></em>
-<a class="jxr_linenumber" name="L7572" href="#L7572">7572</a> <em class="jxr_javadoccomment"> * Subclasses can override this method to provide their own specialized {@link RestResponse} objects.</em>
+<a class="jxr_linenumber" name="L7548" href="#L7548">7548</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L7549" href="#L7549">7549</a> <em class="jxr_javadoccomment"> * Creates a {@link RestRequest} object from the specified {@link HttpRequest} object.</em>
+<a class="jxr_linenumber" name="L7550" href="#L7550">7550</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L7551" href="#L7551">7551</a> <em class="jxr_javadoccomment"> * <p></em>
+<a class="jxr_linenumber" name="L7552" href="#L7552">7552</a> <em class="jxr_javadoccomment"> * Subclasses can override this method to provide their own specialized {@link RestRequest} objects.</em>
+<a class="jxr_linenumber" name="L7553" href="#L7553">7553</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L7554" href="#L7554">7554</a> <em class="jxr_javadoccomment"> * @param uri The target.</em>
+<a class="jxr_linenumber" name="L7555" href="#L7555">7555</a> <em class="jxr_javadoccomment"> * @param method The HTTP method (uppercase).</em>
+<a class="jxr_linenumber" name="L7556" href="#L7556">7556</a> <em class="jxr_javadoccomment"> * @param hasBody Whether this method has a request entity.</em>
+<a class="jxr_linenumber" name="L7557" href="#L7557">7557</a> <em class="jxr_javadoccomment"> * @return A new {@link RestRequest} object.</em>
+<a class="jxr_linenumber" name="L7558" href="#L7558">7558</a> <em class="jxr_javadoccomment"> * @throws RestCallException If an exception or non-200 response code occurred during the connection attempt.</em>
+<a class="jxr_linenumber" name="L7559" href="#L7559">7559</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L7560" href="#L7560">7560</a> <strong class="jxr_keyword">protected</strong> <a name="RestRequest" href="../../../../../org/apache/juneau/rest/client/RestRequest.html#RestRequest">RestRequest</a> createRequest(URI uri, String method, <strong class="jxr_keyword">boolean</strong> hasBody) <strong class="jxr_keyword">throws</strong> <a name="RestCallException" href="../../../../../org/apache/juneau/rest/client/RestCallException.html#RestCallException">RestCa [...]
+<a class="jxr_linenumber" name="L7561" href="#L7561">7561</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a name="RestRequest" href="../../../../../org/apache/juneau/rest/client/RestRequest.html#RestRequest">RestRequest</a>(<strong class="jxr_keyword">this</strong>, uri, method, hasBody);
+<a class="jxr_linenumber" name="L7562" href="#L7562">7562</a> }
+<a class="jxr_linenumber" name="L7563" href="#L7563">7563</a>
+<a class="jxr_linenumber" name="L7564" href="#L7564">7564</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L7565" href="#L7565">7565</a> <em class="jxr_javadoccomment"> * Creates a {@link RestResponse} object from the specified {@link HttpResponse} object.</em>
+<a class="jxr_linenumber" name="L7566" href="#L7566">7566</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L7567" href="#L7567">7567</a> <em class="jxr_javadoccomment"> * <p></em>
+<a class="jxr_linenumber" name="L7568" href="#L7568">7568</a> <em class="jxr_javadoccomment"> * Subclasses can override this method to provide their own specialized {@link RestResponse} objects.</em>
+<a class="jxr_linenumber" name="L7569" href="#L7569">7569</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L7570" href="#L7570">7570</a> <em class="jxr_javadoccomment"> * @param request The request creating this response.</em>
+<a class="jxr_linenumber" name="L7571" href="#L7571">7571</a> <em class="jxr_javadoccomment"> * @param httpResponse The response object to wrap.</em>
+<a class="jxr_linenumber" name="L7572" href="#L7572">7572</a> <em class="jxr_javadoccomment"> * @param parser The parser to use to parse the response.</em>
<a class="jxr_linenumber" name="L7573" href="#L7573">7573</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L7574" href="#L7574">7574</a> <em class="jxr_javadoccomment"> * @param request The request creating this response.</em>
-<a class="jxr_linenumber" name="L7575" href="#L7575">7575</a> <em class="jxr_javadoccomment"> * @param httpResponse The response object to wrap.</em>
-<a class="jxr_linenumber" name="L7576" href="#L7576">7576</a> <em class="jxr_javadoccomment"> * @param parser The parser to use to parse the response.</em>
-<a class="jxr_linenumber" name="L7577" href="#L7577">7577</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L7578" href="#L7578">7578</a> <em class="jxr_javadoccomment"> * @return A new {@link RestResponse} object.</em>
-<a class="jxr_linenumber" name="L7579" href="#L7579">7579</a> <em class="jxr_javadoccomment"> * @throws RestCallException If an exception or non-200 response code occurred during the connection attempt.</em>
-<a class="jxr_linenumber" name="L7580" href="#L7580">7580</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L7581" href="#L7581">7581</a> <strong class="jxr_keyword">protected</strong> <a name="RestResponse" href="../../../../../org/apache/juneau/rest/client/RestResponse.html#RestResponse">RestResponse</a> createResponse(<a name="RestRequest" href="../../../../../org/apache/juneau/rest/client/RestRequest.html#RestRequest">RestRequest</a> request, HttpResponse httpResponse, <a name="Parser" href="../../../../../org/apache/juneau/parser/Parser.html#Parser">Parser [...]
-<a class="jxr_linenumber" name="L7582" href="#L7582">7582</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a name="RestResponse" href="../../../../../org/apache/juneau/rest/client/RestResponse.html#RestResponse">RestResponse</a>(<strong class="jxr_keyword">this</strong>, request, httpResponse, parser);
-<a class="jxr_linenumber" name="L7583" href="#L7583">7583</a> }
-<a class="jxr_linenumber" name="L7584" href="#L7584">7584</a>
-<a class="jxr_linenumber" name="L7585" href="#L7585">7585</a> @Override
-<a class="jxr_linenumber" name="L7586" href="#L7586">7586</a> <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> finalize() <strong class="jxr_keyword">throws</strong> Throwable {
-<a class="jxr_linenumber" name="L7587" href="#L7587">7587</a> <strong class="jxr_keyword">if</strong> (detectLeaks && ! isClosed && ! keepHttpClientOpen) {
-<a class="jxr_linenumber" name="L7588" href="#L7588">7588</a> <strong class="jxr_keyword">var</strong> sb = <strong class="jxr_keyword">new</strong> StringBuilder(<span class="jxr_string">"WARNING: RestClient garbage collected before it was finalized."</span>); <em class="jxr_comment">// NOT DEBUG</em>
-<a class="jxr_linenumber" name="L7589" href="#L7589">7589</a> <strong class="jxr_keyword">if</strong> (nn(creationStack)) {
-<a class="jxr_linenumber" name="L7590" href="#L7590">7590</a> sb.append(<span class="jxr_string">"\nCreation Stack:"</span>); <em class="jxr_comment">// NOT DEBUG</em>
-<a class="jxr_linenumber" name="L7591" href="#L7591">7591</a> <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> e : creationStack)
-<a class="jxr_linenumber" name="L7592" href="#L7592">7592</a> sb.append(<span class="jxr_string">"\n\t"</span> + e); <em class="jxr_comment">// NOT DEBUG</em>
-<a class="jxr_linenumber" name="L7593" href="#L7593">7593</a> }
-<a class="jxr_linenumber" name="L7594" href="#L7594">7594</a> log(WARNING, sb.toString());
-<a class="jxr_linenumber" name="L7595" href="#L7595">7595</a> }
-<a class="jxr_linenumber" name="L7596" href="#L7596">7596</a> }
-<a class="jxr_linenumber" name="L7597" href="#L7597">7597</a>
-<a class="jxr_linenumber" name="L7598" href="#L7598">7598</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L7599" href="#L7599">7599</a> <em class="jxr_javadoccomment"> * Returns the part parser associated with this client.</em>
-<a class="jxr_linenumber" name="L7600" href="#L7600">7600</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L7601" href="#L7601">7601</a> <em class="jxr_javadoccomment"> * @return The part parser associated with this client.</em>
-<a class="jxr_linenumber" name="L7602" href="#L7602">7602</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L7603" href="#L7603">7603</a> <strong class="jxr_keyword">protected</strong> <a name="HttpPartParser" href="../../../../../org/apache/juneau/httppart/HttpPartParser.html#HttpPartParser">HttpPartParser</a> getPartParser() { <strong class="jxr_keyword">return</strong> partParser; }
-<a class="jxr_linenumber" name="L7604" href="#L7604">7604</a>
-<a class="jxr_linenumber" name="L7605" href="#L7605">7605</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L7606" href="#L7606">7606</a> <em class="jxr_javadoccomment"> * Returns the part parser instance of the specified type.</em>
-<a class="jxr_linenumber" name="L7607" href="#L7607">7607</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L7608" href="#L7608">7608</a> <em class="jxr_javadoccomment"> * @param c The part parser class.</em>
-<a class="jxr_linenumber" name="L7609" href="#L7609">7609</a> <em class="jxr_javadoccomment"> * @return The part parser.</em>
-<a class="jxr_linenumber" name="L7610" href="#L7610">7610</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L7611" href="#L7611">7611</a> <strong class="jxr_keyword">protected</strong> <a name="HttpPartParser" href="../../../../../org/apache/juneau/httppart/HttpPartParser.html#HttpPartParser">HttpPartParser</a> getPartParser(Class<? <strong class="jxr_keyword">extends</strong> HttpPartParser> c) {
-<a class="jxr_linenumber" name="L7612" href="#L7612">7612</a> <strong class="jxr_keyword">var</strong> x = partParsers.get(c);
-<a class="jxr_linenumber" name="L7613" href="#L7613">7613</a> <strong class="jxr_keyword">if</strong> (x == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L7614" href="#L7614">7614</a> <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="L7615" href="#L7615">7615</a> x = beanStore.createBean(c).run();
-<a class="jxr_linenumber" name="L7616" href="#L7616">7616</a> } <strong class="jxr_keyword">catch</strong> (<a name="ExecutableException" href="../../../../../org/apache/juneau/common/reflect/ExecutableException.html#ExecutableException">ExecutableException</a> e) {
-<a class="jxr_linenumber" name="L7617" href="#L7617">7617</a> <strong class="jxr_keyword">throw</strong> toRex(e);
-<a class="jxr_linenumber" name="L7618" href="#L7618">7618</a> }
-<a class="jxr_linenumber" name="L7619" href="#L7619">7619</a> partParsers.put(c, x);
-<a class="jxr_linenumber" name="L7620" href="#L7620">7620</a> }
-<a class="jxr_linenumber" name="L7621" href="#L7621">7621</a> <strong class="jxr_keyword">return</strong> x;
-<a class="jxr_linenumber" name="L7622" href="#L7622">7622</a> }
-<a class="jxr_linenumber" name="L7623" href="#L7623">7623</a>
-<a class="jxr_linenumber" name="L7624" href="#L7624">7624</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L7625" href="#L7625">7625</a> <em class="jxr_javadoccomment"> * Returns the part serializer associated with this client.</em>
-<a class="jxr_linenumber" name="L7626" href="#L7626">7626</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L7627" href="#L7627">7627</a> <em class="jxr_javadoccomment"> * @return The part serializer associated with this client.</em>
-<a class="jxr_linenumber" name="L7628" href="#L7628">7628</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L7629" href="#L7629">7629</a> <strong class="jxr_keyword">protected</strong> <a name="HttpPartSerializer" href="../../../../../org/apache/juneau/httppart/HttpPartSerializer.html#HttpPartSerializer">HttpPartSerializer</a> getPartSerializer() { <strong class="jxr_keyword">return</strong> partSerializer; }
-<a class="jxr_linenumber" name="L7630" href="#L7630">7630</a>
-<a class="jxr_linenumber" name="L7631" href="#L7631">7631</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L7632" href="#L7632">7632</a> <em class="jxr_javadoccomment"> * Returns the part serializer instance of the specified type.</em>
-<a class="jxr_linenumber" name="L7633" href="#L7633">7633</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L7634" href="#L7634">7634</a> <em class="jxr_javadoccomment"> * @param c The part serializer class.</em>
-<a class="jxr_linenumber" name="L7635" href="#L7635">7635</a> <em class="jxr_javadoccomment"> * @return The part serializer.</em>
-<a class="jxr_linenumber" name="L7636" href="#L7636">7636</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L7637" href="#L7637">7637</a> <strong class="jxr_keyword">protected</strong> <a name="HttpPartSerializer" href="../../../../../org/apache/juneau/httppart/HttpPartSerializer.html#HttpPartSerializer">HttpPartSerializer</a> getPartSerializer(Class<? <strong class="jxr_keyword">extends</strong> HttpPartSerializer> c) {
-<a class="jxr_linenumber" name="L7638" href="#L7638">7638</a> <strong class="jxr_keyword">var</strong> x = partSerializers.get(c);
-<a class="jxr_linenumber" name="L7639" href="#L7639">7639</a> <strong class="jxr_keyword">if</strong> (x == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L7640" href="#L7640">7640</a> <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="L7641" href="#L7641">7641</a> x = beanStore.createBean(c).run();
-<a class="jxr_linenumber" name="L7642" href="#L7642">7642</a> } <strong class="jxr_keyword">catch</strong> (<a name="ExecutableException" href="../../../../../org/apache/juneau/common/reflect/ExecutableException.html#ExecutableException">ExecutableException</a> e) {
-<a class="jxr_linenumber" name="L7643" href="#L7643">7643</a> <strong class="jxr_keyword">throw</strong> toRex(e);
-<a class="jxr_linenumber" name="L7644" href="#L7644">7644</a> }
-<a class="jxr_linenumber" name="L7645" href="#L7645">7645</a> partSerializers.put(c, x);
-<a class="jxr_linenumber" name="L7646" href="#L7646">7646</a> }
-<a class="jxr_linenumber" name="L7647" href="#L7647">7647</a> <strong class="jxr_keyword">return</strong> x;
-<a class="jxr_linenumber" name="L7648" href="#L7648">7648</a> }
-<a class="jxr_linenumber" name="L7649" href="#L7649">7649</a>
-<a class="jxr_linenumber" name="L7650" href="#L7650">7650</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L7651" href="#L7651">7651</a> <em class="jxr_javadoccomment"> * Gets called add the end of the constructor call to perform any post-initialization.</em>
-<a class="jxr_linenumber" name="L7652" href="#L7652">7652</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L7653" href="#L7653">7653</a> <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> init() {}
-<a class="jxr_linenumber" name="L7654" href="#L7654">7654</a>
-<a class="jxr_linenumber" name="L7655" href="#L7655">7655</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L7656" href="#L7656">7656</a> <em class="jxr_javadoccomment"> * Perform optional initialization on builder before it is used.</em>
-<a class="jxr_linenumber" name="L7657" href="#L7657">7657</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L7658" href="#L7658">7658</a> <em class="jxr_javadoccomment"> * <p></em>
-<a class="jxr_linenumber" name="L7659" href="#L7659">7659</a> <em class="jxr_javadoccomment"> * Default behavior is a no-op.</em>
-<a class="jxr_linenumber" name="L7660" href="#L7660">7660</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L7661" href="#L7661">7661</a> <em class="jxr_javadoccomment"> * @param builder The builder to initialize.</em>
-<a class="jxr_linenumber" name="L7662" href="#L7662">7662</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L7663" href="#L7663">7663</a> <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> init(RestClient.Builder builder) {}
-<a class="jxr_linenumber" name="L7664" href="#L7664">7664</a>
-<a class="jxr_linenumber" name="L7665" href="#L7665">7665</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L7666" href="#L7666">7666</a> <em class="jxr_javadoccomment"> * Returns <jk>true</jk> if empty request form-data parameter values should be ignored.</em>
-<a class="jxr_linenumber" name="L7667" href="#L7667">7667</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L7668" href="#L7668">7668</a> <em class="jxr_javadoccomment"> * @return <jk>true</jk> if empty request form-data parameter values should be ignored.</em>
-<a class="jxr_linenumber" name="L7669" href="#L7669">7669</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L7670" href="#L7670">7670</a> <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> isSkipEmptyFormData() { <strong class="jxr_keyword">return</strong> skipEmptyFormData; }
-<a class="jxr_linenumber" name="L7671" href="#L7671">7671</a>
-<a class="jxr_linenumber" name="L7672" href="#L7672">7672</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L7673" href="#L7673">7673</a> <em class="jxr_javadoccomment"> * Returns <jk>true</jk> if empty request header values should be ignored.</em>
-<a class="jxr_linenumber" name="L7674" href="#L7674">7674</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L7675" href="#L7675">7675</a> <em class="jxr_javadoccomment"> * @return <jk>true</jk> if empty request header values should be ignored.</em>
-<a class="jxr_linenumber" name="L7676" href="#L7676">7676</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L7677" href="#L7677">7677</a> <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> isSkipEmptyHeaderData() { <strong class="jxr_keyword">return</strong> skipEmptyHeaderData; }
-<a class="jxr_linenumber" name="L7678" href="#L7678">7678</a>
-<a class="jxr_linenumber" name="L7679" href="#L7679">7679</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L7680" href="#L7680">7680</a> <em class="jxr_javadoccomment"> * Returns <jk>true</jk> if empty request query parameter values should be ignored.</em>
-<a class="jxr_linenumber" name="L7681" href="#L7681">7681</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L7682" href="#L7682">7682</a> <em class="jxr_javadoccomment"> * @return <jk>true</jk> if empty request query parameter values should be ignored.</em>
-<a class="jxr_linenumber" name="L7683" href="#L7683">7683</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L7684" href="#L7684">7684</a> <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> isSkipEmptyQueryData() { <strong class="jxr_keyword">return</strong> skipEmptyQueryData; }
-<a class="jxr_linenumber" name="L7685" href="#L7685">7685</a>
-<a class="jxr_linenumber" name="L7686" href="#L7686">7686</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L7687" href="#L7687">7687</a> <em class="jxr_javadoccomment"> * Logs a message.</em>
-<a class="jxr_linenumber" name="L7688" href="#L7688">7688</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L7689" href="#L7689">7689</a> <em class="jxr_javadoccomment"> * @param level The log level.</em>
-<a class="jxr_linenumber" name="L7690" href="#L7690">7690</a> <em class="jxr_javadoccomment"> * @param msg The message with {@link MessageFormat}-style arguments.</em>
-<a class="jxr_linenumber" name="L7691" href="#L7691">7691</a> <em class="jxr_javadoccomment"> * @param args The arguments.</em>
-<a class="jxr_linenumber" name="L7692" href="#L7692">7692</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L7693" href="#L7693">7693</a> <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> log(Level level, String msg, Object...args) {
-<a class="jxr_linenumber" name="L7694" href="#L7694">7694</a> logger.log(level, msg(msg, args));
-<a class="jxr_linenumber" name="L7695" href="#L7695">7695</a> <strong class="jxr_keyword">if</strong> (logToConsole)
-<a class="jxr_linenumber" name="L7696" href="#L7696">7696</a> console.println(msg(msg, args).get());
-<a class="jxr_linenumber" name="L7697" href="#L7697">7697</a> }
-<a class="jxr_linenumber" name="L7698" href="#L7698">7698</a>
-<a class="jxr_linenumber" name="L7699" href="#L7699">7699</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L7700" href="#L7700">7700</a> <em class="jxr_javadoccomment"> * Logs a message.</em>
-<a class="jxr_linenumber" name="L7701" href="#L7701">7701</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L7702" href="#L7702">7702</a> <em class="jxr_javadoccomment"> * @param level The log level.</em>
-<a class="jxr_linenumber" name="L7703" href="#L7703">7703</a> <em class="jxr_javadoccomment"> * @param t Thrown exception. Can be <jk>null</jk>.</em>
-<a class="jxr_linenumber" name="L7704" href="#L7704">7704</a> <em class="jxr_javadoccomment"> * @param msg The message.</em>
-<a class="jxr_linenumber" name="L7705" href="#L7705">7705</a> <em class="jxr_javadoccomment"> * @param args Optional message arguments.</em>
-<a class="jxr_linenumber" name="L7706" href="#L7706">7706</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L7707" href="#L7707">7707</a> <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> log(Level level, Throwable t, String msg, Object...args) {
-<a class="jxr_linenumber" name="L7708" href="#L7708">7708</a> logger.log(level, t, msg(msg, args));
-<a class="jxr_linenumber" name="L7709" href="#L7709">7709</a> <strong class="jxr_keyword">if</strong> (logToConsole) {
-<a class="jxr_linenumber" name="L7710" href="#L7710">7710</a> console.println(msg(msg, args).get());
-<a class="jxr_linenumber" name="L7711" href="#L7711">7711</a> <strong class="jxr_keyword">if</strong> (nn(t))
-<a class="jxr_linenumber" name="L7712" href="#L7712">7712</a> t.printStackTrace(console);
-<a class="jxr_linenumber" name="L7713" href="#L7713">7713</a> }
-<a class="jxr_linenumber" name="L7714" href="#L7714">7714</a> }
-<a class="jxr_linenumber" name="L7715" href="#L7715">7715</a>
-<a class="jxr_linenumber" name="L7716" href="#L7716">7716</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L7717" href="#L7717">7717</a> <em class="jxr_javadoccomment"> * Interceptor method called immediately after the RestRequest object is created and all headers/query/form-data has been set on the request from the client.</em>
-<a class="jxr_linenumber" name="L7718" href="#L7718">7718</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L7719" href="#L7719">7719</a> <em class="jxr_javadoccomment"> * <p></em>
-<a class="jxr_linenumber" name="L7720" href="#L7720">7720</a> <em class="jxr_javadoccomment"> * Subclasses can override this method to handle any cleanup operations.</em>
+<a class="jxr_linenumber" name="L7574" href="#L7574">7574</a> <em class="jxr_javadoccomment"> * @return A new {@link RestResponse} object.</em>
+<a class="jxr_linenumber" name="L7575" href="#L7575">7575</a> <em class="jxr_javadoccomment"> * @throws RestCallException If an exception or non-200 response code occurred during the connection attempt.</em>
+<a class="jxr_linenumber" name="L7576" href="#L7576">7576</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L7577" href="#L7577">7577</a> <strong class="jxr_keyword">protected</strong> <a name="RestResponse" href="../../../../../org/apache/juneau/rest/client/RestResponse.html#RestResponse">RestResponse</a> createResponse(<a name="RestRequest" href="../../../../../org/apache/juneau/rest/client/RestRequest.html#RestRequest">RestRequest</a> request, HttpResponse httpResponse, <a name="Parser" href="../../../../../org/apache/juneau/parser/Parser.html#Parser">Parser [...]
+<a class="jxr_linenumber" name="L7578" href="#L7578">7578</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a name="RestResponse" href="../../../../../org/apache/juneau/rest/client/RestResponse.html#RestResponse">RestResponse</a>(<strong class="jxr_keyword">this</strong>, request, httpResponse, parser);
+<a class="jxr_linenumber" name="L7579" href="#L7579">7579</a> }
+<a class="jxr_linenumber" name="L7580" href="#L7580">7580</a>
+<a class="jxr_linenumber" name="L7581" href="#L7581">7581</a> @Override
+<a class="jxr_linenumber" name="L7582" href="#L7582">7582</a> <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> finalize() <strong class="jxr_keyword">throws</strong> Throwable {
+<a class="jxr_linenumber" name="L7583" href="#L7583">7583</a> <strong class="jxr_keyword">if</strong> (detectLeaks && ! isClosed && ! keepHttpClientOpen) {
+<a class="jxr_linenumber" name="L7584" href="#L7584">7584</a> <strong class="jxr_keyword">var</strong> sb = <strong class="jxr_keyword">new</strong> StringBuilder(<span class="jxr_string">"WARNING: RestClient garbage collected before it was finalized."</span>); <em class="jxr_comment">// NOT DEBUG</em>
+<a class="jxr_linenumber" name="L7585" href="#L7585">7585</a> <strong class="jxr_keyword">if</strong> (nn(creationStack)) {
+<a class="jxr_linenumber" name="L7586" href="#L7586">7586</a> sb.append(<span class="jxr_string">"\nCreation Stack:"</span>); <em class="jxr_comment">// NOT DEBUG</em>
+<a class="jxr_linenumber" name="L7587" href="#L7587">7587</a> <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> e : creationStack)
+<a class="jxr_linenumber" name="L7588" href="#L7588">7588</a> sb.append(<span class="jxr_string">"\n\t"</span> + e); <em class="jxr_comment">// NOT DEBUG</em>
+<a class="jxr_linenumber" name="L7589" href="#L7589">7589</a> }
+<a class="jxr_linenumber" name="L7590" href="#L7590">7590</a> log(WARNING, sb.toString());
+<a class="jxr_linenumber" name="L7591" href="#L7591">7591</a> }
+<a class="jxr_linenumber" name="L7592" href="#L7592">7592</a> }
+<a class="jxr_linenumber" name="L7593" href="#L7593">7593</a>
+<a class="jxr_linenumber" name="L7594" href="#L7594">7594</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L7595" href="#L7595">7595</a> <em class="jxr_javadoccomment"> * Returns the part parser associated with this client.</em>
+<a class="jxr_linenumber" name="L7596" href="#L7596">7596</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L7597" href="#L7597">7597</a> <em class="jxr_javadoccomment"> * @return The part parser associated with this client.</em>
+<a class="jxr_linenumber" name="L7598" href="#L7598">7598</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L7599" href="#L7599">7599</a> <strong class="jxr_keyword">protected</strong> <a name="HttpPartParser" href="../../../../../org/apache/juneau/httppart/HttpPartParser.html#HttpPartParser">HttpPartParser</a> getPartParser() { <strong class="jxr_keyword">return</strong> partParser; }
+<a class="jxr_linenumber" name="L7600" href="#L7600">7600</a>
+<a class="jxr_linenumber" name="L7601" href="#L7601">7601</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L7602" href="#L7602">7602</a> <em class="jxr_javadoccomment"> * Returns the part parser instance of the specified type.</em>
+<a class="jxr_linenumber" name="L7603" href="#L7603">7603</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L7604" href="#L7604">7604</a> <em class="jxr_javadoccomment"> * @param c The part parser class.</em>
+<a class="jxr_linenumber" name="L7605" href="#L7605">7605</a> <em class="jxr_javadoccomment"> * @return The part parser.</em>
+<a class="jxr_linenumber" name="L7606" href="#L7606">7606</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L7607" href="#L7607">7607</a> <strong class="jxr_keyword">protected</strong> <a name="HttpPartParser" href="../../../../../org/apache/juneau/httppart/HttpPartParser.html#HttpPartParser">HttpPartParser</a> getPartParser(Class<? <strong class="jxr_keyword">extends</strong> HttpPartParser> c) {
+<a class="jxr_linenumber" name="L7608" href="#L7608">7608</a> <strong class="jxr_keyword">var</strong> x = partParsers.get(c);
+<a class="jxr_linenumber" name="L7609" href="#L7609">7609</a> <strong class="jxr_keyword">if</strong> (x == <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="L7610" href="#L7610">7610</a> <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="L7611" href="#L7611">7611</a> x = beanStore.createBean(c).run();
+<a class="jxr_linenumber" name="L7612" href="#L7612">7612</a> } <strong class="jxr_keyword">catch</strong> (<a name="ExecutableException" href="../../../../../org/apache/juneau/common/reflect/ExecutableException.html#ExecutableException">ExecutableException</a> e) {
+<a class="jxr_linenumber" name="L7613" href="#L7613">7613</a> <strong class="jxr_keyword">throw</strong> toRex(e);
+<a class="jxr_linenumber" name="L7614" href="#L7614">7614</a> }
+<a class="jxr_linenumber" name="L7615" href="#L7615">7615</a> partParsers.put(c, x);
+<a class="jxr_linenumber" name="L7616" href="#L7616">7616</a> }
+<a class="jxr_linenumber" name="L7617" href="#L7617">7617</a> <strong class="jxr_keyword">return</strong> x;
+<a class="jxr_linenumber" name="L7618" href="#L7618">7618</a> }
+<a class="jxr_linenumber" name="L7619" href="#L7619">7619</a>
+<a class="jxr_linenumber" name="L7620" href="#L7620">7620</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L7621" href="#L7621">7621</a> <em class="jxr_javadoccomment"> * Returns the part serializer associated with this client.</em>
+<a class="jxr_linenumber" name="L7622" href="#L7622">7622</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L7623" href="#L7623">7623</a> <em class="jxr_javadoccomment"> * @return The part serializer associated with this client.</em>
+<a class="jxr_linenumber" name="L7624" href="#L7624">7624</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L7625" href="#L7625">7625</a> <strong class="jxr_keyword">protected</strong> <a name="HttpPartSerializer" href="../../../../../org/apache/juneau/httppart/HttpPartSerializer.html#HttpPartSerializer">HttpPartSerializer</a> getPartSerializer() { <strong class="jxr_keyword">return</strong> partSerializer; }
+<a class="jxr_linenumber" name="L7626" href="#L7626">7626</a>
+<a class="jxr_linenumber" name="L7627" href="#L7627">7627</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L7628" href="#L7628">7628</a> <em class="jxr_javadoccomment"> * Returns the part serializer instance of the specified type.</em>
+<a class="jxr_linenumber" name="L7629" href="#L7629">7629</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L7630" href="#L7630">7630</a> <em class="jxr_javadoccomment"> * @param c The part serializer class.</em>
+<a class="jxr_linenumber" name="L7631" href="#L7631">7631</a> <em class="jxr_javadoccomment"> * @return The part serializer.</em>
+<a class="jxr_linenumber" name="L7632" href="#L7632">7632</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L7633" href="#L7633">7633</a> <strong class="jxr_keyword">protected</strong> <a name="HttpPartSerializer" href="../../../../../org/apache/juneau/httppart/HttpPartSerializer.html#HttpPartSerializer">HttpPartSerializer</a> getPartSerializer(Class<? <strong class="jxr_keyword">extends</strong> HttpPartSerializer> c) {
+<a class="jxr_linenumber" name="L7634" href="#L7634">7634</a> <strong class="jxr_keyword">var</strong> x = partSerializers.get(c);
+<a class="jxr_linenumber" name="L7635" href="#L7635">7635</a> <strong class="jxr_keyword">if</strong> (x == <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="L7636" href="#L7636">7636</a> <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="L7637" href="#L7637">7637</a> x = beanStore.createBean(c).run();
+<a class="jxr_linenumber" name="L7638" href="#L7638">7638</a> } <strong class="jxr_keyword">catch</strong> (<a name="ExecutableException" href="../../../../../org/apache/juneau/common/reflect/ExecutableException.html#ExecutableException">ExecutableException</a> e) {
+<a class="jxr_linenumber" name="L7639" href="#L7639">7639</a> <strong class="jxr_keyword">throw</strong> toRex(e);
+<a class="jxr_linenumber" name="L7640" href="#L7640">7640</a> }
+<a class="jxr_linenumber" name="L7641" href="#L7641">7641</a> partSerializers.put(c, x);
+<a class="jxr_linenumber" name="L7642" href="#L7642">7642</a> }
+<a class="jxr_linenumber" name="L7643" href="#L7643">7643</a> <strong class="jxr_keyword">return</strong> x;
+<a class="jxr_linenumber" name="L7644" href="#L7644">7644</a> }
+<a class="jxr_linenumber" name="L7645" href="#L7645">7645</a>
+<a class="jxr_linenumber" name="L7646" href="#L7646">7646</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L7647" href="#L7647">7647</a> <em class="jxr_javadoccomment"> * Gets called add the end of the constructor call to perform any post-initialization.</em>
+<a class="jxr_linenumber" name="L7648" href="#L7648">7648</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L7649" href="#L7649">7649</a> <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> init() {}
+<a class="jxr_linenumber" name="L7650" href="#L7650">7650</a>
+<a class="jxr_linenumber" name="L7651" href="#L7651">7651</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L7652" href="#L7652">7652</a> <em class="jxr_javadoccomment"> * Perform optional initialization on builder before it is used.</em>
+<a class="jxr_linenumber" name="L7653" href="#L7653">7653</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L7654" href="#L7654">7654</a> <em class="jxr_javadoccomment"> * <p></em>
+<a class="jxr_linenumber" name="L7655" href="#L7655">7655</a> <em class="jxr_javadoccomment"> * Default behavior is a no-op.</em>
+<a class="jxr_linenumber" name="L7656" href="#L7656">7656</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L7657" href="#L7657">7657</a> <em class="jxr_javadoccomment"> * @param builder The builder to initialize.</em>
+<a class="jxr_linenumber" name="L7658" href="#L7658">7658</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L7659" href="#L7659">7659</a> <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> init(RestClient.Builder builder) {}
+<a class="jxr_linenumber" name="L7660" href="#L7660">7660</a>
+<a class="jxr_linenumber" name="L7661" href="#L7661">7661</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L7662" href="#L7662">7662</a> <em class="jxr_javadoccomment"> * Returns <jk>true</jk> if empty request form-data parameter values should be ignored.</em>
+<a class="jxr_linenumber" name="L7663" href="#L7663">7663</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L7664" href="#L7664">7664</a> <em class="jxr_javadoccomment"> * @return <jk>true</jk> if empty request form-data parameter values should be ignored.</em>
+<a class="jxr_linenumber" name="L7665" href="#L7665">7665</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L7666" href="#L7666">7666</a> <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> isSkipEmptyFormData() { <strong class="jxr_keyword">return</strong> skipEmptyFormData; }
+<a class="jxr_linenumber" name="L7667" href="#L7667">7667</a>
+<a class="jxr_linenumber" name="L7668" href="#L7668">7668</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L7669" href="#L7669">7669</a> <em class="jxr_javadoccomment"> * Returns <jk>true</jk> if empty request header values should be ignored.</em>
+<a class="jxr_linenumber" name="L7670" href="#L7670">7670</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L7671" href="#L7671">7671</a> <em class="jxr_javadoccomment"> * @return <jk>true</jk> if empty request header values should be ignored.</em>
+<a class="jxr_linenumber" name="L7672" href="#L7672">7672</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L7673" href="#L7673">7673</a> <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> isSkipEmptyHeaderData() { <strong class="jxr_keyword">return</strong> skipEmptyHeaderData; }
+<a class="jxr_linenumber" name="L7674" href="#L7674">7674</a>
+<a class="jxr_linenumber" name="L7675" href="#L7675">7675</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L7676" href="#L7676">7676</a> <em class="jxr_javadoccomment"> * Returns <jk>true</jk> if empty request query parameter values should be ignored.</em>
+<a class="jxr_linenumber" name="L7677" href="#L7677">7677</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L7678" href="#L7678">7678</a> <em class="jxr_javadoccomment"> * @return <jk>true</jk> if empty request query parameter values should be ignored.</em>
+<a class="jxr_linenumber" name="L7679" href="#L7679">7679</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L7680" href="#L7680">7680</a> <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> isSkipEmptyQueryData() { <strong class="jxr_keyword">return</strong> skipEmptyQueryData; }
+<a class="jxr_linenumber" name="L7681" href="#L7681">7681</a>
+<a class="jxr_linenumber" name="L7682" href="#L7682">7682</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L7683" href="#L7683">7683</a> <em class="jxr_javadoccomment"> * Logs a message.</em>
+<a class="jxr_linenumber" name="L7684" href="#L7684">7684</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L7685" href="#L7685">7685</a> <em class="jxr_javadoccomment"> * @param level The log level.</em>
+<a class="jxr_linenumber" name="L7686" href="#L7686">7686</a> <em class="jxr_javadoccomment"> * @param msg The message with {@link MessageFormat}-style arguments.</em>
+<a class="jxr_linenumber" name="L7687" href="#L7687">7687</a> <em class="jxr_javadoccomment"> * @param args The arguments.</em>
+<a class="jxr_linenumber" name="L7688" href="#L7688">7688</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L7689" href="#L7689">7689</a> <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> log(Level level, String msg, Object...args) {
+<a class="jxr_linenumber" name="L7690" href="#L7690">7690</a> logger.log(level, f(msg, args));
+<a class="jxr_linenumber" name="L7691" href="#L7691">7691</a> <strong class="jxr_keyword">if</strong> (logToConsole)
+<a class="jxr_linenumber" name="L7692" href="#L7692">7692</a> console.println(f(msg, args));
+<a class="jxr_linenumber" name="L7693" href="#L7693">7693</a> }
+<a class="jxr_linenumber" name="L7694" href="#L7694">7694</a>
+<a class="jxr_linenumber" name="L7695" href="#L7695">7695</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L7696" href="#L7696">7696</a> <em class="jxr_javadoccomment"> * Logs a message.</em>
+<a class="jxr_linenumber" name="L7697" href="#L7697">7697</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L7698" href="#L7698">7698</a> <em class="jxr_javadoccomment"> * @param level The log level.</em>
+<a class="jxr_linenumber" name="L7699" href="#L7699">7699</a> <em class="jxr_javadoccomment"> * @param t Thrown exception. Can be <jk>null</jk>.</em>
+<a class="jxr_linenumber" name="L7700" href="#L7700">7700</a> <em class="jxr_javadoccomment"> * @param msg The message.</em>
+<a class="jxr_linenumber" name="L7701" href="#L7701">7701</a> <em class="jxr_javadoccomment"> * @param args Optional message arguments.</em>
+<a class="jxr_linenumber" name="L7702" href="#L7702">7702</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L7703" href="#L7703">7703</a> <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> log(Level level, Throwable t, String msg, Object...args) {
+<a class="jxr_linenumber" name="L7704" href="#L7704">7704</a> logger.log(level, t, fs(msg, args));
+<a class="jxr_linenumber" name="L7705" href="#L7705">7705</a> <strong class="jxr_keyword">if</strong> (logToConsole) {
+<a class="jxr_linenumber" name="L7706" href="#L7706">7706</a> console.println(f(msg, args));
+<a class="jxr_linenumber" name="L7707" href="#L7707">7707</a> <strong class="jxr_keyword">if</strong> (nn(t))
+<a class="jxr_linenumber" name="L7708" href="#L7708">7708</a> t.printStackTrace(console);
+<a class="jxr_linenumber" name="L7709" href="#L7709">7709</a> }
+<a class="jxr_linenumber" name="L7710" href="#L7710">7710</a> }
+<a class="jxr_linenumber" name="L7711" href="#L7711">7711</a>
+<a class="jxr_linenumber" name="L7712" href="#L7712">7712</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L7713" href="#L7713">7713</a> <em class="jxr_javadoccomment"> * Interceptor method called immediately after the RestRequest object is created and all headers/query/form-data has been set on the request from the client.</em>
+<a class="jxr_linenumber" name="L7714" href="#L7714">7714</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L7715" href="#L7715">7715</a> <em class="jxr_javadoccomment"> * <p></em>
+<a class="jxr_linenumber" name="L7716" href="#L7716">7716</a> <em class="jxr_javadoccomment"> * Subclasses can override this method to handle any cleanup operations.</em>
+<a class="jxr_linenumber" name="L7717" href="#L7717">7717</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L7718" href="#L7718">7718</a> <em class="jxr_javadoccomment"> * <h5 class='section'>See Also:</h5><ul></em>
+<a class="jxr_linenumber" name="L7719" href="#L7719">7719</a> <em class="jxr_javadoccomment"> * <li class='jm'>{@link Builder#interceptors(Object...)}</em>
+<a class="jxr_linenumber" name="L7720" href="#L7720">7720</a> <em class="jxr_javadoccomment"> * </ul></em>
<a class="jxr_linenumber" name="L7721" href="#L7721">7721</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L7722" href="#L7722">7722</a> <em class="jxr_javadoccomment"> * <h5 class='section'>See Also:</h5><ul></em>
-<a class="jxr_linenumber" name="L7723" href="#L7723">7723</a> <em class="jxr_javadoccomment"> * <li class='jm'>{@link Builder#interceptors(Object...)}</em>
-<a class="jxr_linenumber" name="L7724" href="#L7724">7724</a> <em class="jxr_javadoccomment"> * </ul></em>
-<a class="jxr_linenumber" name="L7725" href="#L7725">7725</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L7726" href="#L7726">7726</a> <em class="jxr_javadoccomment"> * @param req The HTTP request.</em>
-<a class="jxr_linenumber" name="L7727" href="#L7727">7727</a> <em class="jxr_javadoccomment"> * @param res The HTTP response.</em>
-<a class="jxr_linenumber" name="L7728" href="#L7728">7728</a> <em class="jxr_javadoccomment"> * @throws RestCallException If any of the interceptors threw an exception.</em>
-<a class="jxr_linenumber" name="L7729" href="#L7729">7729</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L7730" href="#L7730">7730</a> <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> onCallClose(<a name="RestRequest" href="../../../../../org/apache/juneau/rest/client/RestRequest.html#RestRequest">RestRequest</a> req, <a name="RestResponse" href="../../../../../org/apache/juneau/rest/client/RestResponse.html#RestResponse">RestResponse</a> res) <strong class="jxr_keyword">throws</strong> <a name="RestCallException" href [...]
-<a class="jxr_linenumber" name="L7731" href="#L7731">7731</a> <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="L7732" href="#L7732">7732</a> <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> rci : interceptors)
-<a class="jxr_linenumber" name="L7733" href="#L7733">7733</a> rci.onClose(req, res);
-<a class="jxr_linenumber" name="L7734" href="#L7734">7734</a> } <strong class="jxr_keyword">catch</strong> (RuntimeException | <a name="RestCallException" href="../../../../../org/apache/juneau/rest/client/RestCallException.html#RestCallException">RestCallException</a> e) {
-<a class="jxr_linenumber" name="L7735" href="#L7735">7735</a> <strong class="jxr_keyword">throw</strong> e;
-<a class="jxr_linenumber" name="L7736" href="#L7736">7736</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
-<a class="jxr_linenumber" name="L7737" href="#L7737">7737</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a name="RestCallException" href="../../../../../org/apache/juneau/rest/client/RestCallException.html#RestCallException">RestCallException</a>(res, e, <span class="jxr_string">"Interceptor threw an exception on close."</span>);
-<a class="jxr_linenumber" name="L7738" href="#L7738">7738</a> }
-<a class="jxr_linenumber" name="L7739" href="#L7739">7739</a> }
-<a class="jxr_linenumber" name="L7740" href="#L7740">7740</a>
-<a class="jxr_linenumber" name="L7741" href="#L7741">7741</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L7742" href="#L7742">7742</a> <em class="jxr_javadoccomment"> * Interceptor method called immediately after an HTTP response has been received.</em>
-<a class="jxr_linenumber" name="L7743" href="#L7743">7743</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L7744" href="#L7744">7744</a> <em class="jxr_javadoccomment"> * <p></em>
-<a class="jxr_linenumber" name="L7745" href="#L7745">7745</a> <em class="jxr_javadoccomment"> * Subclasses can override this method to intercept the response and perform special modifications.</em>
+<a class="jxr_linenumber" name="L7722" href="#L7722">7722</a> <em class="jxr_javadoccomment"> * @param req The HTTP request.</em>
+<a class="jxr_linenumber" name="L7723" href="#L7723">7723</a> <em class="jxr_javadoccomment"> * @param res The HTTP response.</em>
+<a class="jxr_linenumber" name="L7724" href="#L7724">7724</a> <em class="jxr_javadoccomment"> * @throws RestCallException If any of the interceptors threw an exception.</em>
+<a class="jxr_linenumber" name="L7725" href="#L7725">7725</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L7726" href="#L7726">7726</a> <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> onCallClose(<a name="RestRequest" href="../../../../../org/apache/juneau/rest/client/RestRequest.html#RestRequest">RestRequest</a> req, <a name="RestResponse" href="../../../../../org/apache/juneau/rest/client/RestResponse.html#RestResponse">RestResponse</a> res) <strong class="jxr_keyword">throws</strong> <a name="RestCallException" href [...]
+<a class="jxr_linenumber" name="L7727" href="#L7727">7727</a> <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="L7728" href="#L7728">7728</a> <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> rci : interceptors)
+<a class="jxr_linenumber" name="L7729" href="#L7729">7729</a> rci.onClose(req, res);
+<a class="jxr_linenumber" name="L7730" href="#L7730">7730</a> } <strong class="jxr_keyword">catch</strong> (RuntimeException | <a name="RestCallException" href="../../../../../org/apache/juneau/rest/client/RestCallException.html#RestCallException">RestCallException</a> e) {
+<a class="jxr_linenumber" name="L7731" href="#L7731">7731</a> <strong class="jxr_keyword">throw</strong> e;
+<a class="jxr_linenumber" name="L7732" href="#L7732">7732</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
+<a class="jxr_linenumber" name="L7733" href="#L7733">7733</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a name="RestCallException" href="../../../../../org/apache/juneau/rest/client/RestCallException.html#RestCallException">RestCallException</a>(res, e, <span class="jxr_string">"Interceptor threw an exception on close."</span>);
+<a class="jxr_linenumber" name="L7734" href="#L7734">7734</a> }
+<a class="jxr_linenumber" name="L7735" href="#L7735">7735</a> }
+<a class="jxr_linenumber" name="L7736" href="#L7736">7736</a>
+<a class="jxr_linenumber" name="L7737" href="#L7737">7737</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L7738" href="#L7738">7738</a> <em class="jxr_javadoccomment"> * Interceptor method called immediately after an HTTP response has been received.</em>
+<a class="jxr_linenumber" name="L7739" href="#L7739">7739</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L7740" href="#L7740">7740</a> <em class="jxr_javadoccomment"> * <p></em>
+<a class="jxr_linenumber" name="L7741" href="#L7741">7741</a> <em class="jxr_javadoccomment"> * Subclasses can override this method to intercept the response and perform special modifications.</em>
+<a class="jxr_linenumber" name="L7742" href="#L7742">7742</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L7743" href="#L7743">7743</a> <em class="jxr_javadoccomment"> * <h5 class='section'>See Also:</h5><ul></em>
+<a class="jxr_linenumber" name="L7744" href="#L7744">7744</a> <em class="jxr_javadoccomment"> * <li class='jm'>{@link Builder#interceptors(Object...)}</em>
+<a class="jxr_linenumber" name="L7745" href="#L7745">7745</a> <em class="jxr_javadoccomment"> * </ul></em>
<a class="jxr_linenumber" name="L7746" href="#L7746">7746</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L7747" href="#L7747">7747</a> <em class="jxr_javadoccomment"> * <h5 class='section'>See Also:</h5><ul></em>
-<a class="jxr_linenumber" name="L7748" href="#L7748">7748</a> <em class="jxr_javadoccomment"> * <li class='jm'>{@link Builder#interceptors(Object...)}</em>
-<a class="jxr_linenumber" name="L7749" href="#L7749">7749</a> <em class="jxr_javadoccomment"> * </ul></em>
-<a class="jxr_linenumber" name="L7750" href="#L7750">7750</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L7751" href="#L7751">7751</a> <em class="jxr_javadoccomment"> * @param req The HTTP request.</em>
-<a class="jxr_linenumber" name="L7752" href="#L7752">7752</a> <em class="jxr_javadoccomment"> * @param res The HTTP response.</em>
-<a class="jxr_linenumber" name="L7753" href="#L7753">7753</a> <em class="jxr_javadoccomment"> * @throws RestCallException If any of the interceptors threw an exception.</em>
-<a class="jxr_linenumber" name="L7754" href="#L7754">7754</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L7755" href="#L7755">7755</a> <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> onCallConnect(<a name="RestRequest" href="../../../../../org/apache/juneau/rest/client/RestRequest.html#RestRequest">RestRequest</a> req, <a name="RestResponse" href="../../../../../org/apache/juneau/rest/client/RestResponse.html#RestResponse">RestResponse</a> res) <strong class="jxr_keyword">throws</strong> <a name="RestCallException" hr [...]
-<a class="jxr_linenumber" name="L7756" href="#L7756">7756</a> <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="L7757" href="#L7757">7757</a> <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> rci : interceptors)
-<a class="jxr_linenumber" name="L7758" href="#L7758">7758</a> rci.onConnect(req, res);
-<a class="jxr_linenumber" name="L7759" href="#L7759">7759</a> } <strong class="jxr_keyword">catch</strong> (RuntimeException | <a name="RestCallException" href="../../../../../org/apache/juneau/rest/client/RestCallException.html#RestCallException">RestCallException</a> e) {
-<a class="jxr_linenumber" name="L7760" href="#L7760">7760</a> <strong class="jxr_keyword">throw</strong> e;
-<a class="jxr_linenumber" name="L7761" href="#L7761">7761</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
-<a class="jxr_linenumber" name="L7762" href="#L7762">7762</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a name="RestCallException" href="../../../../../org/apache/juneau/rest/client/RestCallException.html#RestCallException">RestCallException</a>(res, e, <span class="jxr_string">"Interceptor threw an exception on connect."</span>);
-<a class="jxr_linenumber" name="L7763" href="#L7763">7763</a> }
-<a class="jxr_linenumber" name="L7764" href="#L7764">7764</a> }
-<a class="jxr_linenumber" name="L7765" href="#L7765">7765</a>
-<a class="jxr_linenumber" name="L7766" href="#L7766">7766</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L7767" href="#L7767">7767</a> <em class="jxr_javadoccomment"> * Interceptor method called immediately after the RestRequest object is created and all headers/query/form-data has been copied from the client.</em>
-<a class="jxr_linenumber" name="L7768" href="#L7768">7768</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L7769" href="#L7769">7769</a> <em class="jxr_javadoccomment"> * <p></em>
-<a class="jxr_linenumber" name="L7770" href="#L7770">7770</a> <em class="jxr_javadoccomment"> * Subclasses can override this method to intercept the request and perform special modifications.</em>
+<a class="jxr_linenumber" name="L7747" href="#L7747">7747</a> <em class="jxr_javadoccomment"> * @param req The HTTP request.</em>
+<a class="jxr_linenumber" name="L7748" href="#L7748">7748</a> <em class="jxr_javadoccomment"> * @param res The HTTP response.</em>
+<a class="jxr_linenumber" name="L7749" href="#L7749">7749</a> <em class="jxr_javadoccomment"> * @throws RestCallException If any of the interceptors threw an exception.</em>
+<a class="jxr_linenumber" name="L7750" href="#L7750">7750</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L7751" href="#L7751">7751</a> <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> onCallConnect(<a name="RestRequest" href="../../../../../org/apache/juneau/rest/client/RestRequest.html#RestRequest">RestRequest</a> req, <a name="RestResponse" href="../../../../../org/apache/juneau/rest/client/RestResponse.html#RestResponse">RestResponse</a> res) <strong class="jxr_keyword">throws</strong> <a name="RestCallException" hr [...]
+<a class="jxr_linenumber" name="L7752" href="#L7752">7752</a> <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="L7753" href="#L7753">7753</a> <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> rci : interceptors)
+<a class="jxr_linenumber" name="L7754" href="#L7754">7754</a> rci.onConnect(req, res);
+<a class="jxr_linenumber" name="L7755" href="#L7755">7755</a> } <strong class="jxr_keyword">catch</strong> (RuntimeException | <a name="RestCallException" href="../../../../../org/apache/juneau/rest/client/RestCallException.html#RestCallException">RestCallException</a> e) {
+<a class="jxr_linenumber" name="L7756" href="#L7756">7756</a> <strong class="jxr_keyword">throw</strong> e;
+<a class="jxr_linenumber" name="L7757" href="#L7757">7757</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
+<a class="jxr_linenumber" name="L7758" href="#L7758">7758</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a name="RestCallException" href="../../../../../org/apache/juneau/rest/client/RestCallException.html#RestCallException">RestCallException</a>(res, e, <span class="jxr_string">"Interceptor threw an exception on connect."</span>);
+<a class="jxr_linenumber" name="L7759" href="#L7759">7759</a> }
+<a class="jxr_linenumber" name="L7760" href="#L7760">7760</a> }
+<a class="jxr_linenumber" name="L7761" href="#L7761">7761</a>
+<a class="jxr_linenumber" name="L7762" href="#L7762">7762</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L7763" href="#L7763">7763</a> <em class="jxr_javadoccomment"> * Interceptor method called immediately after the RestRequest object is created and all headers/query/form-data has been copied from the client.</em>
+<a class="jxr_linenumber" name="L7764" href="#L7764">7764</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L7765" href="#L7765">7765</a> <em class="jxr_javadoccomment"> * <p></em>
+<a class="jxr_linenumber" name="L7766" href="#L7766">7766</a> <em class="jxr_javadoccomment"> * Subclasses can override this method to intercept the request and perform special modifications.</em>
+<a class="jxr_linenumber" name="L7767" href="#L7767">7767</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L7768" href="#L7768">7768</a> <em class="jxr_javadoccomment"> * <h5 class='section'>See Also:</h5><ul></em>
+<a class="jxr_linenumber" name="L7769" href="#L7769">7769</a> <em class="jxr_javadoccomment"> * <li class='jm'>{@link Builder#interceptors(Object...)}</em>
+<a class="jxr_linenumber" name="L7770" href="#L7770">7770</a> <em class="jxr_javadoccomment"> * </ul></em>
<a class="jxr_linenumber" name="L7771" href="#L7771">7771</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L7772" href="#L7772">7772</a> <em class="jxr_javadoccomment"> * <h5 class='section'>See Also:</h5><ul></em>
-<a class="jxr_linenumber" name="L7773" href="#L7773">7773</a> <em class="jxr_javadoccomment"> * <li class='jm'>{@link Builder#interceptors(Object...)}</em>
-<a class="jxr_linenumber" name="L7774" href="#L7774">7774</a> <em class="jxr_javadoccomment"> * </ul></em>
-<a class="jxr_linenumber" name="L7775" href="#L7775">7775</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L7776" href="#L7776">7776</a> <em class="jxr_javadoccomment"> * @param req The HTTP request.</em>
-<a class="jxr_linenumber" name="L7777" href="#L7777">7777</a> <em class="jxr_javadoccomment"> * @throws RestCallException If any of the interceptors threw an exception.</em>
-<a class="jxr_linenumber" name="L7778" href="#L7778">7778</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L7779" href="#L7779">7779</a> <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> onCallInit(<a name="RestRequest" href="../../../../../org/apache/juneau/rest/client/RestRequest.html#RestRequest">RestRequest</a> req) <strong class="jxr_keyword">throws</strong> <a name="RestCallException" href="../../../../../org/apache/juneau/rest/client/RestCallException.html#RestCallException">RestCallException</a> {
-<a class="jxr_linenumber" name="L7780" href="#L7780">7780</a> <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="L7781" href="#L7781">7781</a> <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> rci : interceptors)
-<a class="jxr_linenumber" name="L7782" href="#L7782">7782</a> rci.onInit(req);
-<a class="jxr_linenumber" name="L7783" href="#L7783">7783</a> } <strong class="jxr_keyword">catch</strong> (RuntimeException | <a name="RestCallException" href="../../../../../org/apache/juneau/rest/client/RestCallException.html#RestCallException">RestCallException</a> e) {
-<a class="jxr_linenumber" name="L7784" href="#L7784">7784</a> <strong class="jxr_keyword">throw</strong> e;
-<a class="jxr_linenumber" name="L7785" href="#L7785">7785</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
-<a class="jxr_linenumber" name="L7786" href="#L7786">7786</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a name="RestCallException" href="../../../../../org/apache/juneau/rest/client/RestCallException.html#RestCallException">RestCallException</a>(<strong class="jxr_keyword">null</strong>, e, <span class="jxr_string">"Interceptor threw an exception on init."</span>);
-<a class="jxr_linenumber" name="L7787" href="#L7787">7787</a> }
-<a class="jxr_linenumber" name="L7788" href="#L7788">7788</a> }
-<a class="jxr_linenumber" name="L7789" href="#L7789">7789</a>
-<a class="jxr_linenumber" name="L7790" href="#L7790">7790</a> @Override <em class="jxr_comment">/* Overridden from Context */</em>
-<a class="jxr_linenumber" name="L7791" href="#L7791">7791</a> <strong class="jxr_keyword">protected</strong> <a name="JsonMap" href="../../../../../org/apache/juneau/collections/JsonMap.html#JsonMap">JsonMap</a> properties() {
-<a class="jxr_linenumber" name="L7792" href="#L7792">7792</a> <em class="jxr_comment">// @formatter:off</em>
-<a class="jxr_linenumber" name="L7793" href="#L7793">7793</a> <strong class="jxr_keyword">return</strong> filteredMap()
-<a class="jxr_linenumber" name="L7794" href="#L7794">7794</a> .append(<span class="jxr_string">"errorCodes"</span>, errorCodes)
-<a class="jxr_linenumber" name="L7795" href="#L7795">7795</a> .append(<span class="jxr_string">"executorService"</span>, executorService)
-<a class="jxr_linenumber" name="L7796" href="#L7796">7796</a> .append(<span class="jxr_string">"executorServiceShutdownOnClose"</span>, executorServiceShutdownOnClose)
-<a class="jxr_linenumber" name="L7797" href="#L7797">7797</a> .append(<span class="jxr_string">"headerData"</span>, headerData)
-<a class="jxr_linenumber" name="L7798" href="#L7798">7798</a> .append(<span class="jxr_string">"interceptors"</span>, interceptors)
-<a class="jxr_linenumber" name="L7799" href="#L7799">7799</a> .append(<span class="jxr_string">"keepHttpClientOpen"</span>, keepHttpClientOpen)
-<a class="jxr_linenumber" name="L7800" href="#L7800">7800</a> .append(<span class="jxr_string">"partParser"</span>, partParser)
-<a class="jxr_linenumber" name="L7801" href="#L7801">7801</a> .append(<span class="jxr_string">"partSerializer"</span>, partSerializer)
-<a class="jxr_linenumber" name="L7802" href="#L7802">7802</a> .append(<span class="jxr_string">"queryData"</span>, queryData)
-<a class="jxr_linenumber" name="L7803" href="#L7803">7803</a> .append(<span class="jxr_string">"rootUrl"</span>, rootUrl);
-<a class="jxr_linenumber" name="L7804" href="#L7804">7804</a> <em class="jxr_comment">// @formatter:on</em>
-<a class="jxr_linenumber" name="L7805" href="#L7805">7805</a> }
-<a class="jxr_linenumber" name="L7806" href="#L7806">7806</a>
-<a class="jxr_linenumber" name="L7807" href="#L7807">7807</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L7808" href="#L7808">7808</a> <em class="jxr_javadoccomment"> * Perform an arbitrary request against the specified URI.</em>
+<a class="jxr_linenumber" name="L7772" href="#L7772">7772</a> <em class="jxr_javadoccomment"> * @param req The HTTP request.</em>
+<a class="jxr_linenumber" name="L7773" href="#L7773">7773</a> <em class="jxr_javadoccomment"> * @throws RestCallException If any of the interceptors threw an exception.</em>
+<a class="jxr_linenumber" name="L7774" href="#L7774">7774</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L7775" href="#L7775">7775</a> <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> onCallInit(<a name="RestRequest" href="../../../../../org/apache/juneau/rest/client/RestRequest.html#RestRequest">RestRequest</a> req) <strong class="jxr_keyword">throws</strong> <a name="RestCallException" href="../../../../../org/apache/juneau/rest/client/RestCallException.html#RestCallException">RestCallException</a> {
+<a class="jxr_linenumber" name="L7776" href="#L7776">7776</a> <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="L7777" href="#L7777">7777</a> <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> rci : interceptors)
+<a class="jxr_linenumber" name="L7778" href="#L7778">7778</a> rci.onInit(req);
+<a class="jxr_linenumber" name="L7779" href="#L7779">7779</a> } <strong class="jxr_keyword">catch</strong> (RuntimeException | <a name="RestCallException" href="../../../../../org/apache/juneau/rest/client/RestCallException.html#RestCallException">RestCallException</a> e) {
+<a class="jxr_linenumber" name="L7780" href="#L7780">7780</a> <strong class="jxr_keyword">throw</strong> e;
+<a class="jxr_linenumber" name="L7781" href="#L7781">7781</a> } <strong class="jxr_keyword">catch</strong> (Exception e) {
+<a class="jxr_linenumber" name="L7782" href="#L7782">7782</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a name="RestCallException" href="../../../../../org/apache/juneau/rest/client/RestCallException.html#RestCallException">RestCallException</a>(<strong class="jxr_keyword">null</strong>, e, <span class="jxr_string">"Interceptor threw an exception on init."</span>);
+<a class="jxr_linenumber" name="L7783" href="#L7783">7783</a> }
+<a class="jxr_linenumber" name="L7784" href="#L7784">7784</a> }
+<a class="jxr_linenumber" name="L7785" href="#L7785">7785</a>
+<a class="jxr_linenumber" name="L7786" href="#L7786">7786</a> @Override <em class="jxr_comment">/* Overridden from Context */</em>
+<a class="jxr_linenumber" name="L7787" href="#L7787">7787</a> <strong class="jxr_keyword">protected</strong> <a name="JsonMap" href="../../../../../org/apache/juneau/collections/JsonMap.html#JsonMap">JsonMap</a> properties() {
+<a class="jxr_linenumber" name="L7788" href="#L7788">7788</a> <em class="jxr_comment">// @formatter:off</em>
+<a class="jxr_linenumber" name="L7789" href="#L7789">7789</a> <strong class="jxr_keyword">return</strong> filteredMap()
+<a class="jxr_linenumber" name="L7790" href="#L7790">7790</a> .append(<span class="jxr_string">"errorCodes"</span>, errorCodes)
+<a class="jxr_linenumber" name="L7791" href="#L7791">7791</a> .append(<span class="jxr_string">"executorService"</span>, executorService)
+<a class="jxr_linenumber" name="L7792" href="#L7792">7792</a> .append(<span class="jxr_string">"executorServiceShutdownOnClose"</span>, executorServiceShutdownOnClose)
+<a class="jxr_linenumber" name="L7793" href="#L7793">7793</a> .append(<span class="jxr_string">"headerData"</span>, headerData)
+<a class="jxr_linenumber" name="L7794" href="#L7794">7794</a> .append(<span class="jxr_string">"interceptors"</span>, interceptors)
+<a class="jxr_linenumber" name="L7795" href="#L7795">7795</a> .append(<span class="jxr_string">"keepHttpClientOpen"</span>, keepHttpClientOpen)
+<a class="jxr_linenumber" name="L7796" href="#L7796">7796</a> .append(<span class="jxr_string">"partParser"</span>, partParser)
+<a class="jxr_linenumber" name="L7797" href="#L7797">7797</a> .append(<span class="jxr_string">"partSerializer"</span>, partSerializer)
+<a class="jxr_linenumber" name="L7798" href="#L7798">7798</a> .append(<span class="jxr_string">"queryData"</span>, queryData)
+<a class="jxr_linenumber" name="L7799" href="#L7799">7799</a> .append(<span class="jxr_string">"rootUrl"</span>, rootUrl);
+<a class="jxr_linenumber" name="L7800" href="#L7800">7800</a> <em class="jxr_comment">// @formatter:on</em>
+<a class="jxr_linenumber" name="L7801" href="#L7801">7801</a> }
+<a class="jxr_linenumber" name="L7802" href="#L7802">7802</a>
+<a class="jxr_linenumber" name="L7803" href="#L7803">7803</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L7804" href="#L7804">7804</a> <em class="jxr_javadoccomment"> * Perform an arbitrary request against the specified URI.</em>
+<a class="jxr_linenumber" name="L7805" href="#L7805">7805</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L7806" href="#L7806">7806</a> <em class="jxr_javadoccomment"> * <p></em>
+<a class="jxr_linenumber" name="L7807" href="#L7807">7807</a> <em class="jxr_javadoccomment"> * All requests feed through this method so it can be used to intercept request creations and make modifications</em>
+<a class="jxr_linenumber" name="L7808" href="#L7808">7808</a> <em class="jxr_javadoccomment"> * (such as add headers).</em>
<a class="jxr_linenumber" name="L7809" href="#L7809">7809</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L7810" href="#L7810">7810</a> <em class="jxr_javadoccomment"> * <p></em>
-<a class="jxr_linenumber" name="L7811" href="#L7811">7811</a> <em class="jxr_javadoccomment"> * All requests feed through this method so it can be used to intercept request creations and make modifications</em>
-<a class="jxr_linenumber" name="L7812" href="#L7812">7812</a> <em class="jxr_javadoccomment"> * (such as add headers).</em>
-<a class="jxr_linenumber" name="L7813" href="#L7813">7813</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L7814" href="#L7814">7814</a> <em class="jxr_javadoccomment"> * @param op The operation that identifies the HTTP method, URL, and optional payload.</em>
-<a class="jxr_linenumber" name="L7815" href="#L7815">7815</a> <em class="jxr_javadoccomment"> * @return</em>
-<a class="jxr_linenumber" name="L7816" href="#L7816">7816</a> <em class="jxr_javadoccomment"> * A {@link RestRequest} object that can be further tailored before executing the request and getting the response</em>
-<a class="jxr_linenumber" name="L7817" href="#L7817">7817</a> <em class="jxr_javadoccomment"> * as a parsed object.</em>
-<a class="jxr_linenumber" name="L7818" href="#L7818">7818</a> <em class="jxr_javadoccomment"> * @throws RestCallException If any authentication errors occurred.</em>
-<a class="jxr_linenumber" name="L7819" href="#L7819">7819</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L7820" href="#L7820">7820</a> <strong class="jxr_keyword">protected</strong> <a name="RestRequest" href="../../../../../org/apache/juneau/rest/client/RestRequest.html#RestRequest">RestRequest</a> request(<a name="RestOperation" href="../../../../../org/apache/juneau/rest/client/RestOperation.html#RestOperation">RestOperation</a> op) <strong class="jxr_keyword">throws</strong> <a name="RestCallException" href="../../../../../org/apache/juneau/rest/client/R [...]
-<a class="jxr_linenumber" name="L7821" href="#L7821">7821</a> <strong class="jxr_keyword">if</strong> (isClosed) {
-<a class="jxr_linenumber" name="L7822" href="#L7822">7822</a> <strong class="jxr_keyword">var</strong> e2 = (Exception)<strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L7823" href="#L7823">7823</a> <strong class="jxr_keyword">if</strong> (nn(closedStack)) {
-<a class="jxr_linenumber" name="L7824" href="#L7824">7824</a> e2 = <strong class="jxr_keyword">new</strong> Exception(<span class="jxr_string">"Creation stack:"</span>);
-<a class="jxr_linenumber" name="L7825" href="#L7825">7825</a> e2.setStackTrace(closedStack);
-<a class="jxr_linenumber" name="L7826" href="#L7826">7826</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a name="RestCallException" href="../../../../../org/apache/juneau/rest/client/RestCallException.html#RestCallException">RestCallException</a>(<strong class="jxr_keyword">null</strong>, e2, <span class="jxr_string">"RestClient.close() has already been called. This client cannot be reused."</span>);
-<a class="jxr_linenumber" name="L7827" href="#L7827">7827</a> }
-<a class="jxr_linenumber" name="L7828" href="#L7828">7828</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a name="RestCallException" href="../../../../../org/apache/juneau/rest/client/RestCallException.html#RestCallException">RestCallException</a>(<strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>,
-<a class="jxr_linenumber" name="L7829" href="#L7829">7829</a> <span class="jxr_string">"RestClient.close() has already been called. This client cannot be reused. Closed location stack trace can be displayed by setting the system property 'org.apache.juneau.rest.client2.RestClient.trackCreation' to true."</span>);
-<a class="jxr_linenumber" name="L7830" href="#L7830">7830</a> }
+<a class="jxr_linenumber" name="L7810" href="#L7810">7810</a> <em class="jxr_javadoccomment"> * @param op The operation that identifies the HTTP method, URL, and optional payload.</em>
+<a class="jxr_linenumber" name="L7811" href="#L7811">7811</a> <em class="jxr_javadoccomment"> * @return</em>
+<a class="jxr_linenumber" name="L7812" href="#L7812">7812</a> <em class="jxr_javadoccomment"> * A {@link RestRequest} object that can be further tailored before executing the request and getting the response</em>
+<a class="jxr_linenumber" name="L7813" href="#L7813">7813</a> <em class="jxr_javadoccomment"> * as a parsed object.</em>
+<a class="jxr_linenumber" name="L7814" href="#L7814">7814</a> <em class="jxr_javadoccomment"> * @throws RestCallException If any authentication errors occurred.</em>
+<a class="jxr_linenumber" name="L7815" href="#L7815">7815</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L7816" href="#L7816">7816</a> <strong class="jxr_keyword">protected</strong> <a name="RestRequest" href="../../../../../org/apache/juneau/rest/client/RestRequest.html#RestRequest">RestRequest</a> request(<a name="RestOperation" href="../../../../../org/apache/juneau/rest/client/RestOperation.html#RestOperation">RestOperation</a> op) <strong class="jxr_keyword">throws</strong> <a name="RestCallException" href="../../../../../org/apache/juneau/rest/client/R [...]
+<a class="jxr_linenumber" name="L7817" href="#L7817">7817</a> <strong class="jxr_keyword">if</strong> (isClosed) {
+<a class="jxr_linenumber" name="L7818" href="#L7818">7818</a> <strong class="jxr_keyword">var</strong> e2 = (Exception)<strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L7819" href="#L7819">7819</a> <strong class="jxr_keyword">if</strong> (nn(closedStack)) {
+<a class="jxr_linenumber" name="L7820" href="#L7820">7820</a> e2 = <strong class="jxr_keyword">new</strong> Exception(<span class="jxr_string">"Creation stack:"</span>);
+<a class="jxr_linenumber" name="L7821" href="#L7821">7821</a> e2.setStackTrace(closedStack);
+<a class="jxr_linenumber" name="L7822" href="#L7822">7822</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a name="RestCallException" href="../../../../../org/apache/juneau/rest/client/RestCallException.html#RestCallException">RestCallException</a>(<strong class="jxr_keyword">null</strong>, e2, <span class="jxr_string">"RestClient.close() has already been called. This client cannot be reused."</span>);
+<a class="jxr_linenumber" name="L7823" href="#L7823">7823</a> }
+<a class="jxr_linenumber" name="L7824" href="#L7824">7824</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a name="RestCallException" href="../../../../../org/apache/juneau/rest/client/RestCallException.html#RestCallException">RestCallException</a>(<strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>,
+<a class="jxr_linenumber" name="L7825" href="#L7825">7825</a> <span class="jxr_string">"RestClient.close() has already been called. This client cannot be reused. Closed location stack trace can be displayed by setting the system property 'org.apache.juneau.rest.client2.RestClient.trackCreation' to true."</span>);
+<a class="jxr_linenumber" name="L7826" href="#L7826">7826</a> }
+<a class="jxr_linenumber" name="L7827" href="#L7827">7827</a>
+<a class="jxr_linenumber" name="L7828" href="#L7828">7828</a> <strong class="jxr_keyword">var</strong> req = createRequest(toURI(op.getUri(), rootUrl), op.getMethod(), op.hasContent());
+<a class="jxr_linenumber" name="L7829" href="#L7829">7829</a>
+<a class="jxr_linenumber" name="L7830" href="#L7830">7830</a> onCallInit(req);
<a class="jxr_linenumber" name="L7831" href="#L7831">7831</a>
-<a class="jxr_linenumber" name="L7832" href="#L7832">7832</a> <strong class="jxr_keyword">var</strong> req = createRequest(toURI(op.getUri(), rootUrl), op.getMethod(), op.hasContent());
+<a class="jxr_linenumber" name="L7832" href="#L7832">7832</a> req.content(op.getContent());
<a class="jxr_linenumber" name="L7833" href="#L7833">7833</a>
-<a class="jxr_linenumber" name="L7834" href="#L7834">7834</a> onCallInit(req);
-<a class="jxr_linenumber" name="L7835" href="#L7835">7835</a>
-<a class="jxr_linenumber" name="L7836" href="#L7836">7836</a> req.content(op.getContent());
-<a class="jxr_linenumber" name="L7837" href="#L7837">7837</a>
-<a class="jxr_linenumber" name="L7838" href="#L7838">7838</a> <strong class="jxr_keyword">return</strong> req;
-<a class="jxr_linenumber" name="L7839" href="#L7839">7839</a> }
-<a class="jxr_linenumber" name="L7840" href="#L7840">7840</a>
-<a class="jxr_linenumber" name="L7841" href="#L7841">7841</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L7842" href="#L7842">7842</a> <em class="jxr_javadoccomment"> * Entrypoint for executing all requests and returning a response.</em>
-<a class="jxr_linenumber" name="L7843" href="#L7843">7843</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L7844" href="#L7844">7844</a> <em class="jxr_javadoccomment"> * <p></em>
-<a class="jxr_linenumber" name="L7845" href="#L7845">7845</a> <em class="jxr_javadoccomment"> * Subclasses can override this method to provide specialized handling.</em>
-<a class="jxr_linenumber" name="L7846" href="#L7846">7846</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L7847" href="#L7847">7847</a> <em class="jxr_javadoccomment"> * <p></em>
-<a class="jxr_linenumber" name="L7848" href="#L7848">7848</a> <em class="jxr_javadoccomment"> * The behavior of this method can also be modified by specifying a different {@link RestCallHandler}.</em>
+<a class="jxr_linenumber" name="L7834" href="#L7834">7834</a> <strong class="jxr_keyword">return</strong> req;
+<a class="jxr_linenumber" name="L7835" href="#L7835">7835</a> }
+<a class="jxr_linenumber" name="L7836" href="#L7836">7836</a>
+<a class="jxr_linenumber" name="L7837" href="#L7837">7837</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L7838" href="#L7838">7838</a> <em class="jxr_javadoccomment"> * Entrypoint for executing all requests and returning a response.</em>
+<a class="jxr_linenumber" name="L7839" href="#L7839">7839</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L7840" href="#L7840">7840</a> <em class="jxr_javadoccomment"> * <p></em>
+<a class="jxr_linenumber" name="L7841" href="#L7841">7841</a> <em class="jxr_javadoccomment"> * Subclasses can override this method to provide specialized handling.</em>
+<a class="jxr_linenumber" name="L7842" href="#L7842">7842</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L7843" href="#L7843">7843</a> <em class="jxr_javadoccomment"> * <p></em>
+<a class="jxr_linenumber" name="L7844" href="#L7844">7844</a> <em class="jxr_javadoccomment"> * The behavior of this method can also be modified by specifying a different {@link RestCallHandler}.</em>
+<a class="jxr_linenumber" name="L7845" href="#L7845">7845</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L7846" href="#L7846">7846</a> <em class="jxr_javadoccomment"> * <h5 class='section'>See Also:</h5><ul></em>
+<a class="jxr_linenumber" name="L7847" href="#L7847">7847</a> <em class="jxr_javadoccomment"> * <li class='jm'>{@link Builder#callHandler()}</em>
+<a class="jxr_linenumber" name="L7848" href="#L7848">7848</a> <em class="jxr_javadoccomment"> * </ul></em>
<a class="jxr_linenumber" name="L7849" href="#L7849">7849</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L7850" href="#L7850">7850</a> <em class="jxr_javadoccomment"> * <h5 class='section'>See Also:</h5><ul></em>
-<a class="jxr_linenumber" name="L7851" href="#L7851">7851</a> <em class="jxr_javadoccomment"> * <li class='jm'>{@link Builder#callHandler()}</em>
-<a class="jxr_linenumber" name="L7852" href="#L7852">7852</a> <em class="jxr_javadoccomment"> * </ul></em>
-<a class="jxr_linenumber" name="L7853" href="#L7853">7853</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L7854" href="#L7854">7854</a> <em class="jxr_javadoccomment"> * @param target The target host for the request.</em>
-<a class="jxr_linenumber" name="L7855" href="#L7855">7855</a> <em class="jxr_javadoccomment"> * <br>Implementations may accept <jk>null</jk> if they can still determine a route, for example to a default</em>
-<a class="jxr_linenumber" name="L7856" href="#L7856">7856</a> <em class="jxr_javadoccomment"> * target or by inspecting the request.</em>
-<a class="jxr_linenumber" name="L7857" href="#L7857">7857</a> <em class="jxr_javadoccomment"> * @param request The request to execute.</em>
-<a class="jxr_linenumber" name="L7858" href="#L7858">7858</a> <em class="jxr_javadoccomment"> * @param context The context to use for the execution, or <jk>null</jk> to use the default context.</em>
-<a class="jxr_linenumber" name="L7859" href="#L7859">7859</a> <em class="jxr_javadoccomment"> * @return</em>
-<a class="jxr_linenumber" name="L7860" href="#L7860">7860</a> <em class="jxr_javadoccomment"> * The response to the request.</em>
-<a class="jxr_linenumber" name="L7861" href="#L7861">7861</a> <em class="jxr_javadoccomment"> * <br>This is always a final response, never an intermediate response with an 1xx status code.</em>
-<a class="jxr_linenumber" name="L7862" href="#L7862">7862</a> <em class="jxr_javadoccomment"> * <br>Whether redirects or authentication challenges will be returned or handled automatically depends on the</em>
-<a class="jxr_linenumber" name="L7863" href="#L7863">7863</a> <em class="jxr_javadoccomment"> * implementation and configuration of this client.</em>
-<a class="jxr_linenumber" name="L7864" href="#L7864">7864</a> <em class="jxr_javadoccomment"> * @throws IOException In case of a problem or the connection was aborted.</em>
-<a class="jxr_linenumber" name="L7865" href="#L7865">7865</a> <em class="jxr_javadoccomment"> * @throws ClientProtocolException In case of an http protocol error.</em>
-<a class="jxr_linenumber" name="L7866" href="#L7866">7866</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L7867" href="#L7867">7867</a> <strong class="jxr_keyword">protected</strong> HttpResponse run(HttpHost target, HttpRequest request, HttpContext context) <strong class="jxr_keyword">throws</strong> ClientProtocolException, IOException {
-<a class="jxr_linenumber" name="L7868" href="#L7868">7868</a> <strong class="jxr_keyword">return</strong> callHandler.run(target, request, context);
-<a class="jxr_linenumber" name="L7869" href="#L7869">7869</a> }
-<a class="jxr_linenumber" name="L7870" href="#L7870">7870</a>
-<a class="jxr_linenumber" name="L7871" href="#L7871">7871</a> Object executeRemote(Class<?> interfaceClass, <a name="RestRequest" href="../../../../../org/apache/juneau/rest/client/RestRequest.html#RestRequest">RestRequest</a> rc, Method method, <a name="RemoteOperationMeta" href="../../../../../org/apache/juneau/rest/client/remote/RemoteOperationMeta.html#RemoteOperationMeta">RemoteOperationMeta</a> rom) <strong class="jxr_keyword">throws</strong> Throwable {
-<a class="jxr_linenumber" name="L7872" href="#L7872">7872</a> RemoteOperationReturn ror = rom.getReturns();
-<a class="jxr_linenumber" name="L7873" href="#L7873">7873</a>
-<a class="jxr_linenumber" name="L7874" href="#L7874">7874</a> <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="L7875" href="#L7875">7875</a> <strong class="jxr_keyword">var</strong> ret = (Object)<strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L7876" href="#L7876">7876</a> <strong class="jxr_keyword">var</strong> res = (<a name="RestResponse" href="../../../../../org/apache/juneau/rest/client/RestResponse.html#RestResponse">RestResponse</a>)<strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L7877" href="#L7877">7877</a> rc.rethrow(RuntimeException.<strong class="jxr_keyword">class</strong>);
-<a class="jxr_linenumber" name="L7878" href="#L7878">7878</a> rom.forEachException(x -> rc.rethrow(x));
-<a class="jxr_linenumber" name="L7879" href="#L7879">7879</a> <strong class="jxr_keyword">if</strong> (ror.getReturnValue() == RemoteReturn.NONE) {
-<a class="jxr_linenumber" name="L7880" href="#L7880">7880</a> res = rc.complete();
-<a class="jxr_linenumber" name="L7881" href="#L7881">7881</a> } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (ror.getReturnValue() == RemoteReturn.STATUS) {
-<a class="jxr_linenumber" name="L7882" href="#L7882">7882</a> res = rc.complete();
-<a class="jxr_linenumber" name="L7883" href="#L7883">7883</a> <strong class="jxr_keyword">int</strong> returnCode = res.getStatusCode();
-<a class="jxr_linenumber" name="L7884" href="#L7884">7884</a> <strong class="jxr_keyword">var</strong> rt = method.getReturnType();
-<a class="jxr_linenumber" name="L7885" href="#L7885">7885</a> <strong class="jxr_keyword">if</strong> (rt == Integer.<strong class="jxr_keyword">class</strong> || rt == <strong class="jxr_keyword">int</strong>.<strong class="jxr_keyword">class</strong>)
-<a class="jxr_linenumber" name="L7886" href="#L7886">7886</a> ret = returnCode;
-<a class="jxr_linenumber" name="L7887" href="#L7887">7887</a> <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (rt == Boolean.<strong class="jxr_keyword">class</strong> || rt == <strong class="jxr_keyword">boolean</strong>.<strong class="jxr_keyword">class</strong>)
-<a class="jxr_linenumber" name="L7888" href="#L7888">7888</a> ret = returnCode < 400;
-<a class="jxr_linenumber" name="L7889" href="#L7889">7889</a> <strong class="jxr_keyword">else</strong>
-<a class="jxr_linenumber" name="L7890" href="#L7890">7890</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a name="RestCallException" href="../../../../../org/apache/juneau/rest/client/RestCallException.html#RestCallException">RestCallException</a>(res, <strong class="jxr_keyword">null</strong>, <span class="jxr_string">"Invalid return type on method annotated with @RemoteOp(returns=RemoteReturn.STATUS). Only integer and booleans types are va [...]
-<a class="jxr_linenumber" name="L7891" href="#L7891">7891</a> } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (ror.getReturnValue() == RemoteReturn.BEAN) {
-<a class="jxr_linenumber" name="L7892" href="#L7892">7892</a> rc.ignoreErrors();
-<a class="jxr_linenumber" name="L7893" href="#L7893">7893</a> res = rc.run();
-<a class="jxr_linenumber" name="L7894" href="#L7894">7894</a> ret = res.as(ror.getResponseBeanMeta());
-<a class="jxr_linenumber" name="L7895" href="#L7895">7895</a> } <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="L7896" href="#L7896">7896</a> <strong class="jxr_keyword">var</strong> rt = method.getReturnType();
-<a class="jxr_linenumber" name="L7897" href="#L7897">7897</a> <strong class="jxr_keyword">if</strong> (Throwable.<strong class="jxr_keyword">class</strong>.isAssignableFrom(rt))
-<a class="jxr_linenumber" name="L7898" href="#L7898">7898</a> rc.ignoreErrors();
-<a class="jxr_linenumber" name="L7899" href="#L7899">7899</a> res = rc.run();
-<a class="jxr_linenumber" name="L7900" href="#L7900">7900</a> Object v = res.getContent().as(ror.getReturnType());
-<a class="jxr_linenumber" name="L7901" href="#L7901">7901</a> <strong class="jxr_keyword">if</strong> (v == <strong class="jxr_keyword">null</strong> && rt.isPrimitive())
-<a class="jxr_linenumber" name="L7902" href="#L7902">7902</a> v = ClassInfo.of(rt).getPrimitiveDefault();
-<a class="jxr_linenumber" name="L7903" href="#L7903">7903</a> ret = v;
-<a class="jxr_linenumber" name="L7904" href="#L7904">7904</a> }
-<a class="jxr_linenumber" name="L7905" href="#L7905">7905</a> <strong class="jxr_keyword">return</strong> ret;
-<a class="jxr_linenumber" name="L7906" href="#L7906">7906</a> } <strong class="jxr_keyword">catch</strong> (<a name="RestCallException" href="../../../../../org/apache/juneau/rest/client/RestCallException.html#RestCallException">RestCallException</a> e) {
-<a class="jxr_linenumber" name="L7907" href="#L7907">7907</a> Throwable t = e.getCause();
-<a class="jxr_linenumber" name="L7908" href="#L7908">7908</a> <strong class="jxr_keyword">if</strong> (t instanceof RuntimeException t2)
-<a class="jxr_linenumber" name="L7909" href="#L7909">7909</a> <strong class="jxr_keyword">throw</strong> t2;
-<a class="jxr_linenumber" name="L7910" href="#L7910">7910</a> <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> t3 : method.getExceptionTypes())
-<a class="jxr_linenumber" name="L7911" href="#L7911">7911</a> <strong class="jxr_keyword">if</strong> (t3.isInstance(t))
-<a class="jxr_linenumber" name="L7912" href="#L7912">7912</a> <strong class="jxr_keyword">throw</strong> t;
-<a class="jxr_linenumber" name="L7913" href="#L7913">7913</a> <strong class="jxr_keyword">throw</strong> toRex(e);
-<a class="jxr_linenumber" name="L7914" href="#L7914">7914</a> }
-<a class="jxr_linenumber" name="L7915" href="#L7915">7915</a> }
-<a class="jxr_linenumber" name="L7916" href="#L7916">7916</a>
-<a class="jxr_linenumber" name="L7917" href="#L7917">7917</a> ExecutorService getExecutorService() {
-<a class="jxr_linenumber" name="L7918" href="#L7918">7918</a> <strong class="jxr_keyword">if</strong> (nn(executorService))
-<a class="jxr_linenumber" name="L7919" href="#L7919">7919</a> <strong class="jxr_keyword">return</strong> executorService;
-<a class="jxr_linenumber" name="L7920" href="#L7920">7920</a> <strong class="jxr_keyword">synchronized</strong> (<strong class="jxr_keyword">this</strong>) {
-<a class="jxr_linenumber" name="L7921" href="#L7921">7921</a> executorService = <strong class="jxr_keyword">new</strong> ThreadPoolExecutor(1, 1, 30, TimeUnit.SECONDS, <strong class="jxr_keyword">new</strong> ArrayBlockingQueue<>(10));
-<a class="jxr_linenumber" name="L7922" href="#L7922">7922</a> <strong class="jxr_keyword">return</strong> executorService;
-<a class="jxr_linenumber" name="L7923" href="#L7923">7923</a> }
-<a class="jxr_linenumber" name="L7924" href="#L7924">7924</a> }
-<a class="jxr_linenumber" name="L7925" href="#L7925">7925</a>
-<a class="jxr_linenumber" name="L7926" href="#L7926">7926</a> @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
-<a class="jxr_linenumber" name="L7927" href="#L7927">7927</a> <T <strong class="jxr_keyword">extends</strong> Context> T getInstance(Class<T> c) {
-<a class="jxr_linenumber" name="L7928" href="#L7928">7928</a> <strong class="jxr_keyword">var</strong> o = requestContexts.get(c);
-<a class="jxr_linenumber" name="L7929" href="#L7929">7929</a> <strong class="jxr_keyword">if</strong> (o == <strong class="jxr_keyword">null</strong>) {
-<a class="jxr_linenumber" name="L7930" href="#L7930">7930</a> <strong class="jxr_keyword">if</strong> (Serializer.<strong class="jxr_keyword">class</strong>.isAssignableFrom(c)) {
-<a class="jxr_linenumber" name="L7931" href="#L7931">7931</a> o = Serializer.createSerializerBuilder((Class<? <strong class="jxr_keyword">extends</strong> Serializer>)c).beanContext(getBeanContext()).build();
-<a class="jxr_linenumber" name="L7932" href="#L7932">7932</a> } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (Parser.<strong class="jxr_keyword">class</strong>.isAssignableFrom(c)) {
-<a class="jxr_linenumber" name="L7933" href="#L7933">7933</a> o = Parser.createParserBuilder((Class<? <strong class="jxr_keyword">extends</strong> Parser>)c).beanContext(getBeanContext()).build();
-<a class="jxr_linenumber" name="L7934" href="#L7934">7934</a> }
-<a class="jxr_linenumber" name="L7935" href="#L7935">7935</a> requestContexts.put(c, o);
-<a class="jxr_linenumber" name="L7936" href="#L7936">7936</a> }
-<a class="jxr_linenumber" name="L7937" href="#L7937">7937</a> <strong class="jxr_keyword">return</strong> (T)o;
-<a class="jxr_linenumber" name="L7938" href="#L7938">7938</a> }
-<a class="jxr_linenumber" name="L7939" href="#L7939">7939</a>
-<a class="jxr_linenumber" name="L7940" href="#L7940">7940</a> <em class="jxr_comment">/*</em>
-<a class="jxr_linenumber" name="L7941" href="#L7941">7941</a> <em class="jxr_comment"> * Returns the parser that best matches the specified content type.</em>
-<a class="jxr_linenumber" name="L7942" href="#L7942">7942</a> <em class="jxr_comment"> * If no match found or the content type is null, returns the parser in the list if it's a list of one.</em>
-<a class="jxr_linenumber" name="L7943" href="#L7943">7943</a> <em class="jxr_comment"> * Returns null if no parsers are defined.</em>
-<a class="jxr_linenumber" name="L7944" href="#L7944">7944</a> <em class="jxr_comment"> */</em>
-<a class="jxr_linenumber" name="L7945" href="#L7945">7945</a> Parser getMatchingParser(String mediaType) {
-<a class="jxr_linenumber" name="L7946" href="#L7946">7946</a> <strong class="jxr_keyword">if</strong> (parsers.isEmpty())
-<a class="jxr_linenumber" name="L7947" href="#L7947">7947</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L7948" href="#L7948">7948</a> <strong class="jxr_keyword">if</strong> (nn(mediaType)) {
-<a class="jxr_linenumber" name="L7949" href="#L7949">7949</a> <strong class="jxr_keyword">var</strong> p = parsers.getParser(mediaType);
-<a class="jxr_linenumber" name="L7950" href="#L7950">7950</a> <strong class="jxr_keyword">if</strong> (nn(p))
-<a class="jxr_linenumber" name="L7951" href="#L7951">7951</a> <strong class="jxr_keyword">return</strong> p;
-<a class="jxr_linenumber" name="L7952" href="#L7952">7952</a> }
-<a class="jxr_linenumber" name="L7953" href="#L7953">7953</a> <strong class="jxr_keyword">var</strong> l = parsers.getParsers();
-<a class="jxr_linenumber" name="L7954" href="#L7954">7954</a> <strong class="jxr_keyword">return</strong> (l.size() == 1 ? l.get(0) : <strong class="jxr_keyword">null</strong>);
-<a class="jxr_linenumber" name="L7955" href="#L7955">7955</a> }
-<a class="jxr_linenumber" name="L7956" href="#L7956">7956</a>
-<a class="jxr_linenumber" name="L7957" href="#L7957">7957</a> <em class="jxr_comment">/*</em>
-<a class="jxr_linenumber" name="L7958" href="#L7958">7958</a> <em class="jxr_comment"> * Returns the serializer that best matches the specified content type.</em>
-<a class="jxr_linenumber" name="L7959" href="#L7959">7959</a> <em class="jxr_comment"> * If no match found or the content type is null, returns the serializer in the list if it's a list of one.</em>
-<a class="jxr_linenumber" name="L7960" href="#L7960">7960</a> <em class="jxr_comment"> * Returns null if no serializers are defined.</em>
-<a class="jxr_linenumber" name="L7961" href="#L7961">7961</a> <em class="jxr_comment"> */</em>
-<a class="jxr_linenumber" name="L7962" href="#L7962">7962</a> Serializer getMatchingSerializer(String mediaType) {
-<a class="jxr_linenumber" name="L7963" href="#L7963">7963</a> <strong class="jxr_keyword">if</strong> (serializers.isEmpty())
-<a class="jxr_linenumber" name="L7964" href="#L7964">7964</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a class="jxr_linenumber" name="L7965" href="#L7965">7965</a> <strong class="jxr_keyword">if</strong> (nn(mediaType)) {
-<a class="jxr_linenumber" name="L7966" href="#L7966">7966</a> <strong class="jxr_keyword">var</strong> s = serializers.getSerializer(mediaType);
-<a class="jxr_linenumber" name="L7967" href="#L7967">7967</a> <strong class="jxr_keyword">if</strong> (nn(s))
-<a class="jxr_linenumber" name="L7968" href="#L7968">7968</a> <strong class="jxr_keyword">return</strong> s;
-<a class="jxr_linenumber" name="L7969" href="#L7969">7969</a> }
-<a class="jxr_linenumber" name="L7970" href="#L7970">7970</a> <strong class="jxr_keyword">var</strong> l = serializers.getSerializers();
-<a class="jxr_linenumber" name="L7971" href="#L7971">7971</a> <strong class="jxr_keyword">return</strong> (l.size() == 1 ? l.get(0) : <strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="L7850" href="#L7850">7850</a> <em class="jxr_javadoccomment"> * @param target The target host for the request.</em>
+<a class="jxr_linenumber" name="L7851" href="#L7851">7851</a> <em class="jxr_javadoccomment"> * <br>Implementations may accept <jk>null</jk> if they can still determine a route, for example to a default</em>
+<a class="jxr_linenumber" name="L7852" href="#L7852">7852</a> <em class="jxr_javadoccomment"> * target or by inspecting the request.</em>
+<a class="jxr_linenumber" name="L7853" href="#L7853">7853</a> <em class="jxr_javadoccomment"> * @param request The request to execute.</em>
+<a class="jxr_linenumber" name="L7854" href="#L7854">7854</a> <em class="jxr_javadoccomment"> * @param context The context to use for the execution, or <jk>null</jk> to use the default context.</em>
+<a class="jxr_linenumber" name="L7855" href="#L7855">7855</a> <em class="jxr_javadoccomment"> * @return</em>
+<a class="jxr_linenumber" name="L7856" href="#L7856">7856</a> <em class="jxr_javadoccomment"> * The response to the request.</em>
+<a class="jxr_linenumber" name="L7857" href="#L7857">7857</a> <em class="jxr_javadoccomment"> * <br>This is always a final response, never an intermediate response with an 1xx status code.</em>
+<a class="jxr_linenumber" name="L7858" href="#L7858">7858</a> <em class="jxr_javadoccomment"> * <br>Whether redirects or authentication challenges will be returned or handled automatically depends on the</em>
+<a class="jxr_linenumber" name="L7859" href="#L7859">7859</a> <em class="jxr_javadoccomment"> * implementation and configuration of this client.</em>
+<a class="jxr_linenumber" name="L7860" href="#L7860">7860</a> <em class="jxr_javadoccomment"> * @throws IOException In case of a problem or the connection was aborted.</em>
+<a class="jxr_linenumber" name="L7861" href="#L7861">7861</a> <em class="jxr_javadoccomment"> * @throws ClientProtocolException In case of an http protocol error.</em>
+<a class="jxr_linenumber" name="L7862" href="#L7862">7862</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L7863" href="#L7863">7863</a> <strong class="jxr_keyword">protected</strong> HttpResponse run(HttpHost target, HttpRequest request, HttpContext context) <strong class="jxr_keyword">throws</strong> ClientProtocolException, IOException {
+<a class="jxr_linenumber" name="L7864" href="#L7864">7864</a> <strong class="jxr_keyword">return</strong> callHandler.run(target, request, context);
+<a class="jxr_linenumber" name="L7865" href="#L7865">7865</a> }
+<a class="jxr_linenumber" name="L7866" href="#L7866">7866</a>
+<a class="jxr_linenumber" name="L7867" href="#L7867">7867</a> Object executeRemote(Class<?> interfaceClass, <a name="RestRequest" href="../../../../../org/apache/juneau/rest/client/RestRequest.html#RestRequest">RestRequest</a> rc, Method method, <a name="RemoteOperationMeta" href="../../../../../org/apache/juneau/rest/client/remote/RemoteOperationMeta.html#RemoteOperationMeta">RemoteOperationMeta</a> rom) <strong class="jxr_keyword">throws</strong> Throwable {
+<a class="jxr_linenumber" name="L7868" href="#L7868">7868</a> RemoteOperationReturn ror = rom.getReturns();
+<a class="jxr_linenumber" name="L7869" href="#L7869">7869</a>
+<a class="jxr_linenumber" name="L7870" href="#L7870">7870</a> <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="L7871" href="#L7871">7871</a> <strong class="jxr_keyword">var</strong> ret = (Object)<strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L7872" href="#L7872">7872</a> <strong class="jxr_keyword">var</strong> res = (<a name="RestResponse" href="../../../../../org/apache/juneau/rest/client/RestResponse.html#RestResponse">RestResponse</a>)<strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L7873" href="#L7873">7873</a> rc.rethrow(RuntimeException.<strong class="jxr_keyword">class</strong>);
+<a class="jxr_linenumber" name="L7874" href="#L7874">7874</a> rom.forEachException(x -> rc.rethrow(x));
+<a class="jxr_linenumber" name="L7875" href="#L7875">7875</a> <strong class="jxr_keyword">if</strong> (ror.getReturnValue() == RemoteReturn.NONE) {
+<a class="jxr_linenumber" name="L7876" href="#L7876">7876</a> res = rc.complete();
+<a class="jxr_linenumber" name="L7877" href="#L7877">7877</a> } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (ror.getReturnValue() == RemoteReturn.STATUS) {
+<a class="jxr_linenumber" name="L7878" href="#L7878">7878</a> res = rc.complete();
+<a class="jxr_linenumber" name="L7879" href="#L7879">7879</a> <strong class="jxr_keyword">int</strong> returnCode = res.getStatusCode();
+<a class="jxr_linenumber" name="L7880" href="#L7880">7880</a> <strong class="jxr_keyword">var</strong> rt = method.getReturnType();
+<a class="jxr_linenumber" name="L7881" href="#L7881">7881</a> <strong class="jxr_keyword">if</strong> (rt == Integer.<strong class="jxr_keyword">class</strong> || rt == <strong class="jxr_keyword">int</strong>.<strong class="jxr_keyword">class</strong>)
+<a class="jxr_linenumber" name="L7882" href="#L7882">7882</a> ret = returnCode;
+<a class="jxr_linenumber" name="L7883" href="#L7883">7883</a> <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (rt == Boolean.<strong class="jxr_keyword">class</strong> || rt == <strong class="jxr_keyword">boolean</strong>.<strong class="jxr_keyword">class</strong>)
+<a class="jxr_linenumber" name="L7884" href="#L7884">7884</a> ret = returnCode < 400;
+<a class="jxr_linenumber" name="L7885" href="#L7885">7885</a> <strong class="jxr_keyword">else</strong>
+<a class="jxr_linenumber" name="L7886" href="#L7886">7886</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a name="RestCallException" href="../../../../../org/apache/juneau/rest/client/RestCallException.html#RestCallException">RestCallException</a>(res, <strong class="jxr_keyword">null</strong>, <span class="jxr_string">"Invalid return type on method annotated with @RemoteOp(returns=RemoteReturn.STATUS). Only integer and booleans types are va [...]
+<a class="jxr_linenumber" name="L7887" href="#L7887">7887</a> } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (ror.getReturnValue() == RemoteReturn.BEAN) {
+<a class="jxr_linenumber" name="L7888" href="#L7888">7888</a> rc.ignoreErrors();
+<a class="jxr_linenumber" name="L7889" href="#L7889">7889</a> res = rc.run();
+<a class="jxr_linenumber" name="L7890" href="#L7890">7890</a> ret = res.as(ror.getResponseBeanMeta());
+<a class="jxr_linenumber" name="L7891" href="#L7891">7891</a> } <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="L7892" href="#L7892">7892</a> <strong class="jxr_keyword">var</strong> rt = method.getReturnType();
+<a class="jxr_linenumber" name="L7893" href="#L7893">7893</a> <strong class="jxr_keyword">if</strong> (Throwable.<strong class="jxr_keyword">class</strong>.isAssignableFrom(rt))
+<a class="jxr_linenumber" name="L7894" href="#L7894">7894</a> rc.ignoreErrors();
+<a class="jxr_linenumber" name="L7895" href="#L7895">7895</a> res = rc.run();
+<a class="jxr_linenumber" name="L7896" href="#L7896">7896</a> Object v = res.getContent().as(ror.getReturnType());
+<a class="jxr_linenumber" name="L7897" href="#L7897">7897</a> <strong class="jxr_keyword">if</strong> (v == <strong class="jxr_keyword">null</strong> && rt.isPrimitive())
+<a class="jxr_linenumber" name="L7898" href="#L7898">7898</a> v = ClassInfo.of(rt).getPrimitiveDefault();
+<a class="jxr_linenumber" name="L7899" href="#L7899">7899</a> ret = v;
+<a class="jxr_linenumber" name="L7900" href="#L7900">7900</a> }
+<a class="jxr_linenumber" name="L7901" href="#L7901">7901</a> <strong class="jxr_keyword">return</strong> ret;
+<a class="jxr_linenumber" name="L7902" href="#L7902">7902</a> } <strong class="jxr_keyword">catch</strong> (<a name="RestCallException" href="../../../../../org/apache/juneau/rest/client/RestCallException.html#RestCallException">RestCallException</a> e) {
+<a class="jxr_linenumber" name="L7903" href="#L7903">7903</a> Throwable t = e.getCause();
+<a class="jxr_linenumber" name="L7904" href="#L7904">7904</a> <strong class="jxr_keyword">if</strong> (t instanceof RuntimeException t2)
+<a class="jxr_linenumber" name="L7905" href="#L7905">7905</a> <strong class="jxr_keyword">throw</strong> t2;
+<a class="jxr_linenumber" name="L7906" href="#L7906">7906</a> <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">var</strong> t3 : method.getExceptionTypes())
+<a class="jxr_linenumber" name="L7907" href="#L7907">7907</a> <strong class="jxr_keyword">if</strong> (t3.isInstance(t))
+<a class="jxr_linenumber" name="L7908" href="#L7908">7908</a> <strong class="jxr_keyword">throw</strong> t;
+<a class="jxr_linenumber" name="L7909" href="#L7909">7909</a> <strong class="jxr_keyword">throw</strong> toRex(e);
+<a class="jxr_linenumber" name="L7910" href="#L7910">7910</a> }
+<a class="jxr_linenumber" name="L7911" href="#L7911">7911</a> }
+<a class="jxr_linenumber" name="L7912" href="#L7912">7912</a>
+<a class="jxr_linenumber" name="L7913" href="#L7913">7913</a> ExecutorService getExecutorService() {
+<a class="jxr_linenumber" name="L7914" href="#L7914">7914</a> <strong class="jxr_keyword">if</strong> (nn(executorService))
+<a class="jxr_linenumber" name="L7915" href="#L7915">7915</a> <strong class="jxr_keyword">return</strong> executorService;
+<a class="jxr_linenumber" name="L7916" href="#L7916">7916</a> <strong class="jxr_keyword">synchronized</strong> (<strong class="jxr_keyword">this</strong>) {
+<a class="jxr_linenumber" name="L7917" href="#L7917">7917</a> executorService = <strong class="jxr_keyword">new</strong> ThreadPoolExecutor(1, 1, 30, TimeUnit.SECONDS, <strong class="jxr_keyword">new</strong> ArrayBlockingQueue<>(10));
+<a class="jxr_linenumber" name="L7918" href="#L7918">7918</a> <strong class="jxr_keyword">return</strong> executorService;
+<a class="jxr_linenumber" name="L7919" href="#L7919">7919</a> }
+<a class="jxr_linenumber" name="L7920" href="#L7920">7920</a> }
+<a class="jxr_linenumber" name="L7921" href="#L7921">7921</a>
+<a class="jxr_linenumber" name="L7922" href="#L7922">7922</a> @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
+<a class="jxr_linenumber" name="L7923" href="#L7923">7923</a> <T <strong class="jxr_keyword">extends</strong> Context> T getInstance(Class<T> c) {
+<a class="jxr_linenumber" name="L7924" href="#L7924">7924</a> <strong class="jxr_keyword">var</strong> o = requestContexts.get(c);
+<a class="jxr_linenumber" name="L7925" href="#L7925">7925</a> <strong class="jxr_keyword">if</strong> (o == <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="L7926" href="#L7926">7926</a> <strong class="jxr_keyword">if</strong> (Serializer.<strong class="jxr_keyword">class</strong>.isAssignableFrom(c)) {
+<a class="jxr_linenumber" name="L7927" href="#L7927">7927</a> o = Serializer.createSerializerBuilder((Class<? <strong class="jxr_keyword">extends</strong> Serializer>)c).beanContext(getBeanContext()).build();
+<a class="jxr_linenumber" name="L7928" href="#L7928">7928</a> } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (Parser.<strong class="jxr_keyword">class</strong>.isAssignableFrom(c)) {
+<a class="jxr_linenumber" name="L7929" href="#L7929">7929</a> o = Parser.createParserBuilder((Class<? <strong class="jxr_keyword">extends</strong> Parser>)c).beanContext(getBeanContext()).build();
+<a class="jxr_linenumber" name="L7930" href="#L7930">7930</a> }
+<a class="jxr_linenumber" name="L7931" href="#L7931">7931</a> requestContexts.put(c, o);
+<a class="jxr_linenumber" name="L7932" href="#L7932">7932</a> }
+<a class="jxr_linenumber" name="L7933" href="#L7933">7933</a> <strong class="jxr_keyword">return</strong> (T)o;
+<a class="jxr_linenumber" name="L7934" href="#L7934">7934</a> }
+<a class="jxr_linenumber" name="L7935" href="#L7935">7935</a>
+<a class="jxr_linenumber" name="L7936" href="#L7936">7936</a> <em class="jxr_comment">/*</em>
+<a class="jxr_linenumber" name="L7937" href="#L7937">7937</a> <em class="jxr_comment"> * Returns the parser that best matches the specified content type.</em>
+<a class="jxr_linenumber" name="L7938" href="#L7938">7938</a> <em class="jxr_comment"> * If no match found or the content type is null, returns the parser in the list if it's a list of one.</em>
+<a class="jxr_linenumber" name="L7939" href="#L7939">7939</a> <em class="jxr_comment"> * Returns null if no parsers are defined.</em>
+<a class="jxr_linenumber" name="L7940" href="#L7940">7940</a> <em class="jxr_comment"> */</em>
+<a class="jxr_linenumber" name="L7941" href="#L7941">7941</a> Parser getMatchingParser(String mediaType) {
+<a class="jxr_linenumber" name="L7942" href="#L7942">7942</a> <strong class="jxr_keyword">if</strong> (parsers.isEmpty())
+<a class="jxr_linenumber" name="L7943" href="#L7943">7943</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L7944" href="#L7944">7944</a> <strong class="jxr_keyword">if</strong> (nn(mediaType)) {
+<a class="jxr_linenumber" name="L7945" href="#L7945">7945</a> <strong class="jxr_keyword">var</strong> p = parsers.getParser(mediaType);
+<a class="jxr_linenumber" name="L7946" href="#L7946">7946</a> <strong class="jxr_keyword">if</strong> (nn(p))
+<a class="jxr_linenumber" name="L7947" href="#L7947">7947</a> <strong class="jxr_keyword">return</strong> p;
+<a class="jxr_linenumber" name="L7948" href="#L7948">7948</a> }
+<a class="jxr_linenumber" name="L7949" href="#L7949">7949</a> <strong class="jxr_keyword">var</strong> l = parsers.getParsers();
+<a class="jxr_linenumber" name="L7950" href="#L7950">7950</a> <strong class="jxr_keyword">return</strong> (l.size() == 1 ? l.get(0) : <strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="L7951" href="#L7951">7951</a> }
+<a class="jxr_linenumber" name="L7952" href="#L7952">7952</a>
+<a class="jxr_linenumber" name="L7953" href="#L7953">7953</a> <em class="jxr_comment">/*</em>
+<a class="jxr_linenumber" name="L7954" href="#L7954">7954</a> <em class="jxr_comment"> * Returns the serializer that best matches the specified content type.</em>
+<a class="jxr_linenumber" name="L7955" href="#L7955">7955</a> <em class="jxr_comment"> * If no match found or the content type is null, returns the serializer in the list if it's a list of one.</em>
+<a class="jxr_linenumber" name="L7956" href="#L7956">7956</a> <em class="jxr_comment"> * Returns null if no serializers are defined.</em>
+<a class="jxr_linenumber" name="L7957" href="#L7957">7957</a> <em class="jxr_comment"> */</em>
+<a class="jxr_linenumber" name="L7958" href="#L7958">7958</a> Serializer getMatchingSerializer(String mediaType) {
+<a class="jxr_linenumber" name="L7959" href="#L7959">7959</a> <strong class="jxr_keyword">if</strong> (serializers.isEmpty())
+<a class="jxr_linenumber" name="L7960" href="#L7960">7960</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L7961" href="#L7961">7961</a> <strong class="jxr_keyword">if</strong> (nn(mediaType)) {
+<a class="jxr_linenumber" name="L7962" href="#L7962">7962</a> <strong class="jxr_keyword">var</strong> s = serializers.getSerializer(mediaType);
+<a class="jxr_linenumber" name="L7963" href="#L7963">7963</a> <strong class="jxr_keyword">if</strong> (nn(s))
+<a class="jxr_linenumber" name="L7964" href="#L7964">7964</a> <strong class="jxr_keyword">return</strong> s;
+<a class="jxr_linenumber" name="L7965" href="#L7965">7965</a> }
+<a class="jxr_linenumber" name="L7966" href="#L7966">7966</a> <strong class="jxr_keyword">var</strong> l = serializers.getSerializers();
+<a class="jxr_linenumber" name="L7967" href="#L7967">7967</a> <strong class="jxr_keyword">return</strong> (l.size() == 1 ? l.get(0) : <strong class="jxr_keyword">null</strong>);
+<a class="jxr_linenumber" name="L7968" href="#L7968">7968</a> }
+<a class="jxr_linenumber" name="L7969" href="#L7969">7969</a>
+<a class="jxr_linenumber" name="L7970" href="#L7970">7970</a> <strong class="jxr_keyword">boolean</strong> hasParsers() {
+<a class="jxr_linenumber" name="L7971" href="#L7971">7971</a> <strong class="jxr_keyword">return</strong> ! parsers.getParsers().isEmpty();
<a class="jxr_linenumber" name="L7972" href="#L7972">7972</a> }
<a class="jxr_linenumber" name="L7973" href="#L7973">7973</a>
-<a class="jxr_linenumber" name="L7974" href="#L7974">7974</a> <strong class="jxr_keyword">boolean</strong> hasParsers() {
-<a class="jxr_linenumber" name="L7975" href="#L7975">7975</a> <strong class="jxr_keyword">return</strong> ! parsers.getParsers().isEmpty();
+<a class="jxr_linenumber" name="L7974" href="#L7974">7974</a> <strong class="jxr_keyword">boolean</strong> hasSerializers() {
+<a class="jxr_linenumber" name="L7975" href="#L7975">7975</a> <strong class="jxr_keyword">return</strong> ! serializers.getSerializers().isEmpty();
<a class="jxr_linenumber" name="L7976" href="#L7976">7976</a> }
<a class="jxr_linenumber" name="L7977" href="#L7977">7977</a>
-<a class="jxr_linenumber" name="L7978" href="#L7978">7978</a> <strong class="jxr_keyword">boolean</strong> hasSerializers() {
-<a class="jxr_linenumber" name="L7979" href="#L7979">7979</a> <strong class="jxr_keyword">return</strong> ! serializers.getSerializers().isEmpty();
-<a class="jxr_linenumber" name="L7980" href="#L7980">7980</a> }
-<a class="jxr_linenumber" name="L7981" href="#L7981">7981</a>
-<a class="jxr_linenumber" name="L7982" href="#L7982">7982</a> URI toURI(Object x, String rootUrl) <strong class="jxr_keyword">throws</strong> <a name="RestCallException" href="../../../../../org/apache/juneau/rest/client/RestCallException.html#RestCallException">RestCallException</a> {
-<a class="jxr_linenumber" name="L7983" href="#L7983">7983</a> <strong class="jxr_keyword">try</strong> {
-<a class="jxr_linenumber" name="L7984" href="#L7984">7984</a> <strong class="jxr_keyword">if</strong> (x instanceof URI x2)
-<a class="jxr_linenumber" name="L7985" href="#L7985">7985</a> <strong class="jxr_keyword">return</strong> x2;
-<a class="jxr_linenumber" name="L7986" href="#L7986">7986</a> <strong class="jxr_keyword">if</strong> (x instanceof URL x3)
-<a class="jxr_linenumber" name="L7987" href="#L7987">7987</a> x3.toURI();
-<a class="jxr_linenumber" name="L7988" href="#L7988">7988</a> <strong class="jxr_keyword">if</strong> (x instanceof URIBuilder x4)
-<a class="jxr_linenumber" name="L7989" href="#L7989">7989</a> <strong class="jxr_keyword">return</strong> x4.build();
-<a class="jxr_linenumber" name="L7990" href="#L7990">7990</a> <strong class="jxr_keyword">var</strong> s = x == <strong class="jxr_keyword">null</strong> ? <span class="jxr_string">""</span> : x.toString();
-<a class="jxr_linenumber" name="L7991" href="#L7991">7991</a> <strong class="jxr_keyword">if</strong> (nn(rootUrl) && ! absUrlPattern.matcher(s).matches()) {
-<a class="jxr_linenumber" name="L7992" href="#L7992">7992</a> <strong class="jxr_keyword">if</strong> (s.isEmpty())
-<a class="jxr_linenumber" name="L7993" href="#L7993">7993</a> s = rootUrl;
-<a class="jxr_linenumber" name="L7994" href="#L7994">7994</a> <strong class="jxr_keyword">else</strong> {
-<a class="jxr_linenumber" name="L7995" href="#L7995">7995</a> <strong class="jxr_keyword">var</strong> sb = <strong class="jxr_keyword">new</strong> StringBuilder(rootUrl);
-<a class="jxr_linenumber" name="L7996" href="#L7996">7996</a> <strong class="jxr_keyword">if</strong> (! s.startsWith(<span class="jxr_string">"/"</span>))
-<a class="jxr_linenumber" name="L7997" href="#L7997">7997</a> sb.append('/');
-<a class="jxr_linenumber" name="L7998" href="#L7998">7998</a> sb.append(s);
-<a class="jxr_linenumber" name="L7999" href="#L7999">7999</a> s = sb.toString();
-<a class="jxr_linenumber" name="L8000" href="#L8000">8000</a> }
-<a class="jxr_linenumber" name="L8001" href="#L8001">8001</a> }
-<a class="jxr_linenumber" name="L8002" href="#L8002">8002</a> s = fixUrl(s);
-<a class="jxr_linenumber" name="L8003" href="#L8003">8003</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> URI(s);
-<a class="jxr_linenumber" name="L8004" href="#L8004">8004</a> } <strong class="jxr_keyword">catch</strong> (URISyntaxException e) {
-<a class="jxr_linenumber" name="L8005" href="#L8005">8005</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a name="RestCallException" href="../../../../../org/apache/juneau/rest/client/RestCallException.html#RestCallException">RestCallException</a>(<strong class="jxr_keyword">null</strong>, e, <span class="jxr_string">"Invalid URI encountered: {0}"</span>, x); <em class="jxr_comment">// Shouldn't happen.</em>
-<a class="jxr_linenumber" name="L8006" href="#L8006">8006</a> }
-<a class="jxr_linenumber" name="L8007" href="#L8007">8007</a> }
-<a class="jxr_linenumber" name="L8008" href="#L8008">8008</a> }
+<a class="jxr_linenumber" name="L7978" href="#L7978">7978</a> URI toURI(Object x, String rootUrl) <strong class="jxr_keyword">throws</strong> <a name="RestCallException" href="../../../../../org/apache/juneau/rest/client/RestCallException.html#RestCallException">RestCallException</a> {
+<a class="jxr_linenumber" name="L7979" href="#L7979">7979</a> <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="L7980" href="#L7980">7980</a> <strong class="jxr_keyword">if</strong> (x instanceof URI x2)
+<a class="jxr_linenumber" name="L7981" href="#L7981">7981</a> <strong class="jxr_keyword">return</strong> x2;
+<a class="jxr_linenumber" name="L7982" href="#L7982">7982</a> <strong class="jxr_keyword">if</strong> (x instanceof URL x3)
+<a class="jxr_linenumber" name="L7983" href="#L7983">7983</a> x3.toURI();
+<a class="jxr_linenumber" name="L7984" href="#L7984">7984</a> <strong class="jxr_keyword">if</strong> (x instanceof URIBuilder x4)
+<a class="jxr_linenumber" name="L7985" href="#L7985">7985</a> <strong class="jxr_keyword">return</strong> x4.build();
+<a class="jxr_linenumber" name="L7986" href="#L7986">7986</a> <strong class="jxr_keyword">var</strong> s = x == <strong class="jxr_keyword">null</strong> ? <span class="jxr_string">""</span> : x.toString();
+<a class="jxr_linenumber" name="L7987" href="#L7987">7987</a> <strong class="jxr_keyword">if</strong> (nn(rootUrl) && ! absUrlPattern.matcher(s).matches()) {
+<a class="jxr_linenumber" name="L7988" href="#L7988">7988</a> <strong class="jxr_keyword">if</strong> (s.isEmpty())
+<a class="jxr_linenumber" name="L7989" href="#L7989">7989</a> s = rootUrl;
+<a class="jxr_linenumber" name="L7990" href="#L7990">7990</a> <strong class="jxr_keyword">else</strong> {
+<a class="jxr_linenumber" name="L7991" href="#L7991">7991</a> <strong class="jxr_keyword">var</strong> sb = <strong class="jxr_keyword">new</strong> StringBuilder(rootUrl);
+<a class="jxr_linenumber" name="L7992" href="#L7992">7992</a> <strong class="jxr_keyword">if</strong> (! s.startsWith(<span class="jxr_string">"/"</span>))
+<a class="jxr_linenumber" name="L7993" href="#L7993">7993</a> sb.append('/');
+<a class="jxr_linenumber" name="L7994" href="#L7994">7994</a> sb.append(s);
+<a class="jxr_linenumber" name="L7995" href="#L7995">7995</a> s = sb.toString();
+<a class="jxr_linenumber" name="L7996" href="#L7996">7996</a> }
+<a class="jxr_linenumber" name="L7997" href="#L7997">7997</a> }
+<a class="jxr_linenumber" name="L7998" href="#L7998">7998</a> s = fixUrl(s);
+<a class="jxr_linenumber" name="L7999" href="#L7999">7999</a> <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> URI(s);
+<a class="jxr_linenumber" name="L8000" href="#L8000">8000</a> } <strong class="jxr_keyword">catch</strong> (URISyntaxException e) {
+<a class="jxr_linenumber" name="L8001" href="#L8001">8001</a> <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a name="RestCallException" href="../../../../../org/apache/juneau/rest/client/RestCallException.html#RestCallException">RestCallException</a>(<strong class="jxr_keyword">null</strong>, e, <span class="jxr_string">"Invalid URI encountered: {0}"</span>, x); <em class="jxr_comment">// Shouldn't happen.</em>
+<a class="jxr_linenumber" name="L8002" href="#L8002">8002</a> }
+<a class="jxr_linenumber" name="L8003" href="#L8003">8003</a> }
+<a class="jxr_linenumber" name="L8004" href="#L8004">8004</a> }
</pre>
<hr/>
<div id="footer">© 2016–2025 <a href="https://www.apache.org/">The Apache Software Foundation</a></div>
diff --git a/site/xref/org/apache/juneau/rest/mock/MockServletRequest.html b/site/xref/org/apache/juneau/rest/mock/MockServletRequest.html
index ca7db160da..6cd09c4424 100644
--- a/site/xref/org/apache/juneau/rest/mock/MockServletRequest.html
+++ b/site/xref/org/apache/juneau/rest/mock/MockServletRequest.html
@@ -84,7 +84,7 @@
<a class="jxr_linenumber" name="L76" href="#L76">76</a> <em class="jxr_javadoccomment"> * @return A new request.</em>
<a class="jxr_linenumber" name="L77" href="#L77">77</a> <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L78" href="#L78">78</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a name="MockServletRequest" href="../../../../../org/apache/juneau/rest/mock/MockServletRequest.html#MockServletRequest">MockServletRequest</a> create(String method, String uri, Object...pathArgs) {
-<a class="jxr_linenumber" name="L79" href="#L79">79</a> <strong class="jxr_keyword">return</strong> create().method(method).uri(mformat(uri, pathArgs));
+<a class="jxr_linenumber" name="L79" href="#L79">79</a> <strong class="jxr_keyword">return</strong> create().method(method).uri(f(uri, pathArgs));
<a class="jxr_linenumber" name="L80" href="#L80">80</a> }
<a class="jxr_linenumber" name="L81" href="#L81">81</a>
<a class="jxr_linenumber" name="L82" href="#L82">82</a> <strong class="jxr_keyword">private</strong> String method = <span class="jxr_string">"GET"</span>;
diff --git a/site/xref/org/apache/juneau/rest/servlet/RestObject.html b/site/xref/org/apache/juneau/rest/servlet/RestObject.html
index 95fdbe512b..c7ba72b263 100644
--- a/site/xref/org/apache/juneau/rest/servlet/RestObject.html
+++ b/site/xref/org/apache/juneau/rest/servlet/RestObject.html
@@ -78,7 +78,7 @@
<a class="jxr_linenumber" name="L70" href="#L70">70</a> <em class="jxr_javadoccomment"> * @param args Optional {@link MessageFormat}-style arguments.</em>
<a class="jxr_linenumber" name="L71" href="#L71">71</a> <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L72" href="#L72">72</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> log(Level level, String msg, Object...args) {
-<a class="jxr_linenumber" name="L73" href="#L73">73</a> doLog(level, <strong class="jxr_keyword">null</strong>, () -> mformat(msg, args));
+<a class="jxr_linenumber" name="L73" href="#L73">73</a> doLog(level, <strong class="jxr_keyword">null</strong>, fs(msg, args));
<a class="jxr_linenumber" name="L74" href="#L74">74</a> }
<a class="jxr_linenumber" name="L75" href="#L75">75</a>
<a class="jxr_linenumber" name="L76" href="#L76">76</a> <em class="jxr_javadoccomment">/**</em>
@@ -93,7 +93,7 @@
<a class="jxr_linenumber" name="L85" href="#L85">85</a> <em class="jxr_javadoccomment"> * @param args Optional {@link MessageFormat}-style arguments.</em>
<a class="jxr_linenumber" name="L86" href="#L86">86</a> <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L87" href="#L87">87</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> log(Level level, Throwable cause, String msg, Object...args) {
-<a class="jxr_linenumber" name="L88" href="#L88">88</a> doLog(level, cause, () -> mformat(msg, args));
+<a class="jxr_linenumber" name="L88" href="#L88">88</a> doLog(level, cause, fs(msg, args));
<a class="jxr_linenumber" name="L89" href="#L89">89</a> }
<a class="jxr_linenumber" name="L90" href="#L90">90</a>
<a class="jxr_linenumber" name="L91" href="#L91">91</a> <em class="jxr_javadoccomment">/**</em>
diff --git a/site/xref/org/apache/juneau/rest/servlet/RestServlet.html b/site/xref/org/apache/juneau/rest/servlet/RestServlet.html
index 90a73f31e5..8921a98a55 100644
--- a/site/xref/org/apache/juneau/rest/servlet/RestServlet.html
+++ b/site/xref/org/apache/juneau/rest/servlet/RestServlet.html
@@ -177,7 +177,7 @@
<a class="jxr_linenumber" name="L169" href="#L169">169</a> <em class="jxr_javadoccomment"> * @param args Optional {@link MessageFormat}-style arguments.</em>
<a class="jxr_linenumber" name="L170" href="#L170">170</a> <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L171" href="#L171">171</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> log(Level level, String msg, Object...args) {
-<a class="jxr_linenumber" name="L172" href="#L172">172</a> doLog(level, <strong class="jxr_keyword">null</strong>, () -> StringUtils.mformat(msg, args));
+<a class="jxr_linenumber" name="L172" href="#L172">172</a> doLog(level, <strong class="jxr_keyword">null</strong>, fs(msg, args));
<a class="jxr_linenumber" name="L173" href="#L173">173</a> }
<a class="jxr_linenumber" name="L174" href="#L174">174</a>
<a class="jxr_linenumber" name="L175" href="#L175">175</a> <em class="jxr_javadoccomment">/**</em>
@@ -192,7 +192,7 @@
<a class="jxr_linenumber" name="L184" href="#L184">184</a> <em class="jxr_javadoccomment"> * @param args Optional {@link MessageFormat}-style arguments.</em>
<a class="jxr_linenumber" name="L185" href="#L185">185</a> <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L186" href="#L186">186</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> log(Level level, Throwable cause, String msg, Object...args) {
-<a class="jxr_linenumber" name="L187" href="#L187">187</a> doLog(level, cause, () -> StringUtils.mformat(msg, args));
+<a class="jxr_linenumber" name="L187" href="#L187">187</a> doLog(level, cause, fs(msg, args));
<a class="jxr_linenumber" name="L188" href="#L188">188</a> }
<a class="jxr_linenumber" name="L189" href="#L189">189</a>
<a class="jxr_linenumber" name="L190" href="#L190">190</a> <em class="jxr_javadoccomment">/**</em>
diff --git a/site/xref/org/apache/juneau/rest/swagger/SwaggerException.html b/site/xref/org/apache/juneau/rest/swagger/SwaggerException.html
index 9d0caa2d0d..e18686bc45 100644
--- a/site/xref/org/apache/juneau/rest/swagger/SwaggerException.html
+++ b/site/xref/org/apache/juneau/rest/swagger/SwaggerException.html
@@ -25,16 +25,17 @@
<a class="jxr_linenumber" name="L17" href="#L17">17</a> <strong class="jxr_keyword">package</strong> org.apache.juneau.<strong class="jxr_keyword">rest</strong>.swagger;
<a class="jxr_linenumber" name="L18" href="#L18">18</a>
<a class="jxr_linenumber" name="L19" href="#L19">19</a> <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.juneau.common.utils.StringUtils.*;
-<a class="jxr_linenumber" name="L20" href="#L20">20</a>
-<a class="jxr_linenumber" name="L21" href="#L21">21</a> <strong class="jxr_keyword">import</strong> org.apache.juneau.parser.*;
-<a class="jxr_linenumber" name="L22" href="#L22">22</a>
-<a class="jxr_linenumber" name="L23" href="#L23">23</a> <strong class="jxr_keyword">class</strong> <a name="SwaggerException" href="../../../../../org/apache/juneau/rest/swagger/SwaggerException.html#SwaggerException">SwaggerException</a> <strong class="jxr_keyword">extends</strong> <a name="ParseException" href="../../../../../org/apache/juneau/parser/ParseException.html#ParseException">ParseException</a> {
-<a class="jxr_linenumber" name="L24" href="#L24">24</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> serialVersionUID = 1L;
-<a class="jxr_linenumber" name="L25" href="#L25">25</a>
-<a class="jxr_linenumber" name="L26" href="#L26">26</a> SwaggerException(Exception e, String location, Object...locationArgs) {
-<a class="jxr_linenumber" name="L27" href="#L27">27</a> <strong class="jxr_keyword">super</strong>(e, <span class="jxr_string">"Swagger exception: at "</span> + mformat(location, locationArgs));
-<a class="jxr_linenumber" name="L28" href="#L28">28</a> }
-<a class="jxr_linenumber" name="L29" href="#L29">29</a> }
+<a class="jxr_linenumber" name="L20" href="#L20">20</a> <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.juneau.common.utils.Utils.*;
+<a class="jxr_linenumber" name="L21" href="#L21">21</a>
+<a class="jxr_linenumber" name="L22" href="#L22">22</a> <strong class="jxr_keyword">import</strong> org.apache.juneau.parser.*;
+<a class="jxr_linenumber" name="L23" href="#L23">23</a>
+<a class="jxr_linenumber" name="L24" href="#L24">24</a> <strong class="jxr_keyword">class</strong> <a name="SwaggerException" href="../../../../../org/apache/juneau/rest/swagger/SwaggerException.html#SwaggerException">SwaggerException</a> <strong class="jxr_keyword">extends</strong> <a name="ParseException" href="../../../../../org/apache/juneau/parser/ParseException.html#ParseException">ParseException</a> {
+<a class="jxr_linenumber" name="L25" href="#L25">25</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> serialVersionUID = 1L;
+<a class="jxr_linenumber" name="L26" href="#L26">26</a>
+<a class="jxr_linenumber" name="L27" href="#L27">27</a> SwaggerException(Exception e, String location, Object...locationArgs) {
+<a class="jxr_linenumber" name="L28" href="#L28">28</a> <strong class="jxr_keyword">super</strong>(e, <span class="jxr_string">"Swagger exception: at "</span> + f(location, locationArgs));
+<a class="jxr_linenumber" name="L29" href="#L29">29</a> }
+<a class="jxr_linenumber" name="L30" href="#L30">30</a> }
</pre>
<hr/>
<div id="footer">© 2016–2025 <a href="https://www.apache.org/">The Apache Software Foundation</a></div>
diff --git a/site/xref/org/apache/juneau/serializer/SerializeException.html b/site/xref/org/apache/juneau/serializer/SerializeException.html
index a462ed0a46..f49a813821 100644
--- a/site/xref/org/apache/juneau/serializer/SerializeException.html
+++ b/site/xref/org/apache/juneau/serializer/SerializeException.html
@@ -68,7 +68,7 @@
<a class="jxr_linenumber" name="L60" href="#L60">60</a> }
<a class="jxr_linenumber" name="L61" href="#L61">61</a>
<a class="jxr_linenumber" name="L62" href="#L62">62</a> <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> String getMessage(<a name="SerializerSession" href="../../../../org/apache/juneau/serializer/SerializerSession.html#SerializerSession">SerializerSession</a> session, String msg, Object...args) {
-<a class="jxr_linenumber" name="L63" href="#L63">63</a> msg = mformat(msg, args);
+<a class="jxr_linenumber" name="L63" href="#L63">63</a> msg = f(msg, args);
<a class="jxr_linenumber" name="L64" href="#L64">64</a> <strong class="jxr_keyword">if</strong> (nn(session)) {
<a class="jxr_linenumber" name="L65" href="#L65">65</a> Map<String,Object> m = session.getLastLocation();
<a class="jxr_linenumber" name="L66" href="#L66">66</a> <strong class="jxr_keyword">if</strong> (nn(m) && ! m.isEmpty())
diff --git a/site/xref/org/apache/juneau/serializer/SerializerListener.html b/site/xref/org/apache/juneau/serializer/SerializerListener.html
index 8f18655b69..c4c8881abe 100644
--- a/site/xref/org/apache/juneau/serializer/SerializerListener.html
+++ b/site/xref/org/apache/juneau/serializer/SerializerListener.html
@@ -26,46 +26,47 @@
<a class="jxr_linenumber" name="L18" href="#L18">18</a>
<a class="jxr_linenumber" name="L19" href="#L19">19</a> <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.juneau.common.utils.StringUtils.*;
<a class="jxr_linenumber" name="L20" href="#L20">20</a> <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.juneau.common.utils.ThrowableUtils.*;
-<a class="jxr_linenumber" name="L21" href="#L21">21</a>
-<a class="jxr_linenumber" name="L22" href="#L22">22</a> <strong class="jxr_keyword">import</strong> org.apache.juneau.*;
-<a class="jxr_linenumber" name="L23" href="#L23">23</a>
-<a class="jxr_linenumber" name="L24" href="#L24">24</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L25" href="#L25">25</a> <em class="jxr_javadoccomment"> * Class for listening for serialize events during a serialization.</em>
-<a class="jxr_linenumber" name="L26" href="#L26">26</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L27" href="#L27">27</a> <em class="jxr_javadoccomment"> * <h5 class='section'>See Also:</h5><ul></em>
-<a class="jxr_linenumber" name="L28" href="#L28">28</a> <em class="jxr_javadoccomment"> * <li class='link'><a class="doclink" href="<a href="https://juneau.apache.org/docs/topics/SerializersAndParsers" target="alexandria_uri">https://juneau.apache.org/docs/topics/SerializersAndParsers</a>">Serializers and Parsers</a></em>
-<a class="jxr_linenumber" name="L29" href="#L29">29</a>
-<a class="jxr_linenumber" name="L30" href="#L30">30</a> <em class="jxr_javadoccomment"> * </ul></em>
-<a class="jxr_linenumber" name="L31" href="#L31">31</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L32" href="#L32">32</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a name="SerializerListener" href="../../../../org/apache/juneau/serializer/SerializerListener.html#SerializerListener">SerializerListener</a> {
-<a class="jxr_linenumber" name="L33" href="#L33">33</a>
-<a class="jxr_linenumber" name="L34" href="#L34">34</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L35" href="#L35">35</a> <em class="jxr_javadoccomment"> * Represents no serializer listener.</em>
-<a class="jxr_linenumber" name="L36" href="#L36">36</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L37" href="#L37">37</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> Void <strong class="jxr_keyword">extends</strong> <a name="SerializerListener" href="../../../../org/apache/juneau/serializer/SerializerListener.html#SerializerListener">SerializerListener</a> {}
-<a class="jxr_linenumber" name="L38" href="#L38">38</a>
-<a class="jxr_linenumber" name="L39" href="#L39">39</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L40" href="#L40">40</a> <em class="jxr_javadoccomment"> * Called when an exception is thrown when trying to call a bean getter method.</em>
-<a class="jxr_linenumber" name="L41" href="#L41">41</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L42" href="#L42">42</a> <em class="jxr_javadoccomment"> * @param session The serializer session.</em>
-<a class="jxr_linenumber" name="L43" href="#L43">43</a> <em class="jxr_javadoccomment"> * @param t The throwable that was thrown by the getter method.</em>
-<a class="jxr_linenumber" name="L44" href="#L44">44</a> <em class="jxr_javadoccomment"> * @param p The bean property we had an issue on.</em>
-<a class="jxr_linenumber" name="L45" href="#L45">45</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L46" href="#L46">46</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> onBeanGetterException(<a name="SerializerSession" href="../../../../org/apache/juneau/serializer/SerializerSession.html#SerializerSession">SerializerSession</a> session, Throwable t, BeanPropertyMeta p) {
-<a class="jxr_linenumber" name="L47" href="#L47">47</a> onError(session, t, mformat(<span class="jxr_string">"Could not call getValue() on property ''{0}'' of class ''{1}'', exception = {2}"</span>, p.getName(), p.getBeanMeta().getClassMeta(), lm(t)));
-<a class="jxr_linenumber" name="L48" href="#L48">48</a> }
-<a class="jxr_linenumber" name="L49" href="#L49">49</a>
-<a class="jxr_linenumber" name="L50" href="#L50">50</a> <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="L51" href="#L51">51</a> <em class="jxr_javadoccomment"> * Called when an error occurs during serialization but is ignored.</em>
-<a class="jxr_linenumber" name="L52" href="#L52">52</a> <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="L53" href="#L53">53</a> <em class="jxr_javadoccomment"> * @param session The serializer session.</em>
-<a class="jxr_linenumber" name="L54" href="#L54">54</a> <em class="jxr_javadoccomment"> * @param t The throwable that was thrown by the getter method.</em>
-<a class="jxr_linenumber" name="L55" href="#L55">55</a> <em class="jxr_javadoccomment"> * @param msg The error message.</em>
-<a class="jxr_linenumber" name="L56" href="#L56">56</a> <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="L57" href="#L57">57</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> onError(<a name="SerializerSession" href="../../../../org/apache/juneau/serializer/SerializerSession.html#SerializerSession">SerializerSession</a> session, Throwable t, String msg) {
-<a class="jxr_linenumber" name="L58" href="#L58">58</a> <em class="jxr_comment">// Do something with this information.</em>
-<a class="jxr_linenumber" name="L59" href="#L59">59</a> }
-<a class="jxr_linenumber" name="L60" href="#L60">60</a> }
+<a class="jxr_linenumber" name="L21" href="#L21">21</a> <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.juneau.common.utils.Utils.*;
+<a class="jxr_linenumber" name="L22" href="#L22">22</a>
+<a class="jxr_linenumber" name="L23" href="#L23">23</a> <strong class="jxr_keyword">import</strong> org.apache.juneau.*;
+<a class="jxr_linenumber" name="L24" href="#L24">24</a>
+<a class="jxr_linenumber" name="L25" href="#L25">25</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L26" href="#L26">26</a> <em class="jxr_javadoccomment"> * Class for listening for serialize events during a serialization.</em>
+<a class="jxr_linenumber" name="L27" href="#L27">27</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L28" href="#L28">28</a> <em class="jxr_javadoccomment"> * <h5 class='section'>See Also:</h5><ul></em>
+<a class="jxr_linenumber" name="L29" href="#L29">29</a> <em class="jxr_javadoccomment"> * <li class='link'><a class="doclink" href="<a href="https://juneau.apache.org/docs/topics/SerializersAndParsers" target="alexandria_uri">https://juneau.apache.org/docs/topics/SerializersAndParsers</a>">Serializers and Parsers</a></em>
+<a class="jxr_linenumber" name="L30" href="#L30">30</a>
+<a class="jxr_linenumber" name="L31" href="#L31">31</a> <em class="jxr_javadoccomment"> * </ul></em>
+<a class="jxr_linenumber" name="L32" href="#L32">32</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L33" href="#L33">33</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a name="SerializerListener" href="../../../../org/apache/juneau/serializer/SerializerListener.html#SerializerListener">SerializerListener</a> {
+<a class="jxr_linenumber" name="L34" href="#L34">34</a>
+<a class="jxr_linenumber" name="L35" href="#L35">35</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L36" href="#L36">36</a> <em class="jxr_javadoccomment"> * Represents no serializer listener.</em>
+<a class="jxr_linenumber" name="L37" href="#L37">37</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L38" href="#L38">38</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> Void <strong class="jxr_keyword">extends</strong> <a name="SerializerListener" href="../../../../org/apache/juneau/serializer/SerializerListener.html#SerializerListener">SerializerListener</a> {}
+<a class="jxr_linenumber" name="L39" href="#L39">39</a>
+<a class="jxr_linenumber" name="L40" href="#L40">40</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L41" href="#L41">41</a> <em class="jxr_javadoccomment"> * Called when an exception is thrown when trying to call a bean getter method.</em>
+<a class="jxr_linenumber" name="L42" href="#L42">42</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L43" href="#L43">43</a> <em class="jxr_javadoccomment"> * @param session The serializer session.</em>
+<a class="jxr_linenumber" name="L44" href="#L44">44</a> <em class="jxr_javadoccomment"> * @param t The throwable that was thrown by the getter method.</em>
+<a class="jxr_linenumber" name="L45" href="#L45">45</a> <em class="jxr_javadoccomment"> * @param p The bean property we had an issue on.</em>
+<a class="jxr_linenumber" name="L46" href="#L46">46</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L47" href="#L47">47</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> onBeanGetterException(<a name="SerializerSession" href="../../../../org/apache/juneau/serializer/SerializerSession.html#SerializerSession">SerializerSession</a> session, Throwable t, BeanPropertyMeta p) {
+<a class="jxr_linenumber" name="L48" href="#L48">48</a> onError(session, t, f(<span class="jxr_string">"Could not call getValue() on property ''{0}'' of class ''{1}'', exception = {2}"</span>, p.getName(), p.getBeanMeta().getClassMeta(), lm(t)));
+<a class="jxr_linenumber" name="L49" href="#L49">49</a> }
+<a class="jxr_linenumber" name="L50" href="#L50">50</a>
+<a class="jxr_linenumber" name="L51" href="#L51">51</a> <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L52" href="#L52">52</a> <em class="jxr_javadoccomment"> * Called when an error occurs during serialization but is ignored.</em>
+<a class="jxr_linenumber" name="L53" href="#L53">53</a> <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="L54" href="#L54">54</a> <em class="jxr_javadoccomment"> * @param session The serializer session.</em>
+<a class="jxr_linenumber" name="L55" href="#L55">55</a> <em class="jxr_javadoccomment"> * @param t The throwable that was thrown by the getter method.</em>
+<a class="jxr_linenumber" name="L56" href="#L56">56</a> <em class="jxr_javadoccomment"> * @param msg The error message.</em>
+<a class="jxr_linenumber" name="L57" href="#L57">57</a> <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L58" href="#L58">58</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> onError(<a name="SerializerSession" href="../../../../org/apache/juneau/serializer/SerializerSession.html#SerializerSession">SerializerSession</a> session, Throwable t, String msg) {
+<a class="jxr_linenumber" name="L59" href="#L59">59</a> <em class="jxr_comment">// Do something with this information.</em>
+<a class="jxr_linenumber" name="L60" href="#L60">60</a> }
+<a class="jxr_linenumber" name="L61" href="#L61">61</a> }
</pre>
<hr/>
<div id="footer">© 2016–2025 <a href="https://www.apache.org/">The Apache Software Foundation</a></div>
diff --git a/site/xref/org/apache/juneau/serializer/SerializerSession.html b/site/xref/org/apache/juneau/serializer/SerializerSession.html
index 2e649040a6..4ef8bf36b0 100644
--- a/site/xref/org/apache/juneau/serializer/SerializerSession.html
+++ b/site/xref/org/apache/juneau/serializer/SerializerSession.html
@@ -988,7 +988,7 @@
<a class="jxr_linenumber" name="L980" href="#L980">980</a> @Override
<a class="jxr_linenumber" name="L981" href="#L981">981</a> <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> onError(Throwable t, String msg, Object...args) {
<a class="jxr_linenumber" name="L982" href="#L982">982</a> <strong class="jxr_keyword">if</strong> (nn(listener))
-<a class="jxr_linenumber" name="L983" href="#L983">983</a> listener.onError(<strong class="jxr_keyword">this</strong>, t, mformat(msg, args));
+<a class="jxr_linenumber" name="L983" href="#L983">983</a> listener.onError(<strong class="jxr_keyword">this</strong>, t, f(msg, args));
<a class="jxr_linenumber" name="L984" href="#L984">984</a> <strong class="jxr_keyword">super</strong>.onError(t, msg, args);
<a class="jxr_linenumber" name="L985" href="#L985">985</a> }
<a class="jxr_linenumber" name="L986" href="#L986">986</a>