Modified: websites/production/commons/content/proper/commons-fileupload/cobertura/org.apache.commons.fileupload.MultipartStream.html ============================================================================== --- websites/production/commons/content/proper/commons-fileupload/cobertura/org.apache.commons.fileupload.MultipartStream.html (original) +++ websites/production/commons/content/proper/commons-fileupload/cobertura/org.apache.commons.fileupload.MultipartStream.html Wed Jan 16 11:35:52 2019 @@ -12,11 +12,11 @@ <div class="separator"> </div> <table class="report"> <thead><tr> <td class="heading">Classes in this File</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead> - <tr><td><a href="org.apache.commons.fileupload.MultipartStream.html">MultipartStream</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">76%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:76px"><span class="text">107/139</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">77%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:77px"><span class="text">37/48</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.210526315789474;</span>3,211</td></tr> - <tr><td><a href="org.apache.commons.fileupload.MultipartStream.html">MultipartStream$IllegalBoundaryException</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/4</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.210526315789474;</span>3,211</td></tr> - <tr><td><a href="org.apache.commons.fileupload.MultipartStream.html">MultipartStream$ItemInputStream</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">80%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:80px"><span class="text">65/81</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">73%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:73px"><span class="text">34/46</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.210526315789474;</span>3,211</td></tr> - <tr><td><a href="org.apache.commons.fileupload.MultipartStream.html">MultipartStream$MalformedStreamException</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">50%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:50px"><span class="text">2/4</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.210526315789474;</span>3,211</td></tr> - <tr><td><a href="org.apache.commons.fileupload.MultipartStream.html">MultipartStream$ProgressNotifier</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">100%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">13/13</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">100%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">2/2</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.210526315789474;</span>3,211</td></tr> + <tr><td><a href="org.apache.commons.fileupload.MultipartStream.html">MultipartStream</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">77%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:77px"><span class="text">108/140</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">77%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:77px"><span class="text">37/48</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.210526315789474;</span>3.211</td></tr> + <tr><td><a href="org.apache.commons.fileupload.MultipartStream.html">MultipartStream$IllegalBoundaryException</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/4</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.210526315789474;</span>3.211</td></tr> + <tr><td><a href="org.apache.commons.fileupload.MultipartStream.html">MultipartStream$ItemInputStream</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">80%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:80px"><span class="text">65/81</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">73%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:73px"><span class="text">34/46</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.210526315789474;</span>3.211</td></tr> + <tr><td><a href="org.apache.commons.fileupload.MultipartStream.html">MultipartStream$MalformedStreamException</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">50%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:50px"><span class="text">2/4</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.210526315789474;</span>3.211</td></tr> + <tr><td><a href="org.apache.commons.fileupload.MultipartStream.html">MultipartStream$ProgressNotifier</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">100%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">13/13</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">100%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">2/2</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.210526315789474;</span>3.211</td></tr> </table> <div class="separator"> </div> @@ -187,7 +187,7 @@ <td class="src"><pre class="src"> <span class="comment"> * </pre></span></pre></td></tr> <tr> <td class="numLine"> 83</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 84</td> <td class="nbHitsCovered"> 66303117</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> MultipartStream {</pre></td></tr> +<tr> <td class="numLineCover"> 84</td> <td class="nbHitsCovered"> 66303156</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> MultipartStream {</pre></td></tr> <tr> <td class="numLine"> 85</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 86</td> <td class="nbHits"> </td> @@ -256,10 +256,10 @@ <td class="src"><pre class="src"> <span class="comment"> * @param pContentLength The expected content length.</span></pre></td></tr> <tr> <td class="numLine"> 118</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 119</td> <td class="nbHitsCovered"> 38</td> <td class="src"><pre class="src"> ProgressNotifier(ProgressListener pListener, <span class="keyword">long</span> pContentLength) {</pre></td></tr> -<tr> <td class="numLineCover"> 120</td> <td class="nbHitsCovered"> 38</td> <td class="src"><pre class="src"> listener = pListener;</pre></td></tr> -<tr> <td class="numLineCover"> 121</td> <td class="nbHitsCovered"> 38</td> <td class="src"><pre class="src"> contentLength = pContentLength;</pre></td></tr> -<tr> <td class="numLineCover"> 122</td> <td class="nbHitsCovered"> 38</td> <td class="src"><pre class="src"> }</pre></td></tr> +<tr> <td class="numLineCover"> 119</td> <td class="nbHitsCovered"> 39</td> <td class="src"><pre class="src"> ProgressNotifier(ProgressListener pListener, <span class="keyword">long</span> pContentLength) {</pre></td></tr> +<tr> <td class="numLineCover"> 120</td> <td class="nbHitsCovered"> 39</td> <td class="src"><pre class="src"> listener = pListener;</pre></td></tr> +<tr> <td class="numLineCover"> 121</td> <td class="nbHitsCovered"> 39</td> <td class="src"><pre class="src"> contentLength = pContentLength;</pre></td></tr> +<tr> <td class="numLineCover"> 122</td> <td class="nbHitsCovered"> 39</td> <td class="src"><pre class="src"> }</pre></td></tr> <tr> <td class="numLine"> 123</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 124</td> <td class="nbHits"> </td> @@ -280,9 +280,9 @@ <td class="src"><pre class="src"> <span class="comment"> * the input stream.</span></pre></td></tr> <tr> <td class="numLine"> 132</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 133</td> <td class="nbHitsCovered"> 8506</td> <td class="src"><pre class="src"> bytesRead += pBytes;</pre></td></tr> -<tr> <td class="numLineCover"> 134</td> <td class="nbHitsCovered"> 8506</td> <td class="src"><pre class="src"> notifyListener();</pre></td></tr> -<tr> <td class="numLineCover"> 135</td> <td class="nbHitsCovered"> 8506</td> <td class="src"><pre class="src"> }</pre></td></tr> +<tr> <td class="numLineCover"> 133</td> <td class="nbHitsCovered"> 8507</td> <td class="src"><pre class="src"> bytesRead += pBytes;</pre></td></tr> +<tr> <td class="numLineCover"> 134</td> <td class="nbHitsCovered"> 8507</td> <td class="src"><pre class="src"> notifyListener();</pre></td></tr> +<tr> <td class="numLineCover"> 135</td> <td class="nbHitsCovered"> 8507</td> <td class="src"><pre class="src"> }</pre></td></tr> <tr> <td class="numLine"> 136</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 137</td> <td class="nbHits"> </td> @@ -293,9 +293,9 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 140</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">void</span> noteItem() {</pre></td></tr> -<tr> <td class="numLineCover"> 141</td> <td class="nbHitsCovered"> 3189</td> <td class="src"><pre class="src"> ++items;</pre></td></tr> -<tr> <td class="numLineCover"> 142</td> <td class="nbHitsCovered"> 3189</td> <td class="src"><pre class="src"> notifyListener();</pre></td></tr> -<tr> <td class="numLineCover"> 143</td> <td class="nbHitsCovered"> 3189</td> <td class="src"><pre class="src"> }</pre></td></tr> +<tr> <td class="numLineCover"> 141</td> <td class="nbHitsCovered"> 3190</td> <td class="src"><pre class="src"> ++items;</pre></td></tr> +<tr> <td class="numLineCover"> 142</td> <td class="nbHitsCovered"> 3190</td> <td class="src"><pre class="src"> notifyListener();</pre></td></tr> +<tr> <td class="numLineCover"> 143</td> <td class="nbHitsCovered"> 3190</td> <td class="src"><pre class="src"> }</pre></td></tr> <tr> <td class="numLine"> 144</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 145</td> <td class="nbHits"> </td> @@ -306,11 +306,11 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 148</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">void</span> notifyListener() {</pre></td></tr> -<tr> <td class="numLineCover"> 149</td> <td class="nbHitsCovered"><a title="Line 149: Conditional coverage 100% (2/2)."> 11695</a></td> <td class="src"><pre class="src"> <a title="Line 149: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (listener != <span class="keyword">null</span>) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 149</td> <td class="nbHitsCovered"><a title="Line 149: Conditional coverage 100% (2/2)."> 11697</a></td> <td class="src"><pre class="src"> <a title="Line 149: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (listener != <span class="keyword">null</span>) {</a></pre></td></tr> <tr> <td class="numLineCover"> 150</td> <td class="nbHitsCovered"> 5212</td> <td class="src"><pre class="src"> listener.update(bytesRead, contentLength, items);</pre></td></tr> <tr> <td class="numLine"> 151</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> -<tr> <td class="numLineCover"> 152</td> <td class="nbHitsCovered"> 11695</td> <td class="src"><pre class="src"> }</pre></td></tr> +<tr> <td class="numLineCover"> 152</td> <td class="nbHitsCovered"> 11697</td> <td class="src"><pre class="src"> }</pre></td></tr> <tr> <td class="numLine"> 153</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 154</td> <td class="nbHits"> </td> @@ -468,7 +468,7 @@ <tr> <td class="numLine"> 232</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 233</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">int</span>[] boundaryTable;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> <span class="keyword">int</span>[] boundaryTable;</pre></td></tr> <tr> <td class="numLine"> 234</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 235</td> <td class="nbHits"> </td> @@ -649,10 +649,10 @@ <td class="src"><pre class="src"> <span class="keyword">byte</span>[] boundary,</pre></td></tr> <tr> <td class="numLine"> 325</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">int</span> bufSize,</pre></td></tr> -<tr> <td class="numLineCover"> 326</td> <td class="nbHitsCovered"> 38</td> <td class="src"><pre class="src"> ProgressNotifier pNotifier) {</pre></td></tr> +<tr> <td class="numLineCover"> 326</td> <td class="nbHitsCovered"> 39</td> <td class="src"><pre class="src"> ProgressNotifier pNotifier) {</pre></td></tr> <tr> <td class="numLine"> 327</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 328</td> <td class="nbHitsUncovered"><a title="Line 328: Conditional coverage 50% (1/2)."> 38</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 328: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (boundary == <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 328</td> <td class="nbHitsUncovered"><a title="Line 328: Conditional coverage 50% (1/2)."> 39</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 328: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (boundary == <span class="keyword">null</span>) {</a></span></pre></td></tr> <tr> <td class="numLineCover"> 329</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> IllegalArgumentException(<span class="string">"boundary may not be null"</span>);</span></pre></td></tr> <tr> <td class="numLine"> 330</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> @@ -660,8 +660,8 @@ <td class="src"><pre class="src"> <span class="comment">// We prepend CR/LF to the boundary to chop trailing CR/LF from</span></pre></td></tr> <tr> <td class="numLine"> 332</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">// body-data tokens.</span></pre></td></tr> -<tr> <td class="numLineCover"> 333</td> <td class="nbHitsCovered"> 38</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.boundaryLength = boundary.length + BOUNDARY_PREFIX.length;</pre></td></tr> -<tr> <td class="numLineCover"> 334</td> <td class="nbHitsCovered"><a title="Line 334: Conditional coverage 100% (2/2)."> 38</a></td> <td class="src"><pre class="src"> <a title="Line 334: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (bufSize < <span class="keyword">this</span>.boundaryLength + 1) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 333</td> <td class="nbHitsCovered"> 39</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.boundaryLength = boundary.length + BOUNDARY_PREFIX.length;</pre></td></tr> +<tr> <td class="numLineCover"> 334</td> <td class="nbHitsCovered"><a title="Line 334: Conditional coverage 100% (2/2)."> 39</a></td> <td class="src"><pre class="src"> <a title="Line 334: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (bufSize < <span class="keyword">this</span>.boundaryLength + 1) {</a></pre></td></tr> <tr> <td class="numLineCover"> 335</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">throw</span> <span class="keyword">new</span> IllegalArgumentException(</pre></td></tr> <tr> <td class="numLine"> 336</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="string">"The buffer size specified for the MultipartStream is too small"</span>);</pre></td></tr> @@ -669,29 +669,29 @@ <td class="src"><pre class="src"> }</pre></td></tr> <tr> <td class="numLine"> 338</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 339</td> <td class="nbHitsCovered"> 37</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.input = input;</pre></td></tr> -<tr> <td class="numLineCover"> 340</td> <td class="nbHitsCovered"> 37</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.bufSize = Math.max(bufSize, boundaryLength * 2);</pre></td></tr> -<tr> <td class="numLineCover"> 341</td> <td class="nbHitsCovered"> 37</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.buffer = <span class="keyword">new</span> <span class="keyword">byte</span>[<span class="keyword">this</span>.bufSize];</pre></td></tr> -<tr> <td class="numLineCover"> 342</td> <td class="nbHitsCovered"> 37</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.notifier = pNotifier;</pre></td></tr> +<tr> <td class="numLineCover"> 339</td> <td class="nbHitsCovered"> 38</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.input = input;</pre></td></tr> +<tr> <td class="numLineCover"> 340</td> <td class="nbHitsCovered"> 38</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.bufSize = Math.max(bufSize, boundaryLength * 2);</pre></td></tr> +<tr> <td class="numLineCover"> 341</td> <td class="nbHitsCovered"> 38</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.buffer = <span class="keyword">new</span> <span class="keyword">byte</span>[<span class="keyword">this</span>.bufSize];</pre></td></tr> +<tr> <td class="numLineCover"> 342</td> <td class="nbHitsCovered"> 38</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.notifier = pNotifier;</pre></td></tr> <tr> <td class="numLine"> 343</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 344</td> <td class="nbHitsCovered"> 37</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.boundary = <span class="keyword">new</span> <span class="keyword">byte</span>[<span class="keyword">this</span>.boundaryLength];</pre></td></tr> -<tr> <td class="numLineCover"> 345</td> <td class="nbHitsCovered"> 37</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.boundaryTable = <span class="keyword">new</span> <span class="keyword">int</span>[<span class="keyword">this</span>.boundaryLength + 1];</pre></td></tr> -<tr> <td class="numLineCover"> 346</td> <td class="nbHitsCovered"> 37</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.keepRegion = <span class="keyword">this</span>.boundary.length;</pre></td></tr> +<tr> <td class="numLineCover"> 344</td> <td class="nbHitsCovered"> 38</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.boundary = <span class="keyword">new</span> <span class="keyword">byte</span>[<span class="keyword">this</span>.boundaryLength];</pre></td></tr> +<tr> <td class="numLineCover"> 345</td> <td class="nbHitsCovered"> 38</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.boundaryTable = <span class="keyword">new</span> <span class="keyword">int</span>[<span class="keyword">this</span>.boundaryLength + 1];</pre></td></tr> +<tr> <td class="numLineCover"> 346</td> <td class="nbHitsCovered"> 38</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.keepRegion = <span class="keyword">this</span>.boundary.length;</pre></td></tr> <tr> <td class="numLine"> 347</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 348</td> <td class="nbHitsCovered"> 37</td> <td class="src"><pre class="src"> System.arraycopy(BOUNDARY_PREFIX, 0, <span class="keyword">this</span>.boundary, 0,</pre></td></tr> +<tr> <td class="numLineCover"> 348</td> <td class="nbHitsCovered"> 38</td> <td class="src"><pre class="src"> System.arraycopy(BOUNDARY_PREFIX, 0, <span class="keyword">this</span>.boundary, 0,</pre></td></tr> <tr> <td class="numLine"> 349</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> BOUNDARY_PREFIX.length);</pre></td></tr> -<tr> <td class="numLineCover"> 350</td> <td class="nbHitsCovered"> 37</td> <td class="src"><pre class="src"> System.arraycopy(boundary, 0, <span class="keyword">this</span>.boundary, BOUNDARY_PREFIX.length,</pre></td></tr> +<tr> <td class="numLineCover"> 350</td> <td class="nbHitsCovered"> 38</td> <td class="src"><pre class="src"> System.arraycopy(boundary, 0, <span class="keyword">this</span>.boundary, BOUNDARY_PREFIX.length,</pre></td></tr> <tr> <td class="numLine"> 351</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> boundary.length);</pre></td></tr> -<tr> <td class="numLineCover"> 352</td> <td class="nbHitsCovered"> 37</td> <td class="src"><pre class="src"> computeBoundaryTable();</pre></td></tr> +<tr> <td class="numLineCover"> 352</td> <td class="nbHitsCovered"> 38</td> <td class="src"><pre class="src"> computeBoundaryTable();</pre></td></tr> <tr> <td class="numLine"> 353</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 354</td> <td class="nbHitsCovered"> 37</td> <td class="src"><pre class="src"> head = 0;</pre></td></tr> -<tr> <td class="numLineCover"> 355</td> <td class="nbHitsCovered"> 37</td> <td class="src"><pre class="src"> tail = 0;</pre></td></tr> -<tr> <td class="numLineCover"> 356</td> <td class="nbHitsCovered"> 37</td> <td class="src"><pre class="src"> }</pre></td></tr> +<tr> <td class="numLineCover"> 354</td> <td class="nbHitsCovered"> 38</td> <td class="src"><pre class="src"> head = 0;</pre></td></tr> +<tr> <td class="numLineCover"> 355</td> <td class="nbHitsCovered"> 38</td> <td class="src"><pre class="src"> tail = 0;</pre></td></tr> +<tr> <td class="numLineCover"> 356</td> <td class="nbHitsCovered"> 38</td> <td class="src"><pre class="src"> }</pre></td></tr> <tr> <td class="numLine"> 357</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 358</td> <td class="nbHits"> </td> @@ -722,8 +722,8 @@ <td class="src"><pre class="src"> <span class="keyword">byte</span>[] boundary,</pre></td></tr> <tr> <td class="numLine"> 371</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> ProgressNotifier pNotifier) {</pre></td></tr> -<tr> <td class="numLineCover"> 372</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src"> <span class="keyword">this</span>(input, boundary, DEFAULT_BUFSIZE, pNotifier);</pre></td></tr> -<tr> <td class="numLineCover"> 373</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src"> }</pre></td></tr> +<tr> <td class="numLineCover"> 372</td> <td class="nbHitsCovered"> 37</td> <td class="src"><pre class="src"> <span class="keyword">this</span>(input, boundary, DEFAULT_BUFSIZE, pNotifier);</pre></td></tr> +<tr> <td class="numLineCover"> 373</td> <td class="nbHitsCovered"> 37</td> <td class="src"><pre class="src"> }</pre></td></tr> <tr> <td class="numLine"> 374</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 375</td> <td class="nbHits"> </td> @@ -797,8 +797,8 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 411</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> setHeaderEncoding(String encoding) {</pre></td></tr> -<tr> <td class="numLineCover"> 412</td> <td class="nbHitsCovered"> 35</td> <td class="src"><pre class="src"> headerEncoding = encoding;</pre></td></tr> -<tr> <td class="numLineCover"> 413</td> <td class="nbHitsCovered"> 35</td> <td class="src"><pre class="src"> }</pre></td></tr> +<tr> <td class="numLineCover"> 412</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src"> headerEncoding = encoding;</pre></td></tr> +<tr> <td class="numLineCover"> 413</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src"> }</pre></td></tr> <tr> <td class="numLine"> 414</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 415</td> <td class="nbHits"> </td> @@ -821,7 +821,7 @@ <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">byte</span> readByte() <span class="keyword">throws</span> IOException {</pre></td></tr> <tr> <td class="numLine"> 424</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">// Buffer depleted ?</span></pre></td></tr> -<tr> <td class="numLineCover"> 425</td> <td class="nbHitsCovered"><a title="Line 425: Conditional coverage 100% (2/2)."> 170443</a></td> <td class="src"><pre class="src"> <a title="Line 425: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (head == tail) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 425</td> <td class="nbHitsCovered"><a title="Line 425: Conditional coverage 100% (2/2)."> 170498</a></td> <td class="src"><pre class="src"> <a title="Line 425: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (head == tail) {</a></pre></td></tr> <tr> <td class="numLineCover"> 426</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src"> head = 0;</pre></td></tr> <tr> <td class="numLine"> 427</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">// Refill.</span></pre></td></tr> @@ -838,7 +838,7 @@ <td class="src"><pre class="src"> }</pre></td></tr> <tr> <td class="numLine"> 436</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> -<tr> <td class="numLineCover"> 437</td> <td class="nbHitsCovered"> 170443</td> <td class="src"><pre class="src"> <span class="keyword">return</span> buffer[head++];</pre></td></tr> +<tr> <td class="numLineCover"> 437</td> <td class="nbHitsCovered"> 170498</td> <td class="src"><pre class="src"> <span class="keyword">return</span> buffer[head++];</pre></td></tr> <tr> <td class="numLine"> 438</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> <tr> <td class="numLine"> 439</td> <td class="nbHits"> </td> @@ -869,15 +869,15 @@ <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">boolean</span> readBoundary()</pre></td></tr> <tr> <td class="numLine"> 452</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">throws</span> FileUploadIOException, MalformedStreamException {</pre></td></tr> -<tr> <td class="numLineCover"> 453</td> <td class="nbHitsCovered"> 3226</td> <td class="src"><pre class="src"> <span class="keyword">byte</span>[] marker = <span class="keyword">new</span> <span class="keyword">byte</span>[2];</pre></td></tr> -<tr> <td class="numLineCover"> 454</td> <td class="nbHitsCovered"> 3226</td> <td class="src"><pre class="src"> <span class="keyword">boolean</span> nextChunk = <span class="keyword">false</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 453</td> <td class="nbHitsCovered"> 3228</td> <td class="src"><pre class="src"> <span class="keyword">byte</span>[] marker = <span class="keyword">new</span> <span class="keyword">byte</span>[2];</pre></td></tr> +<tr> <td class="numLineCover"> 454</td> <td class="nbHitsCovered"> 3228</td> <td class="src"><pre class="src"> <span class="keyword">boolean</span> nextChunk = <span class="keyword">false</span>;</pre></td></tr> <tr> <td class="numLine"> 455</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 456</td> <td class="nbHitsCovered"> 3226</td> <td class="src"><pre class="src"> head += boundaryLength;</pre></td></tr> +<tr> <td class="numLineCover"> 456</td> <td class="nbHitsCovered"> 3228</td> <td class="src"><pre class="src"> head += boundaryLength;</pre></td></tr> <tr> <td class="numLine"> 457</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 458</td> <td class="nbHitsCovered"> 3226</td> <td class="src"><pre class="src"> marker[0] = readByte();</pre></td></tr> -<tr> <td class="numLineCover"> 459</td> <td class="nbHitsCovered"><a title="Line 459: Conditional coverage 100% (2/2)."> 3226</a></td> <td class="src"><pre class="src"> <a title="Line 459: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (marker[0] == LF) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 458</td> <td class="nbHitsCovered"> 3228</td> <td class="src"><pre class="src"> marker[0] = readByte();</pre></td></tr> +<tr> <td class="numLineCover"> 459</td> <td class="nbHitsCovered"><a title="Line 459: Conditional coverage 100% (2/2)."> 3228</a></td> <td class="src"><pre class="src"> <a title="Line 459: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (marker[0] == LF) {</a></pre></td></tr> <tr> <td class="numLine"> 460</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">// Work around IE5 Mac bug with input type=image.</span></pre></td></tr> <tr> <td class="numLine"> 461</td> <td class="nbHits"> </td> @@ -895,11 +895,11 @@ <td class="src"><pre class="src"> }</pre></td></tr> <tr> <td class="numLine"> 468</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 469</td> <td class="nbHitsCovered"> 3222</td> <td class="src"><pre class="src"> marker[1] = readByte();</pre></td></tr> -<tr> <td class="numLineCover"> 470</td> <td class="nbHitsCovered"><a title="Line 470: Conditional coverage 100% (2/2)."> 3222</a></td> <td class="src"><pre class="src"> <a title="Line 470: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (arrayequals(marker, STREAM_TERMINATOR, 2)) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 471</td> <td class="nbHitsCovered"> 32</td> <td class="src"><pre class="src"> nextChunk = <span class="keyword">false</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 472</td> <td class="nbHitsUncovered"><a title="Line 472: Conditional coverage 50% (1/2)."> 3190</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 472: Conditional coverage 50% (1/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (arrayequals(marker, FIELD_SEPARATOR, 2)) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 473</td> <td class="nbHitsCovered"> 3190</td> <td class="src"><pre class="src"> nextChunk = <span class="keyword">true</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 469</td> <td class="nbHitsCovered"> 3224</td> <td class="src"><pre class="src"> marker[1] = readByte();</pre></td></tr> +<tr> <td class="numLineCover"> 470</td> <td class="nbHitsCovered"><a title="Line 470: Conditional coverage 100% (2/2)."> 3224</a></td> <td class="src"><pre class="src"> <a title="Line 470: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (arrayequals(marker, STREAM_TERMINATOR, 2)) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 471</td> <td class="nbHitsCovered"> 33</td> <td class="src"><pre class="src"> nextChunk = <span class="keyword">false</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 472</td> <td class="nbHitsUncovered"><a title="Line 472: Conditional coverage 50% (1/2)."> 3191</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 472: Conditional coverage 50% (1/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (arrayequals(marker, FIELD_SEPARATOR, 2)) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 473</td> <td class="nbHitsCovered"> 3191</td> <td class="src"><pre class="src"> nextChunk = <span class="keyword">true</span>;</pre></td></tr> <tr> <td class="numLine"> 474</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr> <tr> <td class="numLineCover"> 475</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> MalformedStreamException(</span></pre></td></tr> @@ -913,8 +913,8 @@ <tr> <td class="numLineCover"> 480</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> e;</span></pre></td></tr> <tr> <td class="numLineCover"> 481</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (IOException e) {</span></pre></td></tr> <tr> <td class="numLineCover"> 482</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> MalformedStreamException(<span class="string">"Stream ended unexpectedly"</span>);</span></pre></td></tr> -<tr> <td class="numLineCover"> 483</td> <td class="nbHitsCovered"> 3222</td> <td class="src"><pre class="src"> }</pre></td></tr> -<tr> <td class="numLineCover"> 484</td> <td class="nbHitsCovered"> 3222</td> <td class="src"><pre class="src"> <span class="keyword">return</span> nextChunk;</pre></td></tr> +<tr> <td class="numLineCover"> 483</td> <td class="nbHitsCovered"> 3224</td> <td class="src"><pre class="src"> }</pre></td></tr> +<tr> <td class="numLineCover"> 484</td> <td class="nbHitsCovered"> 3224</td> <td class="src"><pre class="src"> <span class="keyword">return</span> nextChunk;</pre></td></tr> <tr> <td class="numLine"> 485</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> <tr> <td class="numLine"> 486</td> <td class="nbHits"> </td> @@ -964,7 +964,7 @@ <tr> <td class="numLineCover"> 508</td> <td class="nbHitsUncovered"><a title="Line 508: Conditional coverage 50% (1/2)."> 8</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 508: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (boundary.length != boundaryLength - BOUNDARY_PREFIX.length) {</a></span></pre></td></tr> <tr> <td class="numLineCover"> 509</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> IllegalBoundaryException(</span></pre></td></tr> <tr> <td class="numLine"> 510</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="string">"The length of a boundary token can not be changed"</span>);</pre></td></tr> + <td class="src"><pre class="src"> <span class="string">"The length of a boundary token cannot be changed"</span>);</pre></td></tr> <tr> <td class="numLine"> 511</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> <tr> <td class="numLineCover"> 512</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> System.arraycopy(boundary, 0, <span class="keyword">this</span>.boundary, BOUNDARY_PREFIX.length,</pre></td></tr> @@ -982,30 +982,30 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 520</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">void</span> computeBoundaryTable() {</pre></td></tr> -<tr> <td class="numLineCover"> 521</td> <td class="nbHitsCovered"> 6499</td> <td class="src"><pre class="src"> <span class="keyword">int</span> position = 2;</pre></td></tr> -<tr> <td class="numLineCover"> 522</td> <td class="nbHitsCovered"> 6499</td> <td class="src"><pre class="src"> <span class="keyword">int</span> candidate = 0;</pre></td></tr> +<tr> <td class="numLineCover"> 521</td> <td class="nbHitsCovered"> 6504</td> <td class="src"><pre class="src"> <span class="keyword">int</span> position = 2;</pre></td></tr> +<tr> <td class="numLineCover"> 522</td> <td class="nbHitsCovered"> 6504</td> <td class="src"><pre class="src"> <span class="keyword">int</span> candidate = 0;</pre></td></tr> <tr> <td class="numLine"> 523</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 524</td> <td class="nbHitsCovered"> 6499</td> <td class="src"><pre class="src"> boundaryTable[0] = -1;</pre></td></tr> -<tr> <td class="numLineCover"> 525</td> <td class="nbHitsCovered"> 6499</td> <td class="src"><pre class="src"> boundaryTable[1] = 0;</pre></td></tr> +<tr> <td class="numLineCover"> 524</td> <td class="nbHitsCovered"> 6504</td> <td class="src"><pre class="src"> boundaryTable[0] = -1;</pre></td></tr> +<tr> <td class="numLineCover"> 525</td> <td class="nbHitsCovered"> 6504</td> <td class="src"><pre class="src"> boundaryTable[1] = 0;</pre></td></tr> <tr> <td class="numLine"> 526</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 527</td> <td class="nbHitsCovered"><a title="Line 527: Conditional coverage 100% (2/2)."> 77883</a></td> <td class="src"><pre class="src"> <a title="Line 527: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (position <= boundaryLength) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 528</td> <td class="nbHitsCovered"><a title="Line 528: Conditional coverage 100% (2/2)."> 71384</a></td> <td class="src"><pre class="src"> <a title="Line 528: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (boundary[position - 1] == boundary[candidate]) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 529</td> <td class="nbHitsCovered"> 12872</td> <td class="src"><pre class="src"> boundaryTable[position] = candidate + 1;</pre></td></tr> -<tr> <td class="numLineCover"> 530</td> <td class="nbHitsCovered"> 12872</td> <td class="src"><pre class="src"> candidate++;</pre></td></tr> -<tr> <td class="numLineCover"> 531</td> <td class="nbHitsCovered"> 12872</td> <td class="src"><pre class="src"> position++;</pre></td></tr> -<tr> <td class="numLineCover"> 532</td> <td class="nbHitsCovered"><a title="Line 532: Conditional coverage 100% (2/2)."> 58512</a></td> <td class="src"><pre class="src"> <a title="Line 532: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (candidate > 0) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 533</td> <td class="nbHitsCovered"> 12872</td> <td class="src"><pre class="src"> candidate = boundaryTable[candidate];</pre></td></tr> +<tr> <td class="numLineCover"> 527</td> <td class="nbHitsCovered"><a title="Line 527: Conditional coverage 100% (2/2)."> 77942</a></td> <td class="src"><pre class="src"> <a title="Line 527: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (position <= boundaryLength) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 528</td> <td class="nbHitsCovered"><a title="Line 528: Conditional coverage 100% (2/2)."> 71438</a></td> <td class="src"><pre class="src"> <a title="Line 528: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (boundary[position - 1] == boundary[candidate]) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 529</td> <td class="nbHitsCovered"> 12880</td> <td class="src"><pre class="src"> boundaryTable[position] = candidate + 1;</pre></td></tr> +<tr> <td class="numLineCover"> 530</td> <td class="nbHitsCovered"> 12880</td> <td class="src"><pre class="src"> candidate++;</pre></td></tr> +<tr> <td class="numLineCover"> 531</td> <td class="nbHitsCovered"> 12880</td> <td class="src"><pre class="src"> position++;</pre></td></tr> +<tr> <td class="numLineCover"> 532</td> <td class="nbHitsCovered"><a title="Line 532: Conditional coverage 100% (2/2)."> 58558</a></td> <td class="src"><pre class="src"> <a title="Line 532: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (candidate > 0) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 533</td> <td class="nbHitsCovered"> 12880</td> <td class="src"><pre class="src"> candidate = boundaryTable[candidate];</pre></td></tr> <tr> <td class="numLine"> 534</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 535</td> <td class="nbHitsCovered"> 45640</td> <td class="src"><pre class="src"> boundaryTable[position] = 0;</pre></td></tr> -<tr> <td class="numLineCover"> 536</td> <td class="nbHitsCovered"> 45640</td> <td class="src"><pre class="src"> position++;</pre></td></tr> +<tr> <td class="numLineCover"> 535</td> <td class="nbHitsCovered"> 45678</td> <td class="src"><pre class="src"> boundaryTable[position] = 0;</pre></td></tr> +<tr> <td class="numLineCover"> 536</td> <td class="nbHitsCovered"> 45678</td> <td class="src"><pre class="src"> position++;</pre></td></tr> <tr> <td class="numLine"> 537</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> <tr> <td class="numLine"> 538</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> -<tr> <td class="numLineCover"> 539</td> <td class="nbHitsCovered"> 6499</td> <td class="src"><pre class="src"> }</pre></td></tr> +<tr> <td class="numLineCover"> 539</td> <td class="nbHitsCovered"> 6504</td> <td class="src"><pre class="src"> }</pre></td></tr> <tr> <td class="numLine"> 540</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 541</td> <td class="nbHits"> </td> @@ -1042,44 +1042,44 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 557</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">public</span> String readHeaders() <span class="keyword">throws</span> FileUploadIOException, MalformedStreamException {</pre></td></tr> -<tr> <td class="numLineCover"> 558</td> <td class="nbHitsCovered"> 3194</td> <td class="src"><pre class="src"> <span class="keyword">int</span> i = 0;</pre></td></tr> +<tr> <td class="numLineCover"> 558</td> <td class="nbHitsCovered"> 3195</td> <td class="src"><pre class="src"> <span class="keyword">int</span> i = 0;</pre></td></tr> <tr> <td class="numLine"> 559</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">byte</span> b;</pre></td></tr> <tr> <td class="numLine"> 560</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">// to support multi-byte characters</span></pre></td></tr> -<tr> <td class="numLineCover"> 561</td> <td class="nbHitsCovered"> 3194</td> <td class="src"><pre class="src"> ByteArrayOutputStream baos = <span class="keyword">new</span> ByteArrayOutputStream();</pre></td></tr> -<tr> <td class="numLineCover"> 562</td> <td class="nbHitsCovered"> 3194</td> <td class="src"><pre class="src"> <span class="keyword">int</span> size = 0;</pre></td></tr> -<tr> <td class="numLineCover"> 563</td> <td class="nbHitsCovered"><a title="Line 563: Conditional coverage 100% (2/2)."> 167189</a></td> <td class="src"><pre class="src"> <a title="Line 563: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (i < HEADER_SEPARATOR.length) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 561</td> <td class="nbHitsCovered"> 3195</td> <td class="src"><pre class="src"> ByteArrayOutputStream baos = <span class="keyword">new</span> ByteArrayOutputStream();</pre></td></tr> +<tr> <td class="numLineCover"> 562</td> <td class="nbHitsCovered"> 3195</td> <td class="src"><pre class="src"> <span class="keyword">int</span> size = 0;</pre></td></tr> +<tr> <td class="numLineCover"> 563</td> <td class="nbHitsCovered"><a title="Line 563: Conditional coverage 100% (2/2)."> 167241</a></td> <td class="src"><pre class="src"> <a title="Line 563: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (i < HEADER_SEPARATOR.length) {</a></pre></td></tr> <tr> <td class="numLine"> 564</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 565</td> <td class="nbHitsCovered"> 163995</td> <td class="src"><pre class="src"> b = readByte();</pre></td></tr> +<tr> <td class="numLineCover"> 565</td> <td class="nbHitsCovered"> 164046</td> <td class="src"><pre class="src"> b = readByte();</pre></td></tr> <tr> <td class="numLineCover"> 566</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (FileUploadIOException e) {</span></pre></td></tr> <tr> <td class="numLine"> 567</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">// wraps a SizeException, re-throw as it will be unwrapped later</span></pre></td></tr> <tr> <td class="numLineCover"> 568</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> e;</span></pre></td></tr> <tr> <td class="numLineCover"> 569</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (IOException e) {</span></pre></td></tr> <tr> <td class="numLineCover"> 570</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> MalformedStreamException(<span class="string">"Stream ended unexpectedly"</span>);</span></pre></td></tr> -<tr> <td class="numLineCover"> 571</td> <td class="nbHitsCovered"> 163995</td> <td class="src"><pre class="src"> }</pre></td></tr> -<tr> <td class="numLineCover"> 572</td> <td class="nbHitsUncovered"><a title="Line 572: Conditional coverage 50% (1/2)."> 163995</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 572: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (++size > HEADER_PART_SIZE_MAX) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 571</td> <td class="nbHitsCovered"> 164046</td> <td class="src"><pre class="src"> }</pre></td></tr> +<tr> <td class="numLineCover"> 572</td> <td class="nbHitsUncovered"><a title="Line 572: Conditional coverage 50% (1/2)."> 164046</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 572: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (++size > HEADER_PART_SIZE_MAX) {</a></span></pre></td></tr> <tr> <td class="numLineCover"> 573</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> MalformedStreamException(</span></pre></td></tr> <tr> <td class="numLineCover"> 574</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> format(<span class="string">"Header section has more than %s bytes (maybe it is not properly terminated)"</span>,</span></pre></td></tr> <tr> <td class="numLineCover"> 575</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> Integer.valueOf(HEADER_PART_SIZE_MAX)));</span></pre></td></tr> <tr> <td class="numLine"> 576</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> -<tr> <td class="numLineCover"> 577</td> <td class="nbHitsCovered"><a title="Line 577: Conditional coverage 100% (2/2)."> 163995</a></td> <td class="src"><pre class="src"> <a title="Line 577: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (b == HEADER_SEPARATOR[i]) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 578</td> <td class="nbHitsCovered"> 12884</td> <td class="src"><pre class="src"> i++;</pre></td></tr> +<tr> <td class="numLineCover"> 577</td> <td class="nbHitsCovered"><a title="Line 577: Conditional coverage 100% (2/2)."> 164046</a></td> <td class="src"><pre class="src"> <a title="Line 577: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (b == HEADER_SEPARATOR[i]) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 578</td> <td class="nbHitsCovered"> 12888</td> <td class="src"><pre class="src"> i++;</pre></td></tr> <tr> <td class="numLine"> 579</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 580</td> <td class="nbHitsCovered"> 151111</td> <td class="src"><pre class="src"> i = 0;</pre></td></tr> +<tr> <td class="numLineCover"> 580</td> <td class="nbHitsCovered"> 151158</td> <td class="src"><pre class="src"> i = 0;</pre></td></tr> <tr> <td class="numLine"> 581</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> -<tr> <td class="numLineCover"> 582</td> <td class="nbHitsCovered"> 163995</td> <td class="src"><pre class="src"> baos.write(b);</pre></td></tr> +<tr> <td class="numLineCover"> 582</td> <td class="nbHitsCovered"> 164046</td> <td class="src"><pre class="src"> baos.write(b);</pre></td></tr> <tr> <td class="numLine"> 583</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> <tr> <td class="numLine"> 584</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 585</td> <td class="nbHitsCovered"> 3194</td> <td class="src"><pre class="src"> String headers = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 586</td> <td class="nbHitsUncovered"><a title="Line 586: Conditional coverage 50% (1/2)."> 3194</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 586: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (headerEncoding != <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 585</td> <td class="nbHitsCovered"> 3195</td> <td class="src"><pre class="src"> String headers = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 586</td> <td class="nbHitsUncovered"><a title="Line 586: Conditional coverage 50% (1/2)."> 3195</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 586: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (headerEncoding != <span class="keyword">null</span>) {</a></span></pre></td></tr> <tr> <td class="numLine"> 587</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr> <tr> <td class="numLineCover"> 588</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> headers = baos.toString(headerEncoding);</span></pre></td></tr> @@ -1092,12 +1092,12 @@ <tr> <td class="numLineCover"> 593</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr> <tr> <td class="numLine"> 594</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 595</td> <td class="nbHitsCovered"> 3194</td> <td class="src"><pre class="src"> headers = baos.toString();</pre></td></tr> +<tr> <td class="numLineCover"> 595</td> <td class="nbHitsCovered"> 3195</td> <td class="src"><pre class="src"> headers = baos.toString();</pre></td></tr> <tr> <td class="numLine"> 596</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> <tr> <td class="numLine"> 597</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 598</td> <td class="nbHitsCovered"> 3194</td> <td class="src"><pre class="src"> <span class="keyword">return</span> headers;</pre></td></tr> +<tr> <td class="numLineCover"> 598</td> <td class="nbHitsCovered"> 3195</td> <td class="src"><pre class="src"> <span class="keyword">return</span> headers;</pre></td></tr> <tr> <td class="numLine"> 599</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> <tr> <td class="numLine"> 600</td> <td class="nbHits"> </td> @@ -1144,7 +1144,7 @@ <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">int</span> readBodyData(OutputStream output)</pre></td></tr> <tr> <td class="numLine"> 621</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">throws</span> MalformedStreamException, IOException {</pre></td></tr> -<tr> <td class="numLineCover"> 622</td> <td class="nbHitsCovered"> 3227</td> <td class="src"><pre class="src"> <span class="keyword">return</span> (<span class="keyword">int</span>) Streams.copy(newInputStream(), output, <span class="keyword">false</span>); <span class="comment">// N.B. Streams.copy closes the input stream</span></pre></td></tr> +<tr> <td class="numLineCover"> 622</td> <td class="nbHitsCovered"> 3229</td> <td class="src"><pre class="src"> <span class="keyword">return</span> (<span class="keyword">int</span>) Streams.copy(newInputStream(), output, <span class="keyword">false</span>); <span class="comment">// N.B. Streams.copy closes the input stream</span></pre></td></tr> <tr> <td class="numLine"> 623</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> <tr> <td class="numLine"> 624</td> <td class="nbHits"> </td> @@ -1159,7 +1159,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 629</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> ItemInputStream newInputStream() {</pre></td></tr> -<tr> <td class="numLineCover"> 630</td> <td class="nbHitsCovered"> 6417</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">new</span> ItemInputStream();</pre></td></tr> +<tr> <td class="numLineCover"> 630</td> <td class="nbHitsCovered"> 6419</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">new</span> ItemInputStream();</pre></td></tr> <tr> <td class="numLine"> 631</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> <tr> <td class="numLine"> 632</td> <td class="nbHits"> </td> @@ -1190,7 +1190,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 645</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">int</span> discardBodyData() <span class="keyword">throws</span> MalformedStreamException, IOException {</pre></td></tr> -<tr> <td class="numLineCover"> 646</td> <td class="nbHitsCovered"> 3227</td> <td class="src"><pre class="src"> <span class="keyword">return</span> readBodyData(<span class="keyword">null</span>);</pre></td></tr> +<tr> <td class="numLineCover"> 646</td> <td class="nbHitsCovered"> 3229</td> <td class="src"><pre class="src"> <span class="keyword">return</span> readBodyData(<span class="keyword">null</span>);</pre></td></tr> <tr> <td class="numLine"> 647</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> <tr> <td class="numLine"> 648</td> <td class="nbHits"> </td> @@ -1215,34 +1215,33 @@ <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">boolean</span> skipPreamble() <span class="keyword">throws</span> IOException {</pre></td></tr> <tr> <td class="numLine"> 658</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">// First delimiter may be not preceeded with a CRLF.</span></pre></td></tr> -<tr> <td class="numLineCover"> 659</td> <td class="nbHitsCovered"> 3227</td> <td class="src"><pre class="src"> System.arraycopy(boundary, 2, boundary, 0, boundary.length - 2);</pre></td></tr> -<tr> <td class="numLineCover"> 660</td> <td class="nbHitsCovered"> 3227</td> <td class="src"><pre class="src"> boundaryLength = boundary.length - 2;</pre></td></tr> -<tr> <td class="numLineCover"> 661</td> <td class="nbHitsCovered"> 3227</td> <td class="src"><pre class="src"> computeBoundaryTable();</pre></td></tr> +<tr> <td class="numLineCover"> 659</td> <td class="nbHitsCovered"> 3229</td> <td class="src"><pre class="src"> System.arraycopy(boundary, 2, boundary, 0, boundary.length - 2);</pre></td></tr> +<tr> <td class="numLineCover"> 660</td> <td class="nbHitsCovered"> 3229</td> <td class="src"><pre class="src"> boundaryLength = boundary.length - 2;</pre></td></tr> +<tr> <td class="numLineCover"> 661</td> <td class="nbHitsCovered"> 3229</td> <td class="src"><pre class="src"> computeBoundaryTable();</pre></td></tr> <tr> <td class="numLine"> 662</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr> <tr> <td class="numLine"> 663</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">// Discard all data up to the delimiter.</span></pre></td></tr> -<tr> <td class="numLineCover"> 664</td> <td class="nbHitsCovered"> 3227</td> <td class="src"><pre class="src"> discardBodyData();</pre></td></tr> +<tr> <td class="numLineCover"> 664</td> <td class="nbHitsCovered"> 3229</td> <td class="src"><pre class="src"> discardBodyData();</pre></td></tr> <tr> <td class="numLine"> 665</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 666</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">// Read boundary - if succeeded, the stream contains an</span></pre></td></tr> <tr> <td class="numLine"> 667</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">// encapsulation.</span></pre></td></tr> -<tr> <td class="numLineCover"> 668</td> <td class="nbHitsCovered"> 6452</td> <td class="src"><pre class="src"> <span class="keyword">return</span> readBoundary();</pre></td></tr> +<tr> <td class="numLineCover"> 668</td> <td class="nbHitsCovered"> 6456</td> <td class="src"><pre class="src"> <span class="keyword">return</span> readBoundary();</pre></td></tr> <tr> <td class="numLineCover"> 669</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (MalformedStreamException e) {</span></pre></td></tr> <tr> <td class="numLineCover"> 670</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr> <tr> <td class="numLine"> 671</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> } <span class="keyword">finally</span> {</pre></td></tr> <tr> <td class="numLine"> 672</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">// Restore delimiter.</span></pre></td></tr> -<tr> <td class="numLineCover"> 673</td> <td class="nbHitsCovered"> 3227</td> <td class="src"><pre class="src"> System.arraycopy(boundary, 0, boundary, 2, boundary.length - 2);</pre></td></tr> -<tr> <td class="numLineCover"> 674</td> <td class="nbHitsCovered"> 3227</td> <td class="src"><pre class="src"> boundaryLength = boundary.length;</pre></td></tr> -<tr> <td class="numLineCover"> 675</td> <td class="nbHitsCovered"> 3227</td> <td class="src"><pre class="src"> boundary[0] = CR;</pre></td></tr> -<tr> <td class="numLineCover"> 676</td> <td class="nbHitsCovered"> 3227</td> <td class="src"><pre class="src"> boundary[1] = LF;</pre></td></tr> -<tr> <td class="numLineCover"> 677</td> <td class="nbHitsCovered"> 3227</td> <td class="src"><pre class="src"> computeBoundaryTable();</pre></td></tr> -<tr> <td class="numLine"> 678</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> }</pre></td></tr> +<tr> <td class="numLineCover"> 673</td> <td class="nbHitsCovered"> 3229</td> <td class="src"><pre class="src"> System.arraycopy(boundary, 0, boundary, 2, boundary.length - 2);</pre></td></tr> +<tr> <td class="numLineCover"> 674</td> <td class="nbHitsCovered"> 3229</td> <td class="src"><pre class="src"> boundaryLength = boundary.length;</pre></td></tr> +<tr> <td class="numLineCover"> 675</td> <td class="nbHitsCovered"> 3229</td> <td class="src"><pre class="src"> boundary[0] = CR;</pre></td></tr> +<tr> <td class="numLineCover"> 676</td> <td class="nbHitsCovered"> 3229</td> <td class="src"><pre class="src"> boundary[1] = LF;</pre></td></tr> +<tr> <td class="numLineCover"> 677</td> <td class="nbHitsCovered"> 3229</td> <td class="src"><pre class="src"> computeBoundaryTable();</pre></td></tr> +<tr> <td class="numLineCover"> 678</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> }</pre></td></tr> <tr> <td class="numLine"> 679</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> <tr> <td class="numLine"> 680</td> <td class="nbHits"> </td> @@ -1275,14 +1274,14 @@ <td class="src"><pre class="src"> <span class="keyword">byte</span>[] b,</pre></td></tr> <tr> <td class="numLine"> 694</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">int</span> count) {</pre></td></tr> -<tr> <td class="numLineCover"> 695</td> <td class="nbHitsCovered"><a title="Line 695: Conditional coverage 100% (2/2)."> 12856</a></td> <td class="src"><pre class="src"> <a title="Line 695: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i < count; i++) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 696</td> <td class="nbHitsCovered"><a title="Line 696: Conditional coverage 100% (2/2)."> 9634</a></td> <td class="src"><pre class="src"> <a title="Line 696: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (a[i] != b[i]) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 697</td> <td class="nbHitsCovered"> 3190</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">false</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 695</td> <td class="nbHitsCovered"><a title="Line 695: Conditional coverage 100% (2/2)."> 12863</a></td> <td class="src"><pre class="src"> <a title="Line 695: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i < count; i++) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 696</td> <td class="nbHitsCovered"><a title="Line 696: Conditional coverage 100% (2/2)."> 9639</a></td> <td class="src"><pre class="src"> <a title="Line 696: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (a[i] != b[i]) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 697</td> <td class="nbHitsCovered"> 3191</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">false</span>;</pre></td></tr> <tr> <td class="numLine"> 698</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> <tr> <td class="numLine"> 699</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> -<tr> <td class="numLineCover"> 700</td> <td class="nbHitsCovered"> 3222</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">true</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 700</td> <td class="nbHitsCovered"> 3224</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">true</span>;</pre></td></tr> <tr> <td class="numLine"> 701</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> <tr> <td class="numLine"> 702</td> <td class="nbHits"> </td> @@ -1345,24 +1344,24 @@ <td class="src"><pre class="src"> <span class="keyword">protected</span> <span class="keyword">int</span> findSeparator() {</pre></td></tr> <tr> <td class="numLine"> 733</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 734</td> <td class="nbHitsCovered"> 14852</td> <td class="src"><pre class="src"> <span class="keyword">int</span> bufferPos = <span class="keyword">this</span>.head;</pre></td></tr> -<tr> <td class="numLineCover"> 735</td> <td class="nbHitsCovered"> 14852</td> <td class="src"><pre class="src"> <span class="keyword">int</span> tablePos = 0;</pre></td></tr> +<tr> <td class="numLineCover"> 734</td> <td class="nbHitsCovered"> 14855</td> <td class="src"><pre class="src"> <span class="keyword">int</span> bufferPos = <span class="keyword">this</span>.head;</pre></td></tr> +<tr> <td class="numLineCover"> 735</td> <td class="nbHitsCovered"> 14855</td> <td class="src"><pre class="src"> <span class="keyword">int</span> tablePos = 0;</pre></td></tr> <tr> <td class="numLine"> 736</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 737</td> <td class="nbHitsCovered"><a title="Line 737: Conditional coverage 100% (2/2)."> 34380737</a></td> <td class="src"><pre class="src"> <a title="Line 737: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (bufferPos < <span class="keyword">this</span>.tail) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 738</td> <td class="nbHitsCovered"><a title="Line 738: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 68680442</a></td> <td class="src"><pre class="src"> <a title="Line 738: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">while</span> (tablePos >= 0 && buffer[bufferPos] != boundary[tablePos]) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 739</td> <td class="nbHitsCovered"> 34308143</td> <td class="src"><pre class="src"> tablePos = boundaryTable[tablePos];</pre></td></tr> +<tr> <td class="numLineCover"> 737</td> <td class="nbHitsCovered"><a title="Line 737: Conditional coverage 100% (2/2)."> 34380763</a></td> <td class="src"><pre class="src"> <a title="Line 737: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (bufferPos < <span class="keyword">this</span>.tail) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 738</td> <td class="nbHitsCovered"><a title="Line 738: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 68680474</a></td> <td class="src"><pre class="src"> <a title="Line 738: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">while</span> (tablePos >= 0 && buffer[bufferPos] != boundary[tablePos]) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 739</td> <td class="nbHitsCovered"> 34308150</td> <td class="src"><pre class="src"> tablePos = boundaryTable[tablePos];</pre></td></tr> <tr> <td class="numLine"> 740</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> -<tr> <td class="numLineCover"> 741</td> <td class="nbHitsCovered"> 34372299</td> <td class="src"><pre class="src"> bufferPos++;</pre></td></tr> -<tr> <td class="numLineCover"> 742</td> <td class="nbHitsCovered"> 34372299</td> <td class="src"><pre class="src"> tablePos++;</pre></td></tr> -<tr> <td class="numLineCover"> 743</td> <td class="nbHitsCovered"><a title="Line 743: Conditional coverage 100% (2/2)."> 34372299</a></td> <td class="src"><pre class="src"> <a title="Line 743: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (tablePos == boundaryLength) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 744</td> <td class="nbHitsCovered"> 6414</td> <td class="src"><pre class="src"> <span class="keyword">return</span> bufferPos - boundaryLength;</pre></td></tr> +<tr> <td class="numLineCover"> 741</td> <td class="nbHitsCovered"> 34372324</td> <td class="src"><pre class="src"> bufferPos++;</pre></td></tr> +<tr> <td class="numLineCover"> 742</td> <td class="nbHitsCovered"> 34372324</td> <td class="src"><pre class="src"> tablePos++;</pre></td></tr> +<tr> <td class="numLineCover"> 743</td> <td class="nbHitsCovered"><a title="Line 743: Conditional coverage 100% (2/2)."> 34372324</a></td> <td class="src"><pre class="src"> <a title="Line 743: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (tablePos == boundaryLength) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 744</td> <td class="nbHitsCovered"> 6416</td> <td class="src"><pre class="src"> <span class="keyword">return</span> bufferPos - boundaryLength;</pre></td></tr> <tr> <td class="numLine"> 745</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> <tr> <td class="numLine"> 746</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> -<tr> <td class="numLineCover"> 747</td> <td class="nbHitsCovered"> 8438</td> <td class="src"><pre class="src"> <span class="keyword">return</span> -1;</pre></td></tr> +<tr> <td class="numLineCover"> 747</td> <td class="nbHitsCovered"> 8439</td> <td class="src"><pre class="src"> <span class="keyword">return</span> -1;</pre></td></tr> <tr> <td class="numLine"> 748</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> <tr> <td class="numLine"> 749</td> <td class="nbHits"> </td> @@ -1539,9 +1538,9 @@ <td class="src"><pre class="src"> <span class="comment"> * Creates a new instance.</span></pre></td></tr> <tr> <td class="numLine"> 839</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 840</td> <td class="nbHitsCovered"> 6417</td> <td class="src"><pre class="src"> ItemInputStream() {</pre></td></tr> -<tr> <td class="numLineCover"> 841</td> <td class="nbHitsCovered"> 6417</td> <td class="src"><pre class="src"> findSeparator();</pre></td></tr> -<tr> <td class="numLineCover"> 842</td> <td class="nbHitsCovered"> 6417</td> <td class="src"><pre class="src"> }</pre></td></tr> +<tr> <td class="numLineCover"> 840</td> <td class="nbHitsCovered"> 6419</td> <td class="src"><pre class="src"> ItemInputStream() {</pre></td></tr> +<tr> <td class="numLineCover"> 841</td> <td class="nbHitsCovered"> 6419</td> <td class="src"><pre class="src"> findSeparator();</pre></td></tr> +<tr> <td class="numLineCover"> 842</td> <td class="nbHitsCovered"> 6419</td> <td class="src"><pre class="src"> }</pre></td></tr> <tr> <td class="numLine"> 843</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 844</td> <td class="nbHits"> </td> @@ -1552,18 +1551,18 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 847</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">void</span> findSeparator() {</pre></td></tr> -<tr> <td class="numLineCover"> 848</td> <td class="nbHitsCovered"> 14852</td> <td class="src"><pre class="src"> pos = MultipartStream.<span class="keyword">this</span>.findSeparator();</pre></td></tr> -<tr> <td class="numLineCover"> 849</td> <td class="nbHitsCovered"><a title="Line 849: Conditional coverage 100% (2/2)."> 14852</a></td> <td class="src"><pre class="src"> <a title="Line 849: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (pos == -1) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 850</td> <td class="nbHitsCovered"><a title="Line 850: Conditional coverage 100% (2/2)."> 8438</a></td> <td class="src"><pre class="src"> <a title="Line 850: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (tail - head > keepRegion) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 848</td> <td class="nbHitsCovered"> 14855</td> <td class="src"><pre class="src"> pos = MultipartStream.<span class="keyword">this</span>.findSeparator();</pre></td></tr> +<tr> <td class="numLineCover"> 849</td> <td class="nbHitsCovered"><a title="Line 849: Conditional coverage 100% (2/2)."> 14855</a></td> <td class="src"><pre class="src"> <a title="Line 849: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (pos == -1) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 850</td> <td class="nbHitsCovered"><a title="Line 850: Conditional coverage 100% (2/2)."> 8439</a></td> <td class="src"><pre class="src"> <a title="Line 850: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (tail - head > keepRegion) {</a></pre></td></tr> <tr> <td class="numLineCover"> 851</td> <td class="nbHitsCovered"> 8374</td> <td class="src"><pre class="src"> pad = keepRegion;</pre></td></tr> <tr> <td class="numLine"> 852</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 853</td> <td class="nbHitsCovered"> 64</td> <td class="src"><pre class="src"> pad = tail - head;</pre></td></tr> +<tr> <td class="numLineCover"> 853</td> <td class="nbHitsCovered"> 65</td> <td class="src"><pre class="src"> pad = tail - head;</pre></td></tr> <tr> <td class="numLine"> 854</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> <tr> <td class="numLine"> 855</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> -<tr> <td class="numLineCover"> 856</td> <td class="nbHitsCovered"> 14852</td> <td class="src"><pre class="src"> }</pre></td></tr> +<tr> <td class="numLineCover"> 856</td> <td class="nbHitsCovered"> 14855</td> <td class="src"><pre class="src"> }</pre></td></tr> <tr> <td class="numLine"> 857</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 858</td> <td class="nbHits"> </td> @@ -1603,11 +1602,11 @@ <td class="src"><pre class="src"> @Override</pre></td></tr> <tr> <td class="numLine"> 876</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">int</span> available() <span class="keyword">throws</span> IOException {</pre></td></tr> -<tr> <td class="numLineCover"> 877</td> <td class="nbHitsCovered"><a title="Line 877: Conditional coverage 100% (2/2)."> 17069664</a></td> <td class="src"><pre class="src"> <a title="Line 877: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (pos == -1) {</a></pre></td></tr>
[... 200 lines stripped ...]