mirror of
https://github.com/ysoftdevs/DependencyCheck.git
synced 2026-03-31 22:23:47 +02:00
documentation version 1.4.2
This commit is contained in:
@@ -21,7 +21,7 @@ org.owasp.dependencycheck.utils
|
||||
<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.utils.DownloadFailedException.html">DownloadFailedException</a> <i>(0%)</i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.utils.Downloader.html">Downloader</a> <i>(5%)</i></td>
|
||||
<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.utils.Downloader.html">Downloader</a> <i>(6%)</i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.utils.ExpectedOjectInputStream.html">ExpectedOjectInputStream</a> <i>(100%)</i></td>
|
||||
@@ -36,6 +36,9 @@ org.owasp.dependencycheck.utils
|
||||
<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.utils.InvalidSettingException.html">InvalidSettingException</a> <i>(25%)</i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.utils.SSLSocketFactoryEx.html">SSLSocketFactoryEx</a> <i>(0%)</i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.utils.Settings.html">Settings</a> <i>(47%)</i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -21,7 +21,7 @@ All Packages
|
||||
<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.utils.DownloadFailedException.html">DownloadFailedException</a> <i>(0%)</i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.utils.Downloader.html">Downloader</a> <i>(5%)</i></td>
|
||||
<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.utils.Downloader.html">Downloader</a> <i>(6%)</i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.utils.ExpectedOjectInputStream.html">ExpectedOjectInputStream</a> <i>(100%)</i></td>
|
||||
@@ -36,6 +36,9 @@ All Packages
|
||||
<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.utils.InvalidSettingException.html">InvalidSettingException</a> <i>(25%)</i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.utils.SSLSocketFactoryEx.html">SSLSocketFactoryEx</a> <i>(0%)</i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.utils.Settings.html">Settings</a> <i>(47%)</i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
<table class="report" id="packageResults">
|
||||
<thead><tr> <td class="heading">Package</td> <td class="heading"># Classes</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead>
|
||||
<tbody>
|
||||
<tr><td><a href="frame-summary-org.owasp.dependencycheck.utils.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.utils.html"'>org.owasp.dependencycheck.utils</a></td><td class="value">12</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">28%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:28px"><span class="text">135/473</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">21%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:21px"><span class="text">37/176</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.0821917808219177;</span>3.082</td></tr>
|
||||
<tr><td><a href="frame-summary-org.owasp.dependencycheck.utils.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.utils.html"'>org.owasp.dependencycheck.utils</a></td><td class="value">13</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">23%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:23px"><span class="text">136/579</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">19%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:19px"><span class="text">37/194</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.857142857142857;</span>2.857</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<script type="text/javascript">
|
||||
@@ -32,7 +32,7 @@ packageTable.sort(0);
|
||||
|
||||
<tr><td><a href="org.owasp.dependencycheck.utils.DownloadFailedException.html">DownloadFailedException</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/8</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.0;</span>1</td></tr>
|
||||
|
||||
<tr><td><a href="org.owasp.dependencycheck.utils.Downloader.html">Downloader</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">5%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:5px"><span class="text">8/141</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">2%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:2px"><span class="text">1/46</span></div></div></td></tr></table></td><td class="value"><span class="hidden">7.857142857142857;</span>7.857</td></tr>
|
||||
<tr><td><a href="org.owasp.dependencycheck.utils.Downloader.html">Downloader</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">6%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:6px"><span class="text">9/150</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">1%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:1px"><span class="text">1/52</span></div></div></td></tr></table></td><td class="value"><span class="hidden">7.5;</span>7.5</td></tr>
|
||||
|
||||
<tr><td><a href="org.owasp.dependencycheck.utils.ExpectedOjectInputStream.html">ExpectedOjectInputStream</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">100%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">7/7</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">100%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">2/2</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.0;</span>2</td></tr>
|
||||
|
||||
@@ -42,11 +42,13 @@ packageTable.sort(0);
|
||||
|
||||
<tr><td><a href="org.owasp.dependencycheck.utils.InvalidSettingException.html">InvalidSettingException</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">25%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:25px"><span class="text">2/8</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.0;</span>1</td></tr>
|
||||
|
||||
<tr><td><a href="org.owasp.dependencycheck.utils.SSLSocketFactoryEx.html">SSLSocketFactoryEx</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/84</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/10</span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.625;</span>1.625</td></tr>
|
||||
|
||||
<tr><td><a href="org.owasp.dependencycheck.utils.Settings.html">Settings</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">47%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:47px"><span class="text">84/176</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">35%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:35px"><span class="text">23/64</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.696969696969697;</span>2.697</td></tr>
|
||||
<tr><td><a href="org.owasp.dependencycheck.utils.Settings.html">Settings$KEYS</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/2</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.696969696969697;</span>2.697</td></tr>
|
||||
|
||||
<tr><td><a href="org.owasp.dependencycheck.utils.URLConnectionFactory.html">URLConnectionFactory</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/57</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/42</span></div></div></td></tr></table></td><td class="value"><span class="hidden">7.4;</span>7.4</td></tr>
|
||||
<tr><td><a href="org.owasp.dependencycheck.utils.URLConnectionFactory.html">URLConnectionFactory$1</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/4</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/2</span></div></div></td></tr></table></td><td class="value"><span class="hidden">7.4;</span>7.4</td></tr>
|
||||
<tr><td><a href="org.owasp.dependencycheck.utils.URLConnectionFactory.html">URLConnectionFactory</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/70</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/44</span></div></div></td></tr></table></td><td class="value"><span class="hidden">6.833333333333333;</span>6.833</td></tr>
|
||||
<tr><td><a href="org.owasp.dependencycheck.utils.URLConnectionFactory.html">URLConnectionFactory$1</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/4</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/2</span></div></div></td></tr></table></td><td class="value"><span class="hidden">6.833333333333333;</span>6.833</td></tr>
|
||||
|
||||
<tr><td><a href="org.owasp.dependencycheck.utils.URLConnectionFailureException.html">URLConnectionFailureException</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/8</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.0;</span>1</td></tr>
|
||||
|
||||
@@ -57,6 +59,6 @@ var classTable = new SortableTable(document.getElementById("classResults"),
|
||||
["String", "Percentage", "Percentage", "FormattedNumber"]);
|
||||
classTable.sort(0);
|
||||
</script>
|
||||
<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 2.1.1 on 6/16/16 6:44 AM.</div>
|
||||
<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 2.1.1 on 7/31/16 7:37 AM.</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
<table class="report" id="packageResults">
|
||||
<thead><tr> <td class="heading">Package</td> <td class="heading"># Classes</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead>
|
||||
<tbody>
|
||||
<tr><td><b>All Packages</b></td><td class="value">12</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">28%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:28px"><span class="text">135/473</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">21%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:21px"><span class="text">37/176</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.0821917808219177;</span>3.082</td></tr>
|
||||
<tr><td><a href="frame-summary-org.owasp.dependencycheck.utils.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.utils.html"'>org.owasp.dependencycheck.utils</a></td><td class="value">12</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">28%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:28px"><span class="text">135/473</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">21%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:21px"><span class="text">37/176</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.0821917808219177;</span>3.082</td></tr>
|
||||
<tr><td><b>All Packages</b></td><td class="value">13</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">23%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:23px"><span class="text">136/579</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">19%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:19px"><span class="text">37/194</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.857142857142857;</span>2.857</td></tr>
|
||||
<tr><td><a href="frame-summary-org.owasp.dependencycheck.utils.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.utils.html"'>org.owasp.dependencycheck.utils</a></td><td class="value">13</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">23%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:23px"><span class="text">136/579</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">19%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:19px"><span class="text">37/194</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.857142857142857;</span>2.857</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<script type="text/javascript">
|
||||
@@ -25,6 +25,6 @@ var packageTable = new SortableTable(document.getElementById("packageResults"),
|
||||
["String", "Number", "Percentage", "Percentage", "FormattedNumber"]);
|
||||
packageTable.sort(0);
|
||||
</script>
|
||||
<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 2.1.1 on 6/16/16 6:44 AM.</div>
|
||||
<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 2.1.1 on 7/31/16 7:37 AM.</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -99,7 +99,7 @@
|
||||
<td class="src"><pre class="src"> <span class="comment"> * The logger.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 41</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 42</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> Logger LOGGER = LoggerFactory.getLogger(Checksum.<span class="keyword">class</span>);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 42</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> Logger LOGGER = LoggerFactory.getLogger(Checksum.<span class="keyword">class</span>);</pre></td></tr>
|
||||
<tr> <td class="numLine"> 43</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 44</td> <td class="nbHits"> </td>
|
||||
@@ -134,44 +134,44 @@
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 60</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">byte</span>[] getChecksum(String algorithm, File file) <span class="keyword">throws</span> NoSuchAlgorithmException, IOException {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 61</td> <td class="nbHitsCovered"> 10</td> <td class="src"><pre class="src"> MessageDigest digest = MessageDigest.getInstance(algorithm);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 62</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> FileInputStream fis = <span class="keyword">null</span>;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 61</td> <td class="nbHitsCovered"> 5</td> <td class="src"><pre class="src"> MessageDigest digest = MessageDigest.getInstance(algorithm);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 62</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> FileInputStream fis = <span class="keyword">null</span>;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 63</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 64</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> fis = <span class="keyword">new</span> FileInputStream(file);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 65</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> FileChannel ch = fis.getChannel();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 66</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">long</span> remainingToRead = file.length();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 67</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">long</span> start = 0;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 68</td> <td class="nbHitsCovered"><a title="Line 68: Conditional coverage 100% (2/2)."> 12</a></td> <td class="src"><pre class="src"> <a title="Line 68: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (remainingToRead > 0) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 64</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> fis = <span class="keyword">new</span> FileInputStream(file);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 65</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> FileChannel ch = fis.getChannel();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 66</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> <span class="keyword">long</span> remainingToRead = file.length();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 67</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> <span class="keyword">long</span> start = 0;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 68</td> <td class="nbHitsCovered"><a title="Line 68: Conditional coverage 100% (2/2)."> 6</a></td> <td class="src"><pre class="src"> <a title="Line 68: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (remainingToRead > 0) {</a></pre></td></tr>
|
||||
<tr> <td class="numLine"> 69</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">long</span> amountToRead;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 70</td> <td class="nbHitsUncovered"><a title="Line 70: Conditional coverage 50% (1/2)."> 6</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 70: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (remainingToRead > Integer.MAX_VALUE) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 70</td> <td class="nbHitsUncovered"><a title="Line 70: Conditional coverage 50% (1/2)."> 3</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 70: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (remainingToRead > Integer.MAX_VALUE) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 71</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> remainingToRead -= Integer.MAX_VALUE;</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 72</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> amountToRead = Integer.MAX_VALUE;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 73</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 74</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> amountToRead = remainingToRead;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 75</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> remainingToRead = 0;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 74</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> amountToRead = remainingToRead;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 75</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> remainingToRead = 0;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 76</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 77</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> MappedByteBuffer byteBuffer = ch.map(FileChannel.MapMode.READ_ONLY, start, amountToRead);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 78</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> digest.update(byteBuffer);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 79</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> start += amountToRead;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 80</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 77</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> MappedByteBuffer byteBuffer = ch.map(FileChannel.MapMode.READ_ONLY, start, amountToRead);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 78</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> digest.update(byteBuffer);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 79</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> start += amountToRead;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 80</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 81</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> } <span class="keyword">finally</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 82</td> <td class="nbHitsUncovered"><a title="Line 82: Conditional coverage 50% (1/2)."> 8</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 82: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (fis != <span class="keyword">null</span>) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 82</td> <td class="nbHitsUncovered"><a title="Line 82: Conditional coverage 50% (1/2)."> 4</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 82: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (fis != <span class="keyword">null</span>) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 83</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 84</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> fis.close();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 84</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> fis.close();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 85</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 86</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LOGGER.trace(<span class="string">"Error closing file '{}'."</span>, file.getName(), ex);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 87</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 87</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 88</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 89</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 90</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">return</span> digest.digest();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 90</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> <span class="keyword">return</span> digest.digest();</pre></td></tr>
|
||||
<tr> <td class="numLine"> 91</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 92</td> <td class="nbHits"> </td>
|
||||
@@ -194,8 +194,8 @@
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 101</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> String getMD5Checksum(File file) <span class="keyword">throws</span> IOException, NoSuchAlgorithmException {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 102</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">byte</span>[] b = getChecksum(<span class="string">"MD5"</span>, file);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 103</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">return</span> getHex(b);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 102</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">byte</span>[] b = getChecksum(<span class="string">"MD5"</span>, file);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 103</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">return</span> getHex(b);</pre></td></tr>
|
||||
<tr> <td class="numLine"> 104</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 105</td> <td class="nbHits"> </td>
|
||||
@@ -218,8 +218,8 @@
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 114</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> String getSHA1Checksum(File file) <span class="keyword">throws</span> IOException, NoSuchAlgorithmException {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 115</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">byte</span>[] b = getChecksum(<span class="string">"SHA1"</span>, file);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 116</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">return</span> getHex(b);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 115</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">byte</span>[] b = getChecksum(<span class="string">"SHA1"</span>, file);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 116</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">return</span> getHex(b);</pre></td></tr>
|
||||
<tr> <td class="numLine"> 117</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 118</td> <td class="nbHits"> </td>
|
||||
@@ -256,22 +256,22 @@
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 134</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> String getHex(<span class="keyword">byte</span>[] raw) {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 135</td> <td class="nbHitsUncovered"><a title="Line 135: Conditional coverage 50% (1/2)."> 6</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 135: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (raw == <span class="keyword">null</span>) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 135</td> <td class="nbHitsUncovered"><a title="Line 135: Conditional coverage 50% (1/2)."> 3</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 135: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (raw == <span class="keyword">null</span>) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 136</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"> 137</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 138</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">final</span> StringBuilder hex = <span class="keyword">new</span> StringBuilder(2 * raw.length);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 139</td> <td class="nbHitsCovered"><a title="Line 139: Conditional coverage 100% (2/2)."> 112</a></td> <td class="src"><pre class="src"> <a title="Line 139: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">final</span> <span class="keyword">byte</span> b : raw) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 140</td> <td class="nbHitsCovered"> 106</td> <td class="src"><pre class="src"> hex.append(HEXES.charAt((b & 0xF0) >> 4)).append(HEXES.charAt(b & 0x0F));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 138</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> <span class="keyword">final</span> StringBuilder hex = <span class="keyword">new</span> StringBuilder(2 * raw.length);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 139</td> <td class="nbHitsCovered"><a title="Line 139: Conditional coverage 100% (2/2)."> 56</a></td> <td class="src"><pre class="src"> <a title="Line 139: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">final</span> <span class="keyword">byte</span> b : raw) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 140</td> <td class="nbHitsCovered"> 53</td> <td class="src"><pre class="src"> hex.append(HEXES.charAt((b & 0xF0) >> 4)).append(HEXES.charAt(b & 0x0F));</pre></td></tr>
|
||||
<tr> <td class="numLine"> 141</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 142</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">return</span> hex.toString();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 142</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> <span class="keyword">return</span> hex.toString();</pre></td></tr>
|
||||
<tr> <td class="numLine"> 143</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 144</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
</table>
|
||||
|
||||
<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 2.1.1 on 6/16/16 6:44 AM.</div>
|
||||
<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 2.1.1 on 7/31/16 7:37 AM.</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -147,6 +147,6 @@
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
</table>
|
||||
|
||||
<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 2.1.1 on 6/16/16 6:44 AM.</div>
|
||||
<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 2.1.1 on 7/31/16 7:37 AM.</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<div class="separator"> </div>
|
||||
<table class="report">
|
||||
<thead><tr> <td class="heading">Classes in this File</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead>
|
||||
<tr><td><a href="org.owasp.dependencycheck.utils.Downloader.html">Downloader</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">5%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:5px"><span class="text">8/141</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">2%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:2px"><span class="text">1/46</span></div></div></td></tr></table></td><td class="value"><span class="hidden">7.857142857142857;</span>7.857</td></tr>
|
||||
<tr><td><a href="org.owasp.dependencycheck.utils.Downloader.html">Downloader</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">6%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:6px"><span class="text">9/150</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">1%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:1px"><span class="text">1/52</span></div></div></td></tr></table></td><td class="value"><span class="hidden">7.5;</span>7.5</td></tr>
|
||||
|
||||
</table>
|
||||
<div class="separator"> </div>
|
||||
@@ -84,36 +84,36 @@
|
||||
<tr> <td class="numLine"> 33</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">import</span> java.util.zip.InflaterInputStream;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 34</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 35</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">import</span> <span class="keyword">static</span> java.lang.String.format;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 35</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 36</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 37</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 38</td> <td class="nbHits"> </td>
|
||||
<tr> <td class="numLine"> 37</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * A utility to download files from the Internet.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 39</td> <td class="nbHits"> </td>
|
||||
<tr> <td class="numLine"> 38</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 40</td> <td class="nbHits"> </td>
|
||||
<tr> <td class="numLine"> 39</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @author Jeremy Long</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 41</td> <td class="nbHits"> </td>
|
||||
<tr> <td class="numLine"> 40</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 42</td> <td class="nbHits"> </td>
|
||||
<tr> <td class="numLine"> 41</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">class</span> Downloader {</pre></td></tr>
|
||||
<tr> <td class="numLine"> 43</td> <td class="nbHits"> </td>
|
||||
<tr> <td class="numLine"> 42</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 43</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 44</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 45</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * The logger.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 46</td> <td class="nbHits"> </td>
|
||||
<tr> <td class="numLine"> 45</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 47</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> Logger LOGGER = LoggerFactory.getLogger(Downloader.<span class="keyword">class</span>);</pre></td></tr>
|
||||
<tr> <td class="numLine"> 48</td> <td class="nbHits"> </td>
|
||||
<tr> <td class="numLineCover"> 46</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> Logger LOGGER = LoggerFactory.getLogger(Downloader.<span class="keyword">class</span>);</pre></td></tr>
|
||||
<tr> <td class="numLine"> 47</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 48</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * The maximum number of redirects that will be followed when attempting to</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 49</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * The maximum number of redirects that will be followed when attempting to download a file.</span></pre></td></tr>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * download a file.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 50</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 51</td> <td class="nbHits"> </td>
|
||||
@@ -161,357 +161,416 @@
|
||||
<tr> <td class="numLine"> 73</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param outputPath the path to the save the file to</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 74</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @throws DownloadFailedException is thrown if there is an error downloading the file</span></pre></td></tr>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @throws DownloadFailedException is thrown if there is an error</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 75</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * downloading the file</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 76</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 77</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> fetchFile(URL url, File outputPath) <span class="keyword">throws</span> DownloadFailedException {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 77</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> fetchFile(url, outputPath, <span class="keyword">true</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 78</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 79</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 78</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> fetchFile(url, outputPath, <span class="keyword">true</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 79</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 80</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 81</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Retrieves a file from a given URL and saves it to the outputPath.</span></pre></td></tr>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 82</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Retrieves a file from a given URL and saves it to the outputPath.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 83</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param url the URL of the file to download</span></pre></td></tr>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 84</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param outputPath the path to the save the file to</span></pre></td></tr>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param url the URL of the file to download</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 85</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param useProxy whether to use the configured proxy when downloading files</span></pre></td></tr>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param outputPath the path to the save the file to</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 86</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @throws DownloadFailedException is thrown if there is an error downloading the file</span></pre></td></tr>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param useProxy whether to use the configured proxy when downloading</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 87</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * files</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 88</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> fetchFile(URL url, File outputPath, <span class="keyword">boolean</span> useProxy) <span class="keyword">throws</span> DownloadFailedException {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 89</td> <td class="nbHitsUncovered"><a title="Line 89: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 89: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (<span class="string">"file"</span>.equalsIgnoreCase(url.getProtocol())) {</a></span></pre></td></tr>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @throws DownloadFailedException is thrown if there is an error</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 89</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * downloading the file</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 90</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> File file;</pre></td></tr>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 91</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> fetchFile(URL url, File outputPath, <span class="keyword">boolean</span> useProxy) <span class="keyword">throws</span> DownloadFailedException {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 92</td> <td class="nbHitsUncovered"><a title="Line 92: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 92: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (<span class="string">"file"</span>.equalsIgnoreCase(url.getProtocol())) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 93</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> File file;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 94</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 92</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> file = <span class="keyword">new</span> File(url.toURI());</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 93</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (URISyntaxException ex) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 94</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String msg = format(<span class="string">"Download failed, unable to locate '%s'"</span>, url.toString());</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 95</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> DownloadFailedException(msg);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 96</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 97</td> <td class="nbHitsUncovered"><a title="Line 97: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 97: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (file.exists()) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 98</td> <td class="nbHits"> </td>
|
||||
<tr> <td class="numLineCover"> 95</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> file = <span class="keyword">new</span> File(url.toURI());</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 96</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (URISyntaxException ex) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 97</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String msg = format(<span class="string">"Download failed, unable to locate '%s'"</span>, url.toString());</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 98</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> DownloadFailedException(msg);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 99</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 100</td> <td class="nbHitsUncovered"><a title="Line 100: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 100: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (file.exists()) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 101</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 99</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> org.apache.commons.io.FileUtils.copyFile(file, outputPath);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 100</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 101</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String msg = format(<span class="string">"Download failed, unable to copy '%s' to '%s'"</span>, url.toString(), outputPath.getAbsolutePath());</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 102</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> DownloadFailedException(msg);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 103</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 104</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 105</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String msg = format(<span class="string">"Download failed, file ('%s') does not exist"</span>, url.toString());</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 106</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> DownloadFailedException(msg);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 102</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> org.apache.commons.io.FileUtils.copyFile(file, outputPath);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 103</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 104</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String msg = format(<span class="string">"Download failed, unable to copy '%s' to '%s'"</span>, url.toString(), outputPath.getAbsolutePath());</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 105</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> DownloadFailedException(msg);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 106</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 107</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 108</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">else</span> {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 109</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> HttpURLConnection conn = <span class="keyword">null</span>;</span></pre></td></tr>
|
||||
<td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 108</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String msg = format(<span class="string">"Download failed, file ('%s') does not exist"</span>, url.toString());</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 109</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> DownloadFailedException(msg);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 110</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 111</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LOGGER.debug(<span class="string">"Attempting download of {}"</span>, url.toString());</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 112</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn = URLConnectionFactory.createHttpURLConnection(url, useProxy);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 113</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn.setRequestProperty(<span class="string">"Accept-Encoding"</span>, <span class="string">"gzip, deflate"</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 114</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn.connect();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 115</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">int</span> status = conn.getResponseCode();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 116</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">int</span> redirectCount = 0;</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 117</td> <td class="nbHitsUncovered"><a title="Line 117: Conditional coverage 0% (0/8) [each condition: 0%, 0%, 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 117: Conditional coverage 0% (0/8) [each condition: 0%, 0%, 0%, 0%]."> <span class="keyword">while</span> ((status == HttpURLConnection.HTTP_MOVED_TEMP</a></span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 118</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> || status == HttpURLConnection.HTTP_MOVED_PERM</pre></td></tr>
|
||||
<tr> <td class="numLine"> 119</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> || status == HttpURLConnection.HTTP_SEE_OTHER)</pre></td></tr>
|
||||
<tr> <td class="numLine"> 120</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> && MAX_REDIRECT_ATTEMPTS > redirectCount++) {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 121</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String location = conn.getHeaderField(<span class="string">"Location"</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 122</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 123</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn.disconnect();</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 124</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> } <span class="keyword">finally</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 125</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn = <span class="keyword">null</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 126</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 127</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LOGGER.debug(<span class="string">"Download is being redirected from {} to {}"</span>, url.toString(), location);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 128</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn = URLConnectionFactory.createHttpURLConnection(<span class="keyword">new</span> URL(location), useProxy);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 129</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn.setRequestProperty(<span class="string">"Accept-Encoding"</span>, <span class="string">"gzip, deflate"</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 130</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn.connect();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 131</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> status = conn.getResponseCode();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 132</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 133</td> <td class="nbHitsUncovered"><a title="Line 133: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 133: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (status != 200) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 134</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 135</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn.disconnect();</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 136</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> } <span class="keyword">finally</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 137</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn = <span class="keyword">null</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 138</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 139</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String msg = format(<span class="string">"Error downloading file %s; received response code %s."</span>, url.toString(), status);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 140</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> DownloadFailedException(msg);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 141</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 142</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 143</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 144</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 145</td> <td class="nbHitsUncovered"><a title="Line 145: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 145: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (conn != <span class="keyword">null</span>) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 146</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn.disconnect();</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 147</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 148</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> } <span class="keyword">finally</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 149</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn = <span class="keyword">null</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 150</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 151</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String msg = format(<span class="string">"Error downloading file %s; unable to connect."</span>, url.toString());</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 152</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> DownloadFailedException(msg, ex);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 153</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 154</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 155</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String encoding = conn.getContentEncoding();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 156</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> BufferedOutputStream writer = <span class="keyword">null</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 157</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> InputStream reader = <span class="keyword">null</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 158</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 159</td> <td class="nbHitsUncovered"><a title="Line 159: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 159: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> (encoding != <span class="keyword">null</span> && <span class="string">"gzip"</span>.equalsIgnoreCase(encoding)) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 160</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> reader = <span class="keyword">new</span> GZIPInputStream(conn.getInputStream());</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 161</td> <td class="nbHitsUncovered"><a title="Line 161: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 161: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> } <span class="keyword">else</span> <span class="keyword">if</span> (encoding != <span class="keyword">null</span> && <span class="string">"deflate"</span>.equalsIgnoreCase(encoding)) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 162</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> reader = <span class="keyword">new</span> InflaterInputStream(conn.getInputStream());</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 163</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 164</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> reader = conn.getInputStream();</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 165</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 166</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 167</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> writer = <span class="keyword">new</span> BufferedOutputStream(<span class="keyword">new</span> FileOutputStream(outputPath));</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 168</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> <span class="keyword">byte</span>[] buffer = <span class="keyword">new</span> <span class="keyword">byte</span>[4096];</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 169</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">int</span> bytesRead;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 170</td> <td class="nbHitsUncovered"><a title="Line 170: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 170: Conditional coverage 0% (0/2)."> <span class="keyword">while</span> ((bytesRead = reader.read(buffer)) > 0) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 171</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> writer.write(buffer, 0, bytesRead);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 172</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 173</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LOGGER.debug(<span class="string">"Download of {} complete"</span>, url.toString());</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 174</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 175</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> analyzeException(ex);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 176</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String msg = format(<span class="string">"Error saving '%s' to file '%s'%nConnection Timeout: %d%nEncoding: %s%n"</span>,</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 177</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> url.toString(), outputPath.getAbsolutePath(), conn.getConnectTimeout(), encoding);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 178</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> DownloadFailedException(msg, ex);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 179</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (Throwable ex) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 180</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String msg = format(<span class="string">"Unexpected exception saving '%s' to file '%s'%nConnection Timeout: %d%nEncoding: %s%n"</span>,</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 181</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> url.toString(), outputPath.getAbsolutePath(), conn.getConnectTimeout(), encoding);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 182</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> DownloadFailedException(msg, ex);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 183</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> } <span class="keyword">finally</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 184</td> <td class="nbHitsUncovered"><a title="Line 184: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 184: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (writer != <span class="keyword">null</span>) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 185</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 186</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> writer.close();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 187</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 188</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LOGGER.trace(<span class="string">"Error closing the writer in Downloader."</span>, ex);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 189</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 190</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 191</td> <td class="nbHitsUncovered"><a title="Line 191: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 191: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (reader != <span class="keyword">null</span>) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 192</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 193</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> reader.close();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 194</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 195</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LOGGER.trace(<span class="string">"Error closing the reader in Downloader."</span>, ex);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 196</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 197</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 198</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 199</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn.disconnect();</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 200</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> } <span class="keyword">finally</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 201</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn = <span class="keyword">null</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 202</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 203</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 204</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 205</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 206</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 207</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 208</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Makes an HTTP Head request to retrieve the last modified date of the given URL. If the file:// protocol is specified, then</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 209</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * the lastTimestamp of the file is returned.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 210</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 211</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param url the URL to retrieve the timestamp from</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 212</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @return an epoch timestamp</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 213</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @throws DownloadFailedException is thrown if an exception occurs making the HTTP request</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 214</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 215</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">long</span> getLastModified(URL url) <span class="keyword">throws</span> DownloadFailedException {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 216</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">long</span> timestamp = 0;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 217</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">//TODO add the FTP protocol?</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 218</td> <td class="nbHitsUncovered"><a title="Line 218: Conditional coverage 50% (1/2)."> 2</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 218: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (<span class="string">"file"</span>.equalsIgnoreCase(url.getProtocol())) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 219</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> File lastModifiedFile;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 220</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 221</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> lastModifiedFile = <span class="keyword">new</span> File(url.toURI());</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 222</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (URISyntaxException ex) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 223</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String msg = format(<span class="string">"Unable to locate '%s'"</span>, url.toString());</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 224</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> DownloadFailedException(msg);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 225</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 226</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> timestamp = lastModifiedFile.lastModified();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 227</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 228</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String httpMethod = determineHttpMethod();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 229</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> HttpURLConnection conn = <span class="keyword">null</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 230</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 231</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn = URLConnectionFactory.createHttpURLConnection(url);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 232</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn.setRequestMethod(httpMethod);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 233</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn.connect();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 234</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> <span class="keyword">int</span> t = conn.getResponseCode();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 235</td> <td class="nbHitsUncovered"><a title="Line 235: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 235: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> (t >= 200 && t < 300) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 236</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> timestamp = conn.getLastModified();</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 237</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 238</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> DownloadFailedException(format(<span class="string">"%s request returned a non-200 status code"</span>, httpMethod));</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 239</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 240</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (URLConnectionFailureException ex) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 241</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> DownloadFailedException(format(<span class="string">"Error creating URL Connection for HTTP %s request."</span>, httpMethod), ex);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 242</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 243</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> analyzeException(ex);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 244</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLine"> 245</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">//retry</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 246</td> <td class="nbHitsUncovered"><a title="Line 246: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 246: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (!Settings.getBoolean(Settings.KEYS.DOWNLOADER_QUICK_QUERY_TIMESTAMP)) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 247</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> Settings.setBoolean(Settings.KEYS.DOWNLOADER_QUICK_QUERY_TIMESTAMP, <span class="keyword">true</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 248</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> getLastModified(url);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 249</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 250</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (InvalidSettingException ex1) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 251</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LOGGER.debug(<span class="string">"invalid setting?"</span>, ex);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 252</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></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="numLineCover"> 254</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> DownloadFailedException(format(<span class="string">"Error making HTTP %s request."</span>, httpMethod), ex);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 255</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> } <span class="keyword">finally</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 256</td> <td class="nbHitsUncovered"><a title="Line 256: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 256: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (conn != <span class="keyword">null</span>) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 257</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 258</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn.disconnect();</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 259</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> } <span class="keyword">finally</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 260</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn = <span class="keyword">null</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 261</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 262</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 263</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 264</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 265</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">return</span> timestamp;</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="numLine"> 267</td> <td class="nbHits"> </td>
|
||||
<tr> <td class="numLineCover"> 111</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">else</span> {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 112</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> HttpURLConnection conn = <span class="keyword">null</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 113</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 114</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LOGGER.debug(<span class="string">"Attempting download of {}"</span>, url.toString());</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 115</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn = URLConnectionFactory.createHttpURLConnection(url, useProxy);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 116</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn.setRequestProperty(<span class="string">"Accept-Encoding"</span>, <span class="string">"gzip, deflate"</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 117</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn.connect();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 118</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">int</span> status = conn.getResponseCode();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 119</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">int</span> redirectCount = 0;</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 120</td> <td class="nbHitsUncovered"><a title="Line 120: Conditional coverage 0% (0/8) [each condition: 0%, 0%, 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 120: Conditional coverage 0% (0/8) [each condition: 0%, 0%, 0%, 0%]."> <span class="keyword">while</span> ((status == HttpURLConnection.HTTP_MOVED_TEMP</a></span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 121</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> || status == HttpURLConnection.HTTP_MOVED_PERM</pre></td></tr>
|
||||
<tr> <td class="numLine"> 122</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> || status == HttpURLConnection.HTTP_SEE_OTHER)</pre></td></tr>
|
||||
<tr> <td class="numLine"> 123</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> && MAX_REDIRECT_ATTEMPTS > redirectCount++) {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 124</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String location = conn.getHeaderField(<span class="string">"Location"</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 125</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 126</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn.disconnect();</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 127</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> } <span class="keyword">finally</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 128</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn = <span class="keyword">null</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 129</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 130</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LOGGER.debug(<span class="string">"Download is being redirected from {} to {}"</span>, url.toString(), location);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 131</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn = URLConnectionFactory.createHttpURLConnection(<span class="keyword">new</span> URL(location), useProxy);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 132</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn.setRequestProperty(<span class="string">"Accept-Encoding"</span>, <span class="string">"gzip, deflate"</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 133</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn.connect();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 134</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> status = conn.getResponseCode();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 135</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 136</td> <td class="nbHitsUncovered"><a title="Line 136: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 136: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (status != 200) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 137</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 138</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn.disconnect();</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 139</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> } <span class="keyword">finally</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 140</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn = <span class="keyword">null</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 141</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 142</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String msg = format(<span class="string">"Error downloading file %s; received response code %s."</span>, url.toString(), status);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 143</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> DownloadFailedException(msg);</span></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"> 268</td> <td class="nbHits"> </td>
|
||||
<tr> <td class="numLine"> 145</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 146</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 147</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 148</td> <td class="nbHitsUncovered"><a title="Line 148: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 148: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (conn != <span class="keyword">null</span>) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 149</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn.disconnect();</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 150</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 151</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> } <span class="keyword">finally</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 152</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn = <span class="keyword">null</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 153</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 154</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String msg = format(<span class="string">"Error downloading file %s; unable to connect."</span>, url.toString());</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 155</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> DownloadFailedException(msg, ex);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 156</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 157</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 158</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String encoding = conn.getContentEncoding();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 159</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> BufferedOutputStream writer = <span class="keyword">null</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 160</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> InputStream reader = <span class="keyword">null</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 161</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 162</td> <td class="nbHitsUncovered"><a title="Line 162: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 162: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> (encoding != <span class="keyword">null</span> && <span class="string">"gzip"</span>.equalsIgnoreCase(encoding)) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 163</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> reader = <span class="keyword">new</span> GZIPInputStream(conn.getInputStream());</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 164</td> <td class="nbHitsUncovered"><a title="Line 164: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 164: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> } <span class="keyword">else</span> <span class="keyword">if</span> (encoding != <span class="keyword">null</span> && <span class="string">"deflate"</span>.equalsIgnoreCase(encoding)) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 165</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> reader = <span class="keyword">new</span> InflaterInputStream(conn.getInputStream());</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 166</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 167</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> reader = conn.getInputStream();</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 168</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 169</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 170</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> writer = <span class="keyword">new</span> BufferedOutputStream(<span class="keyword">new</span> FileOutputStream(outputPath));</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 171</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> <span class="keyword">byte</span>[] buffer = <span class="keyword">new</span> <span class="keyword">byte</span>[4096];</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 172</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">int</span> bytesRead;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 173</td> <td class="nbHitsUncovered"><a title="Line 173: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 173: Conditional coverage 0% (0/2)."> <span class="keyword">while</span> ((bytesRead = reader.read(buffer)) > 0) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 174</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> writer.write(buffer, 0, bytesRead);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 175</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 176</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LOGGER.debug(<span class="string">"Download of {} complete"</span>, url.toString());</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 177</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 178</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> checkForCommonExceptionTypes(ex);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 179</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String msg = format(<span class="string">"Error saving '%s' to file '%s'%nConnection Timeout: %d%nEncoding: %s%n"</span>,</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 180</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> url.toString(), outputPath.getAbsolutePath(), conn.getConnectTimeout(), encoding);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 181</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> DownloadFailedException(msg, ex);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 182</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (Throwable ex) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 183</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String msg = format(<span class="string">"Unexpected exception saving '%s' to file '%s'%nConnection Timeout: %d%nEncoding: %s%n"</span>,</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 184</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> url.toString(), outputPath.getAbsolutePath(), conn.getConnectTimeout(), encoding);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 185</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> DownloadFailedException(msg, ex);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 186</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> } <span class="keyword">finally</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 187</td> <td class="nbHitsUncovered"><a title="Line 187: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 187: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (writer != <span class="keyword">null</span>) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 188</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 189</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> writer.close();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 190</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 191</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LOGGER.trace(<span class="string">"Error closing the writer in Downloader."</span>, ex);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 192</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 193</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 194</td> <td class="nbHitsUncovered"><a title="Line 194: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 194: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (reader != <span class="keyword">null</span>) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 195</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 196</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> reader.close();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 197</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 198</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LOGGER.trace(<span class="string">"Error closing the reader in Downloader."</span>, ex);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 199</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 200</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 201</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 202</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn.disconnect();</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 203</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> } <span class="keyword">finally</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 204</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn = <span class="keyword">null</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 205</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 206</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 207</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 208</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 209</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 210</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 269</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Analyzes the IOException, logs the appropriate information for debugging purposes, and then throws a</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 270</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * DownloadFailedException that wraps the IO Exception.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 271</td> <td class="nbHits"> </td>
|
||||
<tr> <td class="numLine"> 211</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Makes an HTTP Head request to retrieve the last modified date of the</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 212</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * given URL. If the file:// protocol is specified, then the lastTimestamp</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 213</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * of the file is returned.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 214</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 272</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param ex the original exception</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 273</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @throws DownloadFailedException a wrapper exception that contains the original exception as the cause</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 274</td> <td class="nbHits"> </td>
|
||||
<tr> <td class="numLine"> 215</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param url the URL to retrieve the timestamp from</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 216</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @return an epoch timestamp</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 217</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @throws DownloadFailedException is thrown if an exception occurs making</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 218</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * the HTTP request</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 219</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 220</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">long</span> getLastModified(URL url) <span class="keyword">throws</span> DownloadFailedException {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 221</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">return</span> getLastModified(url, <span class="keyword">false</span>);</pre></td></tr>
|
||||
<tr> <td class="numLine"> 222</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 223</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 224</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 225</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Makes an HTTP Head request to retrieve the last modified date of the</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 226</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * given URL. If the file:// protocol is specified, then the lastTimestamp</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 227</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * of the file is returned.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 228</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 229</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param url the URL to retrieve the timestamp from</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 230</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param isRetry indicates if this is a retry - to prevent endless loop and</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 231</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * stack overflow</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 232</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @return an epoch timestamp</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 233</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @throws DownloadFailedException is thrown if an exception occurs making</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 234</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * the HTTP request</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 235</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 236</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">long</span> getLastModified(URL url, <span class="keyword">boolean</span> isRetry) <span class="keyword">throws</span> DownloadFailedException {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 237</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">long</span> timestamp = 0;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 238</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">//TODO add the FTP protocol?</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 239</td> <td class="nbHitsUncovered"><a title="Line 239: Conditional coverage 50% (1/2)."> 1</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 239: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (<span class="string">"file"</span>.equalsIgnoreCase(url.getProtocol())) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 240</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> File lastModifiedFile;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 241</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 242</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> lastModifiedFile = <span class="keyword">new</span> File(url.toURI());</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 243</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (URISyntaxException ex) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 244</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String msg = format(<span class="string">"Unable to locate '%s'"</span>, url.toString());</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 245</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> DownloadFailedException(msg);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 246</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 247</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> timestamp = lastModifiedFile.lastModified();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 248</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 249</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String httpMethod = determineHttpMethod();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 250</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> HttpURLConnection conn = <span class="keyword">null</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 251</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 252</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn = URLConnectionFactory.createHttpURLConnection(url);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 253</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn.setRequestMethod(httpMethod);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 254</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn.connect();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 255</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> <span class="keyword">int</span> t = conn.getResponseCode();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 256</td> <td class="nbHitsUncovered"><a title="Line 256: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 256: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> (t >= 200 && t < 300) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 257</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> timestamp = conn.getLastModified();</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 258</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 259</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> DownloadFailedException(format(<span class="string">"%s request returned a non-200 status code"</span>, httpMethod));</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 260</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 261</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (URLConnectionFailureException ex) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 262</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> DownloadFailedException(format(<span class="string">"Error creating URL Connection for HTTP %s request."</span>, httpMethod), ex);</span></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 ex) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 264</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> checkForCommonExceptionTypes(ex);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 265</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LOGGER.error(<span class="string">"IO Exception: "</span> + ex.getMessage());</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 266</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LOGGER.debug(<span class="string">"Exception details"</span>, ex);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 267</td> <td class="nbHitsUncovered"><a title="Line 267: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 267: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (ex.getCause() != <span class="keyword">null</span>) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 268</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LOGGER.debug(<span class="string">"IO Exception cause: "</span> + ex.getCause().getMessage(), ex.getCause());</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 269</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 270</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLine"> 271</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">//retry</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 272</td> <td class="nbHitsUncovered"><a title="Line 272: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 272: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> (!isRetry && Settings.getBoolean(Settings.KEYS.DOWNLOADER_QUICK_QUERY_TIMESTAMP)) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 273</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> Settings.setBoolean(Settings.KEYS.DOWNLOADER_QUICK_QUERY_TIMESTAMP, <span class="keyword">false</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 274</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> getLastModified(url, <span class="keyword">true</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 275</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">protected</span> <span class="keyword">static</span> <span class="keyword">void</span> analyzeException(IOException ex) <span class="keyword">throws</span> DownloadFailedException {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 276</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> Throwable cause = ex;</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 277</td> <td class="nbHitsUncovered"><a title="Line 277: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 277: Conditional coverage 0% (0/2)."> <span class="keyword">while</span> (cause != <span class="keyword">null</span>) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 278</td> <td class="nbHitsUncovered"><a title="Line 278: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 278: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (cause <span class="keyword">instanceof</span> InvalidAlgorithmParameterException) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 279</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String keystore = System.getProperty(<span class="string">"javax.net.ssl.keyStore"</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 280</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String version = System.getProperty(<span class="string">"java.version"</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 281</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String vendor = System.getProperty(<span class="string">"java.vendor"</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 282</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LOGGER.info(<span class="string">"Error making HTTPS request - InvalidAlgorithmParameterException"</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 283</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LOGGER.info(<span class="string">"There appears to be an issue with the installation of Java and the cacerts."</span></span></pre></td></tr>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 276</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (InvalidSettingException ex1) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 277</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LOGGER.debug(<span class="string">"invalid setting?"</span>, ex);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 278</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 279</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> DownloadFailedException(format(<span class="string">"Error making HTTP %s request."</span>, httpMethod), ex);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 280</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> } <span class="keyword">finally</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 281</td> <td class="nbHitsUncovered"><a title="Line 281: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 281: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (conn != <span class="keyword">null</span>) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 282</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 283</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn.disconnect();</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 284</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> + <span class="string">"See closed issue #177 here: https://github.com/jeremylong/DependencyCheck/issues/177"</span>);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 285</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LOGGER.info(<span class="string">"Java Info:\njavax.net.ssl.keyStore='{}'\njava.version='{}'\njava.vendor='{}'"</span>,</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 286</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> keystore, version, vendor);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 287</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> DownloadFailedException(<span class="string">"Error making HTTPS request. Please see the log for more details."</span>);</span></pre></td></tr>
|
||||
<td class="src"><pre class="src"> } <span class="keyword">finally</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 285</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn = <span class="keyword">null</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 286</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 287</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 288</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 289</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> cause = cause.getCause();</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 290</td> <td class="nbHits"> </td>
|
||||
<tr> <td class="numLine"> 289</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 291</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 290</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">return</span> timestamp;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 291</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 292</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 293</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 294</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Returns the HEAD or GET HTTP method. HEAD is the default.</span></pre></td></tr>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Analyzes the IOException, logs the appropriate information for debugging</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 295</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * purposes, and then throws a DownloadFailedException that wraps the IO</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 296</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @return the HTTP method to use</span></pre></td></tr>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Exception for common IO Exceptions. This is to provide additional details</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 297</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * to assist in resolution of the exception.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 298</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> String determineHttpMethod() {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 299</td> <td class="nbHitsUncovered"><a title="Line 299: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 299: Conditional coverage 0% (0/2)."> <span class="keyword">return</span> isQuickQuery() ? HEAD : GET;</a></span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 300</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 301</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 302</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 303</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Determines if the HTTP method GET or HEAD should be used to check the timestamp on external resources.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 304</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 305</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @return true if configured to use HEAD requests</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 306</td> <td class="nbHits"> </td>
|
||||
<tr> <td class="numLine"> 299</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param ex the original exception</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 300</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @throws DownloadFailedException a wrapper exception that contains the</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 301</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * original exception as the cause</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 302</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 307</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">boolean</span> isQuickQuery() {</pre></td></tr>
|
||||
<tr> <td class="numLine"> 308</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">boolean</span> quickQuery;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 309</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 303</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">protected</span> <span class="keyword">static</span> <span class="keyword">void</span> checkForCommonExceptionTypes(IOException ex) <span class="keyword">throws</span> DownloadFailedException {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 304</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> Throwable cause = ex;</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 305</td> <td class="nbHitsUncovered"><a title="Line 305: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 305: Conditional coverage 0% (0/2)."> <span class="keyword">while</span> (cause != <span class="keyword">null</span>) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 306</td> <td class="nbHitsUncovered"><a title="Line 306: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 306: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (cause <span class="keyword">instanceof</span> java.net.UnknownHostException) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 307</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String msg = String.format(<span class="string">"Unable to resolve domain '%s'"</span>, cause.getMessage());</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 308</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LOGGER.error(msg);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 309</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> DownloadFailedException(msg);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 310</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 311</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> quickQuery = Settings.getBoolean(Settings.KEYS.DOWNLOADER_QUICK_QUERY_TIMESTAMP, <span class="keyword">true</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 312</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (InvalidSettingException e) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 313</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> quickQuery = <span class="keyword">true</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 314</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 315</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> quickQuery;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 316</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 311</td> <td class="nbHitsUncovered"><a title="Line 311: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 311: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (cause <span class="keyword">instanceof</span> InvalidAlgorithmParameterException) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 312</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String keystore = System.getProperty(<span class="string">"javax.net.ssl.keyStore"</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 313</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String version = System.getProperty(<span class="string">"java.version"</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 314</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String vendor = System.getProperty(<span class="string">"java.vendor"</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 315</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LOGGER.info(<span class="string">"Error making HTTPS request - InvalidAlgorithmParameterException"</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 316</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LOGGER.info(<span class="string">"There appears to be an issue with the installation of Java and the cacerts."</span></span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 317</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> + <span class="string">"See closed issue #177 here: https://github.com/jeremylong/DependencyCheck/issues/177"</span>);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 318</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LOGGER.info(<span class="string">"Java Info:\njavax.net.ssl.keyStore='{}'\njava.version='{}'\njava.vendor='{}'"</span>,</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 319</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> keystore, version, vendor);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 320</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> DownloadFailedException(<span class="string">"Error making HTTPS request. Please see the log for more details."</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 321</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 322</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> cause = cause.getCause();</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 323</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 324</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 325</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 326</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 327</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Returns the HEAD or GET HTTP method. HEAD is the default.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 328</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 329</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @return the HTTP method to use</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 330</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 331</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> String determineHttpMethod() {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 332</td> <td class="nbHitsUncovered"><a title="Line 332: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 332: Conditional coverage 0% (0/2)."> <span class="keyword">return</span> isQuickQuery() ? HEAD : GET;</a></span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 333</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 334</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 335</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 336</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Determines if the HTTP method GET or HEAD should be used to check the</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 337</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * timestamp on external resources.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 338</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 339</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @return true if configured to use HEAD requests</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 340</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 341</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">boolean</span> isQuickQuery() {</pre></td></tr>
|
||||
<tr> <td class="numLine"> 342</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">boolean</span> quickQuery;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 343</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 344</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 345</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> quickQuery = Settings.getBoolean(Settings.KEYS.DOWNLOADER_QUICK_QUERY_TIMESTAMP, <span class="keyword">true</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 346</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (InvalidSettingException e) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 347</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> quickQuery = <span class="keyword">true</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 348</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 349</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> quickQuery;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 350</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 351</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
</table>
|
||||
|
||||
<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 2.1.1 on 6/16/16 6:44 AM.</div>
|
||||
<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 2.1.1 on 7/31/16 7:37 AM.</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -93,7 +93,7 @@
|
||||
<td class="src"><pre class="src"> <span class="comment"> * The list of fully qualified class names that are able to be deserialized.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 38</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 39</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> <span class="keyword">private</span> List<String> expected = <span class="keyword">new</span> ArrayList<String>();</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 39</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">private</span> List<String> expected = <span class="keyword">new</span> ArrayList<String>();</pre></td></tr>
|
||||
<tr> <td class="numLine"> 40</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 41</td> <td class="nbHits"> </td>
|
||||
@@ -114,9 +114,9 @@
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 49</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> ExpectedOjectInputStream(InputStream inputStream, String... expected) <span class="keyword">throws</span> IOException {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 50</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> <span class="keyword">super</span>(inputStream);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 51</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.expected.addAll(Arrays.asList(expected));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 52</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 50</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">super</span>(inputStream);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 51</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.expected.addAll(Arrays.asList(expected));</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 52</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 53</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 54</td> <td class="nbHits"> </td>
|
||||
@@ -141,17 +141,17 @@
|
||||
<td class="src"><pre class="src"> @Override</pre></td></tr>
|
||||
<tr> <td class="numLine"> 64</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">protected</span> Class<?> resolveClass(ObjectStreamClass desc) <span class="keyword">throws</span> IOException, ClassNotFoundException {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 65</td> <td class="nbHitsCovered"><a title="Line 65: Conditional coverage 100% (2/2)."> 14</a></td> <td class="src"><pre class="src"> <a title="Line 65: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!<span class="keyword">this</span>.expected.contains(desc.getName())) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 66</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">throw</span> <span class="keyword">new</span> InvalidClassException(<span class="string">"Unexpected deserialization "</span>, desc.getName());</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 65</td> <td class="nbHitsCovered"><a title="Line 65: Conditional coverage 100% (2/2)."> 7</a></td> <td class="src"><pre class="src"> <a title="Line 65: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!<span class="keyword">this</span>.expected.contains(desc.getName())) {</a></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 66</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">throw</span> <span class="keyword">new</span> InvalidClassException(<span class="string">"Unexpected deserialization "</span>, desc.getName());</pre></td></tr>
|
||||
<tr> <td class="numLine"> 67</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 68</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">super</span>.resolveClass(desc);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 68</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">super</span>.resolveClass(desc);</pre></td></tr>
|
||||
<tr> <td class="numLine"> 69</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 70</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
</table>
|
||||
|
||||
<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 2.1.1 on 6/16/16 6:44 AM.</div>
|
||||
<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 2.1.1 on 7/31/16 7:37 AM.</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -147,6 +147,6 @@
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
</table>
|
||||
|
||||
<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 2.1.1 on 6/16/16 6:44 AM.</div>
|
||||
<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 2.1.1 on 7/31/16 7:37 AM.</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
<td class="src"><pre class="src"> <span class="comment"> * The logger.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 37</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 38</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> Logger LOGGER = LoggerFactory.getLogger(FileUtils.<span class="keyword">class</span>);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 38</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> Logger LOGGER = LoggerFactory.getLogger(FileUtils.<span class="keyword">class</span>);</pre></td></tr>
|
||||
<tr> <td class="numLine"> 39</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 40</td> <td class="nbHits"> </td>
|
||||
@@ -136,8 +136,8 @@
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 61</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> String getFileExtension(String fileName) {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 62</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">final</span> String fileExt = FilenameUtils.getExtension(fileName);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 63</td> <td class="nbHitsUncovered"><a title="Line 63: Conditional coverage 75% (3/4) [each condition: 50%, 100%]."> 6</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 63: Conditional coverage 75% (3/4) [each condition: 50%, 100%]."> <span class="keyword">return</span> <span class="keyword">null</span> == fileExt || fileExt.isEmpty() ? <span class="keyword">null</span> : fileExt.toLowerCase();</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 62</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> <span class="keyword">final</span> String fileExt = FilenameUtils.getExtension(fileName);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 63</td> <td class="nbHitsUncovered"><a title="Line 63: Conditional coverage 75% (3/4) [each condition: 50%, 100%]."> 3</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 63: Conditional coverage 75% (3/4) [each condition: 50%, 100%]."> <span class="keyword">return</span> <span class="keyword">null</span> == fileExt || fileExt.isEmpty() ? <span class="keyword">null</span> : fileExt.toLowerCase();</a></span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 64</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 65</td> <td class="nbHits"> </td>
|
||||
@@ -156,13 +156,13 @@
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 72</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">boolean</span> delete(File file) {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 73</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">final</span> <span class="keyword">boolean</span> success = org.apache.commons.io.FileUtils.deleteQuietly(file);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 74</td> <td class="nbHitsUncovered"><a title="Line 74: Conditional coverage 50% (1/2)."> 6</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 74: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (!success) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 73</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> <span class="keyword">final</span> <span class="keyword">boolean</span> success = org.apache.commons.io.FileUtils.deleteQuietly(file);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 74</td> <td class="nbHitsUncovered"><a title="Line 74: Conditional coverage 50% (1/2)."> 3</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 74: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (!success) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 75</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LOGGER.debug(<span class="string">"Failed to delete file: {}; attempting to delete on exit."</span>, file.getPath());</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 76</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> file.deleteOnExit();</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 77</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 78</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">return</span> success;</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 78</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> <span class="keyword">return</span> success;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 79</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 80</td> <td class="nbHits"> </td>
|
||||
@@ -222,6 +222,6 @@
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
</table>
|
||||
|
||||
<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 2.1.1 on 6/16/16 6:44 AM.</div>
|
||||
<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 2.1.1 on 7/31/16 7:37 AM.</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -107,8 +107,8 @@
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 46</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> InvalidSettingException(String msg) {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 47</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">super</span>(msg);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 48</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 47</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">super</span>(msg);</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 48</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 49</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 50</td> <td class="nbHits"> </td>
|
||||
@@ -147,6 +147,6 @@
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
</table>
|
||||
|
||||
<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 2.1.1 on 6/16/16 6:44 AM.</div>
|
||||
<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 2.1.1 on 7/31/16 7:37 AM.</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,710 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<title>Coverage Report</title>
|
||||
<link title="Style" type="text/css" rel="stylesheet" href="css/main.css"/>
|
||||
<script type="text/javascript" src="js/popup.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<h5>Coverage Report - org.owasp.dependencycheck.utils.SSLSocketFactoryEx</h5>
|
||||
<div class="separator"> </div>
|
||||
<table class="report">
|
||||
<thead><tr> <td class="heading">Classes in this File</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead>
|
||||
<tr><td><a href="org.owasp.dependencycheck.utils.SSLSocketFactoryEx.html">SSLSocketFactoryEx</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/84</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/10</span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.625;</span>1.625</td></tr>
|
||||
|
||||
</table>
|
||||
<div class="separator"> </div>
|
||||
<table cellspacing="0" cellpadding="0" class="src">
|
||||
<tr> <td class="numLine"> 1</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">package</span> org.owasp.dependencycheck.utils;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 2</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 3</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">import</span> java.io.IOException;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 4</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">import</span> java.net.InetAddress;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 5</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">import</span> java.net.Socket;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 6</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">import</span> java.security.KeyManagementException;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 7</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">import</span> java.security.NoSuchAlgorithmException;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 8</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">import</span> java.security.SecureRandom;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 9</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">import</span> java.util.ArrayList;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 10</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">import</span> java.util.Arrays;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 11</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">import</span> java.util.List;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 12</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">import</span> javax.net.ssl.KeyManager;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 13</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">import</span> javax.net.ssl.SSLContext;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 14</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">import</span> javax.net.ssl.SSLSocket;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 15</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">import</span> javax.net.ssl.SSLSocketFactory;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 16</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">import</span> javax.net.ssl.TrustManager;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 17</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">import</span> org.slf4j.Logger;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 18</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">import</span> org.slf4j.LoggerFactory;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 19</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 20</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 21</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * This class is used to enable additional ciphers used by the SSL Socket. This</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 22</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * is specifically because the NVD stopped supporting TLS 1.0 and Java 6 and 7</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 23</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * clients by default were unable to connect to download the NVD data feeds.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 24</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 25</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * The following code was copied from</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 26</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * http://stackoverflow.com/questions/1037590/which-cipher-suites-to-enable-for-ssl-socket/23365536#23365536</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 27</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 28</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @author <a href="http://stackoverflow.com/users/608639/jww">jww</a></span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 29</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 30</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> SSLSocketFactoryEx <span class="keyword">extends</span> SSLSocketFactory {</pre></td></tr>
|
||||
<tr> <td class="numLine"> 31</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 32</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 33</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * The Logger for use throughout the class.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 34</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 35</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> Logger LOGGER = LoggerFactory.getLogger(SSLSocketFactoryEx.<span class="keyword">class</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 36</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 37</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 38</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Constructs a new SSLSocketFactory.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 39</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 40</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @throws NoSuchAlgorithmException thrown when an algorithm is not</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 41</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * supported</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 42</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @throws KeyManagementException thrown if initialization fails</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 43</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 44</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">public</span> SSLSocketFactoryEx() <span class="keyword">throws</span> NoSuchAlgorithmException, KeyManagementException {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 45</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> initSSLSocketFactoryEx(<span class="keyword">null</span>, <span class="keyword">null</span>, <span class="keyword">null</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 46</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 47</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 48</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 49</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Constructs a new SSLSocketFactory.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 50</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 51</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param km the key manager</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 52</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param tm the trust manager</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 53</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param random secure random</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 54</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @throws NoSuchAlgorithmException thrown when an algorithm is not</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 55</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * supported</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 56</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @throws KeyManagementException thrown if initialization fails</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 57</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 58</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">public</span> SSLSocketFactoryEx(KeyManager[] km, TrustManager[] tm, SecureRandom random) <span class="keyword">throws</span> NoSuchAlgorithmException, KeyManagementException {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 59</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> initSSLSocketFactoryEx(km, tm, random);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 60</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 61</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 62</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 63</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Constructs a new SSLSocketFactory.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 64</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 65</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param ctx the SSL context</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 66</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @throws NoSuchAlgorithmException thrown when an algorithm is not</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 67</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * supported</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 68</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @throws KeyManagementException thrown if initialization fails</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 69</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 70</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">public</span> SSLSocketFactoryEx(SSLContext ctx) <span class="keyword">throws</span> NoSuchAlgorithmException, KeyManagementException {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 71</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> initSSLSocketFactoryEx(ctx);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 72</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 73</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 74</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 75</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Returns the default cipher suites.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 76</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 77</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @return the default cipher suites</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 78</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 79</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> @Override</pre></td></tr>
|
||||
<tr> <td class="numLine"> 80</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> String[] getDefaultCipherSuites() {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 81</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> Arrays.copyOf(ciphers, ciphers.length);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 82</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 83</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 84</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 85</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Returns the supported cipher suites.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 86</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 87</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @return the supported cipher suites</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 88</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 89</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> @Override</pre></td></tr>
|
||||
<tr> <td class="numLine"> 90</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> String[] getSupportedCipherSuites() {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 91</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> Arrays.copyOf(ciphers, ciphers.length);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 92</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 93</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 94</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 95</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Returns the default protocols.</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="numLine"> 97</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @return the default protocols</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 98</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 99</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> String[] getDefaultProtocols() {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 100</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> Arrays.copyOf(protocols, protocols.length);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 101</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 102</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 103</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 104</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Returns the supported protocols.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 105</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 106</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @return the supported protocols</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 107</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 108</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> String[] getSupportedProtocols() {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 109</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> Arrays.copyOf(protocols, protocols.length);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 110</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 111</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 112</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 113</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Creates an SSL Socket.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 114</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 115</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param s the base socket</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 116</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param host the host</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 117</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param port the port</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 118</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param autoClose if the socket should auto-close</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 119</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @return the SSL Socket</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 120</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @throws IOException thrown if the creation fails</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 121</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 122</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> @Override</pre></td></tr>
|
||||
<tr> <td class="numLine"> 123</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> Socket createSocket(Socket s, String host, <span class="keyword">int</span> port, <span class="keyword">boolean</span> autoClose) <span class="keyword">throws</span> IOException {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 124</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> SSLSocketFactory factory = sslCtxt.getSocketFactory();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 125</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> SSLSocket ss = (SSLSocket) factory.createSocket(s, host, port, autoClose);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 126</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 127</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> ss.setEnabledProtocols(protocols);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 128</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> ss.setEnabledCipherSuites(ciphers);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 129</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 130</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> ss;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 131</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 132</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 133</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 134</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Creates a new SSL Socket.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 135</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 136</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param address the address to connect to</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 137</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param port the port number</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 138</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param localAddress the local address</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 139</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param localPort the local port</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 140</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @return the SSL Socket</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 141</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @throws IOException thrown if the creation fails</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 142</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 143</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> @Override</pre></td></tr>
|
||||
<tr> <td class="numLine"> 144</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> Socket createSocket(InetAddress address, <span class="keyword">int</span> port, InetAddress localAddress, <span class="keyword">int</span> localPort) <span class="keyword">throws</span> IOException {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 145</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> SSLSocketFactory factory = sslCtxt.getSocketFactory();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 146</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> SSLSocket ss = (SSLSocket) factory.createSocket(address, port, localAddress, localPort);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 147</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 148</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> ss.setEnabledProtocols(protocols);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 149</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> ss.setEnabledCipherSuites(ciphers);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 150</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 151</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> ss;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 152</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 153</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 154</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 155</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Creates a new SSL Socket.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 156</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 157</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param host the host to connect to</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 158</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param port the port to connect to</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 159</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param localHost the local host</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 160</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param localPort the local port</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 161</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @return the SSL Socket</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 162</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @throws IOException thrown if the creation fails</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 163</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 164</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> @Override</pre></td></tr>
|
||||
<tr> <td class="numLine"> 165</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> Socket createSocket(String host, <span class="keyword">int</span> port, InetAddress localHost, <span class="keyword">int</span> localPort) <span class="keyword">throws</span> IOException {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 166</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> SSLSocketFactory factory = sslCtxt.getSocketFactory();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 167</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> SSLSocket ss = (SSLSocket) factory.createSocket(host, port, localHost, localPort);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 168</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 169</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> ss.setEnabledProtocols(protocols);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 170</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> ss.setEnabledCipherSuites(ciphers);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 171</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 172</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> ss;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 173</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 174</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 175</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 176</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Creates a new SSL Socket.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 177</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 178</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param host the host to connect to</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 179</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param port the port to connect to</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 180</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @return the SSL Socket</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 181</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @throws IOException thrown if the creation fails</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 182</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 183</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> @Override</pre></td></tr>
|
||||
<tr> <td class="numLine"> 184</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> Socket createSocket(InetAddress host, <span class="keyword">int</span> port) <span class="keyword">throws</span> IOException {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 185</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> SSLSocketFactory factory = sslCtxt.getSocketFactory();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 186</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> SSLSocket ss = (SSLSocket) factory.createSocket(host, port);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 187</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 188</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> ss.setEnabledProtocols(protocols);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 189</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> ss.setEnabledCipherSuites(ciphers);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 190</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 191</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> ss;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 192</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 193</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 194</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 195</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Creates a new SSL Socket.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 196</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 197</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param host the host to connect to</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 198</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param port the port to connect to</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 199</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @return the SSL Socket</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 200</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @throws IOException thrown if the creation fails</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 201</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 202</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> @Override</pre></td></tr>
|
||||
<tr> <td class="numLine"> 203</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> Socket createSocket(String host, <span class="keyword">int</span> port) <span class="keyword">throws</span> IOException {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 204</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> SSLSocketFactory factory = sslCtxt.getSocketFactory();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 205</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> SSLSocket ss = (SSLSocket) factory.createSocket(host, port);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 206</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 207</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> ss.setEnabledProtocols(protocols);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 208</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> ss.setEnabledCipherSuites(ciphers);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 209</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 210</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> ss;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 211</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 212</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 213</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 214</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Initializes the SSL Socket Factory Extension.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 215</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 216</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param km the key managers</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 217</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param tm the trust managers</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 218</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param random the secure random number generator</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 219</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @throws NoSuchAlgorithmException thrown when an algorithm is not</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 220</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * supported</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 221</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @throws KeyManagementException thrown if initialization fails</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 222</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 223</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">void</span> initSSLSocketFactoryEx(KeyManager[] km, TrustManager[] tm, SecureRandom random)</pre></td></tr>
|
||||
<tr> <td class="numLine"> 224</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">throws</span> NoSuchAlgorithmException, KeyManagementException {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 225</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> sslCtxt = SSLContext.getInstance(<span class="string">"TLS"</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 226</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> sslCtxt.init(km, tm, random);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 227</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 228</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> protocols = getProtocolList();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 229</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> ciphers = getCipherList();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 230</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></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>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 233</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Initializes the SSL Socket Factory Extension.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 234</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 235</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param ctx the SSL context</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 236</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @throws NoSuchAlgorithmException thrown when an algorithm is not</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 237</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * supported</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 238</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @throws KeyManagementException thrown if initialization fails</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 239</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 240</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">void</span> initSSLSocketFactoryEx(SSLContext ctx)</pre></td></tr>
|
||||
<tr> <td class="numLine"> 241</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">throws</span> NoSuchAlgorithmException, KeyManagementException {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 242</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> sslCtxt = ctx;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 243</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 244</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> protocols = getProtocolList();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 245</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> ciphers = getCipherList();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 246</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 247</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 248</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 249</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Returns the protocol list.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 250</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 251</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @return the protocol list</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 252</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 253</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">protected</span> String[] getProtocolList() {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 254</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String[] preferredProtocols = {<span class="string">"TLSv1"</span>, <span class="string">"TLSv1.1"</span>, <span class="string">"TLSv1.2"</span>, <span class="string">"TLSv1.3"</span>};</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 255</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String[] availableProtocols = <span class="keyword">null</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 256</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 257</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> SSLSocket socket = <span class="keyword">null</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 258</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 259</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 260</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> SSLSocketFactory factory = sslCtxt.getSocketFactory();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 261</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> socket = (SSLSocket) factory.createSocket();</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 262</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 263</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> availableProtocols = socket.getSupportedProtocols();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 264</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> Arrays.sort(availableProtocols);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 265</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (Exception ex) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 266</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LOGGER.debug(<span class="string">"Error getting protocol list, using TLSv1"</span>, ex);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 267</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">new</span> String[]{<span class="string">"TLSv1"</span>};</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 268</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> } <span class="keyword">finally</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 269</td> <td class="nbHitsUncovered"><a title="Line 269: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 269: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (socket != <span class="keyword">null</span>) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 270</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 271</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> socket.close();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 272</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 273</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LOGGER.trace(<span class="string">"Error closing socket"</span>, ex);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 274</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 275</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 276</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 277</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 278</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> List<String> aa = <span class="keyword">new</span> ArrayList<String>();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 279</td> <td class="nbHitsUncovered"><a title="Line 279: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 279: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (String preferredProtocol : preferredProtocols) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 280</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> <span class="keyword">int</span> idx = Arrays.binarySearch(availableProtocols, preferredProtocol);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 281</td> <td class="nbHitsUncovered"><a title="Line 281: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 281: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (idx >= 0) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 282</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> aa.add(preferredProtocol);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 283</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 284</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 285</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 286</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> aa.toArray(<span class="keyword">new</span> String[0]);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 287</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 288</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 289</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 290</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Returns the cipher list.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 291</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 292</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @return the cipher list</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 293</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 294</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">protected</span> String[] getCipherList() {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 295</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String[] preferredCiphers = {</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 296</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">// *_CHACHA20_POLY1305 are 3x to 4x faster than existing cipher suites.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 297</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">// http://googleonlinesecurity.blogspot.com/2014/04/speeding-up-and-strengthening-https.html</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 298</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">// Use them if available. Normative names can be found at (TLS spec depends on IPSec spec):</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 299</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">// http://tools.ietf.org/html/draft-nir-ipsecme-chacha20-poly1305-01</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 300</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">// http://tools.ietf.org/html/draft-mavrogiannopoulos-chacha-tls-02</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 301</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 302</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 303</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_ECDHE_ECDSA_WITH_CHACHA20_SHA"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 304</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_ECDHE_RSA_WITH_CHACHA20_SHA"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 305</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_DHE_RSA_WITH_CHACHA20_POLY1305"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 306</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_RSA_WITH_CHACHA20_POLY1305"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 307</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_DHE_RSA_WITH_CHACHA20_SHA"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 308</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_RSA_WITH_CHACHA20_SHA"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 309</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">// Done with bleeding edge, back to TLS v1.2 and below</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 310</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 311</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 312</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 313</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 314</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 315</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_DHE_DSS_WITH_AES_256_GCM_SHA384"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 316</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 317</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_DHE_DSS_WITH_AES_128_GCM_SHA256"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 318</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">// TLS v1.0 (with some SSLv3 interop)</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 319</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_DHE_RSA_WITH_AES_256_CBC_SHA384"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 320</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_DHE_DSS_WITH_AES_256_CBC_SHA256"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 321</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_DHE_RSA_WITH_AES_128_CBC_SHA"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 322</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_DHE_DSS_WITH_AES_128_CBC_SHA"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 323</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 324</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 325</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 326</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 327</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">// RSA key transport sucks, but they are needed as a fallback.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 328</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">// For example, microsoft.com fails under all versions of TLS</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 329</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">// if they are not included. If only TLS 1.0 is available at</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 330</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">// the client, then google.com will fail too. TLS v1.3 is</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 331</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">// trying to deprecate them, so it will be interesteng to see</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 332</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">// what happens.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 333</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_RSA_WITH_AES_256_CBC_SHA256"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 334</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_RSA_WITH_AES_256_CBC_SHA"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 335</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_RSA_WITH_AES_128_CBC_SHA256"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 336</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_RSA_WITH_AES_128_CBC_SHA"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 337</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> };</pre></td></tr>
|
||||
<tr> <td class="numLine"> 338</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 339</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> String[] availableCiphers;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 340</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 341</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 342</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> SSLSocketFactory factory = sslCtxt.getSocketFactory();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 343</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> availableCiphers = factory.getSupportedCipherSuites();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 344</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> Arrays.sort(availableCiphers);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 345</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (Exception e) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 346</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LOGGER.debug(<span class="string">"Error retrieving ciphers"</span>, e);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 347</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">new</span> String[]{</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 348</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_DHE_DSS_WITH_AES_128_CBC_SHA"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 349</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_DHE_DSS_WITH_AES_256_CBC_SHA"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 350</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_DHE_RSA_WITH_AES_128_CBC_SHA"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 351</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_DHE_RSA_WITH_AES_256_CBC_SHA"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 352</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_RSA_WITH_AES_256_CBC_SHA256"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 353</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_RSA_WITH_AES_256_CBC_SHA"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 354</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_RSA_WITH_AES_128_CBC_SHA256"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 355</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_RSA_WITH_AES_128_CBC_SHA"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 356</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="string">"TLS_EMPTY_RENEGOTIATION_INFO_SCSV"</span>,</pre></td></tr>
|
||||
<tr> <td class="numLine"> 357</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> };</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 358</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 359</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 360</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> List<String> aa = <span class="keyword">new</span> ArrayList<String>();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 361</td> <td class="nbHitsUncovered"><a title="Line 361: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 361: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (String preferredCipher : preferredCiphers) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 362</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> <span class="keyword">int</span> idx = Arrays.binarySearch(availableCiphers, preferredCipher);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 363</td> <td class="nbHitsUncovered"><a title="Line 363: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 363: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (idx >= 0) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 364</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> aa.add(preferredCipher);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 365</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 366</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 367</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 368</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> aa.add(<span class="string">"TLS_EMPTY_RENEGOTIATION_INFO_SCSV"</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 369</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 370</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> aa.toArray(<span class="keyword">new</span> String[0]);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 371</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 372</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 373</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 374</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * The SSL context.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 375</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 376</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">private</span> SSLContext sslCtxt;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 377</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 378</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * The cipher suites.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 379</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 380</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">private</span> String[] ciphers;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 381</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 382</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * The protocols.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 383</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 384</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">private</span> String[] protocols;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 385</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
</table>
|
||||
|
||||
<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 2.1.1 on 7/31/16 7:37 AM.</div>
|
||||
</body>
|
||||
</html>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -12,8 +12,8 @@
|
||||
<div class="separator"> </div>
|
||||
<table class="report">
|
||||
<thead><tr> <td class="heading">Classes in this File</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead>
|
||||
<tr><td><a href="org.owasp.dependencycheck.utils.URLConnectionFactory.html">URLConnectionFactory</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/57</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/42</span></div></div></td></tr></table></td><td class="value"><span class="hidden">7.4;</span>7.4</td></tr>
|
||||
<tr><td><a href="org.owasp.dependencycheck.utils.URLConnectionFactory.html">URLConnectionFactory$1</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/4</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/2</span></div></div></td></tr></table></td><td class="value"><span class="hidden">7.4;</span>7.4</td></tr>
|
||||
<tr><td><a href="org.owasp.dependencycheck.utils.URLConnectionFactory.html">URLConnectionFactory</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/70</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/44</span></div></div></td></tr></table></td><td class="value"><span class="hidden">6.833333333333333;</span>6.833</td></tr>
|
||||
<tr><td><a href="org.owasp.dependencycheck.utils.URLConnectionFactory.html">URLConnectionFactory$1</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/4</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/2</span></div></div></td></tr></table></td><td class="value"><span class="hidden">6.833333333333333;</span>6.833</td></tr>
|
||||
|
||||
</table>
|
||||
<div class="separator"> </div>
|
||||
@@ -79,219 +79,282 @@
|
||||
<tr> <td class="numLine"> 30</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">import</span> java.net.URL;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 31</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<td class="src"><pre class="src"> <span class="keyword">import</span> java.security.KeyManagementException;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 32</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<td class="src"><pre class="src"> <span class="keyword">import</span> java.security.NoSuchAlgorithmException;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 33</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * A URLConnection Factory to create new connections. This encapsulates several configuration checks to ensure that the connection</span></pre></td></tr>
|
||||
<td class="src"><pre class="src"> <span class="keyword">import</span> javax.net.ssl.HttpsURLConnection;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 34</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * uses the correct proxy settings.</span></pre></td></tr>
|
||||
<td class="src"><pre class="src"> <span class="keyword">import</span> org.slf4j.Logger;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 35</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<td class="src"><pre class="src"> <span class="keyword">import</span> org.slf4j.LoggerFactory;</pre></td></tr>
|
||||
<tr> <td class="numLine"> 36</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @author Jeremy Long</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 37</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 38</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">class</span> URLConnectionFactory {</pre></td></tr>
|
||||
<tr> <td class="numLine"> 39</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 37</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 38</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * A URLConnection Factory to create new connections. This encapsulates several</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 39</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * configuration checks to ensure that the connection uses the correct proxy</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 40</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * settings.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 41</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Private constructor for this factory.</span></pre></td></tr>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 42</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 43</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">private</span> URLConnectionFactory() {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 44</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @author Jeremy Long</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 43</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 44</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">class</span> URLConnectionFactory {</pre></td></tr>
|
||||
<tr> <td class="numLine"> 45</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 46</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 47</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Utility method to create an HttpURLConnection. If the application is configured to use a proxy this method will retrieve</span></pre></td></tr>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * The logger.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 48</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * the proxy settings and use them when setting up the connection.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 49</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 49</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> Logger LOGGER = LoggerFactory.getLogger(URLConnectionFactory.<span class="keyword">class</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 50</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param url the url to connect to</span></pre></td></tr>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 51</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @return an HttpURLConnection</span></pre></td></tr>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 52</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @throws URLConnectionFailureException thrown if there is an exception</span></pre></td></tr>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Private constructor for this factory.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 53</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 54</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> @SuppressFBWarnings(value = <span class="string">"RCN_REDUNDANT_NULLCHECK_OF_NULL_VALUE"</span>, justification = <span class="string">"Just being extra safe"</span>)</pre></td></tr>
|
||||
<tr> <td class="numLine"> 55</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> HttpURLConnection createHttpURLConnection(URL url) <span class="keyword">throws</span> URLConnectionFailureException {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 56</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> HttpURLConnection conn = <span class="keyword">null</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 57</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String proxyUrl = Settings.getString(Settings.KEYS.PROXY_SERVER);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 54</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">private</span> URLConnectionFactory() {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 55</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 56</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 57</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 58</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Utility method to create an HttpURLConnection. If the application is</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 59</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 60</td> <td class="nbHitsUncovered"><a title="Line 60: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 60: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> (proxyUrl != <span class="keyword">null</span> && !matchNonProxy(url)) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 61</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> <span class="keyword">int</span> proxyPort = Settings.getInt(Settings.KEYS.PROXY_PORT);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 62</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> SocketAddress address = <span class="keyword">new</span> InetSocketAddress(proxyUrl, proxyPort);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 63</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 64</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String username = Settings.getString(Settings.KEYS.PROXY_USERNAME);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 65</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String password = Settings.getString(Settings.KEYS.PROXY_PASSWORD);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 66</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 67</td> <td class="nbHitsUncovered"><a title="Line 67: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 67: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> (username != <span class="keyword">null</span> && password != <span class="keyword">null</span>) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 68</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> Authenticator auth = <span class="keyword">new</span> Authenticator() {</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 69</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> @Override</pre></td></tr>
|
||||
<tr> <td class="numLine"> 70</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> PasswordAuthentication getPasswordAuthentication() {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 71</td> <td class="nbHitsUncovered"><a title="Line 71: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 71: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (getRequestorType().equals(Authenticator.RequestorType.PROXY)) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 72</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">new</span> PasswordAuthentication(username, password.toCharArray());</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 73</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 74</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">super</span>.getPasswordAuthentication();</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 75</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 76</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> };</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 77</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> Authenticator.setDefault(auth);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 78</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 79</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 80</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> Proxy proxy = <span class="keyword">new</span> Proxy(Proxy.Type.HTTP, address);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 81</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn = (HttpURLConnection) url.openConnection(proxy);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 82</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">else</span> {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 83</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn = (HttpURLConnection) url.openConnection();</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 84</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 85</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> <span class="keyword">int</span> timeout = Settings.getInt(Settings.KEYS.CONNECTION_TIMEOUT, 10000);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 86</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn.setConnectTimeout(timeout);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 87</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn.setInstanceFollowRedirects(<span class="keyword">true</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 88</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 89</td> <td class="nbHitsUncovered"><a title="Line 89: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 89: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (conn != <span class="keyword">null</span>) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 90</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 91</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn.disconnect();</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 92</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> } <span class="keyword">finally</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 93</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn = <span class="keyword">null</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 94</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 95</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 96</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> URLConnectionFailureException(<span class="string">"Error getting connection."</span>, ex);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 97</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 98</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> conn;</span></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="numLine"> 100</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 101</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 102</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Check if hostname matches nonProxy settings</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 103</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * configured to use a proxy this method will retrieve the proxy settings</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 60</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * and use them when setting up the connection.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 61</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 104</td> <td class="nbHits"> </td>
|
||||
<tr> <td class="numLine"> 62</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param url the url to connect to</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 105</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @return matching result. true: match nonProxy</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 106</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 107</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">boolean</span> matchNonProxy(<span class="keyword">final</span> URL url) {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 108</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String host = url.getHost();</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 109</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 110</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">// code partially from org.apache.maven.plugins.site.AbstractDeployMojo#getProxyInfo</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 111</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String nonProxyHosts = Settings.getString(Settings.KEYS.PROXY_NON_PROXY_HOSTS);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 112</td> <td class="nbHitsUncovered"><a title="Line 112: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 112: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (<span class="keyword">null</span> != nonProxyHosts) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 113</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String[] nonProxies = nonProxyHosts.split(<span class="string">"(,)|(;)|(\\|)"</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 114</td> <td class="nbHitsUncovered"><a title="Line 114: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 114: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (<span class="keyword">final</span> String nonProxyHost : nonProxies) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 115</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">//if ( StringUtils.contains( nonProxyHost, "*" ) )</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 116</td> <td class="nbHitsUncovered"><a title="Line 116: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 116: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> (<span class="keyword">null</span> != nonProxyHost && nonProxyHost.contains(<span class="string">"*"</span>)) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 117</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">// Handle wildcard at the end, beginning or middle of the nonProxyHost</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 118</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> <span class="keyword">int</span> pos = nonProxyHost.indexOf(<span class="string">'*'</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 119</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String nonProxyHostPrefix = nonProxyHost.substring(0, pos);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 120</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String nonProxyHostSuffix = nonProxyHost.substring(pos + 1);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 121</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">// prefix*</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 122</td> <td class="nbHitsUncovered"><a title="Line 122: Conditional coverage 0% (0/6) [each condition: 0%, 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 122: Conditional coverage 0% (0/6) [each condition: 0%, 0%, 0%]."> <span class="keyword">if</span> (!StringUtils.isEmpty(nonProxyHostPrefix) && host.startsWith(nonProxyHostPrefix) && StringUtils.isEmpty(nonProxyHostSuffix)) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 123</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">true</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 124</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 125</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">// *suffix</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 126</td> <td class="nbHitsUncovered"><a title="Line 126: Conditional coverage 0% (0/6) [each condition: 0%, 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 126: Conditional coverage 0% (0/6) [each condition: 0%, 0%, 0%]."> <span class="keyword">if</span> (StringUtils.isEmpty(nonProxyHostPrefix) && !StringUtils.isEmpty(nonProxyHostSuffix) && host.endsWith(nonProxyHostSuffix)) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 127</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">true</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 128</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 129</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">// prefix*suffix</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 130</td> <td class="nbHitsUncovered"><a title="Line 130: Conditional coverage 0% (0/6) [each condition: 0%, 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 130: Conditional coverage 0% (0/6) [each condition: 0%, 0%, 0%]."> <span class="keyword">if</span> (!StringUtils.isEmpty(nonProxyHostPrefix) && host.startsWith(nonProxyHostPrefix) && !StringUtils.isEmpty(nonProxyHostSuffix)</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 131</td> <td class="nbHitsUncovered"><a title="Line 131: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 131: Conditional coverage 0% (0/2)."> && host.endsWith(nonProxyHostSuffix)) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 132</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">true</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 133</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 134</td> <td class="nbHitsUncovered"><a title="Line 134: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 134: Conditional coverage 0% (0/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (host.equals(nonProxyHost)) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 135</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">true</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 136</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 137</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 138</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 139</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 140</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 141</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 142</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 143</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Utility method to create an HttpURLConnection. The use of a proxy here is optional as there may be cases where a proxy is</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 144</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * configured but we don't want to use it (for example, if there's an internal repository configured)</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 145</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 146</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param url the URL to connect to</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 147</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param proxy whether to use the proxy (if configured)</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 148</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @return a newly constructed HttpURLConnection</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 149</td> <td class="nbHits"> </td>
|
||||
<tr> <td class="numLine"> 63</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @return an HttpURLConnection</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 64</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @throws URLConnectionFailureException thrown if there is an exception</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 150</td> <td class="nbHits"> </td>
|
||||
<tr> <td class="numLine"> 65</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 151</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> HttpURLConnection createHttpURLConnection(URL url, <span class="keyword">boolean</span> proxy) <span class="keyword">throws</span> URLConnectionFailureException {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 152</td> <td class="nbHitsUncovered"><a title="Line 152: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 152: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (proxy) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 153</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> createHttpURLConnection(url);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 154</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 155</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> HttpURLConnection conn = <span class="keyword">null</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 156</td> <td class="nbHits"> </td>
|
||||
<tr> <td class="numLine"> 66</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> @SuppressFBWarnings(value = <span class="string">"RCN_REDUNDANT_NULLCHECK_OF_NULL_VALUE"</span>, justification = <span class="string">"Just being extra safe"</span>)</pre></td></tr>
|
||||
<tr> <td class="numLine"> 67</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> HttpURLConnection createHttpURLConnection(URL url) <span class="keyword">throws</span> URLConnectionFailureException {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 68</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> HttpURLConnection conn = <span class="keyword">null</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 69</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String proxyUrl = Settings.getString(Settings.KEYS.PROXY_SERVER);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 70</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 71</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 157</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn = (HttpURLConnection) url.openConnection();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 158</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> <span class="keyword">int</span> timeout = Settings.getInt(Settings.KEYS.CONNECTION_TIMEOUT, 10000);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 159</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn.setConnectTimeout(timeout);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 160</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn.setInstanceFollowRedirects(<span class="keyword">true</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 161</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (IOException ioe) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 162</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> URLConnectionFailureException(<span class="string">"Error getting connection."</span>, ioe);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 163</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 164</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> conn;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 165</td> <td class="nbHits"> </td>
|
||||
<tr> <td class="numLineCover"> 72</td> <td class="nbHitsUncovered"><a title="Line 72: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 72: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> (proxyUrl != <span class="keyword">null</span> && !matchNonProxy(url)) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 73</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> <span class="keyword">int</span> proxyPort = Settings.getInt(Settings.KEYS.PROXY_PORT);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 74</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> SocketAddress address = <span class="keyword">new</span> InetSocketAddress(proxyUrl, proxyPort);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 75</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 76</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String username = Settings.getString(Settings.KEYS.PROXY_USERNAME);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 77</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String password = Settings.getString(Settings.KEYS.PROXY_PASSWORD);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 78</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 79</td> <td class="nbHitsUncovered"><a title="Line 79: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 79: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> (username != <span class="keyword">null</span> && password != <span class="keyword">null</span>) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 80</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> Authenticator auth = <span class="keyword">new</span> Authenticator() {</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 81</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> @Override</pre></td></tr>
|
||||
<tr> <td class="numLine"> 82</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> PasswordAuthentication getPasswordAuthentication() {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 83</td> <td class="nbHitsUncovered"><a title="Line 83: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 83: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (getRequestorType().equals(Authenticator.RequestorType.PROXY)) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 84</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">new</span> PasswordAuthentication(username, password.toCharArray());</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 85</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 86</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">super</span>.getPasswordAuthentication();</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 87</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 88</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> };</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 89</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> Authenticator.setDefault(auth);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 90</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 91</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 92</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> Proxy proxy = <span class="keyword">new</span> Proxy(Proxy.Type.HTTP, address);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 93</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn = (HttpURLConnection) url.openConnection(proxy);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 94</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">else</span> {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 95</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn = (HttpURLConnection) url.openConnection();</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 96</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 97</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> <span class="keyword">int</span> timeout = Settings.getInt(Settings.KEYS.CONNECTION_TIMEOUT, 10000);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 98</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn.setConnectTimeout(timeout);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 99</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn.setInstanceFollowRedirects(<span class="keyword">true</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 100</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 101</td> <td class="nbHitsUncovered"><a title="Line 101: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 101: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (conn != <span class="keyword">null</span>) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 102</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 103</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn.disconnect();</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 104</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> } <span class="keyword">finally</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 105</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn = <span class="keyword">null</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 106</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 107</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 108</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> URLConnectionFailureException(<span class="string">"Error getting connection."</span>, ex);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 109</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 110</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> configureTLS(url, conn);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 111</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> conn;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 112</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 113</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 114</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 115</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Check if hostname matches nonProxy settings</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 116</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 117</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param url the url to connect to</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 118</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @return matching result. true: match nonProxy</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 119</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 120</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">boolean</span> matchNonProxy(<span class="keyword">final</span> URL url) {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 121</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String host = url.getHost();</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 122</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 123</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">// code partially from org.apache.maven.plugins.site.AbstractDeployMojo#getProxyInfo</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 124</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String nonProxyHosts = Settings.getString(Settings.KEYS.PROXY_NON_PROXY_HOSTS);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 125</td> <td class="nbHitsUncovered"><a title="Line 125: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 125: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (<span class="keyword">null</span> != nonProxyHosts) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 126</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String[] nonProxies = nonProxyHosts.split(<span class="string">"(,)|(;)|(\\|)"</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 127</td> <td class="nbHitsUncovered"><a title="Line 127: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 127: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (<span class="keyword">final</span> String nonProxyHost : nonProxies) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 128</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">//if ( StringUtils.contains( nonProxyHost, "*" ) )</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 129</td> <td class="nbHitsUncovered"><a title="Line 129: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 129: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> (<span class="keyword">null</span> != nonProxyHost && nonProxyHost.contains(<span class="string">"*"</span>)) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 130</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">// Handle wildcard at the end, beginning or middle of the nonProxyHost</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 131</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> <span class="keyword">int</span> pos = nonProxyHost.indexOf(<span class="string">'*'</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 132</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String nonProxyHostPrefix = nonProxyHost.substring(0, pos);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 133</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> String nonProxyHostSuffix = nonProxyHost.substring(pos + 1);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 134</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">// prefix*</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 135</td> <td class="nbHitsUncovered"><a title="Line 135: Conditional coverage 0% (0/6) [each condition: 0%, 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 135: Conditional coverage 0% (0/6) [each condition: 0%, 0%, 0%]."> <span class="keyword">if</span> (!StringUtils.isEmpty(nonProxyHostPrefix) && host.startsWith(nonProxyHostPrefix) && StringUtils.isEmpty(nonProxyHostSuffix)) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 136</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">true</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 137</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 138</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">// *suffix</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 139</td> <td class="nbHitsUncovered"><a title="Line 139: Conditional coverage 0% (0/6) [each condition: 0%, 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 139: Conditional coverage 0% (0/6) [each condition: 0%, 0%, 0%]."> <span class="keyword">if</span> (StringUtils.isEmpty(nonProxyHostPrefix) && !StringUtils.isEmpty(nonProxyHostSuffix) && host.endsWith(nonProxyHostSuffix)) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 140</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">true</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 141</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 142</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">// prefix*suffix</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 143</td> <td class="nbHitsUncovered"><a title="Line 143: Conditional coverage 0% (0/6) [each condition: 0%, 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 143: Conditional coverage 0% (0/6) [each condition: 0%, 0%, 0%]."> <span class="keyword">if</span> (!StringUtils.isEmpty(nonProxyHostPrefix) && host.startsWith(nonProxyHostPrefix) && !StringUtils.isEmpty(nonProxyHostSuffix)</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 144</td> <td class="nbHitsUncovered"><a title="Line 144: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 144: Conditional coverage 0% (0/2)."> && host.endsWith(nonProxyHostSuffix)) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 145</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">true</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 146</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 147</td> <td class="nbHitsUncovered"><a title="Line 147: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 147: Conditional coverage 0% (0/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (host.equals(nonProxyHost)) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 148</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">true</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 149</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 150</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 151</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 152</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 153</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 154</td> <td class="nbHits"> </td>
|
||||
<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"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 156</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Utility method to create an HttpURLConnection. The use of a proxy here is</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 157</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * optional as there may be cases where a proxy is configured but we don't</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 158</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * want to use it (for example, if there's an internal repository</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 159</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * configured)</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 160</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 161</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param url the URL to connect to</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 162</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param proxy whether to use the proxy (if configured)</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 163</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @return a newly constructed HttpURLConnection</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 164</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @throws URLConnectionFailureException thrown if there is an exception</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 165</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 166</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> HttpURLConnection createHttpURLConnection(URL url, <span class="keyword">boolean</span> proxy) <span class="keyword">throws</span> URLConnectionFailureException {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 167</td> <td class="nbHitsUncovered"><a title="Line 167: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 167: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (proxy) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 168</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> createHttpURLConnection(url);</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 169</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 170</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> HttpURLConnection conn = <span class="keyword">null</span>;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 171</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 172</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn = (HttpURLConnection) url.openConnection();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 173</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> <span class="keyword">int</span> timeout = Settings.getInt(Settings.KEYS.CONNECTION_TIMEOUT, 10000);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 174</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn.setConnectTimeout(timeout);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 175</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> conn.setInstanceFollowRedirects(<span class="keyword">true</span>);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 176</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (IOException ioe) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 177</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> URLConnectionFailureException(<span class="string">"Error getting connection."</span>, ioe);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 178</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 179</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> configureTLS(url, conn);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 180</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> conn;</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 181</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLine"> 182</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> </pre></td></tr>
|
||||
<tr> <td class="numLine"> 183</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 184</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * If the protocol is HTTPS, this will configure the cipher suites so that</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 185</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * connections can be made to the NVD, and others, using older versions of</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 186</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * Java.</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 187</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 188</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param url the URL</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 189</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="comment"> * @param conn the connection</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 190</td> <td class="nbHits"> </td>
|
||||
<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">private</span> <span class="keyword">static</span> <span class="keyword">void</span> configureTLS(URL url, HttpURLConnection conn) {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 192</td> <td class="nbHitsUncovered"><a title="Line 192: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 192: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (<span class="string">"https"</span>.equals(url.getProtocol())) {</a></span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 193</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 194</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> HttpsURLConnection secCon = (HttpsURLConnection) conn;</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 195</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">final</span> SSLSocketFactoryEx factory = <span class="keyword">new</span> SSLSocketFactoryEx();</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 196</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> secCon.setSSLSocketFactory(factory);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 197</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (NoSuchAlgorithmException ex) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 198</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LOGGER.debug(<span class="string">"Unsupported algorithm in SSLSocketFactoryEx"</span>, ex);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 199</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (KeyManagementException ex) {</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 200</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LOGGER.debug(<span class="string">"Key mnagement eception in SSLSocketFactoryEx"</span>, ex);</span></pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 201</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 202</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
<tr> <td class="numLineCover"> 203</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
|
||||
<tr> <td class="numLine"> 204</td> <td class="nbHits"> </td>
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
</table>
|
||||
|
||||
<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 2.1.1 on 6/16/16 6:44 AM.</div>
|
||||
<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 2.1.1 on 7/31/16 7:37 AM.</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -147,6 +147,6 @@
|
||||
<td class="src"><pre class="src"> }</pre></td></tr>
|
||||
</table>
|
||||
|
||||
<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 2.1.1 on 6/16/16 6:44 AM.</div>
|
||||
<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 2.1.1 on 7/31/16 7:37 AM.</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user