You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@commons.apache.org by br...@apache.org on 2016/07/01 05:48:38 UTC
svn commit: r991782 [35/46] - in
/websites/production/commons/content/proper/commons-fileupload: ./ apidocs/
apidocs/org/apache/commons/fileupload/
apidocs/org/apache/commons/fileupload/class-use/
apidocs/org/apache/commons/fileupload/disk/ apidocs/org...
Added: websites/production/commons/content/proper/commons-fileupload/cobertura/org.apache.commons.fileupload.util.LimitedInputStream.html
==============================================================================
--- websites/production/commons/content/proper/commons-fileupload/cobertura/org.apache.commons.fileupload.util.LimitedInputStream.html (added)
+++ websites/production/commons/content/proper/commons-fileupload/cobertura/org.apache.commons.fileupload.util.LimitedInputStream.html Fri Jul 1 05:48:35 2016
@@ -0,0 +1,338 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<title>Coverage Report</title>
+<link title="Style" type="text/css" rel="stylesheet" href="css/main.css"/>
+<script type="text/javascript" src="js/popup.js"></script>
+</head>
+<body>
+<h5>Coverage Report - org.apache.commons.fileupload.util.LimitedInputStream</h5>
+<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.util.LimitedInputStream.html">LimitedInputStream</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">75%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:75px"><span class="text">15/20</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">66%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:66px"><span class="text">4/6</span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.4285714285714286;</span>1,429</td></tr>
+
+</table>
+<div class="separator"> </div>
+<table cellspacing="0" cellpadding="0" class="src">
+<tr> <td class="numLine"> 1</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/*</span></pre></td></tr>
+<tr> <td class="numLine"> 2</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span></pre></td></tr>
+<tr> <td class="numLine"> 3</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * contributor license agreements. See the NOTICE file distributed with</span></pre></td></tr>
+<tr> <td class="numLine"> 4</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * this work for additional information regarding copyright ownership.</span></pre></td></tr>
+<tr> <td class="numLine"> 5</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span></pre></td></tr>
+<tr> <td class="numLine"> 6</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * (the "License"); you may not use this file except in compliance with</span></pre></td></tr>
+<tr> <td class="numLine"> 7</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * the License. You may obtain a copy of the License at</span></pre></td></tr>
+<tr> <td class="numLine"> 8</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
+<tr> <td class="numLine"> 9</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * http://www.apache.org/licenses/LICENSE-2.0</span></pre></td></tr>
+<tr> <td class="numLine"> 10</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
+<tr> <td class="numLine"> 11</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span></pre></td></tr>
+<tr> <td class="numLine"> 12</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span></pre></td></tr>
+<tr> <td class="numLine"> 13</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></pre></td></tr>
+<tr> <td class="numLine"> 14</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * See the License for the specific language governing permissions and</span></pre></td></tr>
+<tr> <td class="numLine"> 15</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * limitations under the License.</span></pre></td></tr>
+<tr> <td class="numLine"> 16</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
+<tr> <td class="numLine"> 17</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">package</span> org.apache.commons.fileupload.util;</pre></td></tr>
+<tr> <td class="numLine"> 18</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 19</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">import</span> java.io.FilterInputStream;</pre></td></tr>
+<tr> <td class="numLine"> 20</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">import</span> java.io.IOException;</pre></td></tr>
+<tr> <td class="numLine"> 21</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">import</span> java.io.InputStream;</pre></td></tr>
+<tr> <td class="numLine"> 22</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 23</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
+<tr> <td class="numLine"> 24</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * An input stream, which limits its data size. This stream is</span></pre></td></tr>
+<tr> <td class="numLine"> 25</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * used, if the content length is unknown.</span></pre></td></tr>
+<tr> <td class="numLine"> 26</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
+<tr> <td class="numLine"> 27</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @version $Id: LimitedInputStream.java 1747113 2016-06-07 02:19:02Z ggregory $</span></pre></td></tr>
+<tr> <td class="numLine"> 28</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
+<tr> <td class="numLine"> 29</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">abstract</span> <span class="keyword">class</span> LimitedInputStream <span class="keyword">extends</span> FilterInputStream <span class="keyword">implements</span> Closeable {</pre></td></tr>
+<tr> <td class="numLine"> 30</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 31</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
+<tr> <td class="numLine"> 32</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * The maximum size of an item, in bytes.</span></pre></td></tr>
+<tr> <td class="numLine"> 33</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
+<tr> <td class="numLine"> 34</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> <span class="keyword">long</span> sizeMax;</pre></td></tr>
+<tr> <td class="numLine"> 35</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 36</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
+<tr> <td class="numLine"> 37</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * The current number of bytes.</span></pre></td></tr>
+<tr> <td class="numLine"> 38</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
+<tr> <td class="numLine"> 39</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">long</span> count;</pre></td></tr>
+<tr> <td class="numLine"> 40</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 41</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
+<tr> <td class="numLine"> 42</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * Whether this stream is already closed.</span></pre></td></tr>
+<tr> <td class="numLine"> 43</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
+<tr> <td class="numLine"> 44</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">boolean</span> closed;</pre></td></tr>
+<tr> <td class="numLine"> 45</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 46</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
+<tr> <td class="numLine"> 47</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * Creates a new instance.</span></pre></td></tr>
+<tr> <td class="numLine"> 48</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
+<tr> <td class="numLine"> 49</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @param inputStream The input stream, which shall be limited.</span></pre></td></tr>
+<tr> <td class="numLine"> 50</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @param pSizeMax The limit; no more than this number of bytes</span></pre></td></tr>
+<tr> <td class="numLine"> 51</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * shall be returned by the source stream.</span></pre></td></tr>
+<tr> <td class="numLine"> 52</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
+<tr> <td class="numLine"> 53</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> LimitedInputStream(InputStream inputStream, <span class="keyword">long</span> pSizeMax) {</pre></td></tr>
+<tr> <td class="numLineCover"> 54</td> <td class="nbHitsCovered"> 5</td> <td class="src"><pre class="src"> <span class="keyword">super</span>(inputStream);</pre></td></tr>
+<tr> <td class="numLineCover"> 55</td> <td class="nbHitsCovered"> 5</td> <td class="src"><pre class="src"> sizeMax = pSizeMax;</pre></td></tr>
+<tr> <td class="numLineCover"> 56</td> <td class="nbHitsCovered"> 5</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 57</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 58</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
+<tr> <td class="numLine"> 59</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * Called to indicate, that the input streams limit has</span></pre></td></tr>
+<tr> <td class="numLine"> 60</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * been exceeded.</span></pre></td></tr>
+<tr> <td class="numLine"> 61</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
+<tr> <td class="numLine"> 62</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @param pSizeMax The input streams limit, in bytes.</span></pre></td></tr>
+<tr> <td class="numLine"> 63</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @param pCount The actual number of bytes.</span></pre></td></tr>
+<tr> <td class="numLine"> 64</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @throws IOException The called method is expected</span></pre></td></tr>
+<tr> <td class="numLine"> 65</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * to raise an IOException.</span></pre></td></tr>
+<tr> <td class="numLine"> 66</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
+<tr> <td class="numLine"> 67</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">protected</span> <span class="keyword">abstract</span> <span class="keyword">void</span> raiseError(<span class="keyword">long</span> pSizeMax, <span class="keyword">long</span> pCount)</pre></td></tr>
+<tr> <td class="numLine"> 68</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">throws</span> IOException;</pre></td></tr>
+<tr> <td class="numLine"> 69</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 70</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
+<tr> <td class="numLine"> 71</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * Called to check, whether the input streams</span></pre></td></tr>
+<tr> <td class="numLine"> 72</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * limit is reached.</span></pre></td></tr>
+<tr> <td class="numLine"> 73</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
+<tr> <td class="numLine"> 74</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @throws IOException The given limit is exceeded.</span></pre></td></tr>
+<tr> <td class="numLine"> 75</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
+<tr> <td class="numLine"> 76</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">void</span> checkLimit() <span class="keyword">throws</span> IOException {</pre></td></tr>
+<tr> <td class="numLineCover"> 77</td> <td class="nbHitsCovered"><a title="Line 77: Conditional coverage 100% (2/2)."> 36</a></td> <td class="src"><pre class="src"> <a title="Line 77: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (count > sizeMax) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 78</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> raiseError(sizeMax, count);</pre></td></tr>
+<tr> <td class="numLine"> 79</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 80</td> <td class="nbHitsCovered"> 32</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 81</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 82</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
+<tr> <td class="numLine"> 83</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * Reads the next byte of data from this input stream. The value</span></pre></td></tr>
+<tr> <td class="numLine"> 84</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * byte is returned as an <code>int</code> in the range</span></pre></td></tr>
+<tr> <td class="numLine"> 85</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * <code>0</code> to <code>255</code>. If no byte is available</span></pre></td></tr>
+<tr> <td class="numLine"> 86</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * because the end of the stream has been reached, the value</span></pre></td></tr>
+<tr> <td class="numLine"> 87</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * <code>-1</code> is returned. This method blocks until input data</span></pre></td></tr>
+<tr> <td class="numLine"> 88</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * is available, the end of the stream is detected, or an exception</span></pre></td></tr>
+<tr> <td class="numLine"> 89</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * is thrown.</span></pre></td></tr>
+<tr> <td class="numLine"> 90</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * <p></span></pre></td></tr>
+<tr> <td class="numLine"> 91</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * This method</span></pre></td></tr>
+<tr> <td class="numLine"> 92</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * simply performs <code>in.read()</code> and returns the result.</span></pre></td></tr>
+<tr> <td class="numLine"> 93</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
+<tr> <td class="numLine"> 94</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @return the next byte of data, or <code>-1</code> if the end of the</span></pre></td></tr>
+<tr> <td class="numLine"> 95</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * stream is reached.</span></pre></td></tr>
+<tr> <td class="numLine"> 96</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @throws IOException if an I/O error occurs.</span></pre></td></tr>
+<tr> <td class="numLine"> 97</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @see java.io.FilterInputStream#in</span></pre></td></tr>
+<tr> <td class="numLine"> 98</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
+<tr> <td class="numLine"> 99</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> @Override</pre></td></tr>
+<tr> <td class="numLine"> 100</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">int</span> read() <span class="keyword">throws</span> IOException {</pre></td></tr>
+<tr> <td class="numLineCover"> 101</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">int</span> res = <span class="keyword">super</span>.read();</span></pre></td></tr>
+<tr> <td class="numLineCover"> 102</td> <td class="nbHitsUncovered"><a title="Line 102: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 102: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (res != -1) {</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 103</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> count++;</span></pre></td></tr>
+<tr> <td class="numLineCover"> 104</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> checkLimit();</span></pre></td></tr>
+<tr> <td class="numLine"> 105</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 106</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> res;</span></pre></td></tr>
+<tr> <td class="numLine"> 107</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 108</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 109</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
+<tr> <td class="numLine"> 110</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * Reads up to <code>len</code> bytes of data from this input stream</span></pre></td></tr>
+<tr> <td class="numLine"> 111</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * into an array of bytes. If <code>len</code> is not zero, the method</span></pre></td></tr>
+<tr> <td class="numLine"> 112</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * blocks until some input is available; otherwise, no</span></pre></td></tr>
+<tr> <td class="numLine"> 113</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * bytes are read and <code>0</code> is returned.</span></pre></td></tr>
+<tr> <td class="numLine"> 114</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * <p></span></pre></td></tr>
+<tr> <td class="numLine"> 115</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * This method simply performs <code>in.read(b, off, len)</code></span></pre></td></tr>
+<tr> <td class="numLine"> 116</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * and returns the result.</span></pre></td></tr>
+<tr> <td class="numLine"> 117</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
+<tr> <td class="numLine"> 118</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @param b the buffer into which the data is read.</span></pre></td></tr>
+<tr> <td class="numLine"> 119</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @param off The start offset in the destination array</span></pre></td></tr>
+<tr> <td class="numLine"> 120</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * <code>b</code>.</span></pre></td></tr>
+<tr> <td class="numLine"> 121</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @param len the maximum number of bytes read.</span></pre></td></tr>
+<tr> <td class="numLine"> 122</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @return the total number of bytes read into the buffer, or</span></pre></td></tr>
+<tr> <td class="numLine"> 123</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * <code>-1</code> if there is no more data because the end of</span></pre></td></tr>
+<tr> <td class="numLine"> 124</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * the stream has been reached.</span></pre></td></tr>
+<tr> <td class="numLine"> 125</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @throws NullPointerException If <code>b</code> is <code>null</code>.</span></pre></td></tr>
+<tr> <td class="numLine"> 126</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @throws IndexOutOfBoundsException If <code>off</code> is negative,</span></pre></td></tr>
+<tr> <td class="numLine"> 127</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * <code>len</code> is negative, or <code>len</code> is greater than</span></pre></td></tr>
+<tr> <td class="numLine"> 128</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * <code>b.length - off</code></span></pre></td></tr>
+<tr> <td class="numLine"> 129</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @throws IOException if an I/O error occurs.</span></pre></td></tr>
+<tr> <td class="numLine"> 130</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @see java.io.FilterInputStream#in</span></pre></td></tr>
+<tr> <td class="numLine"> 131</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
+<tr> <td class="numLine"> 132</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> @Override</pre></td></tr>
+<tr> <td class="numLine"> 133</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">int</span> read(<span class="keyword">byte</span>[] b, <span class="keyword">int</span> off, <span class="keyword">int</span> len) <span class="keyword">throws</span> IOException {</pre></td></tr>
+<tr> <td class="numLineCover"> 134</td> <td class="nbHitsCovered"> 38</td> <td class="src"><pre class="src"> <span class="keyword">int</span> res = <span class="keyword">super</span>.read(b, off, len);</pre></td></tr>
+<tr> <td class="numLineCover"> 135</td> <td class="nbHitsCovered"><a title="Line 135: Conditional coverage 100% (2/2)."> 38</a></td> <td class="src"><pre class="src"> <a title="Line 135: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (res > 0) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 136</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src"> count += res;</pre></td></tr>
+<tr> <td class="numLineCover"> 137</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src"> checkLimit();</pre></td></tr>
+<tr> <td class="numLine"> 138</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 139</td> <td class="nbHitsCovered"> 34</td> <td class="src"><pre class="src"> <span class="keyword">return</span> res;</pre></td></tr>
+<tr> <td class="numLine"> 140</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 141</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 142</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
+<tr> <td class="numLine"> 143</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * Returns, whether this stream is already closed.</span></pre></td></tr>
+<tr> <td class="numLine"> 144</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
+<tr> <td class="numLine"> 145</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @return True, if the stream is closed, otherwise false.</span></pre></td></tr>
+<tr> <td class="numLine"> 146</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @throws IOException An I/O error occurred.</span></pre></td></tr>
+<tr> <td class="numLine"> 147</td> <td class="nbHits"> </td>
+ <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">public</span> <span class="keyword">boolean</span> isClosed() <span class="keyword">throws</span> IOException {</pre></td></tr>
+<tr> <td class="numLineCover"> 149</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> <span class="keyword">return</span> closed;</pre></td></tr>
+<tr> <td class="numLine"> 150</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</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="numLine"> 152</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
+<tr> <td class="numLine"> 153</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * Closes this input stream and releases any system resources</span></pre></td></tr>
+<tr> <td class="numLine"> 154</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * associated with the stream.</span></pre></td></tr>
+<tr> <td class="numLine"> 155</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * This</span></pre></td></tr>
+<tr> <td class="numLine"> 156</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * method simply performs <code>in.close()</code>.</span></pre></td></tr>
+<tr> <td class="numLine"> 157</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
+<tr> <td class="numLine"> 158</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @throws IOException if an I/O error occurs.</span></pre></td></tr>
+<tr> <td class="numLine"> 159</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @see java.io.FilterInputStream#in</span></pre></td></tr>
+<tr> <td class="numLine"> 160</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
+<tr> <td class="numLine"> 161</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> @Override</pre></td></tr>
+<tr> <td class="numLine"> 162</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> close() <span class="keyword">throws</span> IOException {</pre></td></tr>
+<tr> <td class="numLineCover"> 163</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> closed = <span class="keyword">true</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 164</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">super</span>.close();</pre></td></tr>
+<tr> <td class="numLineCover"> 165</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 166</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 167</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+</table>
+
+<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 2.1.1 on 01.07.16 07:47.</div>
+</body>
+</html>
\ No newline at end of file
Propchange: websites/production/commons/content/proper/commons-fileupload/cobertura/org.apache.commons.fileupload.util.LimitedInputStream.html
------------------------------------------------------------------------------
svn:eol-style = native
Added: websites/production/commons/content/proper/commons-fileupload/cobertura/org.apache.commons.fileupload.util.Streams.html
==============================================================================
--- websites/production/commons/content/proper/commons-fileupload/cobertura/org.apache.commons.fileupload.util.Streams.html (added)
+++ websites/production/commons/content/proper/commons-fileupload/cobertura/org.apache.commons.fileupload.util.Streams.html Fri Jul 1 05:48:35 2016
@@ -0,0 +1,373 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<title>Coverage Report</title>
+<link title="Style" type="text/css" rel="stylesheet" href="css/main.css"/>
+<script type="text/javascript" src="js/popup.js"></script>
+</head>
+<body>
+<h5>Coverage Report - org.apache.commons.fileupload.util.Streams</h5>
+<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.util.Streams.html">Streams</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">78%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:78px"><span class="text">32/41</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">90%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:90px"><span class="text">18/20</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.1666666666666665;</span>3,167</td></tr>
+
+</table>
+<div class="separator"> </div>
+<table cellspacing="0" cellpadding="0" class="src">
+<tr> <td class="numLine"> 1</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/*</span></pre></td></tr>
+<tr> <td class="numLine"> 2</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span></pre></td></tr>
+<tr> <td class="numLine"> 3</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * contributor license agreements. See the NOTICE file distributed with</span></pre></td></tr>
+<tr> <td class="numLine"> 4</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * this work for additional information regarding copyright ownership.</span></pre></td></tr>
+<tr> <td class="numLine"> 5</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span></pre></td></tr>
+<tr> <td class="numLine"> 6</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * (the "License"); you may not use this file except in compliance with</span></pre></td></tr>
+<tr> <td class="numLine"> 7</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * the License. You may obtain a copy of the License at</span></pre></td></tr>
+<tr> <td class="numLine"> 8</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
+<tr> <td class="numLine"> 9</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * http://www.apache.org/licenses/LICENSE-2.0</span></pre></td></tr>
+<tr> <td class="numLine"> 10</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
+<tr> <td class="numLine"> 11</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span></pre></td></tr>
+<tr> <td class="numLine"> 12</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span></pre></td></tr>
+<tr> <td class="numLine"> 13</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></pre></td></tr>
+<tr> <td class="numLine"> 14</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * See the License for the specific language governing permissions and</span></pre></td></tr>
+<tr> <td class="numLine"> 15</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * limitations under the License.</span></pre></td></tr>
+<tr> <td class="numLine"> 16</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
+<tr> <td class="numLine"> 17</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">package</span> org.apache.commons.fileupload.util;</pre></td></tr>
+<tr> <td class="numLine"> 18</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 19</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">import</span> java.io.ByteArrayOutputStream;</pre></td></tr>
+<tr> <td class="numLine"> 20</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">import</span> java.io.IOException;</pre></td></tr>
+<tr> <td class="numLine"> 21</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">import</span> java.io.InputStream;</pre></td></tr>
+<tr> <td class="numLine"> 22</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">import</span> java.io.OutputStream;</pre></td></tr>
+<tr> <td class="numLine"> 23</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 24</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.commons.fileupload.InvalidFileNameException;</pre></td></tr>
+<tr> <td class="numLine"> 25</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.commons.io.IOUtils;</pre></td></tr>
+<tr> <td class="numLine"> 26</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 27</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
+<tr> <td class="numLine"> 28</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * Utility class for working with streams.</span></pre></td></tr>
+<tr> <td class="numLine"> 29</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
+<tr> <td class="numLine"> 30</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @version $Id: Streams.java 1565332 2014-02-06 16:42:19Z ggregory $</span></pre></td></tr>
+<tr> <td class="numLine"> 31</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
+<tr> <td class="numLine"> 32</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">class</span> Streams {</pre></td></tr>
+<tr> <td class="numLine"> 33</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 34</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
+<tr> <td class="numLine"> 35</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * Private constructor, to prevent instantiation.</span></pre></td></tr>
+<tr> <td class="numLine"> 36</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * This class has only static methods.</span></pre></td></tr>
+<tr> <td class="numLine"> 37</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
+<tr> <td class="numLineCover"> 38</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">private</span> Streams() {</span></pre></td></tr>
+<tr> <td class="numLine"> 39</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">// Does nothing</span></pre></td></tr>
+<tr> <td class="numLineCover"> 40</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
+<tr> <td class="numLine"> 41</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 42</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
+<tr> <td class="numLine"> 43</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * Default buffer size for use in</span></pre></td></tr>
+<tr> <td class="numLine"> 44</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * {@link #copy(InputStream, OutputStream, boolean)}.</span></pre></td></tr>
+<tr> <td class="numLine"> 45</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
+<tr> <td class="numLine"> 46</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">int</span> DEFAULT_BUFFER_SIZE = 8192;</pre></td></tr>
+<tr> <td class="numLine"> 47</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 48</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
+<tr> <td class="numLine"> 49</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * Copies the contents of the given {@link InputStream}</span></pre></td></tr>
+<tr> <td class="numLine"> 50</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * to the given {@link OutputStream}. Shortcut for</span></pre></td></tr>
+<tr> <td class="numLine"> 51</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * <pre></span></pre></td></tr>
+<tr> <td class="numLine"> 52</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * copy(pInputStream, pOutputStream, new byte[8192]);</span></pre></td></tr>
+<tr> <td class="numLine"> 53</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * </pre></span></pre></td></tr>
+<tr> <td class="numLine"> 54</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
+<tr> <td class="numLine"> 55</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @param inputStream The input stream, which is being read.</span></pre></td></tr>
+<tr> <td class="numLine"> 56</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * It is guaranteed, that {@link InputStream#close()} is called</span></pre></td></tr>
+<tr> <td class="numLine"> 57</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * on the stream.</span></pre></td></tr>
+<tr> <td class="numLine"> 58</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @param outputStream The output stream, to which data should</span></pre></td></tr>
+<tr> <td class="numLine"> 59</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * be written. May be null, in which case the input streams</span></pre></td></tr>
+<tr> <td class="numLine"> 60</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * contents are simply discarded.</span></pre></td></tr>
+<tr> <td class="numLine"> 61</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @param closeOutputStream True guarantees, that {@link OutputStream#close()}</span></pre></td></tr>
+<tr> <td class="numLine"> 62</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * is called on the stream. False indicates, that only</span></pre></td></tr>
+<tr> <td class="numLine"> 63</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * {@link OutputStream#flush()} should be called finally.</span></pre></td></tr>
+<tr> <td class="numLine"> 64</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
+<tr> <td class="numLine"> 65</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @return Number of bytes, which have been copied.</span></pre></td></tr>
+<tr> <td class="numLine"> 66</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @throws IOException An I/O error occurred.</span></pre></td></tr>
+<tr> <td class="numLine"> 67</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
+<tr> <td class="numLine"> 68</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">long</span> copy(InputStream inputStream, OutputStream outputStream, <span class="keyword">boolean</span> closeOutputStream)</pre></td></tr>
+<tr> <td class="numLine"> 69</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">throws</span> IOException {</pre></td></tr>
+<tr> <td class="numLineCover"> 70</td> <td class="nbHitsCovered"> 5324</td> <td class="src"><pre class="src"> <span class="keyword">return</span> copy(inputStream, outputStream, closeOutputStream, <span class="keyword">new</span> <span class="keyword">byte</span>[DEFAULT_BUFFER_SIZE]);</pre></td></tr>
+<tr> <td class="numLine"> 71</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 72</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 73</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
+<tr> <td class="numLine"> 74</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * Copies the contents of the given {@link InputStream}</span></pre></td></tr>
+<tr> <td class="numLine"> 75</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * to the given {@link OutputStream}.</span></pre></td></tr>
+<tr> <td class="numLine"> 76</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
+<tr> <td class="numLine"> 77</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @param inputStream The input stream, which is being read.</span></pre></td></tr>
+<tr> <td class="numLine"> 78</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * It is guaranteed, that {@link InputStream#close()} is called</span></pre></td></tr>
+<tr> <td class="numLine"> 79</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * on the stream.</span></pre></td></tr>
+<tr> <td class="numLine"> 80</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @param outputStream The output stream, to which data should</span></pre></td></tr>
+<tr> <td class="numLine"> 81</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * be written. May be null, in which case the input streams</span></pre></td></tr>
+<tr> <td class="numLine"> 82</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * contents are simply discarded.</span></pre></td></tr>
+<tr> <td class="numLine"> 83</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @param closeOutputStream True guarantees, that {@link OutputStream#close()}</span></pre></td></tr>
+<tr> <td class="numLine"> 84</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * is called on the stream. False indicates, that only</span></pre></td></tr>
+<tr> <td class="numLine"> 85</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * {@link OutputStream#flush()} should be called finally.</span></pre></td></tr>
+<tr> <td class="numLine"> 86</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @param buffer Temporary buffer, which is to be used for</span></pre></td></tr>
+<tr> <td class="numLine"> 87</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * copying data.</span></pre></td></tr>
+<tr> <td class="numLine"> 88</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @return Number of bytes, which have been copied.</span></pre></td></tr>
+<tr> <td class="numLine"> 89</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @throws IOException An I/O error occurred.</span></pre></td></tr>
+<tr> <td class="numLine"> 90</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
+<tr> <td class="numLine"> 91</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">long</span> copy(InputStream inputStream,</pre></td></tr>
+<tr> <td class="numLine"> 92</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> OutputStream outputStream, <span class="keyword">boolean</span> closeOutputStream,</pre></td></tr>
+<tr> <td class="numLine"> 93</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">byte</span>[] buffer)</pre></td></tr>
+<tr> <td class="numLine"> 94</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">throws</span> IOException {</pre></td></tr>
+<tr> <td class="numLineCover"> 95</td> <td class="nbHitsCovered"> 5324</td> <td class="src"><pre class="src"> OutputStream out = outputStream;</pre></td></tr>
+<tr> <td class="numLineCover"> 96</td> <td class="nbHitsCovered"> 5324</td> <td class="src"><pre class="src"> InputStream in = inputStream;</pre></td></tr>
+<tr> <td class="numLine"> 97</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
+<tr> <td class="numLineCover"> 98</td> <td class="nbHitsCovered"> 5324</td> <td class="src"><pre class="src"> <span class="keyword">long</span> total = 0;</pre></td></tr>
+<tr> <td class="numLine"> 99</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">for</span> (;;) {</pre></td></tr>
+<tr> <td class="numLineCover"> 100</td> <td class="nbHitsCovered"> 14822</td> <td class="src"><pre class="src"> <span class="keyword">int</span> res = in.read(buffer);</pre></td></tr>
+<tr> <td class="numLineCover"> 101</td> <td class="nbHitsCovered"><a title="Line 101: Conditional coverage 100% (2/2)."> 14817</a></td> <td class="src"><pre class="src"> <a title="Line 101: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (res == -1) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 102</td> <td class="nbHitsCovered"> 5319</td> <td class="src"><pre class="src"> <span class="keyword">break</span>;</pre></td></tr>
+<tr> <td class="numLine"> 103</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 104</td> <td class="nbHitsUncovered"><a title="Line 104: Conditional coverage 50% (1/2)."> 9498</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 104: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (res > 0) {</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 105</td> <td class="nbHitsCovered"> 9498</td> <td class="src"><pre class="src"> total += res;</pre></td></tr>
+<tr> <td class="numLineCover"> 106</td> <td class="nbHitsCovered"><a title="Line 106: Conditional coverage 100% (2/2)."> 9498</a></td> <td class="src"><pre class="src"> <a title="Line 106: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (out != <span class="keyword">null</span>) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 107</td> <td class="nbHitsCovered"> 6339</td> <td class="src"><pre class="src"> out.write(buffer, 0, res);</pre></td></tr>
+<tr> <td class="numLine"> 108</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 109</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 110</td> <td class="nbHitsCovered"> 9498</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 111</td> <td class="nbHitsCovered"><a title="Line 111: Conditional coverage 100% (2/2)."> 5319</a></td> <td class="src"><pre class="src"> <a title="Line 111: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (out != <span class="keyword">null</span>) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 112</td> <td class="nbHitsUncovered"><a title="Line 112: Conditional coverage 50% (1/2)."> 2133</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 112: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (closeOutputStream) {</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 113</td> <td class="nbHitsCovered"> 2133</td> <td class="src"><pre class="src"> out.close();</pre></td></tr>
+<tr> <td class="numLine"> 114</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr>
+<tr> <td class="numLineCover"> 115</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> out.flush();</span></pre></td></tr>
+<tr> <td class="numLine"> 116</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 117</td> <td class="nbHitsCovered"> 2133</td> <td class="src"><pre class="src"> out = <span class="keyword">null</span>;</pre></td></tr>
+<tr> <td class="numLine"> 118</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 119</td> <td class="nbHitsCovered"> 5319</td> <td class="src"><pre class="src"> in.close();</pre></td></tr>
+<tr> <td class="numLineCover"> 120</td> <td class="nbHitsCovered"> 5319</td> <td class="src"><pre class="src"> in = <span class="keyword">null</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 121</td> <td class="nbHitsCovered"> 5319</td> <td class="src"><pre class="src"> <span class="keyword">return</span> total;</pre></td></tr>
+<tr> <td class="numLine"> 122</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> } <span class="keyword">finally</span> {</pre></td></tr>
+<tr> <td class="numLineCover"> 123</td> <td class="nbHitsCovered"> 5324</td> <td class="src"><pre class="src"> IOUtils.closeQuietly(in);</pre></td></tr>
+<tr> <td class="numLineCover"> 124</td> <td class="nbHitsCovered"><a title="Line 124: Conditional coverage 100% (2/2)."> 5324</a></td> <td class="src"><pre class="src"> <a title="Line 124: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (closeOutputStream) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 125</td> <td class="nbHitsCovered"> 2137</td> <td class="src"><pre class="src"> IOUtils.closeQuietly(out);</pre></td></tr>
+<tr> <td class="numLine"> 126</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 127</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 128</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 129</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 130</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
+<tr> <td class="numLine"> 131</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * This convenience method allows to read a</span></pre></td></tr>
+<tr> <td class="numLine"> 132</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * {@link org.apache.commons.fileupload.FileItemStream}'s</span></pre></td></tr>
+<tr> <td class="numLine"> 133</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * content into a string. The platform's default character encoding</span></pre></td></tr>
+<tr> <td class="numLine"> 134</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * is used for converting bytes into characters.</span></pre></td></tr>
+<tr> <td class="numLine"> 135</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
+<tr> <td class="numLine"> 136</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @param inputStream The input stream to read.</span></pre></td></tr>
+<tr> <td class="numLine"> 137</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @see #asString(InputStream, String)</span></pre></td></tr>
+<tr> <td class="numLine"> 138</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @return The streams contents, as a string.</span></pre></td></tr>
+<tr> <td class="numLine"> 139</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @throws IOException An I/O error occurred.</span></pre></td></tr>
+<tr> <td class="numLine"> 140</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
+<tr> <td class="numLine"> 141</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> String asString(InputStream inputStream) <span class="keyword">throws</span> IOException {</pre></td></tr>
+<tr> <td class="numLineCover"> 142</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> ByteArrayOutputStream baos = <span class="keyword">new</span> ByteArrayOutputStream();</span></pre></td></tr>
+<tr> <td class="numLineCover"> 143</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> copy(inputStream, baos, <span class="keyword">true</span>);</span></pre></td></tr>
+<tr> <td class="numLineCover"> 144</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> baos.toString();</span></pre></td></tr>
+<tr> <td class="numLine"> 145</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 146</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 147</td> <td class="nbHits"> </td>
+ <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="comment"> * This convenience method allows to read a</span></pre></td></tr>
+<tr> <td class="numLine"> 149</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * {@link org.apache.commons.fileupload.FileItemStream}'s</span></pre></td></tr>
+<tr> <td class="numLine"> 150</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * content into a string, using the given character encoding.</span></pre></td></tr>
+<tr> <td class="numLine"> 151</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
+<tr> <td class="numLine"> 152</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @param inputStream The input stream to read.</span></pre></td></tr>
+<tr> <td class="numLine"> 153</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @param encoding The character encoding, typically "UTF-8".</span></pre></td></tr>
+<tr> <td class="numLine"> 154</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @see #asString(InputStream)</span></pre></td></tr>
+<tr> <td class="numLine"> 155</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @return The streams contents, as a string.</span></pre></td></tr>
+<tr> <td class="numLine"> 156</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @throws IOException An I/O error occurred.</span></pre></td></tr>
+<tr> <td class="numLine"> 157</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
+<tr> <td class="numLine"> 158</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> String asString(InputStream inputStream, String encoding) <span class="keyword">throws</span> IOException {</pre></td></tr>
+<tr> <td class="numLineCover"> 159</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> ByteArrayOutputStream baos = <span class="keyword">new</span> ByteArrayOutputStream();</span></pre></td></tr>
+<tr> <td class="numLineCover"> 160</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> copy(inputStream, baos, <span class="keyword">true</span>);</span></pre></td></tr>
+<tr> <td class="numLineCover"> 161</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> baos.toString(encoding);</span></pre></td></tr>
+<tr> <td class="numLine"> 162</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 163</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 164</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
+<tr> <td class="numLine"> 165</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * Checks, whether the given file name is valid in the sense,</span></pre></td></tr>
+<tr> <td class="numLine"> 166</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * that it doesn't contain any NUL characters. If the file name</span></pre></td></tr>
+<tr> <td class="numLine"> 167</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * is valid, it will be returned without any modifications. Otherwise,</span></pre></td></tr>
+<tr> <td class="numLine"> 168</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * an {@link InvalidFileNameException} is raised.</span></pre></td></tr>
+<tr> <td class="numLine"> 169</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
+<tr> <td class="numLine"> 170</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @param fileName The file name to check</span></pre></td></tr>
+<tr> <td class="numLine"> 171</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @return Unmodified file name, if valid.</span></pre></td></tr>
+<tr> <td class="numLine"> 172</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @throws InvalidFileNameException The file name was found to be invalid.</span></pre></td></tr>
+<tr> <td class="numLine"> 173</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
+<tr> <td class="numLine"> 174</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> String checkFileName(String fileName) {</pre></td></tr>
+<tr> <td class="numLineCover"> 175</td> <td class="nbHitsCovered"><a title="Line 175: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 13</a></td> <td class="src"><pre class="src"> <a title="Line 175: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (fileName != <span class="keyword">null</span> && fileName.indexOf(<span class="string">'\u0000'</span>) != -1) {</a></pre></td></tr>
+<tr> <td class="numLine"> 176</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">// pFileName.replace("\u0000", "\\0")</span></pre></td></tr>
+<tr> <td class="numLineCover"> 177</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">final</span> StringBuilder sb = <span class="keyword">new</span> StringBuilder();</pre></td></tr>
+<tr> <td class="numLineCover"> 178</td> <td class="nbHitsCovered"><a title="Line 178: Conditional coverage 100% (2/2)."> 26</a></td> <td class="src"><pre class="src"> <a title="Line 178: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i < fileName.length(); i++) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 179</td> <td class="nbHitsCovered"> 24</td> <td class="src"><pre class="src"> <span class="keyword">char</span> c = fileName.charAt(i);</pre></td></tr>
+<tr> <td class="numLineCover"> 180</td> <td class="nbHitsCovered"><a title="Line 180: Conditional coverage 100% (2/2)."> 24</a></td> <td class="src"><pre class="src"> <a title="Line 180: Conditional coverage 100% (2/2)."> <span class="keyword">switch</span> (c) {</a></pre></td></tr>
+<tr> <td class="numLine"> 181</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">case</span> 0:</pre></td></tr>
+<tr> <td class="numLineCover"> 182</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> sb.append(<span class="string">"\\0"</span>);</pre></td></tr>
+<tr> <td class="numLineCover"> 183</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">break</span>;</pre></td></tr>
+<tr> <td class="numLine"> 184</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">default</span>:</pre></td></tr>
+<tr> <td class="numLineCover"> 185</td> <td class="nbHitsCovered"> 22</td> <td class="src"><pre class="src"> sb.append(c);</pre></td></tr>
+<tr> <td class="numLine"> 186</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">break</span>;</pre></td></tr>
+<tr> <td class="numLine"> 187</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 188</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 189</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">throw</span> <span class="keyword">new</span> InvalidFileNameException(fileName,</pre></td></tr>
+<tr> <td class="numLine"> 190</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="string">"Invalid file name: "</span> + sb);</pre></td></tr>
+<tr> <td class="numLine"> 191</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 192</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src"> <span class="keyword">return</span> fileName;</pre></td></tr>
+<tr> <td class="numLine"> 193</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 194</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 195</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+</table>
+
+<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 2.1.1 on 01.07.16 07:47.</div>
+</body>
+</html>
\ No newline at end of file
Propchange: websites/production/commons/content/proper/commons-fileupload/cobertura/org.apache.commons.fileupload.util.Streams.html
------------------------------------------------------------------------------
svn:eol-style = native