<!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="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>TextLineDecoderTest xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../stylesheet.css" />
</head>
<body>
<pre>

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> *  Licensed to the Apache Software Foundation (ASF) under one</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> *  or more contributor license agreements.  See the NOTICE file</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> *  distributed with this work for additional information</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> *  regarding copyright ownership.  The ASF licenses this file</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> *  to you under the Apache License, Version 2.0 (the</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> *  "License"); you may not use this file except in compliance</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> *  with the License.  You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
<a name="10" href="#10">10</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 name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> *  Unless required by applicable law or agreed to in writing,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> *  software distributed under the License is distributed on an</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> *  KIND, either express or implied.  See the License for the</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> *  specific language governing permissions and limitations</em>
<a name="17" href="#17">17</a>  <em class="jxr_comment"> *  under the License.</em>
<a name="18" href="#18">18</a>  <em class="jxr_comment"> *</em>
<a name="19" href="#19">19</a>  <em class="jxr_comment"> */</em>
<a name="20" href="#20">20</a>  <strong class="jxr_keyword">package</strong> org.apache.mina.filter.codec.textline;
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.nio.charset.Charset;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.nio.charset.CharsetEncoder;
<a name="24" href="#24">24</a>  
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> junit.framework.Assert;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> junit.framework.TestCase;
<a name="27" href="#27">27</a>  
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.buffer.IoBuffer;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.filter.codec.ProtocolCodecSession;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.filter.codec.ProtocolDecoderOutput;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.filter.codec.RecoverableProtocolDecoderException;
<a name="32" href="#32">32</a>  
<a name="33" href="#33">33</a>  <em class="jxr_javadoccomment">/**</em>
<a name="34" href="#34">34</a>  <em class="jxr_javadoccomment"> * Tests {@link TextLineDecoder}.</em>
<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment"> *</em>
<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> * @author The Apache MINA Project (dev@mina.apache.org)</em>
<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> */</em>
<a name="38" href="#38">38</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/mina/filter/codec/textline/TextLineDecoderTest.html">TextLineDecoderTest</a> <strong class="jxr_keyword">extends</strong> TestCase {
<a name="39" href="#39">39</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> main(String[] args) {
<a name="40" href="#40">40</a>          junit.textui.TestRunner.run(TextLineDecoderTest.<strong class="jxr_keyword">class</strong>);
<a name="41" href="#41">41</a>      }
<a name="42" href="#42">42</a>  
<a name="43" href="#43">43</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testNormalDecode() <strong class="jxr_keyword">throws</strong> Exception {
<a name="44" href="#44">44</a>          TextLineDecoder decoder = <strong class="jxr_keyword">new</strong> TextLineDecoder(Charset.forName(<span class="jxr_string">"UTF-8"</span>),
<a name="45" href="#45">45</a>                  LineDelimiter.WINDOWS);
<a name="46" href="#46">46</a>  
<a name="47" href="#47">47</a>          CharsetEncoder encoder = Charset.forName(<span class="jxr_string">"UTF-8"</span>).newEncoder();
<a name="48" href="#48">48</a>          ProtocolCodecSession session = <strong class="jxr_keyword">new</strong> ProtocolCodecSession();
<a name="49" href="#49">49</a>          ProtocolDecoderOutput out = session.getDecoderOutput();
<a name="50" href="#50">50</a>          IoBuffer in = IoBuffer.allocate(16);
<a name="51" href="#51">51</a>  
<a name="52" href="#52">52</a>          <em class="jxr_comment">// Test one decode and one output</em>
<a name="53" href="#53">53</a>          in.putString(<span class="jxr_string">"ABC\r\n"</span>, encoder);
<a name="54" href="#54">54</a>          in.flip();
<a name="55" href="#55">55</a>          decoder.decode(session, in, out);
<a name="56" href="#56">56</a>          Assert.assertEquals(1, session.getDecoderOutputQueue().size());
<a name="57" href="#57">57</a>          Assert.assertEquals(<span class="jxr_string">"ABC"</span>, session.getDecoderOutputQueue().poll());
<a name="58" href="#58">58</a>  
<a name="59" href="#59">59</a>          <em class="jxr_comment">// Test two decode and one output</em>
<a name="60" href="#60">60</a>          in.clear();
<a name="61" href="#61">61</a>          in.putString(<span class="jxr_string">"DEF"</span>, encoder);
<a name="62" href="#62">62</a>          in.flip();
<a name="63" href="#63">63</a>          decoder.decode(session, in, out);
<a name="64" href="#64">64</a>          Assert.assertEquals(0, session.getDecoderOutputQueue().size());
<a name="65" href="#65">65</a>          in.clear();
<a name="66" href="#66">66</a>          in.putString(<span class="jxr_string">"GHI\r\n"</span>, encoder);
<a name="67" href="#67">67</a>          in.flip();
<a name="68" href="#68">68</a>          decoder.decode(session, in, out);
<a name="69" href="#69">69</a>          Assert.assertEquals(1, session.getDecoderOutputQueue().size());
<a name="70" href="#70">70</a>          Assert.assertEquals(<span class="jxr_string">"DEFGHI"</span>, session.getDecoderOutputQueue().poll());
<a name="71" href="#71">71</a>  
<a name="72" href="#72">72</a>          <em class="jxr_comment">// Test one decode and two output</em>
<a name="73" href="#73">73</a>          in.clear();
<a name="74" href="#74">74</a>          in.putString(<span class="jxr_string">"JKL\r\nMNO\r\n"</span>, encoder);
<a name="75" href="#75">75</a>          in.flip();
<a name="76" href="#76">76</a>          decoder.decode(session, in, out);
<a name="77" href="#77">77</a>          Assert.assertEquals(2, session.getDecoderOutputQueue().size());
<a name="78" href="#78">78</a>          Assert.assertEquals(<span class="jxr_string">"JKL"</span>, session.getDecoderOutputQueue().poll());
<a name="79" href="#79">79</a>          Assert.assertEquals(<span class="jxr_string">"MNO"</span>, session.getDecoderOutputQueue().poll());
<a name="80" href="#80">80</a>  
<a name="81" href="#81">81</a>          <em class="jxr_comment">// Test aborted delimiter (DIRMINA-506)</em>
<a name="82" href="#82">82</a>          in.clear();
<a name="83" href="#83">83</a>          in.putString(<span class="jxr_string">"ABC\r\r\n"</span>, encoder);
<a name="84" href="#84">84</a>          in.flip();
<a name="85" href="#85">85</a>          decoder.decode(session, in, out);
<a name="86" href="#86">86</a>          Assert.assertEquals(1, session.getDecoderOutputQueue().size());
<a name="87" href="#87">87</a>          Assert.assertEquals(<span class="jxr_string">"ABC\r"</span>, session.getDecoderOutputQueue().poll());
<a name="88" href="#88">88</a>  
<a name="89" href="#89">89</a>          <em class="jxr_comment">// Test splitted long delimiter</em>
<a name="90" href="#90">90</a>          decoder = <strong class="jxr_keyword">new</strong> TextLineDecoder(Charset.forName(<span class="jxr_string">"UTF-8"</span>),
<a name="91" href="#91">91</a>                  <strong class="jxr_keyword">new</strong> LineDelimiter(<span class="jxr_string">"\n\n\n"</span>));
<a name="92" href="#92">92</a>          in.clear();
<a name="93" href="#93">93</a>          in.putString(<span class="jxr_string">"PQR\n"</span>, encoder);
<a name="94" href="#94">94</a>          in.flip();
<a name="95" href="#95">95</a>          decoder.decode(session, in, out);
<a name="96" href="#96">96</a>          Assert.assertEquals(0, session.getDecoderOutputQueue().size());
<a name="97" href="#97">97</a>          in.clear();
<a name="98" href="#98">98</a>          in.putString(<span class="jxr_string">"\n"</span>, encoder);
<a name="99" href="#99">99</a>          in.flip();
<a name="100" href="#100">100</a>         decoder.decode(session, in, out);
<a name="101" href="#101">101</a>         Assert.assertEquals(0, session.getDecoderOutputQueue().size());
<a name="102" href="#102">102</a>         in.clear();
<a name="103" href="#103">103</a>         in.putString(<span class="jxr_string">"\n"</span>, encoder);
<a name="104" href="#104">104</a>         in.flip();
<a name="105" href="#105">105</a>         decoder.decode(session, in, out);
<a name="106" href="#106">106</a>         Assert.assertEquals(1, session.getDecoderOutputQueue().size());
<a name="107" href="#107">107</a>         Assert.assertEquals(<span class="jxr_string">"PQR"</span>, session.getDecoderOutputQueue().poll());
<a name="108" href="#108">108</a> 
<a name="109" href="#109">109</a>         <em class="jxr_comment">// Test splitted long delimiter which produces two output</em>
<a name="110" href="#110">110</a>         decoder = <strong class="jxr_keyword">new</strong> TextLineDecoder(Charset.forName(<span class="jxr_string">"UTF-8"</span>),
<a name="111" href="#111">111</a>                 <strong class="jxr_keyword">new</strong> LineDelimiter(<span class="jxr_string">"\n\n\n"</span>));
<a name="112" href="#112">112</a>         in.clear();
<a name="113" href="#113">113</a>         in.putString(<span class="jxr_string">"PQR\n"</span>, encoder);
<a name="114" href="#114">114</a>         in.flip();
<a name="115" href="#115">115</a>         decoder.decode(session, in, out);
<a name="116" href="#116">116</a>         Assert.assertEquals(0, session.getDecoderOutputQueue().size());
<a name="117" href="#117">117</a>         in.clear();
<a name="118" href="#118">118</a>         in.putString(<span class="jxr_string">"\n"</span>, encoder);
<a name="119" href="#119">119</a>         in.flip();
<a name="120" href="#120">120</a>         decoder.decode(session, in, out);
<a name="121" href="#121">121</a>         Assert.assertEquals(0, session.getDecoderOutputQueue().size());
<a name="122" href="#122">122</a>         in.clear();
<a name="123" href="#123">123</a>         in.putString(<span class="jxr_string">"\nSTU\n\n\n"</span>, encoder);
<a name="124" href="#124">124</a>         in.flip();
<a name="125" href="#125">125</a>         decoder.decode(session, in, out);
<a name="126" href="#126">126</a>         Assert.assertEquals(2,session.getDecoderOutputQueue().size());
<a name="127" href="#127">127</a>         Assert.assertEquals(<span class="jxr_string">"PQR"</span>, session.getDecoderOutputQueue().poll());
<a name="128" href="#128">128</a>         Assert.assertEquals(<span class="jxr_string">"STU"</span>, session.getDecoderOutputQueue().poll());
<a name="129" href="#129">129</a> 
<a name="130" href="#130">130</a>         <em class="jxr_comment">// Test splitted long delimiter mixed with partial non-delimiter.</em>
<a name="131" href="#131">131</a>         decoder = <strong class="jxr_keyword">new</strong> TextLineDecoder(Charset.forName(<span class="jxr_string">"UTF-8"</span>),
<a name="132" href="#132">132</a>                 <strong class="jxr_keyword">new</strong> LineDelimiter(<span class="jxr_string">"\n\n\n"</span>));
<a name="133" href="#133">133</a>         in.clear();
<a name="134" href="#134">134</a>         in.putString(<span class="jxr_string">"PQR\n"</span>, encoder);
<a name="135" href="#135">135</a>         in.flip();
<a name="136" href="#136">136</a>         decoder.decode(session, in, out);
<a name="137" href="#137">137</a>         Assert.assertEquals(0, session.getDecoderOutputQueue().size());
<a name="138" href="#138">138</a>         in.clear();
<a name="139" href="#139">139</a>         in.putString(<span class="jxr_string">"X\n"</span>, encoder);
<a name="140" href="#140">140</a>         in.flip();
<a name="141" href="#141">141</a>         decoder.decode(session, in, out);
<a name="142" href="#142">142</a>         Assert.assertEquals(0, session.getDecoderOutputQueue().size());
<a name="143" href="#143">143</a>         in.clear();
<a name="144" href="#144">144</a>         in.putString(<span class="jxr_string">"\n\nSTU\n\n\n"</span>, encoder);
<a name="145" href="#145">145</a>         in.flip();
<a name="146" href="#146">146</a>         decoder.decode(session, in, out);
<a name="147" href="#147">147</a>         Assert.assertEquals(2, session.getDecoderOutputQueue().size());
<a name="148" href="#148">148</a>         Assert.assertEquals(<span class="jxr_string">"PQR\nX"</span>, session.getDecoderOutputQueue().poll());
<a name="149" href="#149">149</a>         Assert.assertEquals(<span class="jxr_string">"STU"</span>, session.getDecoderOutputQueue().poll());
<a name="150" href="#150">150</a>     }
<a name="151" href="#151">151</a> 
<a name="152" href="#152">152</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testAutoDecode() <strong class="jxr_keyword">throws</strong> Exception {
<a name="153" href="#153">153</a>         TextLineDecoder decoder = <strong class="jxr_keyword">new</strong> TextLineDecoder(Charset.forName(<span class="jxr_string">"UTF-8"</span>),
<a name="154" href="#154">154</a>                 LineDelimiter.AUTO);
<a name="155" href="#155">155</a> 
<a name="156" href="#156">156</a>         CharsetEncoder encoder = Charset.forName(<span class="jxr_string">"UTF-8"</span>).newEncoder();
<a name="157" href="#157">157</a>         ProtocolCodecSession session = <strong class="jxr_keyword">new</strong> ProtocolCodecSession();
<a name="158" href="#158">158</a>         ProtocolDecoderOutput out = session.getDecoderOutput();
<a name="159" href="#159">159</a>         IoBuffer in = IoBuffer.allocate(16);
<a name="160" href="#160">160</a> 
<a name="161" href="#161">161</a>         <em class="jxr_comment">// Test one decode and one output</em>
<a name="162" href="#162">162</a>         in.putString(<span class="jxr_string">"ABC\r\n"</span>, encoder);
<a name="163" href="#163">163</a>         in.flip();
<a name="164" href="#164">164</a>         decoder.decode(session, in, out);
<a name="165" href="#165">165</a>         Assert.assertEquals(1, session.getDecoderOutputQueue().size());
<a name="166" href="#166">166</a>         Assert.assertEquals(<span class="jxr_string">"ABC"</span>, session.getDecoderOutputQueue().poll());
<a name="167" href="#167">167</a> 
<a name="168" href="#168">168</a>         <em class="jxr_comment">// Test two decode and one output</em>
<a name="169" href="#169">169</a>         in.clear();
<a name="170" href="#170">170</a>         in.putString(<span class="jxr_string">"DEF"</span>, encoder);
<a name="171" href="#171">171</a>         in.flip();
<a name="172" href="#172">172</a>         decoder.decode(session, in, out);
<a name="173" href="#173">173</a>         Assert.assertEquals(0, session.getDecoderOutputQueue().size());
<a name="174" href="#174">174</a>         in.clear();
<a name="175" href="#175">175</a>         in.putString(<span class="jxr_string">"GHI\r\n"</span>, encoder);
<a name="176" href="#176">176</a>         in.flip();
<a name="177" href="#177">177</a>         decoder.decode(session, in, out);
<a name="178" href="#178">178</a>         Assert.assertEquals(1, session.getDecoderOutputQueue().size());
<a name="179" href="#179">179</a>         Assert.assertEquals(<span class="jxr_string">"DEFGHI"</span>, session.getDecoderOutputQueue().poll());
<a name="180" href="#180">180</a> 
<a name="181" href="#181">181</a>         <em class="jxr_comment">// Test one decode and two output</em>
<a name="182" href="#182">182</a>         in.clear();
<a name="183" href="#183">183</a>         in.putString(<span class="jxr_string">"JKL\r\nMNO\r\n"</span>, encoder);
<a name="184" href="#184">184</a>         in.flip();
<a name="185" href="#185">185</a>         decoder.decode(session, in, out);
<a name="186" href="#186">186</a>         Assert.assertEquals(2, session.getDecoderOutputQueue().size());
<a name="187" href="#187">187</a>         Assert.assertEquals(<span class="jxr_string">"JKL"</span>, session.getDecoderOutputQueue().poll());
<a name="188" href="#188">188</a>         Assert.assertEquals(<span class="jxr_string">"MNO"</span>, session.getDecoderOutputQueue().poll());
<a name="189" href="#189">189</a> 
<a name="190" href="#190">190</a>         <em class="jxr_comment">// Test multiple '\n's</em>
<a name="191" href="#191">191</a>         in.clear();
<a name="192" href="#192">192</a>         in.putString(<span class="jxr_string">"\n\n\n"</span>, encoder);
<a name="193" href="#193">193</a>         in.flip();
<a name="194" href="#194">194</a>         decoder.decode(session, in, out);
<a name="195" href="#195">195</a>         Assert.assertEquals(3, session.getDecoderOutputQueue().size());
<a name="196" href="#196">196</a>         Assert.assertEquals(<span class="jxr_string">""</span>, session.getDecoderOutputQueue().poll());
<a name="197" href="#197">197</a>         Assert.assertEquals(<span class="jxr_string">""</span>, session.getDecoderOutputQueue().poll());
<a name="198" href="#198">198</a>         Assert.assertEquals(<span class="jxr_string">""</span>, session.getDecoderOutputQueue().poll());
<a name="199" href="#199">199</a> 
<a name="200" href="#200">200</a>         <em class="jxr_comment">// Test splitted long delimiter (\r\r\n)</em>
<a name="201" href="#201">201</a>         in.clear();
<a name="202" href="#202">202</a>         in.putString(<span class="jxr_string">"PQR\r"</span>, encoder);
<a name="203" href="#203">203</a>         in.flip();
<a name="204" href="#204">204</a>         decoder.decode(session, in, out);
<a name="205" href="#205">205</a>         Assert.assertEquals(0, session.getDecoderOutputQueue().size());
<a name="206" href="#206">206</a>         in.clear();
<a name="207" href="#207">207</a>         in.putString(<span class="jxr_string">"\r"</span>, encoder);
<a name="208" href="#208">208</a>         in.flip();
<a name="209" href="#209">209</a>         decoder.decode(session, in, out);
<a name="210" href="#210">210</a>         Assert.assertEquals(0, session.getDecoderOutputQueue().size());
<a name="211" href="#211">211</a>         in.clear();
<a name="212" href="#212">212</a>         in.putString(<span class="jxr_string">"\n"</span>, encoder);
<a name="213" href="#213">213</a>         in.flip();
<a name="214" href="#214">214</a>         decoder.decode(session, in, out);
<a name="215" href="#215">215</a>         Assert.assertEquals(1, session.getDecoderOutputQueue().size());
<a name="216" href="#216">216</a>         Assert.assertEquals(<span class="jxr_string">"PQR"</span>, session.getDecoderOutputQueue().poll());
<a name="217" href="#217">217</a> 
<a name="218" href="#218">218</a>         <em class="jxr_comment">// Test splitted long delimiter (\r\r\n) which produces two output</em>
<a name="219" href="#219">219</a>         in.clear();
<a name="220" href="#220">220</a>         in.putString(<span class="jxr_string">"PQR\r"</span>, encoder);
<a name="221" href="#221">221</a>         in.flip();
<a name="222" href="#222">222</a>         decoder.decode(session, in, out);
<a name="223" href="#223">223</a>         Assert.assertEquals(0, session.getDecoderOutputQueue().size());
<a name="224" href="#224">224</a>         in.clear();
<a name="225" href="#225">225</a>         in.putString(<span class="jxr_string">"\r"</span>, encoder);
<a name="226" href="#226">226</a>         in.flip();
<a name="227" href="#227">227</a>         decoder.decode(session, in, out);
<a name="228" href="#228">228</a>         Assert.assertEquals(0, session.getDecoderOutputQueue().size());
<a name="229" href="#229">229</a>         in.clear();
<a name="230" href="#230">230</a>         in.putString(<span class="jxr_string">"\nSTU\r\r\n"</span>, encoder);
<a name="231" href="#231">231</a>         in.flip();
<a name="232" href="#232">232</a>         decoder.decode(session, in, out);
<a name="233" href="#233">233</a>         Assert.assertEquals(2, session.getDecoderOutputQueue().size());
<a name="234" href="#234">234</a>         Assert.assertEquals(<span class="jxr_string">"PQR"</span>, session.getDecoderOutputQueue().poll());
<a name="235" href="#235">235</a>         Assert.assertEquals(<span class="jxr_string">"STU"</span>, session.getDecoderOutputQueue().poll());
<a name="236" href="#236">236</a> 
<a name="237" href="#237">237</a>         <em class="jxr_comment">// Test splitted long delimiter mixed with partial non-delimiter.</em>
<a name="238" href="#238">238</a>         in.clear();
<a name="239" href="#239">239</a>         in.putString(<span class="jxr_string">"PQR\r"</span>, encoder);
<a name="240" href="#240">240</a>         in.flip();
<a name="241" href="#241">241</a>         decoder.decode(session, in, out);
<a name="242" href="#242">242</a>         Assert.assertEquals(0, session.getDecoderOutputQueue().size());
<a name="243" href="#243">243</a>         in.clear();
<a name="244" href="#244">244</a>         in.putString(<span class="jxr_string">"X\r"</span>, encoder);
<a name="245" href="#245">245</a>         in.flip();
<a name="246" href="#246">246</a>         decoder.decode(session, in, out);
<a name="247" href="#247">247</a>         Assert.assertEquals(0, session.getDecoderOutputQueue().size());
<a name="248" href="#248">248</a>         in.clear();
<a name="249" href="#249">249</a>         in.putString(<span class="jxr_string">"\r\nSTU\r\r\n"</span>, encoder);
<a name="250" href="#250">250</a>         in.flip();
<a name="251" href="#251">251</a>         decoder.decode(session, in, out);
<a name="252" href="#252">252</a>         Assert.assertEquals(2, session.getDecoderOutputQueue().size());
<a name="253" href="#253">253</a>         Assert.assertEquals(<span class="jxr_string">"PQR\rX"</span>, session.getDecoderOutputQueue().poll());
<a name="254" href="#254">254</a>         Assert.assertEquals(<span class="jxr_string">"STU"</span>, session.getDecoderOutputQueue().poll());
<a name="255" href="#255">255</a>     }
<a name="256" href="#256">256</a> 
<a name="257" href="#257">257</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testOverflow() <strong class="jxr_keyword">throws</strong> Exception {
<a name="258" href="#258">258</a>         TextLineDecoder decoder = <strong class="jxr_keyword">new</strong> TextLineDecoder(Charset.forName(<span class="jxr_string">"UTF-8"</span>),
<a name="259" href="#259">259</a>                 LineDelimiter.AUTO);
<a name="260" href="#260">260</a>         decoder.setMaxLineLength(3);
<a name="261" href="#261">261</a> 
<a name="262" href="#262">262</a>         CharsetEncoder encoder = Charset.forName(<span class="jxr_string">"UTF-8"</span>).newEncoder();
<a name="263" href="#263">263</a>         ProtocolCodecSession session = <strong class="jxr_keyword">new</strong> ProtocolCodecSession();
<a name="264" href="#264">264</a>         ProtocolDecoderOutput out = session.getDecoderOutput();
<a name="265" href="#265">265</a>         IoBuffer in = IoBuffer.allocate(16);
<a name="266" href="#266">266</a> 
<a name="267" href="#267">267</a>         <em class="jxr_comment">// Make sure the overflow exception is not thrown until</em>
<a name="268" href="#268">268</a>         <em class="jxr_comment">// the delimiter is encountered.</em>
<a name="269" href="#269">269</a>         in.putString(<span class="jxr_string">"A"</span>, encoder).flip().mark();
<a name="270" href="#270">270</a>         decoder.decode(session, in.reset().mark(), out);
<a name="271" href="#271">271</a>         Assert.assertEquals(0, session.getDecoderOutputQueue().size());
<a name="272" href="#272">272</a>         decoder.decode(session, in.reset().mark(), out);
<a name="273" href="#273">273</a>         Assert.assertEquals(0, session.getDecoderOutputQueue().size());
<a name="274" href="#274">274</a>         decoder.decode(session, in.reset().mark(), out);
<a name="275" href="#275">275</a>         Assert.assertEquals(0, session.getDecoderOutputQueue().size());
<a name="276" href="#276">276</a>         decoder.decode(session, in.reset().mark(), out);
<a name="277" href="#277">277</a>         Assert.assertEquals(0, session.getDecoderOutputQueue().size());
<a name="278" href="#278">278</a> 
<a name="279" href="#279">279</a>         in.clear().putString(<span class="jxr_string">"A\r\nB\r\n"</span>, encoder).flip();
<a name="280" href="#280">280</a>         <strong class="jxr_keyword">try</strong> {
<a name="281" href="#281">281</a>             decoder.decode(session, in, out);
<a name="282" href="#282">282</a>             Assert.fail();
<a name="283" href="#283">283</a>         } <strong class="jxr_keyword">catch</strong> (RecoverableProtocolDecoderException e) {
<a name="284" href="#284">284</a>             <em class="jxr_comment">// signifies a successful test execution</em>
<a name="285" href="#285">285</a>             Assert.assertTrue(<strong class="jxr_keyword">true</strong>);
<a name="286" href="#286">286</a>         }
<a name="287" href="#287">287</a> 
<a name="288" href="#288">288</a>         decoder.decode(session, in, out);
<a name="289" href="#289">289</a>         Assert.assertEquals(1, session.getDecoderOutputQueue().size());
<a name="290" href="#290">290</a>         Assert.assertEquals(<span class="jxr_string">"B"</span>, session.getDecoderOutputQueue().poll());
<a name="291" href="#291">291</a> 
<a name="292" href="#292">292</a>         <em class="jxr_comment">// Make sure OOM is not thrown.</em>
<a name="293" href="#293">293</a>         System.gc();
<a name="294" href="#294">294</a>         <strong class="jxr_keyword">long</strong> oldFreeMemory = Runtime.getRuntime().freeMemory();
<a name="295" href="#295">295</a>         in = IoBuffer.allocate(1048576 * 16).sweep((byte) ' ').mark();
<a name="296" href="#296">296</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 10; i ++) {
<a name="297" href="#297">297</a>             decoder.decode(session, in.reset().mark(), out);
<a name="298" href="#298">298</a>             Assert.assertEquals(0, session.getDecoderOutputQueue().size());
<a name="299" href="#299">299</a> 
<a name="300" href="#300">300</a>             <em class="jxr_comment">// Memory consumption should be minimal.</em>
<a name="301" href="#301">301</a>             Assert.assertTrue(Runtime.getRuntime().freeMemory() - oldFreeMemory &lt; 1048576);
<a name="302" href="#302">302</a>         }
<a name="303" href="#303">303</a> 
<a name="304" href="#304">304</a>         in.clear().putString(<span class="jxr_string">"C\r\nD\r\n"</span>, encoder).flip();
<a name="305" href="#305">305</a>         <strong class="jxr_keyword">try</strong> {
<a name="306" href="#306">306</a>             decoder.decode(session, in, out);
<a name="307" href="#307">307</a>             Assert.fail();
<a name="308" href="#308">308</a>         } <strong class="jxr_keyword">catch</strong> (RecoverableProtocolDecoderException e) {
<a name="309" href="#309">309</a>             <em class="jxr_comment">// signifies a successful test execution</em>
<a name="310" href="#310">310</a>             Assert.assertTrue(<strong class="jxr_keyword">true</strong>);
<a name="311" href="#311">311</a>         }
<a name="312" href="#312">312</a> 
<a name="313" href="#313">313</a>         decoder.decode(session, in, out);
<a name="314" href="#314">314</a>         Assert.assertEquals(1, session.getDecoderOutputQueue().size());
<a name="315" href="#315">315</a>         Assert.assertEquals(<span class="jxr_string">"D"</span>, session.getDecoderOutputQueue().poll());
<a name="316" href="#316">316</a> 
<a name="317" href="#317">317</a>         <em class="jxr_comment">// Memory consumption should be minimal.</em>
<a name="318" href="#318">318</a>         Assert.assertTrue(Runtime.getRuntime().freeMemory() - oldFreeMemory &lt; 1048576);
<a name="319" href="#319">319</a>     }
<a name="320" href="#320">320</a>     
<a name="321" href="#321">321</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSMTPDataBounds() <strong class="jxr_keyword">throws</strong> Exception {
<a name="322" href="#322">322</a>         TextLineDecoder decoder = <strong class="jxr_keyword">new</strong> TextLineDecoder(Charset.forName(<span class="jxr_string">"ISO-8859-1"</span>),
<a name="323" href="#323">323</a>                 <strong class="jxr_keyword">new</strong> LineDelimiter(<span class="jxr_string">"\r\n.\r\n"</span>));
<a name="324" href="#324">324</a> 
<a name="325" href="#325">325</a>         CharsetEncoder encoder = Charset.forName(<span class="jxr_string">"ISO-8859-1"</span>).newEncoder();
<a name="326" href="#326">326</a>         ProtocolCodecSession session = <strong class="jxr_keyword">new</strong> ProtocolCodecSession();
<a name="327" href="#327">327</a>         IoBuffer in = IoBuffer.allocate(16).setAutoExpand(<strong class="jxr_keyword">true</strong>);
<a name="328" href="#328">328</a> 
<a name="329" href="#329">329</a>         in.putString(<span class="jxr_string">"\r\n"</span>, encoder).flip().mark();
<a name="330" href="#330">330</a>         decoder.decode(session, in.reset().mark(), session.getDecoderOutput());
<a name="331" href="#331">331</a>         Assert.assertEquals(0, session.getDecoderOutputQueue().size());
<a name="332" href="#332">332</a>         in.putString(<span class="jxr_string">"Body\r\n.\r\n"</span>, encoder).flip().mark();
<a name="333" href="#333">333</a>         decoder.decode(session, in.reset().mark(), session.getDecoderOutput());
<a name="334" href="#334">334</a>         Assert.assertEquals(1, session.getDecoderOutputQueue().size());
<a name="335" href="#335">335</a>         Assert.assertEquals(<span class="jxr_string">"\r\n\r\nBody"</span>, session.getDecoderOutputQueue().poll());
<a name="336" href="#336">336</a>     }
<a name="337" href="#337">337</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

