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 Tue Jun 13 12:53:17 2017 @@ -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">77%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:77px"><span class="text">94/122</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">85%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:85px"><span class="text">41/48</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.2972972972972974;</span>3,297</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.2972972972972974;</span>3,297</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.2972972972972974;</span>3,297</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.2972972972972974;</span>3,297</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.2972972972972974;</span>3,297</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">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> </table> <div class="separator"> </div> @@ -468,1399 +468,1444 @@ <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="comment"> * The length of the buffer used for processing the request.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * The table for Knuth-Morris-Pratt search algorithm</span></pre></td></tr> <tr> <td class="numLine"> 234</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 235</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> <span class="keyword">int</span> bufSize;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">int</span>[] boundaryTable;</pre></td></tr> <tr> <td class="numLine"> 236</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 237</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 238</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * The buffer used for processing the request.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * The length of the buffer used for processing the request.</span></pre></td></tr> <tr> <td class="numLine"> 239</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 240</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> <span class="keyword">byte</span>[] buffer;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> <span class="keyword">int</span> bufSize;</pre></td></tr> <tr> <td class="numLine"> 241</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 242</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 243</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * The index of first valid character in the buffer.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * The buffer used for processing the request.</span></pre></td></tr> <tr> <td class="numLine"> 244</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * <br></span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 245</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * 0 <= head < bufSize</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> <span class="keyword">byte</span>[] buffer;</pre></td></tr> <tr> <td class="numLine"> 246</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 247</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">int</span> head;</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 248</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * The index of first valid character in the buffer.</span></pre></td></tr> <tr> <td class="numLine"> 249</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * <br></span></pre></td></tr> <tr> <td class="numLine"> 250</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * The index of last valid character in the buffer + 1.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * 0 <= head < bufSize</span></pre></td></tr> <tr> <td class="numLine"> 251</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * <br></span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 252</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * 0 <= tail <= bufSize</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">int</span> head;</pre></td></tr> <tr> <td class="numLine"> 253</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 254</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">int</span> tail;</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 255</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * The index of last valid character in the buffer + 1.</span></pre></td></tr> <tr> <td class="numLine"> 256</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * <br></span></pre></td></tr> <tr> <td class="numLine"> 257</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * The content encoding to use when reading headers.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * 0 <= tail <= bufSize</span></pre></td></tr> <tr> <td class="numLine"> 258</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 259</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">private</span> String headerEncoding;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">int</span> tail;</pre></td></tr> <tr> <td class="numLine"> 260</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 261</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 262</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * The progress notifier, if any, or null.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * The content encoding to use when reading headers.</span></pre></td></tr> <tr> <td class="numLine"> 263</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 264</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> ProgressNotifier notifier;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">private</span> String headerEncoding;</pre></td></tr> <tr> <td class="numLine"> 265</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 266</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment">// ----------------------------------------------------------- Constructors</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 267</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * The progress notifier, if any, or null.</span></pre></td></tr> <tr> <td class="numLine"> 268</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 269</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Creates a new instance.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> ProgressNotifier notifier;</pre></td></tr> <tr> <td class="numLine"> 270</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 271</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @deprecated 1.2.1 Use {@link #MultipartStream(InputStream, byte[], int,</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment">// ----------------------------------------------------------- Constructors</span></pre></td></tr> <tr> <td class="numLine"> 272</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * ProgressNotifier)}</span></pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 273</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 274</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> @Deprecated</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * Creates a new instance.</span></pre></td></tr> <tr> <td class="numLine"> 275</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">public</span> MultipartStream() {</pre></td></tr> -<tr> <td class="numLineCover"> 276</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">this</span>(<span class="keyword">null</span>, <span class="keyword">null</span>, <span class="keyword">null</span>);</span></pre></td></tr> -<tr> <td class="numLineCover"> 277</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 276</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @deprecated 1.2.1 Use {@link #MultipartStream(InputStream, byte[], int,</span></pre></td></tr> +<tr> <td class="numLine"> 277</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * ProgressNotifier)}</span></pre></td></tr> <tr> <td class="numLine"> 278</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 279</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src"> @Deprecated</pre></td></tr> <tr> <td class="numLine"> 280</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * <p> Constructs a <code>MultipartStream</code> with a custom size buffer</span></pre></td></tr> -<tr> <td class="numLine"> 281</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * and no progress notifier.</span></pre></td></tr> -<tr> <td class="numLine"> 282</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">public</span> MultipartStream() {</pre></td></tr> +<tr> <td class="numLineCover"> 281</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">this</span>(<span class="keyword">null</span>, <span class="keyword">null</span>, <span class="keyword">null</span>);</span></pre></td></tr> +<tr> <td class="numLineCover"> 282</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr> <tr> <td class="numLine"> 283</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * <p> Note that the buffer must be at least big enough to contain the</span></pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 284</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * boundary string, plus 4 characters for CR/LF and double dash, plus at</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 285</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * least one byte of data. Too small a buffer size setting will degrade</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * <p> Constructs a <code>MultipartStream</code> with a custom size buffer</span></pre></td></tr> <tr> <td class="numLine"> 286</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * performance.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * and no progress notifier.</span></pre></td></tr> <tr> <td class="numLine"> 287</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 288</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param input The <code>InputStream</code> to serve as a data source.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * <p> Note that the buffer must be at least big enough to contain the</span></pre></td></tr> <tr> <td class="numLine"> 289</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param boundary The token used for dividing the stream into</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * boundary string, plus 4 characters for CR/LF and double dash, plus at</span></pre></td></tr> <tr> <td class="numLine"> 290</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * <code>encapsulations</code>.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * least one byte of data. Too small a buffer size setting will degrade</span></pre></td></tr> <tr> <td class="numLine"> 291</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param bufSize The size of the buffer to be used, in bytes.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * performance.</span></pre></td></tr> <tr> <td class="numLine"> 292</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 293</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @deprecated 1.2.1 Use {@link #MultipartStream(InputStream, byte[], int,</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * @param input The <code>InputStream</code> to serve as a data source.</span></pre></td></tr> <tr> <td class="numLine"> 294</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * ProgressNotifier)}.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * @param boundary The token used for dividing the stream into</span></pre></td></tr> <tr> <td class="numLine"> 295</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * <code>encapsulations</code>.</span></pre></td></tr> <tr> <td class="numLine"> 296</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> @Deprecated</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * @param bufSize The size of the buffer to be used, in bytes.</span></pre></td></tr> <tr> <td class="numLine"> 297</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">public</span> MultipartStream(InputStream input, <span class="keyword">byte</span>[] boundary, <span class="keyword">int</span> bufSize) {</pre></td></tr> -<tr> <td class="numLineCover"> 298</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">this</span>(input, boundary, bufSize, <span class="keyword">null</span>);</span></pre></td></tr> -<tr> <td class="numLineCover"> 299</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 298</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @deprecated 1.2.1 Use {@link #MultipartStream(InputStream, byte[], int,</span></pre></td></tr> +<tr> <td class="numLine"> 299</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * ProgressNotifier)}.</span></pre></td></tr> <tr> <td class="numLine"> 300</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 301</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src"> @Deprecated</pre></td></tr> <tr> <td class="numLine"> 302</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="keyword">public</span> MultipartStream(InputStream input, <span class="keyword">byte</span>[] boundary, <span class="keyword">int</span> bufSize) {</pre></td></tr> +<tr> <td class="numLineCover"> 303</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">this</span>(input, boundary, bufSize, <span class="keyword">null</span>);</span></pre></td></tr> +<tr> <td class="numLineCover"> 304</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr> +<tr> <td class="numLine"> 305</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 306</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 307</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * <p> Constructs a <code>MultipartStream</code> with a custom size buffer.</span></pre></td></tr> -<tr> <td class="numLine"> 303</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 308</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 304</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 309</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * <p> Note that the buffer must be at least big enough to contain the</span></pre></td></tr> -<tr> <td class="numLine"> 305</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 310</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * boundary string, plus 4 characters for CR/LF and double dash, plus at</span></pre></td></tr> -<tr> <td class="numLine"> 306</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 311</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * least one byte of data. Too small a buffer size setting will degrade</span></pre></td></tr> -<tr> <td class="numLine"> 307</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 312</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * performance.</span></pre></td></tr> -<tr> <td class="numLine"> 308</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 313</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 309</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 314</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param input The <code>InputStream</code> to serve as a data source.</span></pre></td></tr> -<tr> <td class="numLine"> 310</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 315</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param boundary The token used for dividing the stream into</span></pre></td></tr> -<tr> <td class="numLine"> 311</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 316</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * <code>encapsulations</code>.</span></pre></td></tr> -<tr> <td class="numLine"> 312</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 317</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param bufSize The size of the buffer to be used, in bytes.</span></pre></td></tr> -<tr> <td class="numLine"> 313</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 318</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param pNotifier The notifier, which is used for calling the</span></pre></td></tr> -<tr> <td class="numLine"> 314</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 319</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * progress listener, if any.</span></pre></td></tr> -<tr> <td class="numLine"> 315</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 320</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 316</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 321</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws IllegalArgumentException If the buffer size is too small</span></pre></td></tr> -<tr> <td class="numLine"> 317</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 322</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 318</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 323</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @since 1.3.1</span></pre></td></tr> -<tr> <td class="numLine"> 319</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 324</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 320</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 325</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">public</span> MultipartStream(InputStream input,</pre></td></tr> -<tr> <td class="numLine"> 321</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 326</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">byte</span>[] boundary,</pre></td></tr> -<tr> <td class="numLine"> 322</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 327</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">int</span> bufSize,</pre></td></tr> -<tr> <td class="numLineCover"> 323</td> <td class="nbHitsCovered"> 29</td> <td class="src"><pre class="src"> ProgressNotifier pNotifier) {</pre></td></tr> -<tr> <td class="numLine"> 324</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 328</td> <td class="nbHitsCovered"> 29</td> <td class="src"><pre class="src"> ProgressNotifier pNotifier) {</pre></td></tr> +<tr> <td class="numLine"> 329</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 325</td> <td class="nbHitsUncovered"><a title="Line 325: Conditional coverage 50% (1/2)."> 29</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 325: 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"> 326</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"> 327</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 330</td> <td class="nbHitsUncovered"><a title="Line 330: Conditional coverage 50% (1/2)."> 29</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 330: 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"> 331</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"> 332</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> -<tr> <td class="numLine"> 328</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 333</td> <td class="nbHits"> </td> <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"> 329</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 334</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"> 330</td> <td class="nbHitsCovered"> 29</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"> 331</td> <td class="nbHitsCovered"><a title="Line 331: Conditional coverage 100% (2/2)."> 29</a></td> <td class="src"><pre class="src"> <a title="Line 331: 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"> 332</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"> 333</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 335</td> <td class="nbHitsCovered"> 29</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"> 336</td> <td class="nbHitsCovered"><a title="Line 336: Conditional coverage 100% (2/2)."> 29</a></td> <td class="src"><pre class="src"> <a title="Line 336: 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"> 337</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"> 338</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> -<tr> <td class="numLine"> 334</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 339</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> -<tr> <td class="numLine"> 335</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 336</td> <td class="nbHitsCovered"> 28</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.input = input;</pre></td></tr> -<tr> <td class="numLineCover"> 337</td> <td class="nbHitsCovered"> 28</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"> 338</td> <td class="nbHitsCovered"> 28</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"> 339</td> <td class="nbHitsCovered"> 28</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.notifier = pNotifier;</pre></td></tr> <tr> <td class="numLine"> 340</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 341</td> <td class="nbHitsCovered"> 28</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"> 342</td> <td class="nbHitsCovered"> 28</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"> 343</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 344</td> <td class="nbHitsCovered"> 28</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"> 341</td> <td class="nbHitsCovered"> 28</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.input = input;</pre></td></tr> +<tr> <td class="numLineCover"> 342</td> <td class="nbHitsCovered"> 28</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"> 343</td> <td class="nbHitsCovered"> 28</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"> 344</td> <td class="nbHitsCovered"> 28</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.notifier = pNotifier;</pre></td></tr> <tr> <td class="numLine"> 345</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLineCover"> 346</td> <td class="nbHitsCovered"> 28</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"> 347</td> <td class="nbHitsCovered"> 28</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"> 348</td> <td class="nbHitsCovered"> 28</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"> 349</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLineCover"> 350</td> <td class="nbHitsCovered"> 28</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"> 351</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> BOUNDARY_PREFIX.length);</pre></td></tr> -<tr> <td class="numLineCover"> 346</td> <td class="nbHitsCovered"> 28</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"> 347</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 352</td> <td class="nbHitsCovered"> 28</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"> 353</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> boundary.length);</pre></td></tr> -<tr> <td class="numLine"> 348</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 354</td> <td class="nbHitsCovered"> 28</td> <td class="src"><pre class="src"> computeBoundaryTable();</pre></td></tr> +<tr> <td class="numLine"> 355</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 349</td> <td class="nbHitsCovered"> 28</td> <td class="src"><pre class="src"> head = 0;</pre></td></tr> -<tr> <td class="numLineCover"> 350</td> <td class="nbHitsCovered"> 28</td> <td class="src"><pre class="src"> tail = 0;</pre></td></tr> -<tr> <td class="numLineCover"> 351</td> <td class="nbHitsCovered"> 28</td> <td class="src"><pre class="src"> }</pre></td></tr> -<tr> <td class="numLine"> 352</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 356</td> <td class="nbHitsCovered"> 28</td> <td class="src"><pre class="src"> head = 0;</pre></td></tr> +<tr> <td class="numLineCover"> 357</td> <td class="nbHitsCovered"> 28</td> <td class="src"><pre class="src"> tail = 0;</pre></td></tr> +<tr> <td class="numLineCover"> 358</td> <td class="nbHitsCovered"> 28</td> <td class="src"><pre class="src"> }</pre></td></tr> +<tr> <td class="numLine"> 359</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 353</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 360</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 354</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 361</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * <p> Constructs a <code>MultipartStream</code> with a default size buffer.</span></pre></td></tr> -<tr> <td class="numLine"> 355</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 362</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 356</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 363</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param input The <code>InputStream</code> to serve as a data source.</span></pre></td></tr> -<tr> <td class="numLine"> 357</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 364</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param boundary The token used for dividing the stream into</span></pre></td></tr> -<tr> <td class="numLine"> 358</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 365</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * <code>encapsulations</code>.</span></pre></td></tr> -<tr> <td class="numLine"> 359</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 366</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param pNotifier An object for calling the progress listener, if any.</span></pre></td></tr> -<tr> <td class="numLine"> 360</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 367</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 361</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 368</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 362</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 369</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @see #MultipartStream(InputStream, byte[], int, ProgressNotifier)</span></pre></td></tr> -<tr> <td class="numLine"> 363</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 370</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 364</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 371</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> MultipartStream(InputStream input,</pre></td></tr> -<tr> <td class="numLine"> 365</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 372</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">byte</span>[] boundary,</pre></td></tr> -<tr> <td class="numLine"> 366</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 373</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> ProgressNotifier pNotifier) {</pre></td></tr> -<tr> <td class="numLineCover"> 367</td> <td class="nbHitsCovered"> 27</td> <td class="src"><pre class="src"> <span class="keyword">this</span>(input, boundary, DEFAULT_BUFSIZE, pNotifier);</pre></td></tr> -<tr> <td class="numLineCover"> 368</td> <td class="nbHitsCovered"> 27</td> <td class="src"><pre class="src"> }</pre></td></tr> -<tr> <td class="numLine"> 369</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 374</td> <td class="nbHitsCovered"> 27</td> <td class="src"><pre class="src"> <span class="keyword">this</span>(input, boundary, DEFAULT_BUFSIZE, pNotifier);</pre></td></tr> +<tr> <td class="numLineCover"> 375</td> <td class="nbHitsCovered"> 27</td> <td class="src"><pre class="src"> }</pre></td></tr> +<tr> <td class="numLine"> 376</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 370</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 377</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 371</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 378</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * <p> Constructs a <code>MultipartStream</code> with a default size buffer.</span></pre></td></tr> -<tr> <td class="numLine"> 372</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 379</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 373</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 380</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param input The <code>InputStream</code> to serve as a data source.</span></pre></td></tr> -<tr> <td class="numLine"> 374</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 381</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param boundary The token used for dividing the stream into</span></pre></td></tr> -<tr> <td class="numLine"> 375</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 382</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * <code>encapsulations</code>.</span></pre></td></tr> -<tr> <td class="numLine"> 376</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 383</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 377</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 384</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @deprecated 1.2.1 Use {@link #MultipartStream(InputStream, byte[], int,</span></pre></td></tr> -<tr> <td class="numLine"> 378</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 385</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * ProgressNotifier)}.</span></pre></td></tr> -<tr> <td class="numLine"> 379</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 386</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 380</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 387</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> @Deprecated</pre></td></tr> -<tr> <td class="numLine"> 381</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 388</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">public</span> MultipartStream(InputStream input,</pre></td></tr> -<tr> <td class="numLine"> 382</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 389</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">byte</span>[] boundary) {</pre></td></tr> -<tr> <td class="numLineCover"> 383</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">this</span>(input, boundary, DEFAULT_BUFSIZE, <span class="keyword">null</span>);</span></pre></td></tr> -<tr> <td class="numLineCover"> 384</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr> -<tr> <td class="numLine"> 385</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 390</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">this</span>(input, boundary, DEFAULT_BUFSIZE, <span class="keyword">null</span>);</span></pre></td></tr> +<tr> <td class="numLineCover"> 391</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr> +<tr> <td class="numLine"> 392</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 386</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 393</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">// --------------------------------------------------------- Public methods</span></pre></td></tr> -<tr> <td class="numLine"> 387</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 394</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 388</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 395</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 389</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 396</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Retrieves the character encoding used when reading the headers of an</span></pre></td></tr> -<tr> <td class="numLine"> 390</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 397</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * individual part. When not specified, or <code>null</code>, the platform</span></pre></td></tr> -<tr> <td class="numLine"> 391</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 398</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * default encoding is used.</span></pre></td></tr> -<tr> <td class="numLine"> 392</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 399</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 393</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 400</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return The encoding used to read part headers.</span></pre></td></tr> -<tr> <td class="numLine"> 394</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 401</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 395</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 402</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">public</span> String getHeaderEncoding() {</pre></td></tr> -<tr> <td class="numLineCover"> 396</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> headerEncoding;</span></pre></td></tr> -<tr> <td class="numLine"> 397</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 403</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> headerEncoding;</span></pre></td></tr> +<tr> <td class="numLine"> 404</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> -<tr> <td class="numLine"> 398</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 405</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 399</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 406</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 400</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 407</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Specifies the character encoding to be used when reading the headers of</span></pre></td></tr> -<tr> <td class="numLine"> 401</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 408</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * individual parts. When not specified, or <code>null</code>, the platform</span></pre></td></tr> -<tr> <td class="numLine"> 402</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 409</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * default encoding is used.</span></pre></td></tr> -<tr> <td class="numLine"> 403</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 410</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 404</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 411</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param encoding The encoding used to read part headers.</span></pre></td></tr> -<tr> <td class="numLine"> 405</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 412</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 406</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 413</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"> 407</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src"> headerEncoding = encoding;</pre></td></tr> -<tr> <td class="numLineCover"> 408</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src"> }</pre></td></tr> -<tr> <td class="numLine"> 409</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 414</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src"> headerEncoding = encoding;</pre></td></tr> +<tr> <td class="numLineCover"> 415</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src"> }</pre></td></tr> +<tr> <td class="numLine"> 416</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 410</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 417</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 411</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 418</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Reads a byte from the <code>buffer</code>, and refills it as</span></pre></td></tr> -<tr> <td class="numLine"> 412</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 419</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * necessary.</span></pre></td></tr> -<tr> <td class="numLine"> 413</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 420</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 414</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 421</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return The next byte from the input stream.</span></pre></td></tr> -<tr> <td class="numLine"> 415</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 422</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 416</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 423</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws IOException if there is no more data available.</span></pre></td></tr> -<tr> <td class="numLine"> 417</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 424</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 418</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 425</td> <td class="nbHits"> </td> <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"> 419</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 426</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">// Buffer depleted ?</span></pre></td></tr> -<tr> <td class="numLineCover"> 420</td> <td class="nbHitsCovered"><a title="Line 420: Conditional coverage 100% (2/2)."> 168361</a></td> <td class="src"><pre class="src"> <a title="Line 420: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (head == tail) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 421</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src"> head = 0;</pre></td></tr> -<tr> <td class="numLine"> 422</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 427</td> <td class="nbHitsCovered"><a title="Line 427: Conditional coverage 100% (2/2)."> 168361</a></td> <td class="src"><pre class="src"> <a title="Line 427: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (head == tail) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 428</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src"> head = 0;</pre></td></tr> +<tr> <td class="numLine"> 429</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">// Refill.</span></pre></td></tr> -<tr> <td class="numLineCover"> 423</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src"> tail = input.read(buffer, head, bufSize);</pre></td></tr> -<tr> <td class="numLineCover"> 424</td> <td class="nbHitsUncovered"><a title="Line 424: Conditional coverage 50% (1/2)."> 71</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 424: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (tail == -1) {</a></span></pre></td></tr> -<tr> <td class="numLine"> 425</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 430</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src"> tail = input.read(buffer, head, bufSize);</pre></td></tr> +<tr> <td class="numLineCover"> 431</td> <td class="nbHitsUncovered"><a title="Line 431: Conditional coverage 50% (1/2)."> 71</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 431: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (tail == -1) {</a></span></pre></td></tr> +<tr> <td class="numLine"> 432</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">// No more data available.</span></pre></td></tr> -<tr> <td class="numLineCover"> 426</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> IOException(<span class="string">"No more data is available"</span>);</span></pre></td></tr> -<tr> <td class="numLine"> 427</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 433</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> IOException(<span class="string">"No more data is available"</span>);</span></pre></td></tr> +<tr> <td class="numLine"> 434</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> -<tr> <td class="numLineCover"> 428</td> <td class="nbHitsUncovered"><a title="Line 428: Conditional coverage 50% (1/2)."> 71</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 428: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (notifier != <span class="keyword">null</span>) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 429</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src"> notifier.noteBytesRead(tail);</pre></td></tr> -<tr> <td class="numLine"> 430</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 435</td> <td class="nbHitsUncovered"><a title="Line 435: Conditional coverage 50% (1/2)."> 71</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 435: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (notifier != <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 436</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src"> notifier.noteBytesRead(tail);</pre></td></tr> +<tr> <td class="numLine"> 437</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> -<tr> <td class="numLine"> 431</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 438</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> -<tr> <td class="numLineCover"> 432</td> <td class="nbHitsCovered"> 168361</td> <td class="src"><pre class="src"> <span class="keyword">return</span> buffer[head++];</pre></td></tr> -<tr> <td class="numLine"> 433</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 439</td> <td class="nbHitsCovered"> 168361</td> <td class="src"><pre class="src"> <span class="keyword">return</span> buffer[head++];</pre></td></tr> +<tr> <td class="numLine"> 440</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> -<tr> <td class="numLine"> 434</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 441</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 435</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 442</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 436</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 443</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Skips a <code>boundary</code> token, and checks whether more</span></pre></td></tr> -<tr> <td class="numLine"> 437</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 444</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * <code>encapsulations</code> are contained in the stream.</span></pre></td></tr> -<tr> <td class="numLine"> 438</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 445</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 439</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 446</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return <code>true</code> if there are more encapsulations in</span></pre></td></tr> -<tr> <td class="numLine"> 440</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 447</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * this stream; <code>false</code> otherwise.</span></pre></td></tr> -<tr> <td class="numLine"> 441</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 448</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 442</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 449</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws FileUploadIOException if the bytes read from the stream exceeded the size limits</span></pre></td></tr> -<tr> <td class="numLine"> 443</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 450</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws MalformedStreamException if the stream ends unexpectedly or</span></pre></td></tr> -<tr> <td class="numLine"> 444</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 451</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * fails to follow required syntax.</span></pre></td></tr> -<tr> <td class="numLine"> 445</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 452</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 446</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 453</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">boolean</span> readBoundary()</pre></td></tr> -<tr> <td class="numLine"> 447</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 454</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"> 448</td> <td class="nbHitsCovered"> 3186</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"> 449</td> <td class="nbHitsCovered"> 3186</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"> 450</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 455</td> <td class="nbHitsCovered"> 3186</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"> 456</td> <td class="nbHitsCovered"> 3186</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"> 457</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 451</td> <td class="nbHitsCovered"> 3186</td> <td class="src"><pre class="src"> head += boundaryLength;</pre></td></tr> -<tr> <td class="numLine"> 452</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 458</td> <td class="nbHitsCovered"> 3186</td> <td class="src"><pre class="src"> head += boundaryLength;</pre></td></tr> +<tr> <td class="numLine"> 459</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 453</td> <td class="nbHitsCovered"> 3186</td> <td class="src"><pre class="src"> marker[0] = readByte();</pre></td></tr> -<tr> <td class="numLineCover"> 454</td> <td class="nbHitsCovered"><a title="Line 454: Conditional coverage 100% (2/2)."> 3186</a></td> <td class="src"><pre class="src"> <a title="Line 454: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (marker[0] == LF) {</a></pre></td></tr> -<tr> <td class="numLine"> 455</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 460</td> <td class="nbHitsCovered"> 3186</td> <td class="src"><pre class="src"> marker[0] = readByte();</pre></td></tr> +<tr> <td class="numLineCover"> 461</td> <td class="nbHitsCovered"><a title="Line 461: Conditional coverage 100% (2/2)."> 3186</a></td> <td class="src"><pre class="src"> <a title="Line 461: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (marker[0] == LF) {</a></pre></td></tr> +<tr> <td class="numLine"> 462</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"> 456</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 463</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">// Because the boundary delimiter, not including the trailing</span></pre></td></tr> -<tr> <td class="numLine"> 457</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 464</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">// CRLF, must not appear within any file (RFC 2046, section</span></pre></td></tr> -<tr> <td class="numLine"> 458</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 465</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">// 5.1.1), we know the missing CR is due to a buggy browser</span></pre></td></tr> -<tr> <td class="numLine"> 459</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 466</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">// rather than a file containing something similar to a</span></pre></td></tr> -<tr> <td class="numLine"> 460</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 467</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">// boundary.</span></pre></td></tr> -<tr> <td class="numLineCover"> 461</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">true</span>;</pre></td></tr> -<tr> <td class="numLine"> 462</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 468</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">true</span>;</pre></td></tr> +<tr> <td class="numLine"> 469</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> -<tr> <td class="numLine"> 463</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 470</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 464</td> <td class="nbHitsCovered"> 3184</td> <td class="src"><pre class="src"> marker[1] = readByte();</pre></td></tr> -<tr> <td class="numLineCover"> 465</td> <td class="nbHitsCovered"><a title="Line 465: Conditional coverage 100% (2/2)."> 3184</a></td> <td class="src"><pre class="src"> <a title="Line 465: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (arrayequals(marker, STREAM_TERMINATOR, 2)) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 466</td> <td class="nbHitsCovered"> 21</td> <td class="src"><pre class="src"> nextChunk = <span class="keyword">false</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 467</td> <td class="nbHitsUncovered"><a title="Line 467: Conditional coverage 50% (1/2)."> 3163</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 467: 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"> 468</td> <td class="nbHitsCovered"> 3163</td> <td class="src"><pre class="src"> nextChunk = <span class="keyword">true</span>;</pre></td></tr> -<tr> <td class="numLine"> 469</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 471</td> <td class="nbHitsCovered"> 3184</td> <td class="src"><pre class="src"> marker[1] = readByte();</pre></td></tr> +<tr> <td class="numLineCover"> 472</td> <td class="nbHitsCovered"><a title="Line 472: Conditional coverage 100% (2/2)."> 3184</a></td> <td class="src"><pre class="src"> <a title="Line 472: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (arrayequals(marker, STREAM_TERMINATOR, 2)) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 473</td> <td class="nbHitsCovered"> 21</td> <td class="src"><pre class="src"> nextChunk = <span class="keyword">false</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 474</td> <td class="nbHitsUncovered"><a title="Line 474: Conditional coverage 50% (1/2)."> 3163</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 474: 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"> 475</td> <td class="nbHitsCovered"> 3163</td> <td class="src"><pre class="src"> nextChunk = <span class="keyword">true</span>;</pre></td></tr> +<tr> <td class="numLine"> 476</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 470</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="numLine"> 471</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 477</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="numLine"> 478</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="string">"Unexpected characters follow a boundary"</span>);</pre></td></tr> -<tr> <td class="numLine"> 472</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 479</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> -<tr> <td class="numLineCover"> 473</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"> 474</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 480</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"> 481</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"> 475</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"> 476</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"> 477</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"> 478</td> <td class="nbHitsCovered"> 3184</td> <td class="src"><pre class="src"> }</pre></td></tr>
[... 1560 lines stripped ...]