version 1.3.0 documentation

This commit is contained in:
Jeremy Long
2015-08-05 15:38:32 -04:00
parent 5cc29d0a00
commit 4fd8873223
1212 changed files with 86425 additions and 43448 deletions

View File

@@ -131,20 +131,20 @@
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">int</span> DELETE_RETRY_SLEEP_MILLIS = 10;</pre></td></tr>
<tr> <td class="numLine">&nbsp;56</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">int</span> EXPAND_SPACE = 50;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;57</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> FileUtils PRIMARY_INSTANCE = <span class="keyword">new</span> FileUtils();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;57</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> FileUtils PRIMARY_INSTANCE = <span class="keyword">new</span> FileUtils();</pre></td></tr>
<tr> <td class="numLine">&nbsp;58</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;59</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">//get some non-crypto-grade randomness from various places.</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;60</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">static</span> Random rand = <span class="keyword">new</span> Random(System.currentTimeMillis()</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;60</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">static</span> Random rand = <span class="keyword">new</span> Random(System.currentTimeMillis()</pre></td></tr>
<tr> <td class="numLine">&nbsp;61</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; + Runtime.getRuntime().freeMemory());</pre></td></tr>
<tr> <td class="numLine">&nbsp;62</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;63</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">boolean</span> ON_NETWARE = Os.isFamily(<span class="string">"netware"</span>);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;64</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">boolean</span> ON_DOS = Os.isFamily(<span class="string">"dos"</span>);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;65</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">boolean</span> ON_WIN9X = Os.isFamily(<span class="string">"win9x"</span>);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;66</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">boolean</span> ON_WINDOWS = Os.isFamily(<span class="string">"windows"</span>);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;63</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">boolean</span> ON_NETWARE = Os.isFamily(<span class="string">"netware"</span>);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;64</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">boolean</span> ON_DOS = Os.isFamily(<span class="string">"dos"</span>);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;65</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">boolean</span> ON_WIN9X = Os.isFamily(<span class="string">"win9x"</span>);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;66</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">boolean</span> ON_WINDOWS = Os.isFamily(<span class="string">"windows"</span>);</pre></td></tr>
<tr> <td class="numLine">&nbsp;67</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;68</td> <td class="nbHits">&nbsp;</td>
@@ -191,9 +191,9 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> * operation. This just caches the result of the last call.</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;89</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;90</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> Object cacheFromUriLock = <span class="keyword">new</span> Object();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;91</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> String cacheFromUriRequest = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;92</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> String cacheFromUriResponse = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;90</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> Object cacheFromUriLock = <span class="keyword">new</span> Object();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;91</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> String cacheFromUriRequest = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;92</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> String cacheFromUriResponse = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLine">&nbsp;93</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;94</td> <td class="nbHits">&nbsp;</td>
@@ -229,7 +229,7 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;110</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> <span class="keyword">static</span> FileUtils getFileUtils() {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;111</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> PRIMARY_INSTANCE;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;111</td> <td class="nbHitsCovered">&nbsp;32</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> PRIMARY_INSTANCE;</pre></td></tr>
<tr> <td class="numLine">&nbsp;112</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;113</td> <td class="nbHits">&nbsp;</td>
@@ -240,8 +240,8 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> * Empty constructor.</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;116</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;117</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">protected</span> FileUtils() {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;118</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;117</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">protected</span> FileUtils() {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;118</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;119</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;120</td> <td class="nbHits">&nbsp;</td>
@@ -1252,23 +1252,23 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;632</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">boolean</span> isAbsolutePath(String filename) {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;633</td> <td class="nbHitsCovered">&nbsp;12</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">int</span> len = filename.length();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;634</td> <td class="nbHitsUncovered"><a title="Line 634: Conditional coverage 50% (1/2).">&nbsp;12</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 634: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (len == 0) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;633</td> <td class="nbHitsCovered">&nbsp;96</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">int</span> len = filename.length();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;634</td> <td class="nbHitsUncovered"><a title="Line 634: Conditional coverage 50% (1/2).">&nbsp;96</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 634: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (len == 0) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;635</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;636</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;637</td> <td class="nbHitsCovered">&nbsp;12</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">char</span> sep = File.separatorChar;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;638</td> <td class="nbHitsCovered">&nbsp;12</td> <td class="src"><pre class="src">&nbsp; filename = filename.replace(<span class="string">'/'</span>, sep).replace(<span class="string">'\\'</span>, sep);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;639</td> <td class="nbHitsCovered">&nbsp;12</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">char</span> c = filename.charAt(0);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;640</td> <td class="nbHitsUncovered"><a title="Line 640: Conditional coverage 25% (1/4) [each condition: 50%, 0%].">&nbsp;12</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 640: Conditional coverage 25% (1/4) [each condition: 50%, 0%]."> <span class="keyword">if</span> (!(ON_DOS || ON_NETWARE)) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;637</td> <td class="nbHitsCovered">&nbsp;96</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">char</span> sep = File.separatorChar;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;638</td> <td class="nbHitsCovered">&nbsp;96</td> <td class="src"><pre class="src">&nbsp; filename = filename.replace(<span class="string">'/'</span>, sep).replace(<span class="string">'\\'</span>, sep);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;639</td> <td class="nbHitsCovered">&nbsp;96</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">char</span> c = filename.charAt(0);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;640</td> <td class="nbHitsUncovered"><a title="Line 640: Conditional coverage 25% (1/4) [each condition: 50%, 0%].">&nbsp;96</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 640: Conditional coverage 25% (1/4) [each condition: 50%, 0%]."> <span class="keyword">if</span> (!(ON_DOS || ON_NETWARE)) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;641</td> <td class="nbHitsUncovered"><a title="Line 641: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 641: Conditional coverage 0% (0/2)."> <span class="keyword">return</span> (c == sep);</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;642</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;643</td> <td class="nbHitsCovered"><a title="Line 643: Conditional coverage 100% (2/2).">&nbsp;12</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 643: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (c == sep) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;643</td> <td class="nbHitsCovered"><a title="Line 643: Conditional coverage 100% (2/2).">&nbsp;96</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 643: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (c == sep) {</a></pre></td></tr>
<tr> <td class="numLine">&nbsp;644</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">// CheckStyle:MagicNumber OFF</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;645</td> <td class="nbHitsUncovered"><a title="Line 645: Conditional coverage 50% (3/6) [each condition: 50%, 50%, 50%].">&nbsp;2</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 645: Conditional coverage 50% (3/6) [each condition: 50%, 50%, 50%]."> <span class="keyword">if</span> (!(ON_DOS &amp;&amp; len &gt; 4 &amp;&amp; filename.charAt(1) == sep)) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;646</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> <span class="keyword">false</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;645</td> <td class="nbHitsUncovered"><a title="Line 645: Conditional coverage 50% (3/6) [each condition: 50%, 50%, 50%].">&nbsp;16</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 645: Conditional coverage 50% (3/6) [each condition: 50%, 50%, 50%]."> <span class="keyword">if</span> (!(ON_DOS &amp;&amp; len &gt; 4 &amp;&amp; filename.charAt(1) == sep)) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;646</td> <td class="nbHitsCovered">&nbsp;16</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> <span class="keyword">false</span>;</pre></td></tr>
<tr> <td class="numLine">&nbsp;647</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;648</td> <td class="nbHits">&nbsp;</td>
@@ -1277,8 +1277,8 @@
<tr> <td class="numLineCover">&nbsp;650</td> <td class="nbHitsUncovered"><a title="Line 650: Conditional coverage 0% (0/4) [each condition: 0%, 0%].">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 650: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">return</span> nextsep &gt; 2 &amp;&amp; nextsep + 1 &lt; len;</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;651</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;652</td> <td class="nbHitsCovered">&nbsp;10</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">int</span> colon = filename.indexOf(<span class="string">':'</span>);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;653</td> <td class="nbHitsUncovered"><a title="Line 653: Conditional coverage 50% (6/12) [each condition: 50%, 100%, 50%, 50%, 50%, 0%].">&nbsp;10</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 653: Conditional coverage 50% (6/12) [each condition: 50%, 100%, 50%, 50%, 50%, 0%]."> <span class="keyword">return</span> (Character.isLetter(c) &amp;&amp; colon == 1</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;652</td> <td class="nbHitsCovered">&nbsp;80</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">int</span> colon = filename.indexOf(<span class="string">':'</span>);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;653</td> <td class="nbHitsUncovered"><a title="Line 653: Conditional coverage 50% (6/12) [each condition: 50%, 100%, 50%, 50%, 50%, 0%].">&nbsp;80</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 653: Conditional coverage 50% (6/12) [each condition: 50%, 100%, 50%, 50%, 50%, 0%]."> <span class="keyword">return</span> (Character.isLetter(c) &amp;&amp; colon == 1</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;654</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; &amp;&amp; filename.length() &gt; 2 &amp;&amp; filename.charAt(2) == sep)</pre></td></tr>
<tr> <td class="numLine">&nbsp;655</td> <td class="nbHits">&nbsp;</td>
@@ -1374,19 +1374,19 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;707</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> File normalize(<span class="keyword">final</span> String path) {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;708</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; Stack s = <span class="keyword">new</span> Stack();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;709</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; String[] dissect = dissect(path);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;710</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; s.push(dissect[0]);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;708</td> <td class="nbHitsCovered">&nbsp;16</td> <td class="src"><pre class="src">&nbsp; Stack s = <span class="keyword">new</span> Stack();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;709</td> <td class="nbHitsCovered">&nbsp;16</td> <td class="src"><pre class="src">&nbsp; String[] dissect = dissect(path);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;710</td> <td class="nbHitsCovered">&nbsp;16</td> <td class="src"><pre class="src">&nbsp; s.push(dissect[0]);</pre></td></tr>
<tr> <td class="numLine">&nbsp;711</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;712</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; StringTokenizer tok = <span class="keyword">new</span> StringTokenizer(dissect[1], File.separator);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;713</td> <td class="nbHitsCovered"><a title="Line 713: Conditional coverage 100% (2/2).">&nbsp;15</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 713: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (tok.hasMoreTokens()) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;714</td> <td class="nbHitsCovered">&nbsp;13</td> <td class="src"><pre class="src">&nbsp; String thisToken = tok.nextToken();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;715</td> <td class="nbHitsUncovered"><a title="Line 715: Conditional coverage 50% (1/2).">&nbsp;13</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 715: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (<span class="string">"."</span>.equals(thisToken)) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;712</td> <td class="nbHitsCovered">&nbsp;16</td> <td class="src"><pre class="src">&nbsp; StringTokenizer tok = <span class="keyword">new</span> StringTokenizer(dissect[1], File.separator);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;713</td> <td class="nbHitsCovered"><a title="Line 713: Conditional coverage 100% (2/2).">&nbsp;120</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 713: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (tok.hasMoreTokens()) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;714</td> <td class="nbHitsCovered">&nbsp;104</td> <td class="src"><pre class="src">&nbsp; String thisToken = tok.nextToken();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;715</td> <td class="nbHitsUncovered"><a title="Line 715: Conditional coverage 50% (1/2).">&nbsp;104</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 715: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (<span class="string">"."</span>.equals(thisToken)) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;716</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">continue</span>;</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;717</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;718</td> <td class="nbHitsUncovered"><a title="Line 718: Conditional coverage 50% (1/2).">&nbsp;13</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 718: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (<span class="string">".."</span>.equals(thisToken)) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;718</td> <td class="nbHitsUncovered"><a title="Line 718: Conditional coverage 50% (1/2).">&nbsp;104</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 718: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (<span class="string">".."</span>.equals(thisToken)) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;719</td> <td class="nbHitsUncovered"><a title="Line 719: Conditional coverage 0% (0/2).">&nbsp;0</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 719: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (s.size() &lt; 2) {</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;720</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">// Cannot resolve it, so skip it.</span></pre></td></tr>
@@ -1396,25 +1396,25 @@
<tr> <td class="numLineCover">&nbsp;723</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; s.pop();</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;724</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; } <span class="keyword">else</span> { <span class="comment">// plain component</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;725</td> <td class="nbHitsCovered">&nbsp;13</td> <td class="src"><pre class="src">&nbsp; s.push(thisToken);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;725</td> <td class="nbHitsCovered">&nbsp;104</td> <td class="src"><pre class="src">&nbsp; s.push(thisToken);</pre></td></tr>
<tr> <td class="numLine">&nbsp;726</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;727</td> <td class="nbHitsCovered">&nbsp;13</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;728</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; StringBuffer sb = <span class="keyword">new</span> StringBuffer();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;729</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> <span class="keyword">int</span> size = s.size();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;730</td> <td class="nbHitsCovered"><a title="Line 730: Conditional coverage 100% (2/2).">&nbsp;17</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 730: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i &lt; size; i++) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;731</td> <td class="nbHitsCovered"><a title="Line 731: Conditional coverage 100% (2/2).">&nbsp;15</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 731: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (i &gt; 1) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;727</td> <td class="nbHitsCovered">&nbsp;104</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;728</td> <td class="nbHitsCovered">&nbsp;16</td> <td class="src"><pre class="src">&nbsp; StringBuffer sb = <span class="keyword">new</span> StringBuffer();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;729</td> <td class="nbHitsCovered">&nbsp;16</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> <span class="keyword">int</span> size = s.size();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;730</td> <td class="nbHitsCovered"><a title="Line 730: Conditional coverage 100% (2/2).">&nbsp;136</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 730: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i &lt; size; i++) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;731</td> <td class="nbHitsCovered"><a title="Line 731: Conditional coverage 100% (2/2).">&nbsp;120</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 731: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (i &gt; 1) {</a></pre></td></tr>
<tr> <td class="numLine">&nbsp;732</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">// not before the filesystem root and not after it, since root</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;733</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">// already contains one</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;734</td> <td class="nbHitsCovered">&nbsp;11</td> <td class="src"><pre class="src">&nbsp; sb.append(File.separatorChar);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;734</td> <td class="nbHitsCovered">&nbsp;88</td> <td class="src"><pre class="src">&nbsp; sb.append(File.separatorChar);</pre></td></tr>
<tr> <td class="numLine">&nbsp;735</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;736</td> <td class="nbHitsCovered">&nbsp;15</td> <td class="src"><pre class="src">&nbsp; sb.append(s.elementAt(i));</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;736</td> <td class="nbHitsCovered">&nbsp;120</td> <td class="src"><pre class="src">&nbsp; sb.append(s.elementAt(i));</pre></td></tr>
<tr> <td class="numLine">&nbsp;737</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;738</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> <span class="keyword">new</span> File(sb.toString());</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;738</td> <td class="nbHitsCovered">&nbsp;16</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> <span class="keyword">new</span> File(sb.toString());</pre></td></tr>
<tr> <td class="numLine">&nbsp;739</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;740</td> <td class="nbHits">&nbsp;</td>
@@ -1437,42 +1437,42 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;749</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> String[] dissect(String path) {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;750</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">char</span> sep = File.separatorChar;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;751</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; path = path.replace(<span class="string">'/'</span>, sep).replace(<span class="string">'\\'</span>, sep);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;750</td> <td class="nbHitsCovered">&nbsp;16</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">char</span> sep = File.separatorChar;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;751</td> <td class="nbHitsCovered">&nbsp;16</td> <td class="src"><pre class="src">&nbsp; path = path.replace(<span class="string">'/'</span>, sep).replace(<span class="string">'\\'</span>, sep);</pre></td></tr>
<tr> <td class="numLine">&nbsp;752</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;753</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">// make sure we are dealing with an absolute path</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;754</td> <td class="nbHitsUncovered"><a title="Line 754: Conditional coverage 50% (1/2).">&nbsp;2</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 754: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (!isAbsolutePath(path)) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;754</td> <td class="nbHitsUncovered"><a title="Line 754: Conditional coverage 50% (1/2).">&nbsp;16</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 754: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (!isAbsolutePath(path)) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;755</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">throw</span> <span class="keyword">new</span> BuildException(path + <span class="string">" is not an absolute path"</span>);</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;756</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;757</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; String root = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;758</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">int</span> colon = path.indexOf(<span class="string">':'</span>);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;759</td> <td class="nbHitsUncovered"><a title="Line 759: Conditional coverage 33% (2/6) [each condition: 50%, 50%, 0%].">&nbsp;2</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 759: Conditional coverage 33% (2/6) [each condition: 50%, 50%, 0%]."> <span class="keyword">if</span> (colon &gt; 0 &amp;&amp; (ON_DOS || ON_NETWARE)) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;757</td> <td class="nbHitsCovered">&nbsp;16</td> <td class="src"><pre class="src">&nbsp; String root = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;758</td> <td class="nbHitsCovered">&nbsp;16</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">int</span> colon = path.indexOf(<span class="string">':'</span>);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;759</td> <td class="nbHitsUncovered"><a title="Line 759: Conditional coverage 33% (2/6) [each condition: 50%, 50%, 0%].">&nbsp;16</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 759: Conditional coverage 33% (2/6) [each condition: 50%, 50%, 0%]."> <span class="keyword">if</span> (colon &gt; 0 &amp;&amp; (ON_DOS || ON_NETWARE)) {</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;760</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;761</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">int</span> next = colon + 1;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;762</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; root = path.substring(0, next);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;763</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">char</span>[] ca = path.toCharArray();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;764</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; root += sep;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;761</td> <td class="nbHitsCovered">&nbsp;16</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">int</span> next = colon + 1;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;762</td> <td class="nbHitsCovered">&nbsp;16</td> <td class="src"><pre class="src">&nbsp; root = path.substring(0, next);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;763</td> <td class="nbHitsCovered">&nbsp;16</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">char</span>[] ca = path.toCharArray();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;764</td> <td class="nbHitsCovered">&nbsp;16</td> <td class="src"><pre class="src">&nbsp; root += sep;</pre></td></tr>
<tr> <td class="numLine">&nbsp;765</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">//remove the initial separator; the root has it.</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;766</td> <td class="nbHitsUncovered"><a title="Line 766: Conditional coverage 50% (1/2).">&nbsp;2</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 766: Conditional coverage 50% (1/2)."> next = (ca[next] == sep) ? next + 1 : next;</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;766</td> <td class="nbHitsUncovered"><a title="Line 766: Conditional coverage 50% (1/2).">&nbsp;16</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 766: Conditional coverage 50% (1/2)."> next = (ca[next] == sep) ? next + 1 : next;</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;767</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;768</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; StringBuffer sbPath = <span class="keyword">new</span> StringBuffer();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;768</td> <td class="nbHitsCovered">&nbsp;16</td> <td class="src"><pre class="src">&nbsp; StringBuffer sbPath = <span class="keyword">new</span> StringBuffer();</pre></td></tr>
<tr> <td class="numLine">&nbsp;769</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">// Eliminate consecutive slashes after the drive spec:</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;770</td> <td class="nbHitsCovered"><a title="Line 770: Conditional coverage 100% (2/2).">&nbsp;149</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 770: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = next; i &lt; ca.length; i++) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;771</td> <td class="nbHitsUncovered"><a title="Line 771: Conditional coverage 75% (3/4) [each condition: 100%, 50%].">&nbsp;147</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 771: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> <span class="keyword">if</span> (ca[i] != sep || ca[i - 1] != sep) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;772</td> <td class="nbHitsCovered">&nbsp;147</td> <td class="src"><pre class="src">&nbsp; sbPath.append(ca[i]);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;770</td> <td class="nbHitsCovered"><a title="Line 770: Conditional coverage 100% (2/2).">&nbsp;1192</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 770: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = next; i &lt; ca.length; i++) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;771</td> <td class="nbHitsUncovered"><a title="Line 771: Conditional coverage 75% (3/4) [each condition: 100%, 50%].">&nbsp;1176</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 771: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> <span class="keyword">if</span> (ca[i] != sep || ca[i - 1] != sep) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;772</td> <td class="nbHitsCovered">&nbsp;1176</td> <td class="src"><pre class="src">&nbsp; sbPath.append(ca[i]);</pre></td></tr>
<tr> <td class="numLine">&nbsp;773</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;774</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;775</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; path = sbPath.toString();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;776</td> <td class="nbHitsUncovered"><a title="Line 776: Conditional coverage 0% (0/4) [each condition: 0%, 0%].">&nbsp;2</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 776: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> } <span class="keyword">else</span> <span class="keyword">if</span> (path.length() &gt; 1 &amp;&amp; path.charAt(1) == sep) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;775</td> <td class="nbHitsCovered">&nbsp;16</td> <td class="src"><pre class="src">&nbsp; path = sbPath.toString();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;776</td> <td class="nbHitsUncovered"><a title="Line 776: Conditional coverage 0% (0/4) [each condition: 0%, 0%].">&nbsp;16</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 776: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> } <span class="keyword">else</span> <span class="keyword">if</span> (path.length() &gt; 1 &amp;&amp; path.charAt(1) == sep) {</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;777</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">// UNC drive</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;778</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">int</span> nextsep = path.indexOf(sep, 2);</span></pre></td></tr>
@@ -1484,7 +1484,7 @@
<tr> <td class="numLineCover">&nbsp;784</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; path = path.substring(1);</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;785</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;786</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> <span class="keyword">new</span> String[]{root, path};</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;786</td> <td class="nbHitsCovered">&nbsp;16</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> <span class="keyword">new</span> String[]{root, path};</pre></td></tr>
<tr> <td class="numLine">&nbsp;787</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;788</td> <td class="nbHits">&nbsp;</td>
@@ -2066,9 +2066,9 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1112</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> String removeLeadingPath(File leading, File path) {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1113</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; String l = normalize(leading.getAbsolutePath()).getAbsolutePath();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1114</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; String p = normalize(path.getAbsolutePath()).getAbsolutePath();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1115</td> <td class="nbHitsUncovered"><a title="Line 1115: Conditional coverage 50% (1/2).">&nbsp;1</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1115: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (l.equals(p)) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1113</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; String l = normalize(leading.getAbsolutePath()).getAbsolutePath();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1114</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; String p = normalize(path.getAbsolutePath()).getAbsolutePath();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1115</td> <td class="nbHitsUncovered"><a title="Line 1115: Conditional coverage 50% (1/2).">&nbsp;8</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1115: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (l.equals(p)) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1116</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">return</span> <span class="string">""</span>;</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1117</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
@@ -2076,11 +2076,11 @@
<td class="src"><pre class="src">&nbsp; <span class="comment">// ensure that l ends with a /</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1119</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">// so we never think /foo was a parent directory of /foobar</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1120</td> <td class="nbHitsUncovered"><a title="Line 1120: Conditional coverage 50% (1/2).">&nbsp;1</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1120: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (!l.endsWith(File.separator)) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1121</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; l += File.separator;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1120</td> <td class="nbHitsUncovered"><a title="Line 1120: Conditional coverage 50% (1/2).">&nbsp;8</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1120: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (!l.endsWith(File.separator)) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1121</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; l += File.separator;</pre></td></tr>
<tr> <td class="numLine">&nbsp;1122</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1123</td> <td class="nbHitsUncovered"><a title="Line 1123: Conditional coverage 50% (1/2).">&nbsp;1</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1123: Conditional coverage 50% (1/2)."> <span class="keyword">return</span> (p.startsWith(l)) ? p.substring(l.length()) : p;</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;1123</td> <td class="nbHitsUncovered"><a title="Line 1123: Conditional coverage 50% (1/2).">&nbsp;8</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1123: Conditional coverage 50% (1/2)."> <span class="keyword">return</span> (p.startsWith(l)) ? p.substring(l.length()) : p;</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;1124</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;1125</td> <td class="nbHits">&nbsp;</td>
@@ -3041,6 +3041,6 @@
<td class="src"><pre class="src">&nbsp;}</pre></td></tr>
</table>
<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 2.0.3 on 5/11/15 8:35 PM.</div>
<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 2.0.3 on 8/4/15 8:16 PM.</div>
</body>
</html>