You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by bo...@apache.org on 2013/10/26 16:22:17 UTC
svn commit: r884228 [37/50] - in
/websites/production/commons/content/proper/commons-compress: ./ cobertura/
Modified: websites/production/commons/content/proper/commons-compress/cobertura/org.apache.commons.compress.archivers.zip.ZipFile.html
==============================================================================
--- websites/production/commons/content/proper/commons-compress/cobertura/org.apache.commons.compress.archivers.zip.ZipFile.html (original)
+++ websites/production/commons/content/proper/commons-compress/cobertura/org.apache.commons.compress.archivers.zip.ZipFile.html Sat Oct 26 14:22:15 2013
@@ -177,7 +177,7 @@
<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"> */</span></pre></td></tr>
-<tr> <td class="numLineCover"> 78</td> <td class="nbHitsCovered"> 84</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> ZipFile {</pre></td></tr>
+<tr> <td class="numLineCover"> 78</td> <td class="nbHitsCovered"> 168</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> ZipFile {</pre></td></tr>
<tr> <td class="numLine"> 79</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> HASH_SIZE = 509;</pre></td></tr>
<tr> <td class="numLine"> 80</td> <td class="nbHits"> </td>
@@ -202,7 +202,7 @@
<td class="src"><pre class="src"> <span class="comment"> * directory.</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="numLineCover"> 91</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> List<ZipArchiveEntry> entries =</pre></td></tr>
+<tr> <td class="numLineCover"> 91</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> List<ZipArchiveEntry> entries =</pre></td></tr>
<tr> <td class="numLine"> 92</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">new</span> LinkedList<ZipArchiveEntry>();</pre></td></tr>
<tr> <td class="numLine"> 93</td> <td class="nbHits"> </td>
@@ -213,14 +213,14 @@
<td class="src"><pre class="src"> <span class="comment"> * Maps String to list of ZipArchiveEntrys, name -> actual entries.</span></pre></td></tr>
<tr> <td class="numLine"> 96</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLineCover"> 97</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> Map<String, LinkedList<ZipArchiveEntry>> nameMap =</pre></td></tr>
+<tr> <td class="numLineCover"> 97</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> Map<String, LinkedList<ZipArchiveEntry>> nameMap =</pre></td></tr>
<tr> <td class="numLine"> 98</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">new</span> HashMap<String, LinkedList<ZipArchiveEntry>>(HASH_SIZE);</pre></td></tr>
<tr> <td class="numLine"> 99</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 100</td> <td class="nbHitsCovered"> 1845</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">class</span> OffsetEntry {</pre></td></tr>
-<tr> <td class="numLineCover"> 101</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">long</span> headerOffset = -1;</pre></td></tr>
-<tr> <td class="numLineCover"> 102</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">long</span> dataOffset = -1;</pre></td></tr>
+<tr> <td class="numLineCover"> 100</td> <td class="nbHitsCovered"> 3690</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">class</span> OffsetEntry {</pre></td></tr>
+<tr> <td class="numLineCover"> 101</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">long</span> headerOffset = -1;</pre></td></tr>
+<tr> <td class="numLineCover"> 102</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">long</span> dataOffset = -1;</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="numLine"> 104</td> <td class="nbHits"> </td>
@@ -295,10 +295,10 @@
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 139</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// cached buffers - must only be used locally in the class (COMPRESS-172 - reduce garbage collection)</span></pre></td></tr>
-<tr> <td class="numLineCover"> 140</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> <span class="keyword">byte</span>[] DWORD_BUF = <span class="keyword">new</span> <span class="keyword">byte</span>[DWORD];</pre></td></tr>
-<tr> <td class="numLineCover"> 141</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> <span class="keyword">byte</span>[] WORD_BUF = <span class="keyword">new</span> <span class="keyword">byte</span>[WORD];</pre></td></tr>
-<tr> <td class="numLineCover"> 142</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> <span class="keyword">byte</span>[] CFH_BUF = <span class="keyword">new</span> <span class="keyword">byte</span>[CFH_LEN];</pre></td></tr>
-<tr> <td class="numLineCover"> 143</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> <span class="keyword">byte</span>[] SHORT_BUF = <span class="keyword">new</span> <span class="keyword">byte</span>[SHORT];</pre></td></tr>
+<tr> <td class="numLineCover"> 140</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> <span class="keyword">byte</span>[] DWORD_BUF = <span class="keyword">new</span> <span class="keyword">byte</span>[DWORD];</pre></td></tr>
+<tr> <td class="numLineCover"> 141</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> <span class="keyword">byte</span>[] WORD_BUF = <span class="keyword">new</span> <span class="keyword">byte</span>[WORD];</pre></td></tr>
+<tr> <td class="numLineCover"> 142</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> <span class="keyword">byte</span>[] CFH_BUF = <span class="keyword">new</span> <span class="keyword">byte</span>[CFH_LEN];</pre></td></tr>
+<tr> <td class="numLineCover"> 143</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> <span class="keyword">byte</span>[] SHORT_BUF = <span class="keyword">new</span> <span class="keyword">byte</span>[SHORT];</pre></td></tr>
<tr> <td class="numLine"> 144</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 145</td> <td class="nbHits"> </td>
@@ -317,8 +317,8 @@
<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="keyword">public</span> ZipFile(File f) <span class="keyword">throws</span> IOException {</pre></td></tr>
-<tr> <td class="numLineCover"> 153</td> <td class="nbHitsCovered"> 22</td> <td class="src"><pre class="src"> <span class="keyword">this</span>(f, ZipEncodingHelper.UTF8);</pre></td></tr>
-<tr> <td class="numLineCover"> 154</td> <td class="nbHitsCovered"> 21</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 153</td> <td class="nbHitsCovered"> 44</td> <td class="src"><pre class="src"> <span class="keyword">this</span>(f, ZipEncodingHelper.UTF8);</pre></td></tr>
+<tr> <td class="numLineCover"> 154</td> <td class="nbHitsCovered"> 42</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 155</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 156</td> <td class="nbHits"> </td>
@@ -389,8 +389,8 @@
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 191</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> ZipFile(File f, String encoding) <span class="keyword">throws</span> IOException {</pre></td></tr>
-<tr> <td class="numLineCover"> 192</td> <td class="nbHitsCovered"> 22</td> <td class="src"><pre class="src"> <span class="keyword">this</span>(f, encoding, <span class="keyword">true</span>);</pre></td></tr>
-<tr> <td class="numLineCover"> 193</td> <td class="nbHitsCovered"> 21</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 192</td> <td class="nbHitsCovered"> 44</td> <td class="src"><pre class="src"> <span class="keyword">this</span>(f, encoding, <span class="keyword">true</span>);</pre></td></tr>
+<tr> <td class="numLineCover"> 193</td> <td class="nbHitsCovered"> 42</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>
@@ -419,36 +419,36 @@
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 207</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> ZipFile(File f, String encoding, <span class="keyword">boolean</span> useUnicodeExtraFields)</pre></td></tr>
-<tr> <td class="numLineCover"> 208</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src"> <span class="keyword">throws</span> IOException {</pre></td></tr>
-<tr> <td class="numLineCover"> 209</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.archiveName = f.getAbsolutePath();</pre></td></tr>
-<tr> <td class="numLineCover"> 210</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.encoding = encoding;</pre></td></tr>
-<tr> <td class="numLineCover"> 211</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.zipEncoding = ZipEncodingHelper.getZipEncoding(encoding);</pre></td></tr>
-<tr> <td class="numLineCover"> 212</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.useUnicodeExtraFields = useUnicodeExtraFields;</pre></td></tr>
-<tr> <td class="numLineCover"> 213</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src"> archive = <span class="keyword">new</span> RandomAccessFile(f, <span class="string">"r"</span>);</pre></td></tr>
-<tr> <td class="numLineCover"> 214</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src"> <span class="keyword">boolean</span> success = <span class="keyword">false</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 208</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src"> <span class="keyword">throws</span> IOException {</pre></td></tr>
+<tr> <td class="numLineCover"> 209</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.archiveName = f.getAbsolutePath();</pre></td></tr>
+<tr> <td class="numLineCover"> 210</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.encoding = encoding;</pre></td></tr>
+<tr> <td class="numLineCover"> 211</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.zipEncoding = ZipEncodingHelper.getZipEncoding(encoding);</pre></td></tr>
+<tr> <td class="numLineCover"> 212</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.useUnicodeExtraFields = useUnicodeExtraFields;</pre></td></tr>
+<tr> <td class="numLineCover"> 213</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src"> archive = <span class="keyword">new</span> RandomAccessFile(f, <span class="string">"r"</span>);</pre></td></tr>
+<tr> <td class="numLineCover"> 214</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src"> <span class="keyword">boolean</span> success = <span class="keyword">false</span>;</pre></td></tr>
<tr> <td class="numLine"> 215</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
-<tr> <td class="numLineCover"> 216</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src"> Map<ZipArchiveEntry, NameAndComment> entriesWithoutUTF8Flag =</pre></td></tr>
+<tr> <td class="numLineCover"> 216</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src"> Map<ZipArchiveEntry, NameAndComment> entriesWithoutUTF8Flag =</pre></td></tr>
<tr> <td class="numLine"> 217</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> populateFromCentralDirectory();</pre></td></tr>
-<tr> <td class="numLineCover"> 218</td> <td class="nbHitsCovered"> 35</td> <td class="src"><pre class="src"> resolveLocalFileHeaderData(entriesWithoutUTF8Flag);</pre></td></tr>
-<tr> <td class="numLineCover"> 219</td> <td class="nbHitsCovered"> 35</td> <td class="src"><pre class="src"> success = <span class="keyword">true</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 218</td> <td class="nbHitsCovered"> 70</td> <td class="src"><pre class="src"> resolveLocalFileHeaderData(entriesWithoutUTF8Flag);</pre></td></tr>
+<tr> <td class="numLineCover"> 219</td> <td class="nbHitsCovered"> 70</td> <td class="src"><pre class="src"> success = <span class="keyword">true</span>;</pre></td></tr>
<tr> <td class="numLine"> 220</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> } <span class="keyword">finally</span> {</pre></td></tr>
-<tr> <td class="numLineCover"> 221</td> <td class="nbHitsCovered"><a title="Line 221: Conditional coverage 100% (2/2)."> 36</a></td> <td class="src"><pre class="src"> <a title="Line 221: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!success) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 221</td> <td class="nbHitsCovered"><a title="Line 221: Conditional coverage 100% (2/2)."> 72</a></td> <td class="src"><pre class="src"> <a title="Line 221: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!success) {</a></pre></td></tr>
<tr> <td class="numLine"> 222</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
-<tr> <td class="numLineCover"> 223</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> closed = <span class="keyword">true</span>;</pre></td></tr>
-<tr> <td class="numLineCover"> 224</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> archive.close();</pre></td></tr>
+<tr> <td class="numLineCover"> 223</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> closed = <span class="keyword">true</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 224</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> archive.close();</pre></td></tr>
<tr> <td class="numLineCover"> 225</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (IOException e2) { <span class="comment">// NOPMD</span></span></pre></td></tr>
<tr> <td class="numLine"> 226</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// swallow, throw the original exception instead</span></pre></td></tr>
-<tr> <td class="numLineCover"> 227</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 227</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 228</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 229</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 230</td> <td class="nbHitsCovered"> 35</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 230</td> <td class="nbHitsCovered"> 70</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 231</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 232</td> <td class="nbHits"> </td>
@@ -484,11 +484,11 @@
<td class="src"><pre class="src"> <span class="comment">// can never be run in parallel.</span></pre></td></tr>
<tr> <td class="numLine"> 248</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// no synchronization needed.</span></pre></td></tr>
-<tr> <td class="numLineCover"> 249</td> <td class="nbHitsCovered"> 37</td> <td class="src"><pre class="src"> closed = <span class="keyword">true</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 249</td> <td class="nbHitsCovered"> 74</td> <td class="src"><pre class="src"> closed = <span class="keyword">true</span>;</pre></td></tr>
<tr> <td class="numLine"> 250</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 251</td> <td class="nbHitsCovered"> 37</td> <td class="src"><pre class="src"> archive.close();</pre></td></tr>
-<tr> <td class="numLineCover"> 252</td> <td class="nbHitsCovered"> 37</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 251</td> <td class="nbHitsCovered"> 74</td> <td class="src"><pre class="src"> archive.close();</pre></td></tr>
+<tr> <td class="numLineCover"> 252</td> <td class="nbHitsCovered"> 74</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 253</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 254</td> <td class="nbHits"> </td>
@@ -503,17 +503,17 @@
<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">public</span> <span class="keyword">static</span> <span class="keyword">void</span> closeQuietly(ZipFile zipfile) {</pre></td></tr>
-<tr> <td class="numLineCover"> 260</td> <td class="nbHitsUncovered"><a title="Line 260: Conditional coverage 50% (1/2)."> 29</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 260: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (zipfile != <span class="keyword">null</span>) {</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 260</td> <td class="nbHitsUncovered"><a title="Line 260: Conditional coverage 50% (1/2)."> 58</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 260: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (zipfile != <span class="keyword">null</span>) {</a></span></pre></td></tr>
<tr> <td class="numLine"> 261</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
-<tr> <td class="numLineCover"> 262</td> <td class="nbHitsCovered"> 29</td> <td class="src"><pre class="src"> zipfile.close();</pre></td></tr>
+<tr> <td class="numLineCover"> 262</td> <td class="nbHitsCovered"> 58</td> <td class="src"><pre class="src"> zipfile.close();</pre></td></tr>
<tr> <td class="numLineCover"> 263</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (IOException e) { <span class="comment">// NOPMD</span></span></pre></td></tr>
<tr> <td class="numLine"> 264</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">//ignore, that's why the method is called "quietly"</span></pre></td></tr>
-<tr> <td class="numLineCover"> 265</td> <td class="nbHitsCovered"> 29</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 265</td> <td class="nbHitsCovered"> 58</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"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 267</td> <td class="nbHitsCovered"> 29</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 267</td> <td class="nbHitsCovered"> 58</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 268</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 269</td> <td class="nbHits"> </td>
@@ -534,7 +534,7 @@
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 277</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> Enumeration<ZipArchiveEntry> getEntries() {</pre></td></tr>
-<tr> <td class="numLineCover"> 278</td> <td class="nbHitsCovered"> 14</td> <td class="src"><pre class="src"> <span class="keyword">return</span> Collections.enumeration(entries);</pre></td></tr>
+<tr> <td class="numLineCover"> 278</td> <td class="nbHitsCovered"> 28</td> <td class="src"><pre class="src"> <span class="keyword">return</span> Collections.enumeration(entries);</pre></td></tr>
<tr> <td class="numLine"> 279</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 280</td> <td class="nbHits"> </td>
@@ -561,9 +561,9 @@
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 291</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> Enumeration<ZipArchiveEntry> getEntriesInPhysicalOrder() {</pre></td></tr>
-<tr> <td class="numLineCover"> 292</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> ZipArchiveEntry[] allEntries = entries.toArray(<span class="keyword">new</span> ZipArchiveEntry[0]);</pre></td></tr>
-<tr> <td class="numLineCover"> 293</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> Arrays.sort(allEntries, OFFSET_COMPARATOR);</pre></td></tr>
-<tr> <td class="numLineCover"> 294</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">return</span> Collections.enumeration(Arrays.asList(allEntries));</pre></td></tr>
+<tr> <td class="numLineCover"> 292</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> ZipArchiveEntry[] allEntries = entries.toArray(<span class="keyword">new</span> ZipArchiveEntry[0]);</pre></td></tr>
+<tr> <td class="numLineCover"> 293</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> Arrays.sort(allEntries, OFFSET_COMPARATOR);</pre></td></tr>
+<tr> <td class="numLineCover"> 294</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> <span class="keyword">return</span> Collections.enumeration(Arrays.asList(allEntries));</pre></td></tr>
<tr> <td class="numLine"> 295</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 296</td> <td class="nbHits"> </td>
@@ -594,8 +594,8 @@
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 309</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> ZipArchiveEntry getEntry(String name) {</pre></td></tr>
-<tr> <td class="numLineCover"> 310</td> <td class="nbHitsCovered"> 27</td> <td class="src"><pre class="src"> LinkedList<ZipArchiveEntry> entriesOfThatName = nameMap.get(name);</pre></td></tr>
-<tr> <td class="numLineCover"> 311</td> <td class="nbHitsCovered"><a title="Line 311: Conditional coverage 100% (2/2)."> 27</a></td> <td class="src"><pre class="src"> <a title="Line 311: Conditional coverage 100% (2/2)."> <span class="keyword">return</span> entriesOfThatName != <span class="keyword">null</span> ? entriesOfThatName.getFirst() : <span class="keyword">null</span>;</a></pre></td></tr>
+<tr> <td class="numLineCover"> 310</td> <td class="nbHitsCovered"> 54</td> <td class="src"><pre class="src"> LinkedList<ZipArchiveEntry> entriesOfThatName = nameMap.get(name);</pre></td></tr>
+<tr> <td class="numLineCover"> 311</td> <td class="nbHitsCovered"><a title="Line 311: Conditional coverage 100% (2/2)."> 54</a></td> <td class="src"><pre class="src"> <a title="Line 311: Conditional coverage 100% (2/2)."> <span class="keyword">return</span> entriesOfThatName != <span class="keyword">null</span> ? entriesOfThatName.getFirst() : <span class="keyword">null</span>;</a></pre></td></tr>
<tr> <td class="numLine"> 312</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 313</td> <td class="nbHits"> </td>
@@ -620,8 +620,8 @@
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 323</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> Iterable<ZipArchiveEntry> getEntries(String name) {</pre></td></tr>
-<tr> <td class="numLineCover"> 324</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> List<ZipArchiveEntry> entriesOfThatName = nameMap.get(name);</pre></td></tr>
-<tr> <td class="numLineCover"> 325</td> <td class="nbHitsUncovered"><a title="Line 325: Conditional coverage 50% (1/2)."> 1</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 325: Conditional coverage 50% (1/2)."> <span class="keyword">return</span> entriesOfThatName != <span class="keyword">null</span> ? entriesOfThatName</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 324</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> List<ZipArchiveEntry> entriesOfThatName = nameMap.get(name);</pre></td></tr>
+<tr> <td class="numLineCover"> 325</td> <td class="nbHitsUncovered"><a title="Line 325: Conditional coverage 50% (1/2)."> 2</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 325: Conditional coverage 50% (1/2)."> <span class="keyword">return</span> entriesOfThatName != <span class="keyword">null</span> ? entriesOfThatName</a></span></pre></td></tr>
<tr> <td class="numLine"> 326</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> : Collections.<ZipArchiveEntry>emptyList();</pre></td></tr>
<tr> <td class="numLine"> 327</td> <td class="nbHits"> </td>
@@ -675,7 +675,7 @@
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 354</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">boolean</span> canReadEntryData(ZipArchiveEntry ze) {</pre></td></tr>
-<tr> <td class="numLineCover"> 355</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> <span class="keyword">return</span> ZipUtil.canHandleEntryData(ze);</pre></td></tr>
+<tr> <td class="numLineCover"> 355</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">return</span> ZipUtil.canHandleEntryData(ze);</pre></td></tr>
<tr> <td class="numLine"> 356</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 357</td> <td class="nbHits"> </td>
@@ -700,27 +700,27 @@
<td class="src"><pre class="src"> <span class="keyword">public</span> InputStream getInputStream(ZipArchiveEntry ze)</pre></td></tr>
<tr> <td class="numLine"> 367</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">throws</span> IOException, ZipException {</pre></td></tr>
-<tr> <td class="numLineCover"> 368</td> <td class="nbHitsUncovered"><a title="Line 368: Conditional coverage 50% (1/2)."> 26</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 368: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (!(ze <span class="keyword">instanceof</span> Entry)) {</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 368</td> <td class="nbHitsUncovered"><a title="Line 368: Conditional coverage 50% (1/2)."> 52</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 368: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (!(ze <span class="keyword">instanceof</span> Entry)) {</a></span></pre></td></tr>
<tr> <td class="numLineCover"> 369</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">null</span>;</span></pre></td></tr>
<tr> <td class="numLine"> 370</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 371</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// cast valididty is checked just above</span></pre></td></tr>
-<tr> <td class="numLineCover"> 372</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src"> OffsetEntry offsetEntry = ((Entry) ze).getOffsetEntry();</pre></td></tr>
-<tr> <td class="numLineCover"> 373</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src"> ZipUtil.checkRequestedFeatures(ze);</pre></td></tr>
-<tr> <td class="numLineCover"> 374</td> <td class="nbHitsCovered"> 25</td> <td class="src"><pre class="src"> <span class="keyword">long</span> start = offsetEntry.dataOffset;</pre></td></tr>
-<tr> <td class="numLineCover"> 375</td> <td class="nbHitsCovered"> 25</td> <td class="src"><pre class="src"> BoundedInputStream bis =</pre></td></tr>
+<tr> <td class="numLineCover"> 372</td> <td class="nbHitsCovered"> 52</td> <td class="src"><pre class="src"> OffsetEntry offsetEntry = ((Entry) ze).getOffsetEntry();</pre></td></tr>
+<tr> <td class="numLineCover"> 373</td> <td class="nbHitsCovered"> 52</td> <td class="src"><pre class="src"> ZipUtil.checkRequestedFeatures(ze);</pre></td></tr>
+<tr> <td class="numLineCover"> 374</td> <td class="nbHitsCovered"> 50</td> <td class="src"><pre class="src"> <span class="keyword">long</span> start = offsetEntry.dataOffset;</pre></td></tr>
+<tr> <td class="numLineCover"> 375</td> <td class="nbHitsCovered"> 50</td> <td class="src"><pre class="src"> BoundedInputStream bis =</pre></td></tr>
<tr> <td class="numLine"> 376</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">new</span> BoundedInputStream(start, ze.getCompressedSize());</pre></td></tr>
-<tr> <td class="numLineCover"> 377</td> <td class="nbHitsUncovered"><a title="Line 377: Conditional coverage 66% (2/3)."> 25</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 377: Conditional coverage 66% (2/3)."> <span class="keyword">switch</span> (ze.getMethod()) {</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 377</td> <td class="nbHitsUncovered"><a title="Line 377: Conditional coverage 66% (2/3)."> 50</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 377: Conditional coverage 66% (2/3)."> <span class="keyword">switch</span> (ze.getMethod()) {</a></span></pre></td></tr>
<tr> <td class="numLine"> 378</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">case</span> ZipEntry.STORED:</pre></td></tr>
-<tr> <td class="numLineCover"> 379</td> <td class="nbHitsCovered"> 14</td> <td class="src"><pre class="src"> <span class="keyword">return</span> bis;</pre></td></tr>
+<tr> <td class="numLineCover"> 379</td> <td class="nbHitsCovered"> 28</td> <td class="src"><pre class="src"> <span class="keyword">return</span> bis;</pre></td></tr>
<tr> <td class="numLine"> 380</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">case</span> ZipEntry.DEFLATED:</pre></td></tr>
-<tr> <td class="numLineCover"> 381</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src"> bis.addDummy();</pre></td></tr>
-<tr> <td class="numLineCover"> 382</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src"> <span class="keyword">final</span> Inflater inflater = <span class="keyword">new</span> Inflater(<span class="keyword">true</span>);</pre></td></tr>
-<tr> <td class="numLineCover"> 383</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">new</span> InflaterInputStream(bis, inflater) {</pre></td></tr>
+<tr> <td class="numLineCover"> 381</td> <td class="nbHitsCovered"> 22</td> <td class="src"><pre class="src"> bis.addDummy();</pre></td></tr>
+<tr> <td class="numLineCover"> 382</td> <td class="nbHitsCovered"> 22</td> <td class="src"><pre class="src"> <span class="keyword">final</span> Inflater inflater = <span class="keyword">new</span> Inflater(<span class="keyword">true</span>);</pre></td></tr>
+<tr> <td class="numLineCover"> 383</td> <td class="nbHitsCovered"> 22</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">new</span> InflaterInputStream(bis, inflater) {</pre></td></tr>
<tr> <td class="numLine"> 384</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> @Override</pre></td></tr>
<tr> <td class="numLine"> 385</td> <td class="nbHits"> </td>
@@ -771,24 +771,24 @@
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 410</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> String getUnixSymlink(ZipArchiveEntry entry) <span class="keyword">throws</span> IOException {</pre></td></tr>
-<tr> <td class="numLineCover"> 411</td> <td class="nbHitsUncovered"><a title="Line 411: Conditional coverage 75% (3/4) [each condition: 50%, 100%]."> 21</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 411: Conditional coverage 75% (3/4) [each condition: 50%, 100%]."> <span class="keyword">if</span> (entry != <span class="keyword">null</span> && entry.isUnixSymlink()) {</a></span></pre></td></tr>
-<tr> <td class="numLineCover"> 412</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> InputStream in = <span class="keyword">null</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 411</td> <td class="nbHitsUncovered"><a title="Line 411: Conditional coverage 75% (3/4) [each condition: 50%, 100%]."> 42</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 411: Conditional coverage 75% (3/4) [each condition: 50%, 100%]."> <span class="keyword">if</span> (entry != <span class="keyword">null</span> && entry.isUnixSymlink()) {</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 412</td> <td class="nbHitsCovered"> 18</td> <td class="src"><pre class="src"> InputStream in = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLine"> 413</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
-<tr> <td class="numLineCover"> 414</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> in = getInputStream(entry);</pre></td></tr>
-<tr> <td class="numLineCover"> 415</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> <span class="keyword">byte</span>[] symlinkBytes = IOUtils.toByteArray(in);</pre></td></tr>
-<tr> <td class="numLineCover"> 416</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> <span class="keyword">return</span> zipEncoding.decode(symlinkBytes);</pre></td></tr>
+<tr> <td class="numLineCover"> 414</td> <td class="nbHitsCovered"> 18</td> <td class="src"><pre class="src"> in = getInputStream(entry);</pre></td></tr>
+<tr> <td class="numLineCover"> 415</td> <td class="nbHitsCovered"> 18</td> <td class="src"><pre class="src"> <span class="keyword">byte</span>[] symlinkBytes = IOUtils.toByteArray(in);</pre></td></tr>
+<tr> <td class="numLineCover"> 416</td> <td class="nbHitsCovered"> 18</td> <td class="src"><pre class="src"> <span class="keyword">return</span> zipEncoding.decode(symlinkBytes);</pre></td></tr>
<tr> <td class="numLine"> 417</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> } <span class="keyword">finally</span> {</pre></td></tr>
-<tr> <td class="numLineCover"> 418</td> <td class="nbHitsUncovered"><a title="Line 418: Conditional coverage 50% (1/2)."> 9</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 418: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (in != <span class="keyword">null</span>) {</a></span></pre></td></tr>
-<tr> <td class="numLineCover"> 419</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> in.close();</pre></td></tr>
+<tr> <td class="numLineCover"> 418</td> <td class="nbHitsUncovered"><a title="Line 418: Conditional coverage 50% (1/2)."> 18</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 418: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (in != <span class="keyword">null</span>) {</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 419</td> <td class="nbHitsCovered"> 18</td> <td class="src"><pre class="src"> in.close();</pre></td></tr>
<tr> <td class="numLine"> 420</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 421</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 422</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr>
-<tr> <td class="numLineCover"> 423</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">null</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 423</td> <td class="nbHitsCovered"> 24</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLine"> 424</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 425</td> <td class="nbHits"> </td>
@@ -811,7 +811,7 @@
<td class="src"><pre class="src"> <span class="keyword">protected</span> <span class="keyword">void</span> finalize() <span class="keyword">throws</span> Throwable {</pre></td></tr>
<tr> <td class="numLine"> 434</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
-<tr> <td class="numLineCover"> 435</td> <td class="nbHitsUncovered"><a title="Line 435: Conditional coverage 50% (1/2)."> 36</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> (!closed) {</a></span></pre></td></tr>
+<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> (!closed) {</a></span></pre></td></tr>
<tr> <td class="numLineCover"> 436</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> System.err.println(<span class="string">"Cleaning up unclosed ZipFile for archive "</span></span></pre></td></tr>
<tr> <td class="numLine"> 437</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> + archiveName);</pre></td></tr>
@@ -820,9 +820,9 @@
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 440</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> } <span class="keyword">finally</span> {</pre></td></tr>
-<tr> <td class="numLineCover"> 441</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src"> <span class="keyword">super</span>.finalize();</pre></td></tr>
-<tr> <td class="numLineCover"> 442</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 443</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 441</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src"> <span class="keyword">super</span>.finalize();</pre></td></tr>
+<tr> <td class="numLineCover"> 442</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 443</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 444</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 445</td> <td class="nbHits"> </td>
@@ -869,7 +869,7 @@
<td class="src"><pre class="src"> <span class="comment">/* relative offset of local header */</span> + WORD;</pre></td></tr>
<tr> <td class="numLine"> 466</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 467</td> <td class="nbHitsCovered"> 1</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">long</span> CFH_SIG =</pre></td></tr>
+<tr> <td class="numLineCover"> 467</td> <td class="nbHitsCovered"> 2</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">long</span> CFH_SIG =</pre></td></tr>
<tr> <td class="numLine"> 468</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> ZipLong.getValue(ZipArchiveOutputStream.CFH_SIG);</pre></td></tr>
<tr> <td class="numLine"> 469</td> <td class="nbHits"> </td>
@@ -900,19 +900,19 @@
<td class="src"><pre class="src"> <span class="keyword">private</span> Map<ZipArchiveEntry, NameAndComment> populateFromCentralDirectory()</pre></td></tr>
<tr> <td class="numLine"> 482</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">throws</span> IOException {</pre></td></tr>
-<tr> <td class="numLineCover"> 483</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src"> HashMap<ZipArchiveEntry, NameAndComment> noUTF8Flag =</pre></td></tr>
+<tr> <td class="numLineCover"> 483</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src"> HashMap<ZipArchiveEntry, NameAndComment> noUTF8Flag =</pre></td></tr>
<tr> <td class="numLine"> 484</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">new</span> HashMap<ZipArchiveEntry, NameAndComment>();</pre></td></tr>
<tr> <td class="numLine"> 485</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 486</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src"> positionAtCentralDirectory();</pre></td></tr>
+<tr> <td class="numLineCover"> 486</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src"> positionAtCentralDirectory();</pre></td></tr>
<tr> <td class="numLine"> 487</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 488</td> <td class="nbHitsCovered"> 35</td> <td class="src"><pre class="src"> archive.readFully(WORD_BUF);</pre></td></tr>
-<tr> <td class="numLineCover"> 489</td> <td class="nbHitsCovered"> 35</td> <td class="src"><pre class="src"> <span class="keyword">long</span> sig = ZipLong.getValue(WORD_BUF);</pre></td></tr>
+<tr> <td class="numLineCover"> 488</td> <td class="nbHitsCovered"> 70</td> <td class="src"><pre class="src"> archive.readFully(WORD_BUF);</pre></td></tr>
+<tr> <td class="numLineCover"> 489</td> <td class="nbHitsCovered"> 70</td> <td class="src"><pre class="src"> <span class="keyword">long</span> sig = ZipLong.getValue(WORD_BUF);</pre></td></tr>
<tr> <td class="numLine"> 490</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 491</td> <td class="nbHitsUncovered"><a title="Line 491: Conditional coverage 25% (1/4) [each condition: 50%, 0%]."> 35</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 491: Conditional coverage 25% (1/4) [each condition: 50%, 0%]."> <span class="keyword">if</span> (sig != CFH_SIG && startsWithLocalFileHeader()) {</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 491</td> <td class="nbHitsUncovered"><a title="Line 491: Conditional coverage 25% (1/4) [each condition: 50%, 0%]."> 70</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 491: Conditional coverage 25% (1/4) [each condition: 50%, 0%]."> <span class="keyword">if</span> (sig != CFH_SIG && startsWithLocalFileHeader()) {</a></span></pre></td></tr>
<tr> <td class="numLineCover"> 492</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">"central directory is empty, can't expand"</span></span></pre></td></tr>
<tr> <td class="numLine"> 493</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> + <span class="string">" corrupt archive."</span>);</pre></td></tr>
@@ -920,13 +920,13 @@
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 495</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 496</td> <td class="nbHitsCovered"><a title="Line 496: Conditional coverage 100% (2/2)."> 260</a></td> <td class="src"><pre class="src"> <a title="Line 496: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (sig == CFH_SIG) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 497</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> readCentralDirectoryEntry(noUTF8Flag);</pre></td></tr>
-<tr> <td class="numLineCover"> 498</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> archive.readFully(WORD_BUF);</pre></td></tr>
-<tr> <td class="numLineCover"> 499</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> sig = ZipLong.getValue(WORD_BUF);</pre></td></tr>
+<tr> <td class="numLineCover"> 496</td> <td class="nbHitsCovered"><a title="Line 496: Conditional coverage 100% (2/2)."> 520</a></td> <td class="src"><pre class="src"> <a title="Line 496: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (sig == CFH_SIG) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 497</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> readCentralDirectoryEntry(noUTF8Flag);</pre></td></tr>
+<tr> <td class="numLineCover"> 498</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> archive.readFully(WORD_BUF);</pre></td></tr>
+<tr> <td class="numLineCover"> 499</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> sig = ZipLong.getValue(WORD_BUF);</pre></td></tr>
<tr> <td class="numLine"> 500</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 501</td> <td class="nbHitsCovered"> 35</td> <td class="src"><pre class="src"> <span class="keyword">return</span> noUTF8Flag;</pre></td></tr>
+<tr> <td class="numLineCover"> 501</td> <td class="nbHitsCovered"> 70</td> <td class="src"><pre class="src"> <span class="keyword">return</span> noUTF8Flag;</pre></td></tr>
<tr> <td class="numLine"> 502</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 503</td> <td class="nbHits"> </td>
@@ -955,107 +955,107 @@
<td class="src"><pre class="src"> readCentralDirectoryEntry(Map<ZipArchiveEntry, NameAndComment> noUTF8Flag)</pre></td></tr>
<tr> <td class="numLine"> 515</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">throws</span> IOException {</pre></td></tr>
-<tr> <td class="numLineCover"> 516</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> archive.readFully(CFH_BUF);</pre></td></tr>
-<tr> <td class="numLineCover"> 517</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> <span class="keyword">int</span> off = 0;</pre></td></tr>
-<tr> <td class="numLineCover"> 518</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> OffsetEntry offset = <span class="keyword">new</span> OffsetEntry();</pre></td></tr>
-<tr> <td class="numLineCover"> 519</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> Entry ze = <span class="keyword">new</span> Entry(offset);</pre></td></tr>
+<tr> <td class="numLineCover"> 516</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> archive.readFully(CFH_BUF);</pre></td></tr>
+<tr> <td class="numLineCover"> 517</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> <span class="keyword">int</span> off = 0;</pre></td></tr>
+<tr> <td class="numLineCover"> 518</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> OffsetEntry offset = <span class="keyword">new</span> OffsetEntry();</pre></td></tr>
+<tr> <td class="numLineCover"> 519</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> Entry ze = <span class="keyword">new</span> Entry(offset);</pre></td></tr>
<tr> <td class="numLine"> 520</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 521</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> <span class="keyword">int</span> versionMadeBy = ZipShort.getValue(CFH_BUF, off);</pre></td></tr>
-<tr> <td class="numLineCover"> 522</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> off += SHORT;</pre></td></tr>
-<tr> <td class="numLineCover"> 523</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> ze.setPlatform((versionMadeBy >> BYTE_SHIFT) & NIBLET_MASK);</pre></td></tr>
+<tr> <td class="numLineCover"> 521</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> <span class="keyword">int</span> versionMadeBy = ZipShort.getValue(CFH_BUF, off);</pre></td></tr>
+<tr> <td class="numLineCover"> 522</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> off += SHORT;</pre></td></tr>
+<tr> <td class="numLineCover"> 523</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> ze.setPlatform((versionMadeBy >> BYTE_SHIFT) & NIBLET_MASK);</pre></td></tr>
<tr> <td class="numLine"> 524</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 525</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> off += SHORT; <span class="comment">// skip version info</span></pre></td></tr>
+<tr> <td class="numLineCover"> 525</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> off += SHORT; <span class="comment">// skip version info</span></pre></td></tr>
<tr> <td class="numLine"> 526</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 527</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> <span class="keyword">final</span> GeneralPurposeBit gpFlag = GeneralPurposeBit.parse(CFH_BUF, off);</pre></td></tr>
-<tr> <td class="numLineCover"> 528</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> <span class="keyword">final</span> <span class="keyword">boolean</span> hasUTF8Flag = gpFlag.usesUTF8ForNames();</pre></td></tr>
-<tr> <td class="numLineCover"> 529</td> <td class="nbHitsCovered"><a title="Line 529: Conditional coverage 100% (2/2)."> 225</a></td> <td class="src"><pre class="src"> <a title="Line 529: Conditional coverage 100% (2/2)."> <span class="keyword">final</span> ZipEncoding entryEncoding =</a></pre></td></tr>
+<tr> <td class="numLineCover"> 527</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> <span class="keyword">final</span> GeneralPurposeBit gpFlag = GeneralPurposeBit.parse(CFH_BUF, off);</pre></td></tr>
+<tr> <td class="numLineCover"> 528</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> <span class="keyword">final</span> <span class="keyword">boolean</span> hasUTF8Flag = gpFlag.usesUTF8ForNames();</pre></td></tr>
+<tr> <td class="numLineCover"> 529</td> <td class="nbHitsCovered"><a title="Line 529: Conditional coverage 100% (2/2)."> 450</a></td> <td class="src"><pre class="src"> <a title="Line 529: Conditional coverage 100% (2/2)."> <span class="keyword">final</span> ZipEncoding entryEncoding =</a></pre></td></tr>
<tr> <td class="numLine"> 530</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> hasUTF8Flag ? ZipEncodingHelper.UTF8_ZIP_ENCODING : zipEncoding;</pre></td></tr>
-<tr> <td class="numLineCover"> 531</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> ze.setGeneralPurposeBit(gpFlag);</pre></td></tr>
+<tr> <td class="numLineCover"> 531</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> ze.setGeneralPurposeBit(gpFlag);</pre></td></tr>
<tr> <td class="numLine"> 532</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 533</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> off += SHORT;</pre></td></tr>
+<tr> <td class="numLineCover"> 533</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> off += SHORT;</pre></td></tr>
<tr> <td class="numLine"> 534</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 535</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> ze.setMethod(ZipShort.getValue(CFH_BUF, off));</pre></td></tr>
-<tr> <td class="numLineCover"> 536</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> off += SHORT;</pre></td></tr>
+<tr> <td class="numLineCover"> 535</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> ze.setMethod(ZipShort.getValue(CFH_BUF, off));</pre></td></tr>
+<tr> <td class="numLineCover"> 536</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> off += SHORT;</pre></td></tr>
<tr> <td class="numLine"> 537</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 538</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> <span class="keyword">long</span> time = ZipUtil.dosToJavaTime(ZipLong.getValue(CFH_BUF, off));</pre></td></tr>
-<tr> <td class="numLineCover"> 539</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> ze.setTime(time);</pre></td></tr>
-<tr> <td class="numLineCover"> 540</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> off += WORD;</pre></td></tr>
+<tr> <td class="numLineCover"> 538</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> <span class="keyword">long</span> time = ZipUtil.dosToJavaTime(ZipLong.getValue(CFH_BUF, off));</pre></td></tr>
+<tr> <td class="numLineCover"> 539</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> ze.setTime(time);</pre></td></tr>
+<tr> <td class="numLineCover"> 540</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> off += WORD;</pre></td></tr>
<tr> <td class="numLine"> 541</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 542</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> ze.setCrc(ZipLong.getValue(CFH_BUF, off));</pre></td></tr>
-<tr> <td class="numLineCover"> 543</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> off += WORD;</pre></td></tr>
+<tr> <td class="numLineCover"> 542</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> ze.setCrc(ZipLong.getValue(CFH_BUF, off));</pre></td></tr>
+<tr> <td class="numLineCover"> 543</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> off += WORD;</pre></td></tr>
<tr> <td class="numLine"> 544</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 545</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> ze.setCompressedSize(ZipLong.getValue(CFH_BUF, off));</pre></td></tr>
-<tr> <td class="numLineCover"> 546</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> off += WORD;</pre></td></tr>
+<tr> <td class="numLineCover"> 545</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> ze.setCompressedSize(ZipLong.getValue(CFH_BUF, off));</pre></td></tr>
+<tr> <td class="numLineCover"> 546</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> off += WORD;</pre></td></tr>
<tr> <td class="numLine"> 547</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 548</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> ze.setSize(ZipLong.getValue(CFH_BUF, off));</pre></td></tr>
-<tr> <td class="numLineCover"> 549</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> off += WORD;</pre></td></tr>
+<tr> <td class="numLineCover"> 548</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> ze.setSize(ZipLong.getValue(CFH_BUF, off));</pre></td></tr>
+<tr> <td class="numLineCover"> 549</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> off += WORD;</pre></td></tr>
<tr> <td class="numLine"> 550</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 551</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> <span class="keyword">int</span> fileNameLen = ZipShort.getValue(CFH_BUF, off);</pre></td></tr>
-<tr> <td class="numLineCover"> 552</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> off += SHORT;</pre></td></tr>
+<tr> <td class="numLineCover"> 551</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> <span class="keyword">int</span> fileNameLen = ZipShort.getValue(CFH_BUF, off);</pre></td></tr>
+<tr> <td class="numLineCover"> 552</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> off += SHORT;</pre></td></tr>
<tr> <td class="numLine"> 553</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 554</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> <span class="keyword">int</span> extraLen = ZipShort.getValue(CFH_BUF, off);</pre></td></tr>
-<tr> <td class="numLineCover"> 555</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> off += SHORT;</pre></td></tr>
+<tr> <td class="numLineCover"> 554</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> <span class="keyword">int</span> extraLen = ZipShort.getValue(CFH_BUF, off);</pre></td></tr>
+<tr> <td class="numLineCover"> 555</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> off += SHORT;</pre></td></tr>
<tr> <td class="numLine"> 556</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 557</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> <span class="keyword">int</span> commentLen = ZipShort.getValue(CFH_BUF, off);</pre></td></tr>
-<tr> <td class="numLineCover"> 558</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> off += SHORT;</pre></td></tr>
+<tr> <td class="numLineCover"> 557</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> <span class="keyword">int</span> commentLen = ZipShort.getValue(CFH_BUF, off);</pre></td></tr>
+<tr> <td class="numLineCover"> 558</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> off += SHORT;</pre></td></tr>
<tr> <td class="numLine"> 559</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 560</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> <span class="keyword">int</span> diskStart = ZipShort.getValue(CFH_BUF, off);</pre></td></tr>
-<tr> <td class="numLineCover"> 561</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> off += SHORT;</pre></td></tr>
+<tr> <td class="numLineCover"> 560</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> <span class="keyword">int</span> diskStart = ZipShort.getValue(CFH_BUF, off);</pre></td></tr>
+<tr> <td class="numLineCover"> 561</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> off += SHORT;</pre></td></tr>
<tr> <td class="numLine"> 562</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 563</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> ze.setInternalAttributes(ZipShort.getValue(CFH_BUF, off));</pre></td></tr>
-<tr> <td class="numLineCover"> 564</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> off += SHORT;</pre></td></tr>
+<tr> <td class="numLineCover"> 563</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> ze.setInternalAttributes(ZipShort.getValue(CFH_BUF, off));</pre></td></tr>
+<tr> <td class="numLineCover"> 564</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> off += SHORT;</pre></td></tr>
<tr> <td class="numLine"> 565</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 566</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> ze.setExternalAttributes(ZipLong.getValue(CFH_BUF, off));</pre></td></tr>
-<tr> <td class="numLineCover"> 567</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> off += WORD;</pre></td></tr>
+<tr> <td class="numLineCover"> 566</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> ze.setExternalAttributes(ZipLong.getValue(CFH_BUF, off));</pre></td></tr>
+<tr> <td class="numLineCover"> 567</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> off += WORD;</pre></td></tr>
<tr> <td class="numLine"> 568</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 569</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> <span class="keyword">byte</span>[] fileName = <span class="keyword">new</span> <span class="keyword">byte</span>[fileNameLen];</pre></td></tr>
-<tr> <td class="numLineCover"> 570</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> archive.readFully(fileName);</pre></td></tr>
-<tr> <td class="numLineCover"> 571</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> ze.setName(entryEncoding.decode(fileName), fileName);</pre></td></tr>
+<tr> <td class="numLineCover"> 569</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> <span class="keyword">byte</span>[] fileName = <span class="keyword">new</span> <span class="keyword">byte</span>[fileNameLen];</pre></td></tr>
+<tr> <td class="numLineCover"> 570</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> archive.readFully(fileName);</pre></td></tr>
+<tr> <td class="numLineCover"> 571</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> ze.setName(entryEncoding.decode(fileName), fileName);</pre></td></tr>
<tr> <td class="numLine"> 572</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 573</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// LFH offset,</span></pre></td></tr>
-<tr> <td class="numLineCover"> 574</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> offset.headerOffset = ZipLong.getValue(CFH_BUF, off);</pre></td></tr>
+<tr> <td class="numLineCover"> 574</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> offset.headerOffset = ZipLong.getValue(CFH_BUF, off);</pre></td></tr>
<tr> <td class="numLine"> 575</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// data offset will be filled later</span></pre></td></tr>
-<tr> <td class="numLineCover"> 576</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> entries.add(ze);</pre></td></tr>
+<tr> <td class="numLineCover"> 576</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> entries.add(ze);</pre></td></tr>
<tr> <td class="numLine"> 577</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 578</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> <span class="keyword">byte</span>[] cdExtraData = <span class="keyword">new</span> <span class="keyword">byte</span>[extraLen];</pre></td></tr>
-<tr> <td class="numLineCover"> 579</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> archive.readFully(cdExtraData);</pre></td></tr>
-<tr> <td class="numLineCover"> 580</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> ze.setCentralDirectoryExtra(cdExtraData);</pre></td></tr>
+<tr> <td class="numLineCover"> 578</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> <span class="keyword">byte</span>[] cdExtraData = <span class="keyword">new</span> <span class="keyword">byte</span>[extraLen];</pre></td></tr>
+<tr> <td class="numLineCover"> 579</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> archive.readFully(cdExtraData);</pre></td></tr>
+<tr> <td class="numLineCover"> 580</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> ze.setCentralDirectoryExtra(cdExtraData);</pre></td></tr>
<tr> <td class="numLine"> 581</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 582</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> setSizesAndOffsetFromZip64Extra(ze, offset, diskStart);</pre></td></tr>
+<tr> <td class="numLineCover"> 582</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> setSizesAndOffsetFromZip64Extra(ze, offset, diskStart);</pre></td></tr>
<tr> <td class="numLine"> 583</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 584</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> <span class="keyword">byte</span>[] comment = <span class="keyword">new</span> <span class="keyword">byte</span>[commentLen];</pre></td></tr>
-<tr> <td class="numLineCover"> 585</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> archive.readFully(comment);</pre></td></tr>
-<tr> <td class="numLineCover"> 586</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> ze.setComment(entryEncoding.decode(comment));</pre></td></tr>
+<tr> <td class="numLineCover"> 584</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> <span class="keyword">byte</span>[] comment = <span class="keyword">new</span> <span class="keyword">byte</span>[commentLen];</pre></td></tr>
+<tr> <td class="numLineCover"> 585</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> archive.readFully(comment);</pre></td></tr>
+<tr> <td class="numLineCover"> 586</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> ze.setComment(entryEncoding.decode(comment));</pre></td></tr>
<tr> <td class="numLine"> 587</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 588</td> <td class="nbHitsCovered"><a title="Line 588: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 225</a></td> <td class="src"><pre class="src"> <a title="Line 588: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (!hasUTF8Flag && useUnicodeExtraFields) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 589</td> <td class="nbHitsCovered"> 171</td> <td class="src"><pre class="src"> noUTF8Flag.put(ze, <span class="keyword">new</span> NameAndComment(fileName, comment));</pre></td></tr>
+<tr> <td class="numLineCover"> 588</td> <td class="nbHitsCovered"><a title="Line 588: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 450</a></td> <td class="src"><pre class="src"> <a title="Line 588: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (!hasUTF8Flag && useUnicodeExtraFields) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 589</td> <td class="nbHitsCovered"> 342</td> <td class="src"><pre class="src"> noUTF8Flag.put(ze, <span class="keyword">new</span> NameAndComment(fileName, comment));</pre></td></tr>
<tr> <td class="numLine"> 590</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 591</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 591</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 592</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 593</td> <td class="nbHits"> </td>
@@ -1090,18 +1090,18 @@
<td class="src"><pre class="src"> <span class="keyword">int</span> diskStart)</pre></td></tr>
<tr> <td class="numLine"> 608</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">throws</span> IOException {</pre></td></tr>
-<tr> <td class="numLineCover"> 609</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src"> Zip64ExtendedInformationExtraField z64 =</pre></td></tr>
+<tr> <td class="numLineCover"> 609</td> <td class="nbHitsCovered"> 450</td> <td class="src"><pre class="src"> Zip64ExtendedInformationExtraField z64 =</pre></td></tr>
<tr> <td class="numLine"> 610</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> (Zip64ExtendedInformationExtraField)</pre></td></tr>
<tr> <td class="numLine"> 611</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> ze.getExtraField(Zip64ExtendedInformationExtraField.HEADER_ID);</pre></td></tr>
-<tr> <td class="numLineCover"> 612</td> <td class="nbHitsCovered"><a title="Line 612: Conditional coverage 100% (2/2)."> 225</a></td> <td class="src"><pre class="src"> <a title="Line 612: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (z64 != <span class="keyword">null</span>) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 613</td> <td class="nbHitsUncovered"><a title="Line 613: Conditional coverage 50% (1/2)."> 23</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 613: Conditional coverage 50% (1/2)."> <span class="keyword">boolean</span> hasUncompressedSize = ze.getSize() == ZIP64_MAGIC;</a></span></pre></td></tr>
-<tr> <td class="numLineCover"> 614</td> <td class="nbHitsUncovered"><a title="Line 614: Conditional coverage 50% (1/2)."> 23</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 614: Conditional coverage 50% (1/2)."> <span class="keyword">boolean</span> hasCompressedSize = ze.getCompressedSize() == ZIP64_MAGIC;</a></span></pre></td></tr>
-<tr> <td class="numLineCover"> 615</td> <td class="nbHitsUncovered"><a title="Line 615: Conditional coverage 50% (1/2)."> 23</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 615: Conditional coverage 50% (1/2)."> <span class="keyword">boolean</span> hasRelativeHeaderOffset =</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 612</td> <td class="nbHitsCovered"><a title="Line 612: Conditional coverage 100% (2/2)."> 450</a></td> <td class="src"><pre class="src"> <a title="Line 612: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (z64 != <span class="keyword">null</span>) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 613</td> <td class="nbHitsUncovered"><a title="Line 613: Conditional coverage 50% (1/2)."> 46</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 613: Conditional coverage 50% (1/2)."> <span class="keyword">boolean</span> hasUncompressedSize = ze.getSize() == ZIP64_MAGIC;</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 614</td> <td class="nbHitsUncovered"><a title="Line 614: Conditional coverage 50% (1/2)."> 46</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 614: Conditional coverage 50% (1/2)."> <span class="keyword">boolean</span> hasCompressedSize = ze.getCompressedSize() == ZIP64_MAGIC;</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 615</td> <td class="nbHitsUncovered"><a title="Line 615: Conditional coverage 50% (1/2)."> 46</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 615: Conditional coverage 50% (1/2)."> <span class="keyword">boolean</span> hasRelativeHeaderOffset =</a></span></pre></td></tr>
<tr> <td class="numLine"> 616</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> offset.headerOffset == ZIP64_MAGIC;</pre></td></tr>
-<tr> <td class="numLineCover"> 617</td> <td class="nbHitsUncovered"><a title="Line 617: Conditional coverage 50% (1/2)."> 23</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 617: Conditional coverage 50% (1/2)."> z64.reparseCentralDirectoryData(hasUncompressedSize,</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 617</td> <td class="nbHitsUncovered"><a title="Line 617: Conditional coverage 50% (1/2)."> 46</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 617: Conditional coverage 50% (1/2)."> z64.reparseCentralDirectoryData(hasUncompressedSize,</a></span></pre></td></tr>
<tr> <td class="numLine"> 618</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> hasCompressedSize,</pre></td></tr>
<tr> <td class="numLine"> 619</td> <td class="nbHits"> </td>
@@ -1110,23 +1110,23 @@
<td class="src"><pre class="src"> diskStart == ZIP64_MAGIC_SHORT);</pre></td></tr>
<tr> <td class="numLine"> 621</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 622</td> <td class="nbHitsUncovered"><a title="Line 622: Conditional coverage 50% (1/2)."> 23</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 622: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (hasUncompressedSize) {</a></span></pre></td></tr>
-<tr> <td class="numLineCover"> 623</td> <td class="nbHitsCovered"> 23</td> <td class="src"><pre class="src"> ze.setSize(z64.getSize().getLongValue());</pre></td></tr>
+<tr> <td class="numLineCover"> 622</td> <td class="nbHitsUncovered"><a title="Line 622: Conditional coverage 50% (1/2)."> 46</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 622: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (hasUncompressedSize) {</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 623</td> <td class="nbHitsCovered"> 46</td> <td class="src"><pre class="src"> ze.setSize(z64.getSize().getLongValue());</pre></td></tr>
<tr> <td class="numLineCover"> 624</td> <td class="nbHitsUncovered"><a title="Line 624: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 624: Conditional coverage 0% (0/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (hasCompressedSize) {</a></span></pre></td></tr>
<tr> <td class="numLineCover"> 625</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> z64.setSize(<span class="keyword">new</span> ZipEightByteInteger(ze.getSize()));</span></pre></td></tr>
<tr> <td class="numLine"> 626</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 627</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 628</td> <td class="nbHitsUncovered"><a title="Line 628: Conditional coverage 50% (1/2)."> 23</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 628: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (hasCompressedSize) {</a></span></pre></td></tr>
-<tr> <td class="numLineCover"> 629</td> <td class="nbHitsCovered"> 23</td> <td class="src"><pre class="src"> ze.setCompressedSize(z64.getCompressedSize().getLongValue());</pre></td></tr>
[... 515 lines stripped ...]