version 1.1.1 of gh-pages

This commit is contained in:
Jeremy Long
2014-01-30 06:35:28 -05:00
parent 8c53925bd7
commit 9f9ed6f1da
892 changed files with 14024 additions and 8239 deletions

View File

@@ -137,15 +137,15 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;60</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> CveDB() <span class="keyword">throws</span> DatabaseException {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;61</td> <td class="nbHitsCovered">&nbsp;54</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">super</span>();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;61</td> <td class="nbHitsCovered">&nbsp;27</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">super</span>();</pre></td></tr>
<tr> <td class="numLine">&nbsp;62</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">try</span> {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;63</td> <td class="nbHitsCovered">&nbsp;54</td> <td class="src"><pre class="src">&nbsp; open();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;64</td> <td class="nbHitsCovered">&nbsp;54</td> <td class="src"><pre class="src">&nbsp; databaseProperties = <span class="keyword">new</span> DatabaseProperties(<span class="keyword">this</span>);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;63</td> <td class="nbHitsCovered">&nbsp;27</td> <td class="src"><pre class="src">&nbsp; open();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;64</td> <td class="nbHitsCovered">&nbsp;27</td> <td class="src"><pre class="src">&nbsp; databaseProperties = <span class="keyword">new</span> DatabaseProperties(<span class="keyword">this</span>);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;65</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; } <span class="keyword">catch</span> (DatabaseException ex) {</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;66</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">throw</span> ex;</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;67</td> <td class="nbHitsCovered">&nbsp;54</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;68</td> <td class="nbHitsCovered">&nbsp;54</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;67</td> <td class="nbHitsCovered">&nbsp;27</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;68</td> <td class="nbHitsCovered">&nbsp;27</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;69</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;70</td> <td class="nbHits">&nbsp;</td>
@@ -160,7 +160,7 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;75</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">protected</span> Connection getConnection() {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;76</td> <td class="nbHitsCovered">&nbsp;614</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> conn;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;76</td> <td class="nbHitsCovered">&nbsp;307</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> conn;</pre></td></tr>
<tr> <td class="numLine">&nbsp;77</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;78</td> <td class="nbHits">&nbsp;</td>
@@ -177,8 +177,8 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;84</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">void</span> open() <span class="keyword">throws</span> DatabaseException {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;85</td> <td class="nbHitsCovered">&nbsp;108</td> <td class="src"><pre class="src">&nbsp; conn = ConnectionFactory.getConnection();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;86</td> <td class="nbHitsCovered">&nbsp;108</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;85</td> <td class="nbHitsCovered">&nbsp;54</td> <td class="src"><pre class="src">&nbsp; conn = ConnectionFactory.getConnection();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;86</td> <td class="nbHitsCovered">&nbsp;54</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;87</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;88</td> <td class="nbHits">&nbsp;</td>
@@ -189,19 +189,19 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;91</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> <span class="keyword">void</span> close() {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;92</td> <td class="nbHitsCovered"><a title="Line 92: Conditional coverage 100% (2/2).">&nbsp;93</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 92: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (conn != <span class="keyword">null</span>) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;92</td> <td class="nbHitsCovered"><a title="Line 92: Conditional coverage 100% (2/2).">&nbsp;44</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 92: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (conn != <span class="keyword">null</span>) {</a></pre></td></tr>
<tr> <td class="numLine">&nbsp;93</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">try</span> {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;94</td> <td class="nbHitsCovered">&nbsp;54</td> <td class="src"><pre class="src">&nbsp; conn.close();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;94</td> <td class="nbHitsCovered">&nbsp;27</td> <td class="src"><pre class="src">&nbsp; conn.close();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;95</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;96</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">final</span> String msg = <span class="string">"There was an error attempting to close the CveDB, see the log for more details."</span>;</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;97</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Logger.getLogger(DBUtils.<span class="keyword">class</span>.getName()).log(Level.SEVERE, msg);</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;98</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Logger.getLogger(DBUtils.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="keyword">null</span>, ex);</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;99</td> <td class="nbHitsCovered">&nbsp;54</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;100</td> <td class="nbHitsCovered">&nbsp;54</td> <td class="src"><pre class="src">&nbsp; conn = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;99</td> <td class="nbHitsCovered">&nbsp;27</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;100</td> <td class="nbHitsCovered">&nbsp;27</td> <td class="src"><pre class="src">&nbsp; conn = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLine">&nbsp;101</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;102</td> <td class="nbHitsCovered">&nbsp;93</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;102</td> <td class="nbHitsCovered">&nbsp;44</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;103</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;104</td> <td class="nbHits">&nbsp;</td>
@@ -241,7 +241,7 @@
<td class="src"><pre class="src">&nbsp; <span class="comment">// conn.commit();</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;122</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">//}</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;123</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;123</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;124</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;125</td> <td class="nbHits">&nbsp;</td>
@@ -258,9 +258,9 @@
<td class="src"><pre class="src">&nbsp; @Override</pre></td></tr>
<tr> <td class="numLine">&nbsp;131</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">protected</span> <span class="keyword">void</span> finalize() <span class="keyword">throws</span> Throwable {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;132</td> <td class="nbHitsCovered">&nbsp;39</td> <td class="src"><pre class="src">&nbsp; close();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;133</td> <td class="nbHitsCovered">&nbsp;39</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">super</span>.finalize();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;134</td> <td class="nbHitsCovered">&nbsp;39</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;132</td> <td class="nbHitsCovered">&nbsp;17</td> <td class="src"><pre class="src">&nbsp; close();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;133</td> <td class="nbHitsCovered">&nbsp;17</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">super</span>.finalize();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;134</td> <td class="nbHitsCovered">&nbsp;17</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;135</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;136</td> <td class="nbHits">&nbsp;</td>
@@ -283,7 +283,7 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;145</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> DatabaseProperties getDatabaseProperties() {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;146</td> <td class="nbHitsCovered">&nbsp;14</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> databaseProperties;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;146</td> <td class="nbHitsCovered">&nbsp;7</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> databaseProperties;</pre></td></tr>
<tr> <td class="numLine">&nbsp;147</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;148</td> <td class="nbHits">&nbsp;</td>
@@ -518,32 +518,32 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;263</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> Set&lt;VulnerableSoftware&gt; getCPEs(String vendor, String product) {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;264</td> <td class="nbHitsCovered">&nbsp;144</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> Set&lt;VulnerableSoftware&gt; cpe = <span class="keyword">new</span> HashSet&lt;VulnerableSoftware&gt;();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;265</td> <td class="nbHitsCovered">&nbsp;144</td> <td class="src"><pre class="src">&nbsp; ResultSet rs = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;266</td> <td class="nbHitsCovered">&nbsp;144</td> <td class="src"><pre class="src">&nbsp; PreparedStatement ps = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;264</td> <td class="nbHitsCovered">&nbsp;72</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> Set&lt;VulnerableSoftware&gt; cpe = <span class="keyword">new</span> HashSet&lt;VulnerableSoftware&gt;();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;265</td> <td class="nbHitsCovered">&nbsp;72</td> <td class="src"><pre class="src">&nbsp; ResultSet rs = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;266</td> <td class="nbHitsCovered">&nbsp;72</td> <td class="src"><pre class="src">&nbsp; PreparedStatement ps = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLine">&nbsp;267</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">try</span> {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;268</td> <td class="nbHitsCovered">&nbsp;144</td> <td class="src"><pre class="src">&nbsp; ps = getConnection().prepareStatement(SELECT_CPE_ENTRIES);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;269</td> <td class="nbHitsCovered">&nbsp;144</td> <td class="src"><pre class="src">&nbsp; ps.setString(1, vendor);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;270</td> <td class="nbHitsCovered">&nbsp;144</td> <td class="src"><pre class="src">&nbsp; ps.setString(2, product);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;271</td> <td class="nbHitsCovered">&nbsp;144</td> <td class="src"><pre class="src">&nbsp; rs = ps.executeQuery();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;268</td> <td class="nbHitsCovered">&nbsp;72</td> <td class="src"><pre class="src">&nbsp; ps = getConnection().prepareStatement(SELECT_CPE_ENTRIES);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;269</td> <td class="nbHitsCovered">&nbsp;72</td> <td class="src"><pre class="src">&nbsp; ps.setString(1, vendor);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;270</td> <td class="nbHitsCovered">&nbsp;72</td> <td class="src"><pre class="src">&nbsp; ps.setString(2, product);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;271</td> <td class="nbHitsCovered">&nbsp;72</td> <td class="src"><pre class="src">&nbsp; rs = ps.executeQuery();</pre></td></tr>
<tr> <td class="numLine">&nbsp;272</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;273</td> <td class="nbHitsCovered"><a title="Line 273: Conditional coverage 100% (2/2).">&nbsp;8924</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 273: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rs.next()) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;274</td> <td class="nbHitsCovered">&nbsp;8780</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> VulnerableSoftware vs = <span class="keyword">new</span> VulnerableSoftware();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;275</td> <td class="nbHitsCovered">&nbsp;8780</td> <td class="src"><pre class="src">&nbsp; vs.setCpe(rs.getString(1));</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;276</td> <td class="nbHitsCovered">&nbsp;8780</td> <td class="src"><pre class="src">&nbsp; cpe.add(vs);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;277</td> <td class="nbHitsCovered">&nbsp;8780</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;273</td> <td class="nbHitsCovered"><a title="Line 273: Conditional coverage 100% (2/2).">&nbsp;4462</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 273: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rs.next()) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;274</td> <td class="nbHitsCovered">&nbsp;4390</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> VulnerableSoftware vs = <span class="keyword">new</span> VulnerableSoftware();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;275</td> <td class="nbHitsCovered">&nbsp;4390</td> <td class="src"><pre class="src">&nbsp; vs.setCpe(rs.getString(1));</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;276</td> <td class="nbHitsCovered">&nbsp;4390</td> <td class="src"><pre class="src">&nbsp; cpe.add(vs);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;277</td> <td class="nbHitsCovered">&nbsp;4390</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;278</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;279</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">final</span> String msg = <span class="string">"An unexpected SQL Exception occurred; please see the verbose log for more details."</span>;</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;280</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Logger.getLogger(CveDB.<span class="keyword">class</span>.getName()).log(Level.SEVERE, msg);</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;281</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Logger.getLogger(CveDB.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="keyword">null</span>, ex);</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;282</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; } <span class="keyword">finally</span> {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;283</td> <td class="nbHitsCovered">&nbsp;144</td> <td class="src"><pre class="src">&nbsp; DBUtils.closeResultSet(rs);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;284</td> <td class="nbHitsCovered">&nbsp;144</td> <td class="src"><pre class="src">&nbsp; DBUtils.closeStatement(ps);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;285</td> <td class="nbHitsCovered">&nbsp;144</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;286</td> <td class="nbHitsCovered">&nbsp;144</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> cpe;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;283</td> <td class="nbHitsCovered">&nbsp;72</td> <td class="src"><pre class="src">&nbsp; DBUtils.closeResultSet(rs);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;284</td> <td class="nbHitsCovered">&nbsp;72</td> <td class="src"><pre class="src">&nbsp; DBUtils.closeStatement(ps);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;285</td> <td class="nbHitsCovered">&nbsp;72</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;286</td> <td class="nbHitsCovered">&nbsp;72</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> cpe;</pre></td></tr>
<tr> <td class="numLine">&nbsp;287</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;288</td> <td class="nbHits">&nbsp;</td>
@@ -560,17 +560,17 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;294</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> ResultSet getVendorProductList() {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;295</td> <td class="nbHitsCovered">&nbsp;22</td> <td class="src"><pre class="src">&nbsp; ResultSet rs = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;295</td> <td class="nbHitsCovered">&nbsp;11</td> <td class="src"><pre class="src">&nbsp; ResultSet rs = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLine">&nbsp;296</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">try</span> {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;297</td> <td class="nbHitsCovered">&nbsp;22</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> PreparedStatement ps = getConnection().prepareStatement(SELECT_VENDOR_PRODUCT_LIST);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;298</td> <td class="nbHitsCovered">&nbsp;22</td> <td class="src"><pre class="src">&nbsp; rs = ps.executeQuery();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;297</td> <td class="nbHitsCovered">&nbsp;11</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> PreparedStatement ps = getConnection().prepareStatement(SELECT_VENDOR_PRODUCT_LIST);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;298</td> <td class="nbHitsCovered">&nbsp;11</td> <td class="src"><pre class="src">&nbsp; rs = ps.executeQuery();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;299</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;300</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">final</span> String msg = <span class="string">"An unexpected SQL Exception occurred; please see the verbose log for more details."</span>;</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;301</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Logger.getLogger(CveDB.<span class="keyword">class</span>.getName()).log(Level.SEVERE, msg);</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;302</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Logger.getLogger(CveDB.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="keyword">null</span>, ex);</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;303</td> <td class="nbHitsCovered">&nbsp;22</td> <td class="src"><pre class="src">&nbsp; } <span class="comment">// can't close the statement in the PS as the resultset is returned, closing PS would close the resultset</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;304</td> <td class="nbHitsCovered">&nbsp;22</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> rs;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;303</td> <td class="nbHitsCovered">&nbsp;11</td> <td class="src"><pre class="src">&nbsp; } <span class="comment">// can't close the statement in the PS as the resultset is returned, closing PS would close the resultset</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;304</td> <td class="nbHitsCovered">&nbsp;11</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> rs;</pre></td></tr>
<tr> <td class="numLine">&nbsp;305</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;306</td> <td class="nbHits">&nbsp;</td>
@@ -587,15 +587,15 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;312</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; Properties getProperties() {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;313</td> <td class="nbHitsCovered">&nbsp;54</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> Properties prop = <span class="keyword">new</span> Properties();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;314</td> <td class="nbHitsCovered">&nbsp;54</td> <td class="src"><pre class="src">&nbsp; PreparedStatement ps = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;315</td> <td class="nbHitsCovered">&nbsp;54</td> <td class="src"><pre class="src">&nbsp; ResultSet rs = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;313</td> <td class="nbHitsCovered">&nbsp;27</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> Properties prop = <span class="keyword">new</span> Properties();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;314</td> <td class="nbHitsCovered">&nbsp;27</td> <td class="src"><pre class="src">&nbsp; PreparedStatement ps = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;315</td> <td class="nbHitsCovered">&nbsp;27</td> <td class="src"><pre class="src">&nbsp; ResultSet rs = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLine">&nbsp;316</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">try</span> {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;317</td> <td class="nbHitsCovered">&nbsp;54</td> <td class="src"><pre class="src">&nbsp; ps = getConnection().prepareStatement(SELECT_PROPERTIES);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;318</td> <td class="nbHitsCovered">&nbsp;54</td> <td class="src"><pre class="src">&nbsp; rs = ps.executeQuery();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;319</td> <td class="nbHitsCovered"><a title="Line 319: Conditional coverage 100% (2/2).">&nbsp;882</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 319: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rs.next()) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;320</td> <td class="nbHitsCovered">&nbsp;828</td> <td class="src"><pre class="src">&nbsp; prop.setProperty(rs.getString(1), rs.getString(2));</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;317</td> <td class="nbHitsCovered">&nbsp;27</td> <td class="src"><pre class="src">&nbsp; ps = getConnection().prepareStatement(SELECT_PROPERTIES);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;318</td> <td class="nbHitsCovered">&nbsp;27</td> <td class="src"><pre class="src">&nbsp; rs = ps.executeQuery();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;319</td> <td class="nbHitsCovered"><a title="Line 319: Conditional coverage 100% (2/2).">&nbsp;441</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 319: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rs.next()) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;320</td> <td class="nbHitsCovered">&nbsp;414</td> <td class="src"><pre class="src">&nbsp; prop.setProperty(rs.getString(1), rs.getString(2));</pre></td></tr>
<tr> <td class="numLine">&nbsp;321</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;322</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr>
@@ -604,10 +604,10 @@
<tr> <td class="numLineCover">&nbsp;325</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Logger.getLogger(CveDB.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="keyword">null</span>, ex);</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;326</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; } <span class="keyword">finally</span> {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;327</td> <td class="nbHitsCovered">&nbsp;54</td> <td class="src"><pre class="src">&nbsp; DBUtils.closeStatement(ps);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;328</td> <td class="nbHitsCovered">&nbsp;54</td> <td class="src"><pre class="src">&nbsp; DBUtils.closeResultSet(rs);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;329</td> <td class="nbHitsCovered">&nbsp;54</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;330</td> <td class="nbHitsCovered">&nbsp;54</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> prop;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;327</td> <td class="nbHitsCovered">&nbsp;27</td> <td class="src"><pre class="src">&nbsp; DBUtils.closeStatement(ps);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;328</td> <td class="nbHitsCovered">&nbsp;27</td> <td class="src"><pre class="src">&nbsp; DBUtils.closeResultSet(rs);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;329</td> <td class="nbHitsCovered">&nbsp;27</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;330</td> <td class="nbHitsCovered">&nbsp;27</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> prop;</pre></td></tr>
<tr> <td class="numLine">&nbsp;331</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;332</td> <td class="nbHits">&nbsp;</td>
@@ -678,49 +678,49 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;378</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">void</span> saveProperty(String key, String value) {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;379</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; PreparedStatement updateProperty = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;380</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; PreparedStatement insertProperty = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;379</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; PreparedStatement updateProperty = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;380</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; PreparedStatement insertProperty = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLine">&nbsp;381</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">try</span> {</pre></td></tr>
<tr> <td class="numLine">&nbsp;382</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">try</span> {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;383</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; updateProperty = getConnection().prepareStatement(UPDATE_PROPERTY);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;383</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; updateProperty = getConnection().prepareStatement(UPDATE_PROPERTY);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;384</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;385</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Logger.getLogger(CveDB.<span class="keyword">class</span>.getName()).log(Level.WARNING, <span class="string">"Unable to save properties to the database"</span>);</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;386</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Logger.getLogger(CveDB.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="string">"Unable to save properties to the database"</span>, ex);</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;387</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">return</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;388</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;388</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;389</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">try</span> {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;390</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; updateProperty.setString(1, value);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;391</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; updateProperty.setString(2, key);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;392</td> <td class="nbHitsUncovered"><a title="Line 392: Conditional coverage 50% (1/2).">&nbsp;2</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 392: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (updateProperty.executeUpdate() == 0) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;390</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; updateProperty.setString(1, value);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;391</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; updateProperty.setString(2, key);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;392</td> <td class="nbHitsUncovered"><a title="Line 392: Conditional coverage 50% (1/2).">&nbsp;1</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 392: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (updateProperty.executeUpdate() == 0) {</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;393</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">try</span> {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;394</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; insertProperty = getConnection().prepareStatement(INSERT_PROPERTY);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;394</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; insertProperty = getConnection().prepareStatement(INSERT_PROPERTY);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;395</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;396</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Logger.getLogger(CveDB.<span class="keyword">class</span>.getName()).log(Level.WARNING, <span class="string">"Unable to save properties to the database"</span>);</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;397</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Logger.getLogger(CveDB.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="string">"Unable to save properties to the database"</span>, ex);</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;398</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">return</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;399</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;400</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; insertProperty.setString(1, key);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;401</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; insertProperty.setString(2, value);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;402</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; insertProperty.execute();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;399</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;400</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; insertProperty.setString(1, key);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;401</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; insertProperty.setString(2, value);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;402</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; insertProperty.execute();</pre></td></tr>
<tr> <td class="numLine">&nbsp;403</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;404</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;405</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">final</span> String msg = String.format(<span class="string">"Unable to save property '%s' with a value of '%s' to the database"</span>, key, value);</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;406</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Logger.getLogger(CveDB.<span class="keyword">class</span>.getName()).log(Level.WARNING, msg);</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;407</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Logger.getLogger(CveDB.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="keyword">null</span>, ex);</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;408</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;408</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;409</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; } <span class="keyword">finally</span> {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;410</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; DBUtils.closeStatement(updateProperty);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;411</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; DBUtils.closeStatement(insertProperty);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;412</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;413</td> <td class="nbHitsCovered">&nbsp;2</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;410</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; DBUtils.closeStatement(updateProperty);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;411</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; DBUtils.closeStatement(insertProperty);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;412</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;413</td> <td class="nbHitsCovered">&nbsp;1</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;414</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;415</td> <td class="nbHits">&nbsp;</td>
@@ -739,41 +739,41 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;422</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">public</span> List&lt;Vulnerability&gt; getVulnerabilities(String cpeStr) <span class="keyword">throws</span> DatabaseException {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;423</td> <td class="nbHitsCovered">&nbsp;24</td> <td class="src"><pre class="src">&nbsp; ResultSet rs = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;424</td> <td class="nbHitsCovered">&nbsp;24</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> VulnerableSoftware cpe = <span class="keyword">new</span> VulnerableSoftware();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;423</td> <td class="nbHitsCovered">&nbsp;12</td> <td class="src"><pre class="src">&nbsp; ResultSet rs = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;424</td> <td class="nbHitsCovered">&nbsp;12</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> VulnerableSoftware cpe = <span class="keyword">new</span> VulnerableSoftware();</pre></td></tr>
<tr> <td class="numLine">&nbsp;425</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">try</span> {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;426</td> <td class="nbHitsCovered">&nbsp;24</td> <td class="src"><pre class="src">&nbsp; cpe.parseName(cpeStr);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;426</td> <td class="nbHitsCovered">&nbsp;12</td> <td class="src"><pre class="src">&nbsp; cpe.parseName(cpeStr);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;427</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; } <span class="keyword">catch</span> (UnsupportedEncodingException ex) {</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;428</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Logger.getLogger(CveDB.<span class="keyword">class</span>.getName()).log(Level.FINEST, <span class="keyword">null</span>, ex);</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;429</td> <td class="nbHitsCovered">&nbsp;24</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;430</td> <td class="nbHitsCovered">&nbsp;24</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> DependencyVersion detectedVersion = parseDependencyVersion(cpe);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;431</td> <td class="nbHitsCovered">&nbsp;24</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> List&lt;Vulnerability&gt; vulnerabilities = <span class="keyword">new</span> ArrayList&lt;Vulnerability&gt;();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;429</td> <td class="nbHitsCovered">&nbsp;12</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;430</td> <td class="nbHitsCovered">&nbsp;12</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> DependencyVersion detectedVersion = parseDependencyVersion(cpe);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;431</td> <td class="nbHitsCovered">&nbsp;12</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> List&lt;Vulnerability&gt; vulnerabilities = <span class="keyword">new</span> ArrayList&lt;Vulnerability&gt;();</pre></td></tr>
<tr> <td class="numLine">&nbsp;432</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLine">&nbsp;433</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; PreparedStatement ps;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;434</td> <td class="nbHitsCovered">&nbsp;24</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> HashSet&lt;String&gt; cveEntries = <span class="keyword">new</span> HashSet&lt;String&gt;();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;434</td> <td class="nbHitsCovered">&nbsp;12</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> HashSet&lt;String&gt; cveEntries = <span class="keyword">new</span> HashSet&lt;String&gt;();</pre></td></tr>
<tr> <td class="numLine">&nbsp;435</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">try</span> {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;436</td> <td class="nbHitsCovered">&nbsp;24</td> <td class="src"><pre class="src">&nbsp; ps = getConnection().prepareStatement(SELECT_CVE_FROM_SOFTWARE);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;437</td> <td class="nbHitsCovered">&nbsp;24</td> <td class="src"><pre class="src">&nbsp; ps.setString(1, cpe.getVendor());</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;438</td> <td class="nbHitsCovered">&nbsp;24</td> <td class="src"><pre class="src">&nbsp; ps.setString(2, cpe.getProduct());</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;439</td> <td class="nbHitsCovered">&nbsp;24</td> <td class="src"><pre class="src">&nbsp; rs = ps.executeQuery();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;440</td> <td class="nbHitsCovered"><a title="Line 440: Conditional coverage 100% (2/2).">&nbsp;9182</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 440: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rs.next()) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;441</td> <td class="nbHitsCovered">&nbsp;9158</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> String cveId = rs.getString(1);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;442</td> <td class="nbHitsCovered">&nbsp;9158</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> String cpeId = rs.getString(2);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;443</td> <td class="nbHitsCovered">&nbsp;9158</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> String previous = rs.getString(3);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;444</td> <td class="nbHitsCovered"><a title="Line 444: Conditional coverage 100% (4/4) [each condition: 100%, 100%].">&nbsp;9158</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 444: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (!cveEntries.contains(cveId) &amp;&amp; isAffected(cpe.getVendor(), cpe.getProduct(), detectedVersion, cpeId, previous)) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;445</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; cveEntries.add(cveId);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;446</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> Vulnerability v = getVulnerability(cveId);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;447</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; v.setMatchedCPE(cpeId, previous);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;448</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; vulnerabilities.add(v);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;436</td> <td class="nbHitsCovered">&nbsp;12</td> <td class="src"><pre class="src">&nbsp; ps = getConnection().prepareStatement(SELECT_CVE_FROM_SOFTWARE);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;437</td> <td class="nbHitsCovered">&nbsp;12</td> <td class="src"><pre class="src">&nbsp; ps.setString(1, cpe.getVendor());</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;438</td> <td class="nbHitsCovered">&nbsp;12</td> <td class="src"><pre class="src">&nbsp; ps.setString(2, cpe.getProduct());</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;439</td> <td class="nbHitsCovered">&nbsp;12</td> <td class="src"><pre class="src">&nbsp; rs = ps.executeQuery();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;440</td> <td class="nbHitsCovered"><a title="Line 440: Conditional coverage 100% (2/2).">&nbsp;4591</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 440: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rs.next()) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;441</td> <td class="nbHitsCovered">&nbsp;4579</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> String cveId = rs.getString(1);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;442</td> <td class="nbHitsCovered">&nbsp;4579</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> String cpeId = rs.getString(2);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;443</td> <td class="nbHitsCovered">&nbsp;4579</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> String previous = rs.getString(3);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;444</td> <td class="nbHitsCovered"><a title="Line 444: Conditional coverage 100% (4/4) [each condition: 100%, 100%].">&nbsp;4579</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 444: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (!cveEntries.contains(cveId) &amp;&amp; isAffected(cpe.getVendor(), cpe.getProduct(), detectedVersion, cpeId, previous)) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;445</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; cveEntries.add(cveId);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;446</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> Vulnerability v = getVulnerability(cveId);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;447</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; v.setMatchedCPE(cpeId, previous);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;448</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; vulnerabilities.add(v);</pre></td></tr>
<tr> <td class="numLine">&nbsp;449</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;450</td> <td class="nbHitsCovered">&nbsp;9158</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;451</td> <td class="nbHitsCovered">&nbsp;24</td> <td class="src"><pre class="src">&nbsp; DBUtils.closeResultSet(rs);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;452</td> <td class="nbHitsCovered">&nbsp;24</td> <td class="src"><pre class="src">&nbsp; DBUtils.closeStatement(ps);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;450</td> <td class="nbHitsCovered">&nbsp;4579</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;451</td> <td class="nbHitsCovered">&nbsp;12</td> <td class="src"><pre class="src">&nbsp; DBUtils.closeResultSet(rs);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;452</td> <td class="nbHitsCovered">&nbsp;12</td> <td class="src"><pre class="src">&nbsp; DBUtils.closeStatement(ps);</pre></td></tr>
<tr> <td class="numLine">&nbsp;453</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment">// for (String cve : cveEntries) {</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;454</td> <td class="nbHits">&nbsp;</td>
@@ -788,9 +788,9 @@
<tr> <td class="numLineCover">&nbsp;459</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">throw</span> <span class="keyword">new</span> DatabaseException(<span class="string">"Exception retrieving vulnerability for "</span> + cpeStr, ex);</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;460</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; } <span class="keyword">finally</span> {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;461</td> <td class="nbHitsCovered">&nbsp;24</td> <td class="src"><pre class="src">&nbsp; DBUtils.closeResultSet(rs);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;462</td> <td class="nbHitsCovered">&nbsp;24</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;463</td> <td class="nbHitsCovered">&nbsp;24</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> vulnerabilities;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;461</td> <td class="nbHitsCovered">&nbsp;12</td> <td class="src"><pre class="src">&nbsp; DBUtils.closeResultSet(rs);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;462</td> <td class="nbHitsCovered">&nbsp;12</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;463</td> <td class="nbHitsCovered">&nbsp;12</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> vulnerabilities;</pre></td></tr>
<tr> <td class="numLine">&nbsp;464</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;465</td> <td class="nbHits">&nbsp;</td>
@@ -811,77 +811,77 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;473</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> Vulnerability getVulnerability(String cve) <span class="keyword">throws</span> DatabaseException {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;474</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; PreparedStatement psV = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;475</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; PreparedStatement psR = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;476</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; PreparedStatement psS = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;477</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; ResultSet rsV = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;478</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; ResultSet rsR = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;479</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; ResultSet rsS = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;480</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; Vulnerability vuln = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;474</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; PreparedStatement psV = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;475</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; PreparedStatement psR = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;476</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; PreparedStatement psS = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;477</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; ResultSet rsV = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;478</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; ResultSet rsR = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;479</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; ResultSet rsS = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;480</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; Vulnerability vuln = <span class="keyword">null</span>;</pre></td></tr>
<tr> <td class="numLine">&nbsp;481</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">try</span> {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;482</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; psV = getConnection().prepareStatement(SELECT_VULNERABILITY);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;483</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; psV.setString(1, cve);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;484</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; rsV = psV.executeQuery();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;485</td> <td class="nbHitsUncovered"><a title="Line 485: Conditional coverage 50% (1/2).">&nbsp;122</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 485: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (rsV.next()) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;486</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; vuln = <span class="keyword">new</span> Vulnerability();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;487</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; vuln.setName(cve);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;488</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; vuln.setDescription(rsV.getString(2));</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;489</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; String cwe = rsV.getString(3);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;490</td> <td class="nbHitsCovered"><a title="Line 490: Conditional coverage 100% (2/2).">&nbsp;122</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 490: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (cwe != <span class="keyword">null</span>) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;491</td> <td class="nbHitsCovered">&nbsp;100</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> String name = CweDB.getCweName(cwe);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;492</td> <td class="nbHitsCovered"><a title="Line 492: Conditional coverage 100% (2/2).">&nbsp;100</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 492: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (name != <span class="keyword">null</span>) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;493</td> <td class="nbHitsCovered">&nbsp;96</td> <td class="src"><pre class="src">&nbsp; cwe += <span class="string">" "</span> + name;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;482</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; psV = getConnection().prepareStatement(SELECT_VULNERABILITY);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;483</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; psV.setString(1, cve);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;484</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; rsV = psV.executeQuery();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;485</td> <td class="nbHitsUncovered"><a title="Line 485: Conditional coverage 50% (1/2).">&nbsp;61</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 485: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (rsV.next()) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;486</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; vuln = <span class="keyword">new</span> Vulnerability();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;487</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; vuln.setName(cve);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;488</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; vuln.setDescription(rsV.getString(2));</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;489</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; String cwe = rsV.getString(3);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;490</td> <td class="nbHitsCovered"><a title="Line 490: Conditional coverage 100% (2/2).">&nbsp;61</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 490: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (cwe != <span class="keyword">null</span>) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;491</td> <td class="nbHitsCovered">&nbsp;50</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> String name = CweDB.getCweName(cwe);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;492</td> <td class="nbHitsCovered"><a title="Line 492: Conditional coverage 100% (2/2).">&nbsp;50</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 492: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (name != <span class="keyword">null</span>) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;493</td> <td class="nbHitsCovered">&nbsp;48</td> <td class="src"><pre class="src">&nbsp; cwe += <span class="string">" "</span> + name;</pre></td></tr>
<tr> <td class="numLine">&nbsp;494</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;495</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;496</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> <span class="keyword">int</span> cveId = rsV.getInt(1);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;497</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; vuln.setCwe(cwe);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;498</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; vuln.setCvssScore(rsV.getFloat(4));</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;499</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; vuln.setCvssAccessVector(rsV.getString(5));</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;500</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; vuln.setCvssAccessComplexity(rsV.getString(6));</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;501</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; vuln.setCvssAuthentication(rsV.getString(7));</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;502</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; vuln.setCvssConfidentialityImpact(rsV.getString(8));</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;503</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; vuln.setCvssIntegrityImpact(rsV.getString(9));</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;504</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; vuln.setCvssAvailabilityImpact(rsV.getString(10));</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;496</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> <span class="keyword">int</span> cveId = rsV.getInt(1);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;497</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; vuln.setCwe(cwe);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;498</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; vuln.setCvssScore(rsV.getFloat(4));</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;499</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; vuln.setCvssAccessVector(rsV.getString(5));</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;500</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; vuln.setCvssAccessComplexity(rsV.getString(6));</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;501</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; vuln.setCvssAuthentication(rsV.getString(7));</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;502</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; vuln.setCvssConfidentialityImpact(rsV.getString(8));</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;503</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; vuln.setCvssIntegrityImpact(rsV.getString(9));</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;504</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; vuln.setCvssAvailabilityImpact(rsV.getString(10));</pre></td></tr>
<tr> <td class="numLine">&nbsp;505</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;506</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; psR = getConnection().prepareStatement(SELECT_REFERENCE);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;507</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; psR.setInt(1, cveId);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;508</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; rsR = psR.executeQuery();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;509</td> <td class="nbHitsCovered"><a title="Line 509: Conditional coverage 100% (2/2).">&nbsp;982</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 509: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rsR.next()) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;510</td> <td class="nbHitsCovered">&nbsp;860</td> <td class="src"><pre class="src">&nbsp; vuln.addReference(rsR.getString(1), rsR.getString(2), rsR.getString(3));</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;506</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; psR = getConnection().prepareStatement(SELECT_REFERENCE);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;507</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; psR.setInt(1, cveId);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;508</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; rsR = psR.executeQuery();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;509</td> <td class="nbHitsCovered"><a title="Line 509: Conditional coverage 100% (2/2).">&nbsp;491</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 509: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rsR.next()) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;510</td> <td class="nbHitsCovered">&nbsp;430</td> <td class="src"><pre class="src">&nbsp; vuln.addReference(rsR.getString(1), rsR.getString(2), rsR.getString(3));</pre></td></tr>
<tr> <td class="numLine">&nbsp;511</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;512</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; psS = getConnection().prepareStatement(SELECT_SOFTWARE);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;513</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; psS.setInt(1, cveId);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;514</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; rsS = psS.executeQuery();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;515</td> <td class="nbHitsCovered"><a title="Line 515: Conditional coverage 100% (2/2).">&nbsp;5530</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 515: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rsS.next()) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;516</td> <td class="nbHitsCovered">&nbsp;5408</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> String cpe = rsS.getString(1);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;517</td> <td class="nbHitsCovered">&nbsp;5408</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> String prevVersion = rsS.getString(2);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;518</td> <td class="nbHitsCovered"><a title="Line 518: Conditional coverage 100% (2/2).">&nbsp;5408</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 518: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (prevVersion == <span class="keyword">null</span>) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;519</td> <td class="nbHitsCovered">&nbsp;5324</td> <td class="src"><pre class="src">&nbsp; vuln.addVulnerableSoftware(cpe);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;512</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; psS = getConnection().prepareStatement(SELECT_SOFTWARE);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;513</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; psS.setInt(1, cveId);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;514</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; rsS = psS.executeQuery();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;515</td> <td class="nbHitsCovered"><a title="Line 515: Conditional coverage 100% (2/2).">&nbsp;2765</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 515: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rsS.next()) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;516</td> <td class="nbHitsCovered">&nbsp;2704</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> String cpe = rsS.getString(1);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;517</td> <td class="nbHitsCovered">&nbsp;2704</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> String prevVersion = rsS.getString(2);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;518</td> <td class="nbHitsCovered"><a title="Line 518: Conditional coverage 100% (2/2).">&nbsp;2704</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 518: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (prevVersion == <span class="keyword">null</span>) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;519</td> <td class="nbHitsCovered">&nbsp;2662</td> <td class="src"><pre class="src">&nbsp; vuln.addVulnerableSoftware(cpe);</pre></td></tr>
<tr> <td class="numLine">&nbsp;520</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; } <span class="keyword">else</span> {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;521</td> <td class="nbHitsCovered">&nbsp;84</td> <td class="src"><pre class="src">&nbsp; vuln.addVulnerableSoftware(cpe, prevVersion);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;521</td> <td class="nbHitsCovered">&nbsp;42</td> <td class="src"><pre class="src">&nbsp; vuln.addVulnerableSoftware(cpe, prevVersion);</pre></td></tr>
<tr> <td class="numLine">&nbsp;522</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;523</td> <td class="nbHitsCovered">&nbsp;5408</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;523</td> <td class="nbHitsCovered">&nbsp;2704</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;524</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;525</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;526</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; <span class="keyword">throw</span> <span class="keyword">new</span> DatabaseException(<span class="string">"Error retrieving "</span> + cve, ex);</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;527</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; } <span class="keyword">finally</span> {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;528</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; DBUtils.closeResultSet(rsV);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;529</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; DBUtils.closeResultSet(rsR);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;530</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; DBUtils.closeResultSet(rsS);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;531</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; DBUtils.closeStatement(psV);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;532</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; DBUtils.closeStatement(psR);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;533</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; DBUtils.closeStatement(psS);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;534</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;535</td> <td class="nbHitsCovered">&nbsp;122</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> vuln;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;528</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; DBUtils.closeResultSet(rsV);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;529</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; DBUtils.closeResultSet(rsR);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;530</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; DBUtils.closeResultSet(rsS);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;531</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; DBUtils.closeStatement(psV);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;532</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; DBUtils.closeStatement(psR);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;533</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; DBUtils.closeStatement(psS);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;534</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;535</td> <td class="nbHitsCovered">&nbsp;61</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> vuln;</pre></td></tr>
<tr> <td class="numLine">&nbsp;536</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;537</td> <td class="nbHits">&nbsp;</td>
@@ -1112,24 +1112,24 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;713</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> <span class="keyword">boolean</span> isAffected(String vendor, String product, DependencyVersion identifiedVersion, String cpeId, String previous) {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;714</td> <td class="nbHitsCovered">&nbsp;7064</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">boolean</span> affected = <span class="keyword">false</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;715</td> <td class="nbHitsCovered"><a title="Line 715: Conditional coverage 100% (4/4) [each condition: 100%, 100%].">&nbsp;7064</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 715: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">final</span> <span class="keyword">boolean</span> isStruts = <span class="string">"apache"</span>.equals(vendor) &amp;&amp; <span class="string">"struts"</span>.equals(product);</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;716</td> <td class="nbHitsCovered">&nbsp;7064</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> DependencyVersion v = parseDependencyVersion(cpeId);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;717</td> <td class="nbHitsUncovered"><a title="Line 717: Conditional coverage 75% (3/4) [each condition: 100%, 50%].">&nbsp;7064</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 717: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> <span class="keyword">final</span> <span class="keyword">boolean</span> prevAffected = previous != <span class="keyword">null</span> &amp;&amp; !previous.isEmpty();</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;718</td> <td class="nbHitsUncovered"><a title="Line 718: Conditional coverage 75% (3/4) [each condition: 50%, 100%].">&nbsp;7064</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 718: Conditional coverage 75% (3/4) [each condition: 50%, 100%]."> <span class="keyword">if</span> (identifiedVersion == <span class="keyword">null</span> || <span class="string">"-"</span>.equals(identifiedVersion.toString())) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;719</td> <td class="nbHitsUncovered"><a title="Line 719: Conditional coverage 50% (2/4) [each condition: 50%, 50%].">&nbsp;192</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 719: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> <span class="keyword">if</span> (v == <span class="keyword">null</span> || <span class="string">"-"</span>.equals(v.toString())) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;714</td> <td class="nbHitsCovered">&nbsp;3532</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">boolean</span> affected = <span class="keyword">false</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;715</td> <td class="nbHitsCovered"><a title="Line 715: Conditional coverage 100% (4/4) [each condition: 100%, 100%].">&nbsp;3532</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 715: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">final</span> <span class="keyword">boolean</span> isStruts = <span class="string">"apache"</span>.equals(vendor) &amp;&amp; <span class="string">"struts"</span>.equals(product);</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;716</td> <td class="nbHitsCovered">&nbsp;3532</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> DependencyVersion v = parseDependencyVersion(cpeId);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;717</td> <td class="nbHitsUncovered"><a title="Line 717: Conditional coverage 75% (3/4) [each condition: 100%, 50%].">&nbsp;3532</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 717: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> <span class="keyword">final</span> <span class="keyword">boolean</span> prevAffected = previous != <span class="keyword">null</span> &amp;&amp; !previous.isEmpty();</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;718</td> <td class="nbHitsUncovered"><a title="Line 718: Conditional coverage 75% (3/4) [each condition: 50%, 100%].">&nbsp;3532</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 718: Conditional coverage 75% (3/4) [each condition: 50%, 100%]."> <span class="keyword">if</span> (identifiedVersion == <span class="keyword">null</span> || <span class="string">"-"</span>.equals(identifiedVersion.toString())) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;719</td> <td class="nbHitsUncovered"><a title="Line 719: Conditional coverage 50% (2/4) [each condition: 50%, 50%].">&nbsp;96</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 719: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> <span class="keyword">if</span> (v == <span class="keyword">null</span> || <span class="string">"-"</span>.equals(v.toString())) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;720</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; affected = <span class="keyword">true</span>;</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;721</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;722</td> <td class="nbHitsCovered"><a title="Line 722: Conditional coverage 100% (6/6) [each condition: 100%, 100%, 100%].">&nbsp;6872</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 722: Conditional coverage 100% (6/6) [each condition: 100%, 100%, 100%]."> } <span class="keyword">else</span> <span class="keyword">if</span> (identifiedVersion.equals(v) || (prevAffected &amp;&amp; identifiedVersion.compareTo(v) &lt; 0)) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;723</td> <td class="nbHitsCovered"><a title="Line 723: Conditional coverage 100% (2/2).">&nbsp;166</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 723: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (isStruts) { <span class="comment">//struts 2 vulns don't affect struts 1</span></a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;724</td> <td class="nbHitsCovered"><a title="Line 724: Conditional coverage 100% (2/2).">&nbsp;144</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 724: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (identifiedVersion.getVersionParts().get(0).equals(v.getVersionParts().get(0))) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;725</td> <td class="nbHitsCovered">&nbsp;100</td> <td class="src"><pre class="src">&nbsp; affected = <span class="keyword">true</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;722</td> <td class="nbHitsCovered"><a title="Line 722: Conditional coverage 100% (6/6) [each condition: 100%, 100%, 100%].">&nbsp;3436</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 722: Conditional coverage 100% (6/6) [each condition: 100%, 100%, 100%]."> } <span class="keyword">else</span> <span class="keyword">if</span> (identifiedVersion.equals(v) || (prevAffected &amp;&amp; identifiedVersion.compareTo(v) &lt; 0)) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;723</td> <td class="nbHitsCovered"><a title="Line 723: Conditional coverage 100% (2/2).">&nbsp;83</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 723: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (isStruts) { <span class="comment">//struts 2 vulns don't affect struts 1</span></a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;724</td> <td class="nbHitsCovered"><a title="Line 724: Conditional coverage 100% (2/2).">&nbsp;72</a></td> <td class="src"><pre class="src">&nbsp;<a title="Line 724: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (identifiedVersion.getVersionParts().get(0).equals(v.getVersionParts().get(0))) {</a></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;725</td> <td class="nbHitsCovered">&nbsp;50</td> <td class="src"><pre class="src">&nbsp; affected = <span class="keyword">true</span>;</pre></td></tr>
<tr> <td class="numLine">&nbsp;726</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;727</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; } <span class="keyword">else</span> {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;728</td> <td class="nbHitsCovered">&nbsp;22</td> <td class="src"><pre class="src">&nbsp; affected = <span class="keyword">true</span>;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;728</td> <td class="nbHitsCovered">&nbsp;11</td> <td class="src"><pre class="src">&nbsp; affected = <span class="keyword">true</span>;</pre></td></tr>
<tr> <td class="numLine">&nbsp;729</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;730</td> <td class="nbHits">&nbsp;</td>
@@ -1142,7 +1142,7 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> * might also introduce false positives.</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;734</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;735</td> <td class="nbHitsCovered">&nbsp;7064</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> affected;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;735</td> <td class="nbHitsCovered">&nbsp;3532</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> affected;</pre></td></tr>
<tr> <td class="numLine">&nbsp;736</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;737</td> <td class="nbHits">&nbsp;</td>
@@ -1163,16 +1163,16 @@
<td class="src"><pre class="src">&nbsp;<span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;745</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> DependencyVersion parseDependencyVersion(String cpeStr) {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;746</td> <td class="nbHitsCovered">&nbsp;7064</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> VulnerableSoftware cpe = <span class="keyword">new</span> VulnerableSoftware();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;746</td> <td class="nbHitsCovered">&nbsp;3532</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">final</span> VulnerableSoftware cpe = <span class="keyword">new</span> VulnerableSoftware();</pre></td></tr>
<tr> <td class="numLine">&nbsp;747</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="keyword">try</span> {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;748</td> <td class="nbHitsCovered">&nbsp;7064</td> <td class="src"><pre class="src">&nbsp; cpe.parseName(cpeStr);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;748</td> <td class="nbHitsCovered">&nbsp;3532</td> <td class="src"><pre class="src">&nbsp; cpe.parseName(cpeStr);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;749</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; } <span class="keyword">catch</span> (UnsupportedEncodingException ex) {</span></pre></td></tr>
<tr> <td class="numLine">&nbsp;750</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; <span class="comment">//never going to happen.</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;751</td> <td class="nbHitsUncovered">&nbsp;0</td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp; Logger.getLogger(CveDB.<span class="keyword">class</span>.getName()).log(Level.FINEST, <span class="keyword">null</span>, ex);</span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;752</td> <td class="nbHitsCovered">&nbsp;7064</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;753</td> <td class="nbHitsCovered">&nbsp;7064</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> parseDependencyVersion(cpe);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;752</td> <td class="nbHitsCovered">&nbsp;3532</td> <td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;753</td> <td class="nbHitsCovered">&nbsp;3532</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> parseDependencyVersion(cpe);</pre></td></tr>
<tr> <td class="numLine">&nbsp;754</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;755</td> <td class="nbHits">&nbsp;</td>
@@ -1193,28 +1193,28 @@
<td class="src"><pre class="src">&nbsp; <span class="keyword">private</span> DependencyVersion parseDependencyVersion(VulnerableSoftware cpe) {</pre></td></tr>
<tr> <td class="numLine">&nbsp;763</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; DependencyVersion cpeVersion;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;764</td> <td class="nbHitsUncovered"><a title="Line 764: Conditional coverage 75% (3/4) [each condition: 100%, 50%].">&nbsp;7088</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 764: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> <span class="keyword">if</span> (cpe.getVersion() != <span class="keyword">null</span> &amp;&amp; cpe.getVersion().length() &gt; 0) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;764</td> <td class="nbHitsUncovered"><a title="Line 764: Conditional coverage 75% (3/4) [each condition: 100%, 50%].">&nbsp;3544</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 764: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> <span class="keyword">if</span> (cpe.getVersion() != <span class="keyword">null</span> &amp;&amp; cpe.getVersion().length() &gt; 0) {</a></span></pre></td></tr>
<tr> <td class="numLine">&nbsp;765</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; String versionText;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;766</td> <td class="nbHitsUncovered"><a title="Line 766: Conditional coverage 75% (3/4) [each condition: 100%, 50%].">&nbsp;7080</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 766: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> <span class="keyword">if</span> (cpe.getRevision() != <span class="keyword">null</span> &amp;&amp; cpe.getRevision().length() &gt; 0) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;767</td> <td class="nbHitsCovered">&nbsp;882</td> <td class="src"><pre class="src">&nbsp; versionText = String.format(<span class="string">"%s.%s"</span>, cpe.getVersion(), cpe.getRevision());</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;766</td> <td class="nbHitsUncovered"><a title="Line 766: Conditional coverage 75% (3/4) [each condition: 100%, 50%].">&nbsp;3540</a></td> <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 766: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> <span class="keyword">if</span> (cpe.getRevision() != <span class="keyword">null</span> &amp;&amp; cpe.getRevision().length() &gt; 0) {</a></span></pre></td></tr>
<tr> <td class="numLineCover">&nbsp;767</td> <td class="nbHitsCovered">&nbsp;441</td> <td class="src"><pre class="src">&nbsp; versionText = String.format(<span class="string">"%s.%s"</span>, cpe.getVersion(), cpe.getRevision());</pre></td></tr>
<tr> <td class="numLine">&nbsp;768</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; } <span class="keyword">else</span> {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;769</td> <td class="nbHitsCovered">&nbsp;6198</td> <td class="src"><pre class="src">&nbsp; versionText = cpe.getVersion();</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;769</td> <td class="nbHitsCovered">&nbsp;3099</td> <td class="src"><pre class="src">&nbsp; versionText = cpe.getVersion();</pre></td></tr>
<tr> <td class="numLine">&nbsp;770</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;771</td> <td class="nbHitsCovered">&nbsp;7080</td> <td class="src"><pre class="src">&nbsp; cpeVersion = DependencyVersionUtil.parseVersion(versionText);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;772</td> <td class="nbHitsCovered">&nbsp;7080</td> <td class="src"><pre class="src">&nbsp; } <span class="keyword">else</span> {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;773</td> <td class="nbHitsCovered">&nbsp;8</td> <td class="src"><pre class="src">&nbsp; cpeVersion = <span class="keyword">new</span> DependencyVersion(<span class="string">"-"</span>);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;771</td> <td class="nbHitsCovered">&nbsp;3540</td> <td class="src"><pre class="src">&nbsp; cpeVersion = DependencyVersionUtil.parseVersion(versionText);</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;772</td> <td class="nbHitsCovered">&nbsp;3540</td> <td class="src"><pre class="src">&nbsp; } <span class="keyword">else</span> {</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;773</td> <td class="nbHitsCovered">&nbsp;4</td> <td class="src"><pre class="src">&nbsp; cpeVersion = <span class="keyword">new</span> DependencyVersion(<span class="string">"-"</span>);</pre></td></tr>
<tr> <td class="numLine">&nbsp;774</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;775</td> <td class="nbHitsCovered">&nbsp;7088</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> cpeVersion;</pre></td></tr>
<tr> <td class="numLineCover">&nbsp;775</td> <td class="nbHitsCovered">&nbsp;3544</td> <td class="src"><pre class="src">&nbsp; <span class="keyword">return</span> cpeVersion;</pre></td></tr>
<tr> <td class="numLine">&nbsp;776</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp; }</pre></td></tr>
<tr> <td class="numLine">&nbsp;777</td> <td class="nbHits">&nbsp;</td>
<td class="src"><pre class="src">&nbsp;}</pre></td></tr>
</table>
<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 2.0.3 on 1/26/14 11:11 AM.</div>
<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 2.0.3 on 1/30/14 6:03 AM.</div>
</body>
</html>