diff --git a/dependency-check-ant/apidocs/allclasses-frame.html b/dependency-check-ant/apidocs/allclasses-frame.html index dcbb79c53..9422565ef 100644 --- a/dependency-check-ant/apidocs/allclasses-frame.html +++ b/dependency-check-ant/apidocs/allclasses-frame.html @@ -2,13 +2,13 @@ - + -All Classes (Dependency-Check Ant Task 1.0.5 API) +All Classes (Dependency-Check Ant Task 1.0.6 API) - + diff --git a/dependency-check-ant/apidocs/allclasses-noframe.html b/dependency-check-ant/apidocs/allclasses-noframe.html index f3af64e06..f00af7f92 100644 --- a/dependency-check-ant/apidocs/allclasses-noframe.html +++ b/dependency-check-ant/apidocs/allclasses-noframe.html @@ -2,13 +2,13 @@ - + -All Classes (Dependency-Check Ant Task 1.0.5 API) +All Classes (Dependency-Check Ant Task 1.0.6 API) - + diff --git a/dependency-check-ant/apidocs/constant-values.html b/dependency-check-ant/apidocs/constant-values.html index a6d216826..653424119 100644 --- a/dependency-check-ant/apidocs/constant-values.html +++ b/dependency-check-ant/apidocs/constant-values.html @@ -2,13 +2,13 @@ - + -Constant Field Values (Dependency-Check Ant Task 1.0.5 API) +Constant Field Values (Dependency-Check Ant Task 1.0.6 API) - + @@ -16,7 +16,7 @@ Constant Field Values (Dependency-Check Ant Task 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Constant Field Values (Dependency-Check Ant Task 1.0.5 API)"; + parent.document.title="Constant Field Values (Dependency-Check Ant Task 1.0.6 API)"; } } diff --git a/dependency-check-ant/apidocs/deprecated-list.html b/dependency-check-ant/apidocs/deprecated-list.html index 7053f6de6..da1793be4 100644 --- a/dependency-check-ant/apidocs/deprecated-list.html +++ b/dependency-check-ant/apidocs/deprecated-list.html @@ -2,13 +2,13 @@ - + -Deprecated List (Dependency-Check Ant Task 1.0.5 API) +Deprecated List (Dependency-Check Ant Task 1.0.6 API) - + @@ -16,7 +16,7 @@ Deprecated List (Dependency-Check Ant Task 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Deprecated List (Dependency-Check Ant Task 1.0.5 API)"; + parent.document.title="Deprecated List (Dependency-Check Ant Task 1.0.6 API)"; } } diff --git a/dependency-check-ant/apidocs/help-doc.html b/dependency-check-ant/apidocs/help-doc.html index 9cc849db0..b44903155 100644 --- a/dependency-check-ant/apidocs/help-doc.html +++ b/dependency-check-ant/apidocs/help-doc.html @@ -2,13 +2,13 @@ - + -API Help (Dependency-Check Ant Task 1.0.5 API) +API Help (Dependency-Check Ant Task 1.0.6 API) - + @@ -16,7 +16,7 @@ API Help (Dependency-Check Ant Task 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="API Help (Dependency-Check Ant Task 1.0.5 API)"; + parent.document.title="API Help (Dependency-Check Ant Task 1.0.6 API)"; } } diff --git a/dependency-check-ant/apidocs/index-all.html b/dependency-check-ant/apidocs/index-all.html index 3e3e3c5bb..44a9274f0 100644 --- a/dependency-check-ant/apidocs/index-all.html +++ b/dependency-check-ant/apidocs/index-all.html @@ -2,13 +2,13 @@ - + -Index (Dependency-Check Ant Task 1.0.5 API) +Index (Dependency-Check Ant Task 1.0.6 API) - + @@ -16,7 +16,7 @@ Index (Dependency-Check Ant Task 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Index (Dependency-Check Ant Task 1.0.5 API)"; + parent.document.title="Index (Dependency-Check Ant Task 1.0.6 API)"; } } @@ -143,6 +143,9 @@ Method in class org.owasp.dependencycheck.taskdefs.getReportOutputDirectory() - Method in class org.owasp.dependencycheck.taskdefs.DependencyCheckTask
Get the value of reportOutputDirectory. +
getSuppressionFile() - +Method in class org.owasp.dependencycheck.taskdefs.DependencyCheckTask +
Get the value of suppressionFile.
getValues() - Method in class org.owasp.dependencycheck.taskdefs.DependencyCheckTask.ReportFormats
Returns the list of values for the report format. @@ -212,6 +215,9 @@ Method in class org.owasp.dependencycheck.taskdefs.setReportOutputDirectory(String) - Method in class org.owasp.dependencycheck.taskdefs.DependencyCheckTask
Set the value of reportOutputDirectory. +
setSuppressionFile(String) - +Method in class org.owasp.dependencycheck.taskdefs.DependencyCheckTask +
Set the value of suppressionFile.
A D E G I O S diff --git a/dependency-check-ant/apidocs/index.html b/dependency-check-ant/apidocs/index.html index a0da21945..82753e608 100644 --- a/dependency-check-ant/apidocs/index.html +++ b/dependency-check-ant/apidocs/index.html @@ -2,10 +2,10 @@ - + -Dependency-Check Ant Task 1.0.5 API +Dependency-Check Ant Task 1.0.6 API diff --git a/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/DependencyCheckTask.html b/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/DependencyCheckTask.html index 43873caa2..3b2a693e6 100644 --- a/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/DependencyCheckTask.html +++ b/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/DependencyCheckTask.html @@ -2,13 +2,13 @@ - + -DependencyCheckTask (Dependency-Check Ant Task 1.0.5 API) +DependencyCheckTask (Dependency-Check Ant Task 1.0.6 API) - + @@ -16,7 +16,7 @@ DependencyCheckTask (Dependency-Check Ant Task 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="DependencyCheckTask (Dependency-Check Ant Task 1.0.5 API)"; + parent.document.title="DependencyCheckTask (Dependency-Check Ant Task 1.0.6 API)"; } } @@ -293,6 +293,14 @@ An Ant task definition to execute dependency-check during an Ant build. + String +getSuppressionFile() + +
+          Get the value of suppressionFile. + + +  boolean isAutoUpdate() @@ -412,6 +420,14 @@ An Ant task definition to execute dependency-check during an Ant build.
          Set the value of reportOutputDirectory. + + + void +setSuppressionFile(String suppressionFile) + +
+          Set the value of suppressionFile. +   @@ -839,6 +855,33 @@ public void setLogFile(

+getSuppressionFile

+
+public String getSuppressionFile()
+
+
Get the value of suppressionFile. +

+

+ +
Returns:
the value of suppressionFile
+
+
+
+ +

+setSuppressionFile

+
+public void setSuppressionFile(String suppressionFile)
+
+
Set the value of suppressionFile. +

+

+
Parameters:
suppressionFile - new value of suppressionFile
+
+
+
+

execute

diff --git a/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/class-use/DependencyCheckTask.ReportFormats.html b/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/class-use/DependencyCheckTask.ReportFormats.html
index 76fcdea26..0bfaf0635 100644
--- a/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/class-use/DependencyCheckTask.ReportFormats.html
+++ b/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/class-use/DependencyCheckTask.ReportFormats.html
@@ -2,13 +2,13 @@
 
 
 
-
+
 
 
-Uses of Class org.owasp.dependencycheck.taskdefs.DependencyCheckTask.ReportFormats (Dependency-Check Ant Task 1.0.5 API)
+Uses of Class org.owasp.dependencycheck.taskdefs.DependencyCheckTask.ReportFormats (Dependency-Check Ant Task 1.0.6 API)
 
 
-
+
 
 
 
@@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.taskdefs.DependencyCheckTask.ReportForma
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class org.owasp.dependencycheck.taskdefs.DependencyCheckTask.ReportFormats (Dependency-Check Ant Task 1.0.5 API)";
+        parent.document.title="Uses of Class org.owasp.dependencycheck.taskdefs.DependencyCheckTask.ReportFormats (Dependency-Check Ant Task 1.0.6 API)";
     }
 }
 
diff --git a/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/class-use/DependencyCheckTask.html b/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/class-use/DependencyCheckTask.html
index f88a66a65..6e644c874 100644
--- a/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/class-use/DependencyCheckTask.html
+++ b/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/class-use/DependencyCheckTask.html
@@ -2,13 +2,13 @@
 
 
 
-
+
 
 
-Uses of Class org.owasp.dependencycheck.taskdefs.DependencyCheckTask (Dependency-Check Ant Task 1.0.5 API)
+Uses of Class org.owasp.dependencycheck.taskdefs.DependencyCheckTask (Dependency-Check Ant Task 1.0.6 API)
 
 
-
+
 
 
 
@@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.taskdefs.DependencyCheckTask (Dependency
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Class org.owasp.dependencycheck.taskdefs.DependencyCheckTask (Dependency-Check Ant Task 1.0.5 API)";
+        parent.document.title="Uses of Class org.owasp.dependencycheck.taskdefs.DependencyCheckTask (Dependency-Check Ant Task 1.0.6 API)";
     }
 }
 
diff --git a/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-frame.html b/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-frame.html
index 7c9ffe05b..c1242dd71 100644
--- a/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-frame.html
+++ b/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-frame.html
@@ -2,13 +2,13 @@
 
 
 
-
+
 
 
-org.owasp.dependencycheck.taskdefs (Dependency-Check Ant Task 1.0.5 API)
+org.owasp.dependencycheck.taskdefs (Dependency-Check Ant Task 1.0.6 API)
 
 
-
+
 
 
 
diff --git a/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-summary.html b/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-summary.html
index cdd891875..d24c7ea7b 100644
--- a/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-summary.html
+++ b/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-summary.html
@@ -2,13 +2,13 @@
 
 
 
-
+
 
 
-org.owasp.dependencycheck.taskdefs (Dependency-Check Ant Task 1.0.5 API)
+org.owasp.dependencycheck.taskdefs (Dependency-Check Ant Task 1.0.6 API)
 
 
-
+
 
 
 
@@ -16,7 +16,7 @@ org.owasp.dependencycheck.taskdefs (Dependency-Check Ant Task 1.0.5 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="org.owasp.dependencycheck.taskdefs (Dependency-Check Ant Task 1.0.5 API)";
+        parent.document.title="org.owasp.dependencycheck.taskdefs (Dependency-Check Ant Task 1.0.6 API)";
     }
 }
 
diff --git a/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-tree.html b/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-tree.html
index da5856cfa..2e30783ef 100644
--- a/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-tree.html
+++ b/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-tree.html
@@ -2,13 +2,13 @@
 
 
 
-
+
 
 
-org.owasp.dependencycheck.taskdefs Class Hierarchy (Dependency-Check Ant Task 1.0.5 API)
+org.owasp.dependencycheck.taskdefs Class Hierarchy (Dependency-Check Ant Task 1.0.6 API)
 
 
-
+
 
 
 
@@ -16,7 +16,7 @@ org.owasp.dependencycheck.taskdefs Class Hierarchy (Dependency-Check Ant Task 1.
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="org.owasp.dependencycheck.taskdefs Class Hierarchy (Dependency-Check Ant Task 1.0.5 API)";
+        parent.document.title="org.owasp.dependencycheck.taskdefs Class Hierarchy (Dependency-Check Ant Task 1.0.6 API)";
     }
 }
 
diff --git a/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-use.html b/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-use.html
index 5f68894fa..b3dff47a8 100644
--- a/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-use.html
+++ b/dependency-check-ant/apidocs/org/owasp/dependencycheck/taskdefs/package-use.html
@@ -2,13 +2,13 @@
 
 
 
-
+
 
 
-Uses of Package org.owasp.dependencycheck.taskdefs (Dependency-Check Ant Task 1.0.5 API)
+Uses of Package org.owasp.dependencycheck.taskdefs (Dependency-Check Ant Task 1.0.6 API)
 
 
-
+
 
 
 
@@ -16,7 +16,7 @@ Uses of Package org.owasp.dependencycheck.taskdefs (Dependency-Check Ant Task 1.
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Uses of Package org.owasp.dependencycheck.taskdefs (Dependency-Check Ant Task 1.0.5 API)";
+        parent.document.title="Uses of Package org.owasp.dependencycheck.taskdefs (Dependency-Check Ant Task 1.0.6 API)";
     }
 }
 
diff --git a/dependency-check-ant/apidocs/overview-tree.html b/dependency-check-ant/apidocs/overview-tree.html
index 1ab493a98..1127097cf 100644
--- a/dependency-check-ant/apidocs/overview-tree.html
+++ b/dependency-check-ant/apidocs/overview-tree.html
@@ -2,13 +2,13 @@
 
 
 
-
+
 
 
-Class Hierarchy (Dependency-Check Ant Task 1.0.5 API)
+Class Hierarchy (Dependency-Check Ant Task 1.0.6 API)
 
 
-
+
 
 
 
@@ -16,7 +16,7 @@ Class Hierarchy (Dependency-Check Ant Task 1.0.5 API)
 function windowTitle()
 {
     if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="Class Hierarchy (Dependency-Check Ant Task 1.0.5 API)";
+        parent.document.title="Class Hierarchy (Dependency-Check Ant Task 1.0.6 API)";
     }
 }
 
diff --git a/dependency-check-ant/checkstyle.html b/dependency-check-ant/checkstyle.html
index 8824e6ab4..0e13d18b5 100644
--- a/dependency-check-ant/checkstyle.html
+++ b/dependency-check-ant/checkstyle.html
@@ -1,13 +1,13 @@
 
 
 
   
     
     
-    
+    
     
     dependency-check-ant - Checkstyle Results
     
@@ -54,7 +54,7 @@
                 
                     
                               
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • diff --git a/dependency-check-ant/cobertura/frame-sourcefiles-org.owasp.dependencycheck.taskdefs.html b/dependency-check-ant/cobertura/frame-sourcefiles-org.owasp.dependencycheck.taskdefs.html index 56f967182..1fa3510f1 100644 --- a/dependency-check-ant/cobertura/frame-sourcefiles-org.owasp.dependencycheck.taskdefs.html +++ b/dependency-check-ant/cobertura/frame-sourcefiles-org.owasp.dependencycheck.taskdefs.html @@ -15,7 +15,7 @@ org.owasp.dependencycheck.taskdefs
    - +
    DependencyCheckTask (55%)DependencyCheckTask (54%)
    diff --git a/dependency-check-ant/cobertura/frame-sourcefiles.html b/dependency-check-ant/cobertura/frame-sourcefiles.html index 49bc1258a..18211c2dd 100644 --- a/dependency-check-ant/cobertura/frame-sourcefiles.html +++ b/dependency-check-ant/cobertura/frame-sourcefiles.html @@ -15,7 +15,7 @@ All Packages - +
    DependencyCheckTask (55%)DependencyCheckTask (54%)
    diff --git a/dependency-check-ant/cobertura/frame-summary-org.owasp.dependencycheck.taskdefs.html b/dependency-check-ant/cobertura/frame-summary-org.owasp.dependencycheck.taskdefs.html index ff4b6b452..411eeedba 100644 --- a/dependency-check-ant/cobertura/frame-summary-org.owasp.dependencycheck.taskdefs.html +++ b/dependency-check-ant/cobertura/frame-summary-org.owasp.dependencycheck.taskdefs.html @@ -16,7 +16,7 @@ - +
    Package # Classes Line Coverage Branch Coverage Complexity
    org.owasp.dependencycheck.taskdefs2
    55%
    80/145
    39%
    25/64
    2.229
    org.owasp.dependencycheck.taskdefs2
    54%
    81/150
    38%
    26/68
    2.216
    - + diff --git a/dependency-check-ant/cobertura/frame-summary.html b/dependency-check-ant/cobertura/frame-summary.html index fc693fba4..330339eaa 100644 --- a/dependency-check-ant/cobertura/frame-summary.html +++ b/dependency-check-ant/cobertura/frame-summary.html @@ -16,8 +16,8 @@ - - + +
    Package # Classes Line Coverage Branch Coverage Complexity
    All Packages2
    55%
    80/145
    39%
    25/64
    2.229
    org.owasp.dependencycheck.taskdefs2
    55%
    80/145
    39%
    25/64
    2.229
    All Packages2
    54%
    81/150
    38%
    26/68
    2.216
    org.owasp.dependencycheck.taskdefs2
    54%
    81/150
    38%
    26/68
    2.216
    - + diff --git a/dependency-check-ant/cobertura/org.owasp.dependencycheck.taskdefs.DependencyCheckTask.html b/dependency-check-ant/cobertura/org.owasp.dependencycheck.taskdefs.DependencyCheckTask.html index f1927e87e..6c104fb65 100644 --- a/dependency-check-ant/cobertura/org.owasp.dependencycheck.taskdefs.DependencyCheckTask.html +++ b/dependency-check-ant/cobertura/org.owasp.dependencycheck.taskdefs.DependencyCheckTask.html @@ -12,8 +12,8 @@
     
    - - + +
    Classes in this File Line Coverage Branch Coverage Complexity
    DependencyCheckTask
    52%
    73/138
    37%
    23/62
    2.229
    DependencyCheckTask$ReportFormats
    100%
    7/7
    100%
    2/2
    2.229
    DependencyCheckTask
    51%
    74/143
    36%
    24/66
    2.216
    DependencyCheckTask$ReportFormats
    100%
    7/7
    100%
    2/2
    2.216
     
    @@ -616,407 +616,446 @@  324  0
             this.proxyPort = proxyPort;
     325  0
         }
     326   -
     
    +
         /**
     327   -
         /**
    -  328  
          * The Proxy username.
    +  328   +
          */
     329   -
          */
    -  330  
         private String proxyUsername;
    +  330   +
     
     331   -
     
    +
         /**
     332   -
         /**
    -  333  
          * Get the value of proxyUsername.
    +  333   +
          *
     334   -
          *
    -  335  
          * @return the value of proxyUsername
    +  335   +
          */
     336   -
          */
    -  337  
         public String getProxyUsername() {
    -  338  0
             return proxyUsername;
    +  337  0
             return proxyUsername;
    +  338   +
         }
     339   -
         }
    +
     
     340   -
     
    +
         /**
     341   -
         /**
    -  342  
          * Set the value of proxyUsername.
    +  342   +
          *
     343   -
          *
    -  344  
          * @param proxyUsername new value of proxyUsername
    +  344   +
          */
     345   -
          */
    -  346  
         public void setProxyUsername(String proxyUsername) {
    -  347  0
             this.proxyUsername = proxyUsername;
    -  348  0
         }
    +  346  0
             this.proxyUsername = proxyUsername;
    +  347  0
         }
    +  348   +
         /**
     349   -
     
    -  350   -
         /**
    -  351  
          * The Proxy password.
    -  352   +  350  
          */
    -  353   +  351  
         private String proxyPassword;
    +  352   +
     
    +  353   +
         /**
     354   -
     
    -  355   -
         /**
    -  356  
          * Get the value of proxyPassword.
    -  357   +  355  
          *
    -  358   +  356  
          * @return the value of proxyPassword
    -  359   +  357  
          */
    -  360   +  358  
         public String getProxyPassword() {
    -  361  0
             return proxyPassword;
    +  359  0
             return proxyPassword;
    +  360   +
         }
    +  361   +
     
     362   -
         }
    +
         /**
     363   -
     
    -  364   -
         /**
    -  365  
          * Set the value of proxyPassword.
    -  366   +  364  
          *
    -  367   +  365  
          * @param proxyPassword new value of proxyPassword
    -  368   +  366  
          */
    -  369   +  367  
         public void setProxyPassword(String proxyPassword) {
    -  370  0
             this.proxyPassword = proxyPassword;
    -  371  0
         }
    -  372   -
     
    -  373   +  368  0
             this.proxyPassword = proxyPassword;
    +  369  0
         }
    +  370  
         /**
    -  374   +  371  
          * The Connection Timeout.
    -  375   +  372  
          */
    -  376   +  373  
         private String connectionTimeout;
    -  377   +  374  
     
    -  378   +  375  
         /**
    -  379   +  376  
          * Get the value of connectionTimeout.
    -  380   +  377  
          *
    -  381   +  378  
          * @return the value of connectionTimeout
    -  382   +  379  
          */
    -  383   +  380  
         public String getConnectionTimeout() {
    -  384  0
             return connectionTimeout;
    +  381  0
             return connectionTimeout;
    +  382   +
         }
    +  383   +
     
    +  384   +
         /**
     385   -
         }
    -  386   -
     
    -  387   -
         /**
    -  388  
          * Set the value of connectionTimeout.
    -  389   +  386  
          *
    -  390   +  387  
          * @param connectionTimeout new value of connectionTimeout
    -  391   +  388  
          */
    -  392   +  389  
         public void setConnectionTimeout(String connectionTimeout) {
    -  393  0
             this.connectionTimeout = connectionTimeout;
    -  394  0
         }
    -  395   +  390  0
             this.connectionTimeout = connectionTimeout;
    +  391  0
         }
    +  392  
         /**
    -  396   +  393  
          * The file path used for verbose logging.
    +  394   +
          */
    +  395  4
         private String logFile = null;
    +  396   +
     
     397   -
          */
    -  398  4
         private String logFile = null;
    -  399   -
     
    -  400  
         /**
    -  401   +  398  
          * Get the value of logFile.
    -  402   +  399  
          *
    -  403   +  400  
          * @return the value of logFile
    -  404   +  401  
          */
    -  405   +  402  
         public String getLogFile() {
    -  406  0
             return logFile;
    -  407   +  403  0
             return logFile;
    +  404  
         }
    -  408   +  405  
     
    -  409   +  406  
         /**
    -  410   +  407  
          * Set the value of logFile.
    -  411   +  408  
          *
    -  412   +  409  
          * @param logFile new value of logFile
    -  413   +  410  
          */
    -  414   +  411  
         public void setLogFile(String logFile) {
    -  415  0
             this.logFile = logFile;
    -  416  0
         }
    +  412  0
             this.logFile = logFile;
    +  413  0
         }
    +  414   +
         /**
    +  415   +
          * The path to the suppression file.
    +  416   +
          */
     417   -
     
    +
         private String suppressionFile;
     418   -
         @Override
    +
     
     419   -
         public void execute() throws BuildException {
    -  420  4
             final InputStream in = DependencyCheckTask.class.getClassLoader().getResourceAsStream(LOG_PROPERTIES_FILE);
    -  421  4
             LogUtils.prepareLogger(in, logFile);
    +
         /**
    +  420   +
          * Get the value of suppressionFile.
    +  421   +
          *
     422   -
     
    -  423  4
             dealWithReferences();
    -  424  4
             validateConfiguration();
    -  425  3
             populateSettings();
    +
          * @return the value of suppressionFile
    +  423   +
          */
    +  424   +
         public String getSuppressionFile() {
    +  425  0
             return suppressionFile;
     426   +
         }
    +  427   +
     
    +  428   +
         /**
    +  429   +
          * Set the value of suppressionFile.
    +  430   +
          *
    +  431   +
          * @param suppressionFile new value of suppressionFile
    +  432   +
          */
    +  433   +
         public void setSuppressionFile(String suppressionFile) {
    +  434  0
             this.suppressionFile = suppressionFile;
    +  435  0
         }
    +  436  
     
    -  427  3
             final Engine engine = new Engine();
    -  428  3
             for (Resource resource : path) {
    -  429  5
                 final FileProvider provider = resource.as(FileProvider.class);
    -  430  5
                 if (provider != null) {
    -  431  5
                     final File file = provider.getFile();
    -  432  5
                     if (file != null && file.exists()) {
    -  433  4
                         engine.scan(file);
    -  434   -
                     }
    -  435   -
                 }
    -  436  5
             }
     437   -
             try {
    -  438  3
                 engine.analyzeDependencies();
    -  439  3
                 final ReportGenerator reporter = new ReportGenerator(applicationName, engine.getDependencies(), engine.getAnalyzers());
    -  440  3
                 reporter.generateReports(reportOutputDirectory, reportFormat);
    +
         @Override
    +  438   +
         public void execute() throws BuildException {
    +  439  4
             final InputStream in = DependencyCheckTask.class.getClassLoader().getResourceAsStream(LOG_PROPERTIES_FILE);
    +  440  4
             LogUtils.prepareLogger(in, logFile);
     441  
     
    -  442  3
                 if (this.failBuildOnCVSS <= 10) {
    -  443  0
                     checkForFailure(engine.getDependencies());
    -  444   -
                 }
    -  445  0
             } catch (IOException ex) {
    -  446  0
                 Logger.getLogger(DependencyCheckTask.class.getName()).log(Level.FINE, null, ex);
    -  447  0
                 throw new BuildException("Unable to generate dependency-check report", ex);
    -  448  0
             } catch (Exception ex) {
    -  449  0
                 Logger.getLogger(DependencyCheckTask.class.getName()).log(Level.SEVERE, null, ex);
    -  450  0
                 throw new BuildException("An exception occured; unable to continue task", ex);
    -  451  3
             }
    -  452  3
         }
    +  442  4
             dealWithReferences();
    +  443  4
             validateConfiguration();
    +  444  3
             populateSettings();
    +  445   +
     
    +  446  3
             final Engine engine = new Engine();
    +  447  3
             for (Resource resource : path) {
    +  448  5
                 final FileProvider provider = resource.as(FileProvider.class);
    +  449  5
                 if (provider != null) {
    +  450  5
                     final File file = provider.getFile();
    +  451  5
                     if (file != null && file.exists()) {
    +  452  4
                         engine.scan(file);
     453   -
     
    +
                     }
     454   -
         /**
    -  455   -
          * Validate the configuration to ensure the parameters have been properly
    -  456   -
          * configured/initialized.
    -  457   -
          *
    -  458   -
          * @throws BuildException if the task was not configured correctly.
    -  459   -
          */
    -  460   -
         private void validateConfiguration() throws BuildException {
    -  461  4
             if (path == null) {
    -  462  1
                 throw new BuildException("No project dependencies have been defined to analyze.");
    -  463   -
             }
    -  464  3
             if (failBuildOnCVSS < 0 || failBuildOnCVSS > 11) {
    -  465  0
                 throw new BuildException("Invalid configuration, failBuildOnCVSS must be between 0 and 11.");
    -  466   -
             }
    -  467  3
         }
    -  468   -
     
    -  469   -
         /**
    -  470   -
          * Takes the properties supplied and updates the dependency-check settings.
    -  471   -
          * Additionally, this sets the system properties required to change the
    -  472   -
          * proxy url, port, and connection timeout.
    -  473   -
          */
    -  474   -
         private void populateSettings() {
    -  475  3
             InputStream taskProperties = null;
    -  476   -
             try {
    -  477  3
                 taskProperties = this.getClass().getClassLoader().getResourceAsStream(PROPERTIES_FILE);
    -  478  3
                 Settings.mergeProperties(taskProperties);
    -  479  0
             } catch (IOException ex) {
    -  480  0
                 Logger.getLogger(DependencyCheckTask.class.getName()).log(Level.WARNING, "Unable to load the dependency-check ant task.properties file.");
    -  481  0
                 Logger.getLogger(DependencyCheckTask.class.getName()).log(Level.FINE, null, ex);
    -  482   -
             } finally {
    -  483  3
                 if (taskProperties != null) {
    -  484   -
                     try {
    -  485  3
                         taskProperties.close();
    -  486  0
                     } catch (IOException ex) {
    -  487  0
                         Logger.getLogger(DependencyCheckTask.class.getName()).log(Level.FINEST, null, ex);
    -  488  3
                     }
    -  489  
                 }
    +  455  5
             }
    +  456   +
             try {
    +  457  3
                 engine.analyzeDependencies();
    +  458  3
                 final ReportGenerator reporter = new ReportGenerator(applicationName, engine.getDependencies(), engine.getAnalyzers());
    +  459  3
                 reporter.generateReports(reportOutputDirectory, reportFormat);
    +  460   +
     
    +  461  3
                 if (this.failBuildOnCVSS <= 10) {
    +  462  0
                     checkForFailure(engine.getDependencies());
    +  463   +
                 }
    +  464  0
             } catch (IOException ex) {
    +  465  0
                 Logger.getLogger(DependencyCheckTask.class.getName()).log(Level.FINE, null, ex);
    +  466  0
                 throw new BuildException("Unable to generate dependency-check report", ex);
    +  467  0
             } catch (Exception ex) {
    +  468  0
                 Logger.getLogger(DependencyCheckTask.class.getName()).log(Level.SEVERE, null, ex);
    +  469  0
                 throw new BuildException("An exception occured; unable to continue task", ex);
    +  470  3
             }
    +  471  3
         }
    +  472   +
     
    +  473   +
         /**
    +  474   +
          * Validate the configuration to ensure the parameters have been properly
    +  475   +
          * configured/initialized.
    +  476   +
          *
    +  477   +
          * @throws BuildException if the task was not configured correctly.
    +  478   +
          */
    +  479   +
         private void validateConfiguration() throws BuildException {
    +  480  4
             if (path == null) {
    +  481  1
                 throw new BuildException("No project dependencies have been defined to analyze.");
    +  482   +
             }
    +  483  3
             if (failBuildOnCVSS < 0 || failBuildOnCVSS > 11) {
    +  484  0
                 throw new BuildException("Invalid configuration, failBuildOnCVSS must be between 0 and 11.");
    +  485   +
             }
    +  486  3
         }
    +  487   +
     
    +  488   +
         /**
    +  489   +
          * Takes the properties supplied and updates the dependency-check settings.
     490   -
             }
    -  491  3
             if (dataDirectory != null) {
    -  492  0
                 Settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDirectory);
    +
          * Additionally, this sets the system properties required to change the
    +  491   +
          * proxy url, port, and connection timeout.
    +  492   +
          */
     493   -
             } else {
    -  494  3
                 final File jarPath = new File(DependencyCheckTask.class.getProtectionDomain().getCodeSource().getLocation().getPath());
    -  495  3
                 final File base = jarPath.getParentFile();
    -  496  3
                 final String sub = Settings.getString(Settings.KEYS.DATA_DIRECTORY);
    -  497  3
                 final File dataDir = new File(base, sub);
    -  498  3
                 Settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDir.getAbsolutePath());
    -  499   -
             }
    -  500   -
     
    -  501  3
             Settings.setBoolean(Settings.KEYS.AUTO_UPDATE, autoUpdate);
    -  502   -
     
    -  503  3
             if (proxyUrl != null && !proxyUrl.isEmpty()) {
    -  504  0
                 Settings.setString(Settings.KEYS.PROXY_URL, proxyUrl);
    -  505   -
             }
    -  506  3
             if (proxyPort != null && !proxyPort.isEmpty()) {
    -  507  0
                 Settings.setString(Settings.KEYS.PROXY_PORT, proxyPort);
    +
         private void populateSettings() {
    +  494  3
             InputStream taskProperties = null;
    +  495   +
             try {
    +  496  3
                 taskProperties = this.getClass().getClassLoader().getResourceAsStream(PROPERTIES_FILE);
    +  497  3
                 Settings.mergeProperties(taskProperties);
    +  498  0
             } catch (IOException ex) {
    +  499  0
                 Logger.getLogger(DependencyCheckTask.class.getName()).log(Level.WARNING, "Unable to load the dependency-check ant task.properties file.");
    +  500  0
                 Logger.getLogger(DependencyCheckTask.class.getName()).log(Level.FINE, null, ex);
    +  501   +
             } finally {
    +  502  3
                 if (taskProperties != null) {
    +  503   +
                     try {
    +  504  3
                         taskProperties.close();
    +  505  0
                     } catch (IOException ex) {
    +  506  0
                         Logger.getLogger(DependencyCheckTask.class.getName()).log(Level.FINEST, null, ex);
    +  507  3
                     }
     508   +
                 }
    +  509  
             }
    -  509  3
             if (proxyUsername != null && !proxyUsername.isEmpty()) {
    -  510  0
                 Settings.setString(Settings.KEYS.PROXY_USERNAME, proxyUsername);
    -  511   +  510  3
             if (dataDirectory != null) {
    +  511  0
                 Settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDirectory);
    +  512   +
             } else {
    +  513  3
                 final File jarPath = new File(DependencyCheckTask.class.getProtectionDomain().getCodeSource().getLocation().getPath());
    +  514  3
                 final File base = jarPath.getParentFile();
    +  515  3
                 final String sub = Settings.getString(Settings.KEYS.DATA_DIRECTORY);
    +  516  3
                 final File dataDir = new File(base, sub);
    +  517  3
                 Settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDir.getAbsolutePath());
    +  518  
             }
    -  512  3
             if (proxyPassword != null && !proxyPassword.isEmpty()) {
    -  513  0
                 Settings.setString(Settings.KEYS.PROXY_PASSWORD, proxyPassword);
    -  514   -
             }
    -  515  3
             if (connectionTimeout != null && !connectionTimeout.isEmpty()) {
    -  516  0
                 Settings.setString(Settings.KEYS.CONNECTION_TIMEOUT, connectionTimeout);
    -  517   -
             }
    -  518  3
         }
     519  
     
    -  520   -
         /**
    +  520  3
             Settings.setBoolean(Settings.KEYS.AUTO_UPDATE, autoUpdate);
     521   -
          * Checks to see if a vulnerability has been identified with a CVSS score
    -  522   -
          * that is above the threshold set in the configuration.
    -  523   -
          *
    +
     
    +  522  3
             if (proxyUrl != null && !proxyUrl.isEmpty()) {
    +  523  0
                 Settings.setString(Settings.KEYS.PROXY_URL, proxyUrl);
     524   -
          * @param dependencies the list of dependency objects
    -  525   -
          * @throws BuildException thrown if a CVSS score is found that is higher
    -  526   -
          * then the threshold set
    +
             }
    +  525  3
             if (proxyPort != null && !proxyPort.isEmpty()) {
    +  526  0
                 Settings.setString(Settings.KEYS.PROXY_PORT, proxyPort);
     527   -
          */
    -  528   -
         private void checkForFailure(List<Dependency> dependencies) throws BuildException {
    -  529  0
             final StringBuilder ids = new StringBuilder();
    -  530  0
             for (Dependency d : dependencies) {
    -  531  0
                 for (Vulnerability v : d.getVulnerabilities()) {
    -  532  0
                     if (v.getCvssScore() >= failBuildOnCVSS) {
    -  533  0
                         if (ids.length() == 0) {
    -  534  0
                             ids.append(v.getName());
    -  535   -
                         } else {
    -  536  0
                             ids.append(", ").append(v.getName());
    -  537   -
                         }
    -  538   -
                     }
    +
             }
    +  528  3
             if (proxyUsername != null && !proxyUsername.isEmpty()) {
    +  529  0
                 Settings.setString(Settings.KEYS.PROXY_USERNAME, proxyUsername);
    +  530   +
             }
    +  531  3
             if (proxyPassword != null && !proxyPassword.isEmpty()) {
    +  532  0
                 Settings.setString(Settings.KEYS.PROXY_PASSWORD, proxyPassword);
    +  533   +
             }
    +  534  3
             if (connectionTimeout != null && !connectionTimeout.isEmpty()) {
    +  535  0
                 Settings.setString(Settings.KEYS.CONNECTION_TIMEOUT, connectionTimeout);
    +  536   +
             }
    +  537  3
             if (suppressionFile != null && !suppressionFile.isEmpty()) {
    +  538  0
                 Settings.setString(Settings.KEYS.SUPPRESSION_FILE, suppressionFile);
     539   -
                 }
    -  540  
             }
    -  541  0
             if (ids.length() > 0) {
    -  542  0
                 final String msg = String.format("%n%nDependency-Check Failure:%n"
    -  543   -
                         + "One or more dependencies were identified with vulnerabilities that have a CVSS score greater then '%.1f': %s%n"
    -  544   -
                         + "See the dependency-check report for more details.%n%n", failBuildOnCVSS, ids.toString());
    -  545  0
                 throw new BuildException(msg);
    -  546   -
             }
    -  547  0
         }
    -  548   +  540  3
         }
    +  541  
     
    -  549   +  542  
         /**
    -  550   -
          * An enumeration of supported report formats: "ALL", "HTML", "XML", "VULN",
    -  551   -
          * etc..
    -  552   +  543   +
          * Checks to see if a vulnerability has been identified with a CVSS score
    +  544   +
          * that is above the threshold set in the configuration.
    +  545   +
          *
    +  546   +
          * @param dependencies the list of dependency objects
    +  547   +
          * @throws BuildException thrown if a CVSS score is found that is higher
    +  548   +
          * then the threshold set
    +  549  
          */
    -  553  4
         public static class ReportFormats extends EnumeratedAttribute {
    -  554   -
     
    -  555   -
             /**
    -  556   -
              * Returns the list of values for the report format.
    +  550   +
         private void checkForFailure(List<Dependency> dependencies) throws BuildException {
    +  551  0
             final StringBuilder ids = new StringBuilder();
    +  552  0
             for (Dependency d : dependencies) {
    +  553  0
                 for (Vulnerability v : d.getVulnerabilities()) {
    +  554  0
                     if (v.getCvssScore() >= failBuildOnCVSS) {
    +  555  0
                         if (ids.length() == 0) {
    +  556  0
                             ids.append(v.getName());
     557   -
              *
    -  558   -
              * @return the list of values for the report format
    +
                         } else {
    +  558  0
                             ids.append(", ").append(v.getName());
     559   -
              */
    +
                         }
     560   -
             @Override
    +
                     }
     561   -
             public String[] getValues() {
    -  562  4
                 int i = 0;
    -  563  4
                 final Format[] formats = Format.values();
    -  564  4
                 final String[] values = new String[formats.length];
    -  565  20
                 for (Format format : formats) {
    -  566  16
                     values[i++] = format.name();
    -  567  
                 }
    -  568  4
                 return values;
    -  569   +  562  
             }
    +  563  0
             if (ids.length() > 0) {
    +  564  0
                 final String msg = String.format("%n%nDependency-Check Failure:%n"
    +  565   +
                         + "One or more dependencies were identified with vulnerabilities that have a CVSS score greater then '%.1f': %s%n"
    +  566   +
                         + "See the dependency-check report for more details.%n%n", failBuildOnCVSS, ids.toString());
    +  567  0
                 throw new BuildException(msg);
    +  568   +
             }
    +  569  0
         }
     570   -
         }
    +
     
     571   +
         /**
    +  572   +
          * An enumeration of supported report formats: "ALL", "HTML", "XML", "VULN",
    +  573   +
          * etc..
    +  574   +
          */
    +  575  4
         public static class ReportFormats extends EnumeratedAttribute {
    +  576   +
     
    +  577   +
             /**
    +  578   +
              * Returns the list of values for the report format.
    +  579   +
              *
    +  580   +
              * @return the list of values for the report format
    +  581   +
              */
    +  582   +
             @Override
    +  583   +
             public String[] getValues() {
    +  584  4
                 int i = 0;
    +  585  4
                 final Format[] formats = Format.values();
    +  586  4
                 final String[] values = new String[formats.length];
    +  587  20
                 for (Format format : formats) {
    +  588  16
                     values[i++] = format.name();
    +  589   +
                 }
    +  590  4
                 return values;
    +  591   +
             }
    +  592   +
         }
    +  593  
     }
    - + diff --git a/dependency-check-ant/configuration.html b/dependency-check-ant/configuration.html index 4a2b86e25..11a38d6d4 100644 --- a/dependency-check-ant/configuration.html +++ b/dependency-check-ant/configuration.html @@ -1,13 +1,13 @@ - + dependency-check-ant - @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -240,6 +240,15 @@ +SuppressionFile + +An XML file conforming to the suppression schema that suppresses findings; this is used to hide false positives. + +Optional + + + + ProxyUrl Defines the proxy used to connect to the Internet. @@ -247,7 +256,7 @@ Optional - + ProxyPort @@ -256,7 +265,7 @@ Optional - + ProxyUsername @@ -265,7 +274,7 @@ Optional - + ProxyPassword @@ -274,7 +283,7 @@ Optional - + ConnectionTimeout diff --git a/dependency-check-ant/cpd.html b/dependency-check-ant/cpd.html index 47ef1f7ed..06a4cba09 100644 --- a/dependency-check-ant/cpd.html +++ b/dependency-check-ant/cpd.html @@ -1,13 +1,13 @@ - + dependency-check-ant - CPD Results @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • diff --git a/dependency-check-ant/dependency-updates-report.html b/dependency-check-ant/dependency-updates-report.html index 349a6d769..1f17aaebc 100644 --- a/dependency-check-ant/dependency-updates-report.html +++ b/dependency-check-ant/dependency-updates-report.html @@ -1,13 +1,13 @@ - + dependency-check-ant - Dependency Updates Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -312,7 +312,7 @@ org.owasp dependency-check-core -1.0.5 +1.0.6 compile jar @@ -427,7 +427,7 @@ dependency-check-core Current Version -1.0.5 +1.0.6 Scope compile diff --git a/dependency-check-ant/findbugs.html b/dependency-check-ant/findbugs.html index 800ca1201..0caf4e9ba 100644 --- a/dependency-check-ant/findbugs.html +++ b/dependency-check-ant/findbugs.html @@ -1,13 +1,13 @@ - + dependency-check-ant - FindBugs Bug Detector Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -271,7 +271,7 @@ Inconsistent synchronization of org.owasp.dependencycheck.taskdefs.DependencyCheckTask.path; locked 44% of time MT_CORRECTNESS IS2_INCONSISTENT_SYNC -428 +447 Medium diff --git a/dependency-check-ant/index.html b/dependency-check-ant/index.html index c2130aceb..1df80f620 100644 --- a/dependency-check-ant/index.html +++ b/dependency-check-ant/index.html @@ -1,13 +1,13 @@ - + dependency-check-ant - About @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • diff --git a/dependency-check-ant/installation.html b/dependency-check-ant/installation.html index 4f3d0423c..d848e93ee 100644 --- a/dependency-check-ant/installation.html +++ b/dependency-check-ant/installation.html @@ -1,13 +1,13 @@ - + dependency-check-ant - @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -145,7 +145,7 @@

    Installation

    -

    Download dependency-check-ant from bintray here. To install dependency-check-ant place the dependency-check-ant-1.0.5.jar into the lib directory of your Ant instalation directory. Once installed you can add the taskdef to you build.xml and add the task to a new or existing target.

    +

    Download dependency-check-ant from bintray here. To install dependency-check-ant place the dependency-check-ant-1.0.6.jar into the lib directory of your Ant instalation directory. Once installed you can add the taskdef to you build.xml and add the task to a new or existing target.

    It is important to understand that the first time this task is executed it may take 20 minutes or more as it downloads and processes the data from the National Vulnerability Database (NVD) hosted by NIST: https://nvd.nist.gov

    After the first batch download, as long as the task is executed at least once every seven days the update will only take a few seconds.

    diff --git a/dependency-check-ant/license.html b/dependency-check-ant/license.html index ec2703e1d..b86a2fc51 100644 --- a/dependency-check-ant/license.html +++ b/dependency-check-ant/license.html @@ -1,13 +1,13 @@ - + dependency-check-ant - Project License @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • diff --git a/dependency-check-ant/plugin-updates-report.html b/dependency-check-ant/plugin-updates-report.html index 42339fca5..2d6348223 100644 --- a/dependency-check-ant/plugin-updates-report.html +++ b/dependency-check-ant/plugin-updates-report.html @@ -1,13 +1,13 @@ - + dependency-check-ant - Plugin Updates Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -237,7 +237,7 @@ # of plugins using the latest version available -4 +3 # of plugins where the next version available is smaller than an incremental version update @@ -249,7 +249,7 @@ # of plugins where the next version available is a minor version update -9 +10 # of plugins where the next version available is a major version update @@ -257,7 +257,7 @@ # of plugins where a dependencies section containes a dependency with an updated version -0 +1

    Plugin Management

    @@ -425,17 +425,17 @@ - + - - + + - + @@ -443,7 +443,7 @@ - + @@ -710,7 +710,7 @@
    org.apache.maven.plugins maven-shade-plugin2.12.1 2.2
    org.apache.maven.plugins maven-site-plugin 3.3
    org.apache.maven.plugins
    - + @@ -719,7 +719,10 @@ -
    Status No newer versions available.
     There is at least one newer minor version available. Minor updates are sometimes passive.
    Group Id org.apache.maven.plugins
    maven-shade-plugin
    Current Version2.1
    +2.1 + +Newer versions +2.2 Next Minor

    Plugin org.apache.maven.plugins:maven-site-plugin

    @@ -750,7 +753,7 @@ - + @@ -758,7 +761,7 @@ - + @@ -776,7 +779,7 @@
    Next Minor Next Major
    org.apache.maven.doxia doxia-module-markdown 1.4jar 1.5
    Status
    - + @@ -791,7 +794,10 @@ -
    Status No newer versions available.
     There is at least one newer minor version available. Minor updates are sometimes passive.
    Group Id org.apache.maven.doxia
    Typejar
    +jar + +Newer versions +1.5 Next Minor

    Plugin org.apache.maven.plugins:maven-surefire-plugin

    diff --git a/dependency-check-ant/pmd.html b/dependency-check-ant/pmd.html index bc3bacbc8..1e8364ab8 100644 --- a/dependency-check-ant/pmd.html +++ b/dependency-check-ant/pmd.html @@ -1,13 +1,13 @@ - + dependency-check-ant - PMD Results @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • diff --git a/dependency-check-ant/project-info.html b/dependency-check-ant/project-info.html index 50f39de91..e54f44757 100644 --- a/dependency-check-ant/project-info.html +++ b/dependency-check-ant/project-info.html @@ -1,13 +1,13 @@ - + dependency-check-ant - Project Information @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • diff --git a/dependency-check-ant/project-reports.html b/dependency-check-ant/project-reports.html index e1df876e8..850455a93 100644 --- a/dependency-check-ant/project-reports.html +++ b/dependency-check-ant/project-reports.html @@ -1,13 +1,13 @@ - + dependency-check-ant - Generated Reports @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • diff --git a/dependency-check-ant/project-summary.html b/dependency-check-ant/project-summary.html index baab921e5..b9faad134 100644 --- a/dependency-check-ant/project-summary.html +++ b/dependency-check-ant/project-summary.html @@ -1,13 +1,13 @@ - + dependency-check-ant - Project Summary @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -210,7 +210,7 @@ - + diff --git a/dependency-check-ant/surefire-report.html b/dependency-check-ant/surefire-report.html index f90721b47..0c750b035 100644 --- a/dependency-check-ant/surefire-report.html +++ b/dependency-check-ant/surefire-report.html @@ -1,13 +1,13 @@ - + dependency-check-ant - Surefire Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -266,7 +266,7 @@ function toggleDisplay(elementId) { -
    dependency-check-ant
    Version1.0.5
    1.0.6
    Type jar
    0 0 100%10.772

    +62.339

    Note: failures are anticipated and checked for with assertions while errors are unanticipated.


    Package List

    @@ -287,7 +287,7 @@ function toggleDisplay(elementId) { 0 0 100% -10.772
    +62.339

    Note: package statistics are not computed recursively, they only sum up all of its testsuites numbers.

    org.owasp.dependencycheck.taskdefs

    @@ -309,7 +309,7 @@ function toggleDisplay(elementId) { 0 0 100% -10.772

    +62.339

    Test Cases

    [Summary] [Package List] [Test Cases]

    @@ -319,19 +319,19 @@ function toggleDisplay(elementId) { testGetFailBuildOnCVSS -0.459 +3.315 testAddDirSet -4.502 +21.118 testAddFileSet -3.329 +18.677 testAddFileList -2.482

    +19.229
    diff --git a/dependency-check-ant/taglist.html b/dependency-check-ant/taglist.html index 4881aa262..cf71a2661 100644 --- a/dependency-check-ant/taglist.html +++ b/dependency-check-ant/taglist.html @@ -1,13 +1,13 @@ - + dependency-check-ant - Tag List report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • diff --git a/dependency-check-ant/usage.html b/dependency-check-ant/usage.html index 37cc0babd..8e517da1e 100644 --- a/dependency-check-ant/usage.html +++ b/dependency-check-ant/usage.html @@ -1,13 +1,13 @@ - + dependency-check-ant - @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • diff --git a/dependency-check-ant/xref-test/index.html b/dependency-check-ant/xref-test/index.html index 078a0c055..906236863 100644 --- a/dependency-check-ant/xref-test/index.html +++ b/dependency-check-ant/xref-test/index.html @@ -3,7 +3,7 @@ - Dependency-Check Ant Task 1.0.5 Reference + Dependency-Check Ant Task 1.0.6 Reference diff --git a/dependency-check-ant/xref-test/org/owasp/dependencycheck/taskdefs/package-frame.html b/dependency-check-ant/xref-test/org/owasp/dependencycheck/taskdefs/package-frame.html index 0cbf5be09..bbfd2eee3 100644 --- a/dependency-check-ant/xref-test/org/owasp/dependencycheck/taskdefs/package-frame.html +++ b/dependency-check-ant/xref-test/org/owasp/dependencycheck/taskdefs/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Ant Task 1.0.5 Reference Package org.owasp.dependencycheck.taskdefs + Dependency-Check Ant Task 1.0.6 Reference Package org.owasp.dependencycheck.taskdefs diff --git a/dependency-check-ant/xref-test/org/owasp/dependencycheck/taskdefs/package-summary.html b/dependency-check-ant/xref-test/org/owasp/dependencycheck/taskdefs/package-summary.html index 1000cdd02..a253f97e7 100644 --- a/dependency-check-ant/xref-test/org/owasp/dependencycheck/taskdefs/package-summary.html +++ b/dependency-check-ant/xref-test/org/owasp/dependencycheck/taskdefs/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Ant Task 1.0.5 Reference Package org.owasp.dependencycheck.taskdefs + Dependency-Check Ant Task 1.0.6 Reference Package org.owasp.dependencycheck.taskdefs diff --git a/dependency-check-ant/xref-test/overview-frame.html b/dependency-check-ant/xref-test/overview-frame.html index 5575e7614..abb951f90 100644 --- a/dependency-check-ant/xref-test/overview-frame.html +++ b/dependency-check-ant/xref-test/overview-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Ant Task 1.0.5 Reference + Dependency-Check Ant Task 1.0.6 Reference diff --git a/dependency-check-ant/xref-test/overview-summary.html b/dependency-check-ant/xref-test/overview-summary.html index 2f05e62d8..6d67d4d19 100644 --- a/dependency-check-ant/xref-test/overview-summary.html +++ b/dependency-check-ant/xref-test/overview-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Ant Task 1.0.5 Reference + Dependency-Check Ant Task 1.0.6 Reference @@ -24,7 +24,7 @@ -

    Dependency-Check Ant Task 1.0.5 Reference

    +

    Dependency-Check Ant Task 1.0.6 Reference

    diff --git a/dependency-check-ant/xref/index.html b/dependency-check-ant/xref/index.html index 078a0c055..906236863 100644 --- a/dependency-check-ant/xref/index.html +++ b/dependency-check-ant/xref/index.html @@ -3,7 +3,7 @@ - Dependency-Check Ant Task 1.0.5 Reference + Dependency-Check Ant Task 1.0.6 Reference diff --git a/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/DependencyCheckTask.html b/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/DependencyCheckTask.html index df780eeac..70b761af0 100644 --- a/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/DependencyCheckTask.html +++ b/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/DependencyCheckTask.html @@ -333,252 +333,274 @@ 323publicvoid setProxyPort(String proxyPort) { 324this.proxyPort = proxyPort; 325 } -326 -327/** -328 * The Proxy username. -329 */ -330private String proxyUsername; -331 -332/** -333 * Get the value of proxyUsername. -334 * -335 * @return the value of proxyUsername -336 */ -337public String getProxyUsername() { -338return proxyUsername; -339 } -340 -341/** -342 * Set the value of proxyUsername. -343 * -344 * @param proxyUsername new value of proxyUsername -345 */ -346publicvoid setProxyUsername(String proxyUsername) { -347this.proxyUsername = proxyUsername; -348 } -349 -350/** -351 * The Proxy password. -352 */ -353private String proxyPassword; -354 -355/** -356 * Get the value of proxyPassword. -357 * -358 * @return the value of proxyPassword -359 */ -360public String getProxyPassword() { -361return proxyPassword; -362 } -363 -364/** -365 * Set the value of proxyPassword. -366 * -367 * @param proxyPassword new value of proxyPassword -368 */ -369publicvoid setProxyPassword(String proxyPassword) { -370this.proxyPassword = proxyPassword; -371 } -372 -373/** -374 * The Connection Timeout. -375 */ -376private String connectionTimeout; -377 -378/** -379 * Get the value of connectionTimeout. -380 * -381 * @return the value of connectionTimeout -382 */ -383public String getConnectionTimeout() { -384return connectionTimeout; -385 } -386 -387/** -388 * Set the value of connectionTimeout. -389 * -390 * @param connectionTimeout new value of connectionTimeout -391 */ -392publicvoid setConnectionTimeout(String connectionTimeout) { -393this.connectionTimeout = connectionTimeout; -394 } -395/** -396 * The file path used for verbose logging. -397 */ -398private String logFile = null; -399 -400/** -401 * Get the value of logFile. -402 * -403 * @return the value of logFile -404 */ -405public String getLogFile() { -406return logFile; -407 } -408 -409/** -410 * Set the value of logFile. -411 * -412 * @param logFile new value of logFile -413 */ -414publicvoid setLogFile(String logFile) { -415this.logFile = logFile; -416 } -417 -418 @Override -419publicvoid execute() throws BuildException { -420final InputStream in = DependencyCheckTask.class.getClassLoader().getResourceAsStream(LOG_PROPERTIES_FILE); -421 LogUtils.prepareLogger(in, logFile); -422 -423 dealWithReferences(); -424 validateConfiguration(); -425 populateSettings(); -426 -427final Engine engine = new Engine(); -428for (Resource resource : path) { -429final FileProvider provider = resource.as(FileProvider.class); -430if (provider != null) { -431final File file = provider.getFile(); -432if (file != null && file.exists()) { -433 engine.scan(file); -434 } -435 } -436 } -437try { -438 engine.analyzeDependencies(); -439final ReportGenerator reporter = new ReportGenerator(applicationName, engine.getDependencies(), engine.getAnalyzers()); -440 reporter.generateReports(reportOutputDirectory, reportFormat); +326/** +327 * The Proxy username. +328 */ +329private String proxyUsername; +330 +331/** +332 * Get the value of proxyUsername. +333 * +334 * @return the value of proxyUsername +335 */ +336public String getProxyUsername() { +337return proxyUsername; +338 } +339 +340/** +341 * Set the value of proxyUsername. +342 * +343 * @param proxyUsername new value of proxyUsername +344 */ +345publicvoid setProxyUsername(String proxyUsername) { +346this.proxyUsername = proxyUsername; +347 } +348/** +349 * The Proxy password. +350 */ +351private String proxyPassword; +352 +353/** +354 * Get the value of proxyPassword. +355 * +356 * @return the value of proxyPassword +357 */ +358public String getProxyPassword() { +359return proxyPassword; +360 } +361 +362/** +363 * Set the value of proxyPassword. +364 * +365 * @param proxyPassword new value of proxyPassword +366 */ +367publicvoid setProxyPassword(String proxyPassword) { +368this.proxyPassword = proxyPassword; +369 } +370/** +371 * The Connection Timeout. +372 */ +373private String connectionTimeout; +374 +375/** +376 * Get the value of connectionTimeout. +377 * +378 * @return the value of connectionTimeout +379 */ +380public String getConnectionTimeout() { +381return connectionTimeout; +382 } +383 +384/** +385 * Set the value of connectionTimeout. +386 * +387 * @param connectionTimeout new value of connectionTimeout +388 */ +389publicvoid setConnectionTimeout(String connectionTimeout) { +390this.connectionTimeout = connectionTimeout; +391 } +392/** +393 * The file path used for verbose logging. +394 */ +395private String logFile = null; +396 +397/** +398 * Get the value of logFile. +399 * +400 * @return the value of logFile +401 */ +402public String getLogFile() { +403return logFile; +404 } +405 +406/** +407 * Set the value of logFile. +408 * +409 * @param logFile new value of logFile +410 */ +411publicvoid setLogFile(String logFile) { +412this.logFile = logFile; +413 } +414/** +415 * The path to the suppression file. +416 */ +417private String suppressionFile; +418 +419/** +420 * Get the value of suppressionFile. +421 * +422 * @return the value of suppressionFile +423 */ +424public String getSuppressionFile() { +425return suppressionFile; +426 } +427 +428/** +429 * Set the value of suppressionFile. +430 * +431 * @param suppressionFile new value of suppressionFile +432 */ +433publicvoid setSuppressionFile(String suppressionFile) { +434this.suppressionFile = suppressionFile; +435 } +436 +437 @Override +438publicvoid execute() throws BuildException { +439final InputStream in = DependencyCheckTask.class.getClassLoader().getResourceAsStream(LOG_PROPERTIES_FILE); +440 LogUtils.prepareLogger(in, logFile); 441 -442if (this.failBuildOnCVSS <= 10) { -443 checkForFailure(engine.getDependencies()); -444 } -445 } catch (IOException ex) { -446 Logger.getLogger(DependencyCheckTask.class.getName()).log(Level.FINE, null, ex); -447thrownew BuildException("Unable to generate dependency-check report", ex); -448 } catch (Exception ex) { -449 Logger.getLogger(DependencyCheckTask.class.getName()).log(Level.SEVERE, null, ex); -450thrownew BuildException("An exception occured; unable to continue task", ex); -451 } -452 } -453 -454/** -455 * Validate the configuration to ensure the parameters have been properly -456 * configured/initialized. -457 * -458 * @throws BuildException if the task was not configured correctly. -459 */ -460privatevoid validateConfiguration() throws BuildException { -461if (path == null) { -462thrownew BuildException("No project dependencies have been defined to analyze."); -463 } -464if (failBuildOnCVSS < 0 || failBuildOnCVSS > 11) { -465thrownew BuildException("Invalid configuration, failBuildOnCVSS must be between 0 and 11."); -466 } -467 } -468 -469/** -470 * Takes the properties supplied and updates the dependency-check settings. -471 * Additionally, this sets the system properties required to change the -472 * proxy url, port, and connection timeout. -473 */ -474privatevoid populateSettings() { -475 InputStream taskProperties = null; -476try { -477 taskProperties = this.getClass().getClassLoader().getResourceAsStream(PROPERTIES_FILE); -478 Settings.mergeProperties(taskProperties); -479 } catch (IOException ex) { -480 Logger.getLogger(DependencyCheckTask.class.getName()).log(Level.WARNING, "Unable to load the dependency-check ant task.properties file."); -481 Logger.getLogger(DependencyCheckTask.class.getName()).log(Level.FINE, null, ex); -482 } finally { -483if (taskProperties != null) { -484try { -485 taskProperties.close(); -486 } catch (IOException ex) { -487 Logger.getLogger(DependencyCheckTask.class.getName()).log(Level.FINEST, null, ex); -488 } -489 } -490 } -491if (dataDirectory != null) { -492 Settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDirectory); -493 } else { -494final File jarPath = new File(DependencyCheckTask.class.getProtectionDomain().getCodeSource().getLocation().getPath()); -495final File base = jarPath.getParentFile(); -496final String sub = Settings.getString(Settings.KEYS.DATA_DIRECTORY); -497final File dataDir = new File(base, sub); -498 Settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDir.getAbsolutePath()); -499 } -500 -501 Settings.setBoolean(Settings.KEYS.AUTO_UPDATE, autoUpdate); -502 -503if (proxyUrl != null && !proxyUrl.isEmpty()) { -504 Settings.setString(Settings.KEYS.PROXY_URL, proxyUrl); -505 } -506if (proxyPort != null && !proxyPort.isEmpty()) { -507 Settings.setString(Settings.KEYS.PROXY_PORT, proxyPort); -508 } -509if (proxyUsername != null && !proxyUsername.isEmpty()) { -510 Settings.setString(Settings.KEYS.PROXY_USERNAME, proxyUsername); -511 } -512if (proxyPassword != null && !proxyPassword.isEmpty()) { -513 Settings.setString(Settings.KEYS.PROXY_PASSWORD, proxyPassword); -514 } -515if (connectionTimeout != null && !connectionTimeout.isEmpty()) { -516 Settings.setString(Settings.KEYS.CONNECTION_TIMEOUT, connectionTimeout); -517 } -518 } +442 dealWithReferences(); +443 validateConfiguration(); +444 populateSettings(); +445 +446final Engine engine = new Engine(); +447for (Resource resource : path) { +448final FileProvider provider = resource.as(FileProvider.class); +449if (provider != null) { +450final File file = provider.getFile(); +451if (file != null && file.exists()) { +452 engine.scan(file); +453 } +454 } +455 } +456try { +457 engine.analyzeDependencies(); +458final ReportGenerator reporter = new ReportGenerator(applicationName, engine.getDependencies(), engine.getAnalyzers()); +459 reporter.generateReports(reportOutputDirectory, reportFormat); +460 +461if (this.failBuildOnCVSS <= 10) { +462 checkForFailure(engine.getDependencies()); +463 } +464 } catch (IOException ex) { +465 Logger.getLogger(DependencyCheckTask.class.getName()).log(Level.FINE, null, ex); +466thrownew BuildException("Unable to generate dependency-check report", ex); +467 } catch (Exception ex) { +468 Logger.getLogger(DependencyCheckTask.class.getName()).log(Level.SEVERE, null, ex); +469thrownew BuildException("An exception occured; unable to continue task", ex); +470 } +471 } +472 +473/** +474 * Validate the configuration to ensure the parameters have been properly +475 * configured/initialized. +476 * +477 * @throws BuildException if the task was not configured correctly. +478 */ +479privatevoid validateConfiguration() throws BuildException { +480if (path == null) { +481thrownew BuildException("No project dependencies have been defined to analyze."); +482 } +483if (failBuildOnCVSS < 0 || failBuildOnCVSS > 11) { +484thrownew BuildException("Invalid configuration, failBuildOnCVSS must be between 0 and 11."); +485 } +486 } +487 +488/** +489 * Takes the properties supplied and updates the dependency-check settings. +490 * Additionally, this sets the system properties required to change the +491 * proxy url, port, and connection timeout. +492 */ +493privatevoid populateSettings() { +494 InputStream taskProperties = null; +495try { +496 taskProperties = this.getClass().getClassLoader().getResourceAsStream(PROPERTIES_FILE); +497 Settings.mergeProperties(taskProperties); +498 } catch (IOException ex) { +499 Logger.getLogger(DependencyCheckTask.class.getName()).log(Level.WARNING, "Unable to load the dependency-check ant task.properties file."); +500 Logger.getLogger(DependencyCheckTask.class.getName()).log(Level.FINE, null, ex); +501 } finally { +502if (taskProperties != null) { +503try { +504 taskProperties.close(); +505 } catch (IOException ex) { +506 Logger.getLogger(DependencyCheckTask.class.getName()).log(Level.FINEST, null, ex); +507 } +508 } +509 } +510if (dataDirectory != null) { +511 Settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDirectory); +512 } else { +513final File jarPath = new File(DependencyCheckTask.class.getProtectionDomain().getCodeSource().getLocation().getPath()); +514final File base = jarPath.getParentFile(); +515final String sub = Settings.getString(Settings.KEYS.DATA_DIRECTORY); +516final File dataDir = new File(base, sub); +517 Settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDir.getAbsolutePath()); +518 } 519 -520/** -521 * Checks to see if a vulnerability has been identified with a CVSS score -522 * that is above the threshold set in the configuration. -523 * -524 * @param dependencies the list of dependency objects -525 * @throws BuildException thrown if a CVSS score is found that is higher -526 * then the threshold set -527 */ -528privatevoid checkForFailure(List<Dependency> dependencies) throws BuildException { -529final StringBuilder ids = new StringBuilder(); -530for (Dependency d : dependencies) { -531for (Vulnerability v : d.getVulnerabilities()) { -532if (v.getCvssScore() >= failBuildOnCVSS) { -533if (ids.length() == 0) { -534 ids.append(v.getName()); -535 } else { -536 ids.append(", ").append(v.getName()); -537 } -538 } -539 } -540 } -541if (ids.length() > 0) { -542final String msg = String.format("%n%nDependency-Check Failure:%n" -543 + "One or more dependencies were identified with vulnerabilities that have a CVSS score greater then '%.1f': %s%n" -544 + "See the dependency-check report for more details.%n%n", failBuildOnCVSS, ids.toString()); -545thrownew BuildException(msg); -546 } -547 } -548 -549/** -550 * An enumeration of supported report formats: "ALL", "HTML", "XML", "VULN", -551 * etc.. -552 */ -553publicstaticclassReportFormatsextends EnumeratedAttribute { -554 -555/** -556 * Returns the list of values for the report format. -557 * -558 * @return the list of values for the report format -559 */ -560 @Override -561public String[] getValues() { -562int i = 0; -563final Format[] formats = Format.values(); -564final String[] values = new String[formats.length]; -565for (Format format : formats) { -566 values[i++] = format.name(); -567 } -568return values; -569 } -570 } -571 } +520 Settings.setBoolean(Settings.KEYS.AUTO_UPDATE, autoUpdate); +521 +522if (proxyUrl != null && !proxyUrl.isEmpty()) { +523 Settings.setString(Settings.KEYS.PROXY_URL, proxyUrl); +524 } +525if (proxyPort != null && !proxyPort.isEmpty()) { +526 Settings.setString(Settings.KEYS.PROXY_PORT, proxyPort); +527 } +528if (proxyUsername != null && !proxyUsername.isEmpty()) { +529 Settings.setString(Settings.KEYS.PROXY_USERNAME, proxyUsername); +530 } +531if (proxyPassword != null && !proxyPassword.isEmpty()) { +532 Settings.setString(Settings.KEYS.PROXY_PASSWORD, proxyPassword); +533 } +534if (connectionTimeout != null && !connectionTimeout.isEmpty()) { +535 Settings.setString(Settings.KEYS.CONNECTION_TIMEOUT, connectionTimeout); +536 } +537if (suppressionFile != null && !suppressionFile.isEmpty()) { +538 Settings.setString(Settings.KEYS.SUPPRESSION_FILE, suppressionFile); +539 } +540 } +541 +542/** +543 * Checks to see if a vulnerability has been identified with a CVSS score +544 * that is above the threshold set in the configuration. +545 * +546 * @param dependencies the list of dependency objects +547 * @throws BuildException thrown if a CVSS score is found that is higher +548 * then the threshold set +549 */ +550privatevoid checkForFailure(List<Dependency> dependencies) throws BuildException { +551final StringBuilder ids = new StringBuilder(); +552for (Dependency d : dependencies) { +553for (Vulnerability v : d.getVulnerabilities()) { +554if (v.getCvssScore() >= failBuildOnCVSS) { +555if (ids.length() == 0) { +556 ids.append(v.getName()); +557 } else { +558 ids.append(", ").append(v.getName()); +559 } +560 } +561 } +562 } +563if (ids.length() > 0) { +564final String msg = String.format("%n%nDependency-Check Failure:%n" +565 + "One or more dependencies were identified with vulnerabilities that have a CVSS score greater then '%.1f': %s%n" +566 + "See the dependency-check report for more details.%n%n", failBuildOnCVSS, ids.toString()); +567thrownew BuildException(msg); +568 } +569 } +570 +571/** +572 * An enumeration of supported report formats: "ALL", "HTML", "XML", "VULN", +573 * etc.. +574 */ +575publicstaticclassReportFormatsextends EnumeratedAttribute { +576 +577/** +578 * Returns the list of values for the report format. +579 * +580 * @return the list of values for the report format +581 */ +582 @Override +583public String[] getValues() { +584int i = 0; +585final Format[] formats = Format.values(); +586final String[] values = new String[formats.length]; +587for (Format format : formats) { +588 values[i++] = format.name(); +589 } +590return values; +591 } +592 } +593 }
    diff --git a/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/package-frame.html b/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/package-frame.html index 1f58c432e..1f36e4812 100644 --- a/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/package-frame.html +++ b/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Ant Task 1.0.5 Reference Package org.owasp.dependencycheck.taskdefs + Dependency-Check Ant Task 1.0.6 Reference Package org.owasp.dependencycheck.taskdefs diff --git a/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/package-summary.html b/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/package-summary.html index 6dcea53a0..48b3f6e2a 100644 --- a/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/package-summary.html +++ b/dependency-check-ant/xref/org/owasp/dependencycheck/taskdefs/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Ant Task 1.0.5 Reference Package org.owasp.dependencycheck.taskdefs + Dependency-Check Ant Task 1.0.6 Reference Package org.owasp.dependencycheck.taskdefs diff --git a/dependency-check-ant/xref/overview-frame.html b/dependency-check-ant/xref/overview-frame.html index 5575e7614..abb951f90 100644 --- a/dependency-check-ant/xref/overview-frame.html +++ b/dependency-check-ant/xref/overview-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Ant Task 1.0.5 Reference + Dependency-Check Ant Task 1.0.6 Reference diff --git a/dependency-check-ant/xref/overview-summary.html b/dependency-check-ant/xref/overview-summary.html index 2f05e62d8..6d67d4d19 100644 --- a/dependency-check-ant/xref/overview-summary.html +++ b/dependency-check-ant/xref/overview-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Ant Task 1.0.5 Reference + Dependency-Check Ant Task 1.0.6 Reference @@ -24,7 +24,7 @@ -

    Dependency-Check Ant Task 1.0.5 Reference

    +

    Dependency-Check Ant Task 1.0.6 Reference

    diff --git a/dependency-check-cli/apidocs/allclasses-frame.html b/dependency-check-cli/apidocs/allclasses-frame.html index 76e69d10d..066b0c4cf 100644 --- a/dependency-check-cli/apidocs/allclasses-frame.html +++ b/dependency-check-cli/apidocs/allclasses-frame.html @@ -2,13 +2,13 @@ - + -All Classes (Dependency-Check Command Line 1.0.5 API) +All Classes (Dependency-Check Command Line 1.0.6 API) - + diff --git a/dependency-check-cli/apidocs/allclasses-noframe.html b/dependency-check-cli/apidocs/allclasses-noframe.html index 29c2984ca..3ffe25189 100644 --- a/dependency-check-cli/apidocs/allclasses-noframe.html +++ b/dependency-check-cli/apidocs/allclasses-noframe.html @@ -2,13 +2,13 @@ - + -All Classes (Dependency-Check Command Line 1.0.5 API) +All Classes (Dependency-Check Command Line 1.0.6 API) - + diff --git a/dependency-check-cli/apidocs/constant-values.html b/dependency-check-cli/apidocs/constant-values.html index 37149909e..127c28851 100644 --- a/dependency-check-cli/apidocs/constant-values.html +++ b/dependency-check-cli/apidocs/constant-values.html @@ -2,13 +2,13 @@ - + -Constant Field Values (Dependency-Check Command Line 1.0.5 API) +Constant Field Values (Dependency-Check Command Line 1.0.6 API) - + @@ -16,7 +16,7 @@ Constant Field Values (Dependency-Check Command Line 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Constant Field Values (Dependency-Check Command Line 1.0.5 API)"; + parent.document.title="Constant Field Values (Dependency-Check Command Line 1.0.6 API)"; } } @@ -260,6 +260,18 @@ org.owasp.* + + + + + + + + + + diff --git a/dependency-check-cli/apidocs/deprecated-list.html b/dependency-check-cli/apidocs/deprecated-list.html index 931d28f4c..c1873cd0c 100644 --- a/dependency-check-cli/apidocs/deprecated-list.html +++ b/dependency-check-cli/apidocs/deprecated-list.html @@ -2,13 +2,13 @@ - + -Deprecated List (Dependency-Check Command Line 1.0.5 API) +Deprecated List (Dependency-Check Command Line 1.0.6 API) - + @@ -16,7 +16,7 @@ Deprecated List (Dependency-Check Command Line 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Deprecated List (Dependency-Check Command Line 1.0.5 API)"; + parent.document.title="Deprecated List (Dependency-Check Command Line 1.0.6 API)"; } } diff --git a/dependency-check-cli/apidocs/help-doc.html b/dependency-check-cli/apidocs/help-doc.html index 34f65dfcf..0957fbf5d 100644 --- a/dependency-check-cli/apidocs/help-doc.html +++ b/dependency-check-cli/apidocs/help-doc.html @@ -2,13 +2,13 @@ - + -API Help (Dependency-Check Command Line 1.0.5 API) +API Help (Dependency-Check Command Line 1.0.6 API) - + @@ -16,7 +16,7 @@ API Help (Dependency-Check Command Line 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="API Help (Dependency-Check Command Line 1.0.5 API)"; + parent.document.title="API Help (Dependency-Check Command Line 1.0.6 API)"; } } diff --git a/dependency-check-cli/apidocs/index-all.html b/dependency-check-cli/apidocs/index-all.html index d7a324820..c5d3740c9 100644 --- a/dependency-check-cli/apidocs/index-all.html +++ b/dependency-check-cli/apidocs/index-all.html @@ -2,13 +2,13 @@ - + -Index (Dependency-Check Command Line 1.0.5 API) +Index (Dependency-Check Command Line 1.0.6 API) - + @@ -16,7 +16,7 @@ Index (Dependency-Check Command Line 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Index (Dependency-Check Command Line 1.0.5 API)"; + parent.document.title="Index (Dependency-Check Command Line 1.0.6 API)"; } } @@ -170,6 +170,9 @@ Method in class org.owasp.dependencycheck.cli.CliParser
    Retrieves the file command line parameter(s) specified for the 'scan' argument. +
    getSuppressionFile() - +Method in class org.owasp.dependencycheck.cli.CliParser +
    Returns the path to the suppression file.
    getVerboseLog() - Method in class org.owasp.dependencycheck.cli.CliParser
    Returns the path to the verbose log file. @@ -307,6 +310,14 @@ Static variable in class org.owasp.dependencycheck.cli.SCAN_SHORT - Static variable in class org.owasp.dependencycheck.cli.CliParser.ArgumentName
    The short CLI argument name specifying the directory/file to scan. +
    SUPPRESION_FILE - +Static variable in class org.owasp.dependencycheck.cli.CliParser.ArgumentName +
    The CLI argument name for setting the location of the suppression + file. +
    SUPPRESION_FILE_SHORT - +Static variable in class org.owasp.dependencycheck.cli.CliParser.ArgumentName +
    The short CLI argument name for setting the location of the + suppression file.

    diff --git a/dependency-check-cli/apidocs/index.html b/dependency-check-cli/apidocs/index.html index ee9f6f2f9..66bce9069 100644 --- a/dependency-check-cli/apidocs/index.html +++ b/dependency-check-cli/apidocs/index.html @@ -2,10 +2,10 @@ - + -Dependency-Check Command Line 1.0.5 API +Dependency-Check Command Line 1.0.6 API diff --git a/dependency-check-cli/apidocs/org/owasp/dependencycheck/class-use/App.html b/dependency-check-cli/apidocs/org/owasp/dependencycheck/class-use/App.html index e0b72ee54..59ae38dd7 100644 --- a/dependency-check-cli/apidocs/org/owasp/dependencycheck/class-use/App.html +++ b/dependency-check-cli/apidocs/org/owasp/dependencycheck/class-use/App.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.App (Dependency-Check Command Line 1.0.5 API) +Uses of Class org.owasp.dependencycheck.App (Dependency-Check Command Line 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.App (Dependency-Check Command Line 1.0.5 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.App (Dependency-Check Command Line 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.App (Dependency-Check Command Line 1.0.6 API)"; } } diff --git a/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/CliParser.ArgumentName.html b/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/CliParser.ArgumentName.html index 88b43fe6b..d73d347cc 100644 --- a/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/CliParser.ArgumentName.html +++ b/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/CliParser.ArgumentName.html @@ -2,13 +2,13 @@ - + -CliParser.ArgumentName (Dependency-Check Command Line 1.0.5 API) +CliParser.ArgumentName (Dependency-Check Command Line 1.0.6 API) - + @@ -16,7 +16,7 @@ CliParser.ArgumentName (Dependency-Check Command Line 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="CliParser.ArgumentName (Dependency-Check Command Line 1.0.5 API)"; + parent.document.title="CliParser.ArgumentName (Dependency-Check Command Line 1.0.6 API)"; } } @@ -341,6 +341,24 @@ A collection of static final strings that represent the possible command

    + + + + + + + + + + + + -
    "s"
    +public static final StringSUPPRESION_FILE"suppression"
    +public static final StringSUPPRESION_FILE_SHORT"sf"
    public static final String VERBOSE_LOG
    static StringSUPPRESION_FILE + +
    +          The CLI argument name for setting the location of the suppression + file.
    +static StringSUPPRESION_FILE_SHORT + +
    +          The short CLI argument name for setting the location of the + suppression file.
    +static String VERBOSE_LOG
    @@ -790,6 +808,32 @@ public static final Constant Field Values +
    + +

    +SUPPRESION_FILE

    +
    +public static final String SUPPRESION_FILE
    +
    +
    The CLI argument name for setting the location of the suppression + file. +

    +

    +
    See Also:
    Constant Field Values
    +
    +
    + +

    +SUPPRESION_FILE_SHORT

    +
    +public static final String SUPPRESION_FILE_SHORT
    +
    +
    The short CLI argument name for setting the location of the + suppression file. +

    +

    +
    See Also:
    Constant Field Values
    +
    diff --git a/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/CliParser.html b/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/CliParser.html index fa2595e7b..fc6e5fee4 100644 --- a/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/CliParser.html +++ b/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/CliParser.html @@ -2,13 +2,13 @@ - + -CliParser (Dependency-Check Command Line 1.0.5 API) +CliParser (Dependency-Check Command Line 1.0.6 API) - + @@ -16,7 +16,7 @@ CliParser (Dependency-Check Command Line 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="CliParser (Dependency-Check Command Line 1.0.5 API)"; + parent.document.title="CliParser (Dependency-Check Command Line 1.0.6 API)"; } } @@ -249,6 +249,14 @@ A utility to parse command line arguments for the DependencyCheck.
     StringgetSuppressionFile() + +
    +          Returns the path to the suppression file.
    + String getVerboseLog()
    @@ -595,6 +603,20 @@ public

    +getSuppressionFile

    +
    +public String getSuppressionFile()
    +
    +
    Returns the path to the suppression file. +

    +

    + +
    Returns:
    the path to the suppression file
    +
    +
    +
    +

    printVersionInfo

    diff --git a/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/class-use/CliParser.ArgumentName.html b/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/class-use/CliParser.ArgumentName.html
    index 05fc0c231..651b8e164 100644
    --- a/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/class-use/CliParser.ArgumentName.html
    +++ b/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/class-use/CliParser.ArgumentName.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -Uses of Class org.owasp.dependencycheck.cli.CliParser.ArgumentName (Dependency-Check Command Line 1.0.5 API)
    +Uses of Class org.owasp.dependencycheck.cli.CliParser.ArgumentName (Dependency-Check Command Line 1.0.6 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.cli.CliParser.ArgumentName (Dependency-C
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="Uses of Class org.owasp.dependencycheck.cli.CliParser.ArgumentName (Dependency-Check Command Line 1.0.5 API)";
    +        parent.document.title="Uses of Class org.owasp.dependencycheck.cli.CliParser.ArgumentName (Dependency-Check Command Line 1.0.6 API)";
         }
     }
     
    diff --git a/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/class-use/CliParser.html b/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/class-use/CliParser.html
    index 41107d01c..676d18981 100644
    --- a/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/class-use/CliParser.html
    +++ b/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/class-use/CliParser.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -Uses of Class org.owasp.dependencycheck.cli.CliParser (Dependency-Check Command Line 1.0.5 API)
    +Uses of Class org.owasp.dependencycheck.cli.CliParser (Dependency-Check Command Line 1.0.6 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.cli.CliParser (Dependency-Check Command
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="Uses of Class org.owasp.dependencycheck.cli.CliParser (Dependency-Check Command Line 1.0.5 API)";
    +        parent.document.title="Uses of Class org.owasp.dependencycheck.cli.CliParser (Dependency-Check Command Line 1.0.6 API)";
         }
     }
     
    diff --git a/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/package-frame.html b/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/package-frame.html
    index 56595f684..e6a0b13e6 100644
    --- a/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/package-frame.html
    +++ b/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/package-frame.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -org.owasp.dependencycheck.cli (Dependency-Check Command Line 1.0.5 API)
    +org.owasp.dependencycheck.cli (Dependency-Check Command Line 1.0.6 API)
     
     
    -
    +
     
     
     
    diff --git a/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/package-summary.html b/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/package-summary.html
    index 23d213f6d..bea1ce37f 100644
    --- a/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/package-summary.html
    +++ b/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/package-summary.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -org.owasp.dependencycheck.cli (Dependency-Check Command Line 1.0.5 API)
    +org.owasp.dependencycheck.cli (Dependency-Check Command Line 1.0.6 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ org.owasp.dependencycheck.cli (Dependency-Check Command Line 1.0.5 API)
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="org.owasp.dependencycheck.cli (Dependency-Check Command Line 1.0.5 API)";
    +        parent.document.title="org.owasp.dependencycheck.cli (Dependency-Check Command Line 1.0.6 API)";
         }
     }
     
    diff --git a/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/package-tree.html b/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/package-tree.html
    index dca6afcbf..b8e74f3ca 100644
    --- a/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/package-tree.html
    +++ b/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/package-tree.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -org.owasp.dependencycheck.cli Class Hierarchy (Dependency-Check Command Line 1.0.5 API)
    +org.owasp.dependencycheck.cli Class Hierarchy (Dependency-Check Command Line 1.0.6 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ org.owasp.dependencycheck.cli Class Hierarchy (Dependency-Check Command Line 1.0
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="org.owasp.dependencycheck.cli Class Hierarchy (Dependency-Check Command Line 1.0.5 API)";
    +        parent.document.title="org.owasp.dependencycheck.cli Class Hierarchy (Dependency-Check Command Line 1.0.6 API)";
         }
     }
     
    diff --git a/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/package-use.html b/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/package-use.html
    index 048ff6d77..634c1c575 100644
    --- a/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/package-use.html
    +++ b/dependency-check-cli/apidocs/org/owasp/dependencycheck/cli/package-use.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -Uses of Package org.owasp.dependencycheck.cli (Dependency-Check Command Line 1.0.5 API)
    +Uses of Package org.owasp.dependencycheck.cli (Dependency-Check Command Line 1.0.6 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ Uses of Package org.owasp.dependencycheck.cli (Dependency-Check Command Line 1.0
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="Uses of Package org.owasp.dependencycheck.cli (Dependency-Check Command Line 1.0.5 API)";
    +        parent.document.title="Uses of Package org.owasp.dependencycheck.cli (Dependency-Check Command Line 1.0.6 API)";
         }
     }
     
    diff --git a/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-frame.html b/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-frame.html
    index ccd7885b0..969ed1ad9 100644
    --- a/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-frame.html
    +++ b/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-frame.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -org.owasp.dependencycheck (Dependency-Check Command Line 1.0.5 API)
    +org.owasp.dependencycheck (Dependency-Check Command Line 1.0.6 API)
     
     
    -
    +
     
     
     
    diff --git a/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-summary.html b/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-summary.html
    index 76b8b485e..29fe10a10 100644
    --- a/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-summary.html
    +++ b/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-summary.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -org.owasp.dependencycheck (Dependency-Check Command Line 1.0.5 API)
    +org.owasp.dependencycheck (Dependency-Check Command Line 1.0.6 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ org.owasp.dependencycheck (Dependency-Check Command Line 1.0.5 API)
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="org.owasp.dependencycheck (Dependency-Check Command Line 1.0.5 API)";
    +        parent.document.title="org.owasp.dependencycheck (Dependency-Check Command Line 1.0.6 API)";
         }
     }
     
    diff --git a/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-tree.html b/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-tree.html
    index d142c573a..c4a6e4def 100644
    --- a/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-tree.html
    +++ b/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-tree.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -org.owasp.dependencycheck Class Hierarchy (Dependency-Check Command Line 1.0.5 API)
    +org.owasp.dependencycheck Class Hierarchy (Dependency-Check Command Line 1.0.6 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ org.owasp.dependencycheck Class Hierarchy (Dependency-Check Command Line 1.0.5 A
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="org.owasp.dependencycheck Class Hierarchy (Dependency-Check Command Line 1.0.5 API)";
    +        parent.document.title="org.owasp.dependencycheck Class Hierarchy (Dependency-Check Command Line 1.0.6 API)";
         }
     }
     
    diff --git a/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-use.html b/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-use.html
    index 7c0d33516..f631ec238 100644
    --- a/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-use.html
    +++ b/dependency-check-cli/apidocs/org/owasp/dependencycheck/package-use.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -Uses of Package org.owasp.dependencycheck (Dependency-Check Command Line 1.0.5 API)
    +Uses of Package org.owasp.dependencycheck (Dependency-Check Command Line 1.0.6 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ Uses of Package org.owasp.dependencycheck (Dependency-Check Command Line 1.0.5 A
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="Uses of Package org.owasp.dependencycheck (Dependency-Check Command Line 1.0.5 API)";
    +        parent.document.title="Uses of Package org.owasp.dependencycheck (Dependency-Check Command Line 1.0.6 API)";
         }
     }
     
    diff --git a/dependency-check-cli/apidocs/overview-frame.html b/dependency-check-cli/apidocs/overview-frame.html
    index 45dbbe0a6..533b408a7 100644
    --- a/dependency-check-cli/apidocs/overview-frame.html
    +++ b/dependency-check-cli/apidocs/overview-frame.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -Overview List (Dependency-Check Command Line 1.0.5 API)
    +Overview List (Dependency-Check Command Line 1.0.6 API)
     
     
    -
    +
     
     
     
    diff --git a/dependency-check-cli/apidocs/overview-summary.html b/dependency-check-cli/apidocs/overview-summary.html
    index cc0764a3f..18bbb91e8 100644
    --- a/dependency-check-cli/apidocs/overview-summary.html
    +++ b/dependency-check-cli/apidocs/overview-summary.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -Overview (Dependency-Check Command Line 1.0.5 API)
    +Overview (Dependency-Check Command Line 1.0.6 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ Overview (Dependency-Check Command Line 1.0.5 API)
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="Overview (Dependency-Check Command Line 1.0.5 API)";
    +        parent.document.title="Overview (Dependency-Check Command Line 1.0.6 API)";
         }
     }
     
    @@ -82,7 +82,7 @@ function windowTitle()
     

    -Dependency-Check Command Line 1.0.5 API +Dependency-Check Command Line 1.0.6 API

    diff --git a/dependency-check-cli/apidocs/overview-tree.html b/dependency-check-cli/apidocs/overview-tree.html index 3933857e3..859595b05 100644 --- a/dependency-check-cli/apidocs/overview-tree.html +++ b/dependency-check-cli/apidocs/overview-tree.html @@ -2,13 +2,13 @@ - + -Class Hierarchy (Dependency-Check Command Line 1.0.5 API) +Class Hierarchy (Dependency-Check Command Line 1.0.6 API) - + @@ -16,7 +16,7 @@ Class Hierarchy (Dependency-Check Command Line 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Class Hierarchy (Dependency-Check Command Line 1.0.5 API)"; + parent.document.title="Class Hierarchy (Dependency-Check Command Line 1.0.6 API)"; } } diff --git a/dependency-check-cli/checkstyle.html b/dependency-check-cli/checkstyle.html index f2361ce42..c8c97861e 100644 --- a/dependency-check-cli/checkstyle.html +++ b/dependency-check-cli/checkstyle.html @@ -1,13 +1,13 @@ - + dependency-check-cli - Checkstyle Results @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -87,6 +87,13 @@ Installation + + +
  • + + + + Configuration
  • @@ -231,7 +238,7 @@
    14 0 04
    +2

    Files

    @@ -244,7 +251,7 @@ - + @@ -261,16 +268,8 @@ - - - - - - - - - -
    src/main/java/org/owasp/dependencycheck/App.java 0 03
    1
    src/main/java/org/owasp/dependencycheck/cli/CliParser.java 0Line
    ErrorsMore than 7 parameters (found 8).153
    ErrorsExpected @param tag for 'proxyUser'.154
    ErrorsExpected @param tag for 'proxyPass'.154
    +More than 7 parameters (found 9). +156

    src/main/java/org/owasp/dependencycheck/cli/CliParser.java

    diff --git a/dependency-check-cli/checkstyle.rss b/dependency-check-cli/checkstyle.rss index 83f20a894..7f949f748 100644 --- a/dependency-check-cli/checkstyle.rss +++ b/dependency-check-cli/checkstyle.rss @@ -9,7 +9,7 @@ ©2012 - 2013 OWASP File: 14, - Errors: 4, + Errors: 2, Warnings: 0, Infos: 0 @@ -122,7 +122,7 @@ 0 diff --git a/dependency-check-cli/cobertura/frame-summary-org.owasp.dependencycheck.cli.html b/dependency-check-cli/cobertura/frame-summary-org.owasp.dependencycheck.cli.html index 3c2d5ba83..753a9a1b4 100644 --- a/dependency-check-cli/cobertura/frame-summary-org.owasp.dependencycheck.cli.html +++ b/dependency-check-cli/cobertura/frame-summary-org.owasp.dependencycheck.cli.html @@ -16,7 +16,7 @@
    - 3 + 1
    - +
    Package # Classes Line Coverage Branch Coverage Complexity
    org.owasp.dependencycheck.cli2
    76%
    71/93
    71%
    23/32
    1.708
    org.owasp.dependencycheck.cli2
    76%
    73/96
    71%
    23/32
    1.68
    - + diff --git a/dependency-check-cli/cobertura/frame-summary-org.owasp.dependencycheck.html b/dependency-check-cli/cobertura/frame-summary-org.owasp.dependencycheck.html index 34cb7fe91..1fe1d6dd7 100644 --- a/dependency-check-cli/cobertura/frame-summary-org.owasp.dependencycheck.html +++ b/dependency-check-cli/cobertura/frame-summary-org.owasp.dependencycheck.html @@ -16,8 +16,8 @@ - - + +
    Package # Classes Line Coverage Branch Coverage Complexity
    org.owasp.dependencycheck1
    0%
    0/73
    0%
    0/32
    7
    org.owasp.dependencycheck.cli2
    76%
    71/93
    71%
    23/32
    1.708
    org.owasp.dependencycheck1
    0%
    0/75
    0%
    0/36
    7.5
    org.owasp.dependencycheck.cli2
    76%
    73/96
    71%
    23/32
    1.68
    - + diff --git a/dependency-check-cli/cobertura/frame-summary.html b/dependency-check-cli/cobertura/frame-summary.html index dc5340300..009656633 100644 --- a/dependency-check-cli/cobertura/frame-summary.html +++ b/dependency-check-cli/cobertura/frame-summary.html @@ -16,9 +16,9 @@ - - - + + +
    Package # Classes Line Coverage Branch Coverage Complexity
    All Packages3
    42%
    71/166
    35%
    23/64
    2.464
    org.owasp.dependencycheck1
    0%
    0/73
    0%
    0/32
    7
    org.owasp.dependencycheck.cli2
    76%
    71/93
    71%
    23/32
    1.708
    All Packages3
    42%
    73/171
    33%
    23/68
    2.483
    org.owasp.dependencycheck1
    0%
    0/75
    0%
    0/36
    7.5
    org.owasp.dependencycheck.cli2
    76%
    73/96
    71%
    23/32
    1.68
    - + diff --git a/dependency-check-cli/cobertura/org.owasp.dependencycheck.App.html b/dependency-check-cli/cobertura/org.owasp.dependencycheck.App.html index 6c3a5fd16..c302d863d 100644 --- a/dependency-check-cli/cobertura/org.owasp.dependencycheck.App.html +++ b/dependency-check-cli/cobertura/org.owasp.dependencycheck.App.html @@ -12,7 +12,7 @@
     
    - +
    Classes in this File Line Coverage Branch Coverage Complexity
    App
    0%
    0/73
    0%
    0/32
    7
    App
    0%
    0/75
    0%
    0/36
    7.5
     
    @@ -199,7 +199,7 @@  101  
                         cli.getProxyPort(), cli.getProxyUsername(), cli.getProxyPassword(),
     102   -
                         cli.getDataDirectory(), cli.getPropertiesFile());
    +
                         cli.getDataDirectory(), cli.getPropertiesFile(), cli.getSuppressionFile());
     103  0
                 runScan(cli.getReportDirectory(), cli.getReportFormat(), cli.getApplicationName(), cli.getScanFiles());
     104  
             } else {
    @@ -277,71 +277,83 @@  149  
          * used)
     150   -
          * @param dataDirectory the directory to store/retrieve persistent data from
    +
          * @param proxyUser the proxy user name
     151   -
          * @param propertiesFile the properties file to utilize
    +
          * @param proxyPass the password for the proxy
     152   -
          */
    +
          * @param dataDirectory the directory to store/retrieve persistent data from
     153   -
         private void updateSettings(boolean autoUpdate, String connectionTimeout, String proxyUrl, String proxyPort,
    +
          * @param propertiesFile the properties file to utilize
     154   -
                                     String proxyUser, String proxyPass, String dataDirectory, File propertiesFile) {
    +
          * @param suppressionFile the path to the suppression file
     155   -
     
    -  156  0
             if (propertiesFile != null) {
    +
          */
    +  156   +
         private void updateSettings(boolean autoUpdate, String connectionTimeout, String proxyUrl, String proxyPort,
     157   +
                 String proxyUser, String proxyPass, String dataDirectory, File propertiesFile,
    +  158   +
                 String suppressionFile) {
    +  159   +
     
    +  160  0
             if (propertiesFile != null) {
    +  161  
                 try {
    -  158  0
                     Settings.mergeProperties(propertiesFile);
    -  159  0
                 } catch (FileNotFoundException ex) {
    -  160  0
                     final String msg = String.format("Unable to load properties file '%s'", propertiesFile.getPath());
    -  161  0
                     Logger.getLogger(App.class.getName()).log(Level.SEVERE, msg);
    -  162  0
                     Logger.getLogger(App.class.getName()).log(Level.FINE, null, ex);
    -  163  0
                 } catch (IOException ex) {
    -  164  0
                     final String msg = String.format("Unable to find properties file '%s'", propertiesFile.getPath());
    +  162  0
                     Settings.mergeProperties(propertiesFile);
    +  163  0
                 } catch (FileNotFoundException ex) {
    +  164  0
                     final String msg = String.format("Unable to load properties file '%s'", propertiesFile.getPath());
     165  0
                     Logger.getLogger(App.class.getName()).log(Level.SEVERE, msg);
     166  0
                     Logger.getLogger(App.class.getName()).log(Level.FINE, null, ex);
    -  167  0
                 }
    -  168   +  167  0
                 } catch (IOException ex) {
    +  168  0
                     final String msg = String.format("Unable to find properties file '%s'", propertiesFile.getPath());
    +  169  0
                     Logger.getLogger(App.class.getName()).log(Level.SEVERE, msg);
    +  170  0
                     Logger.getLogger(App.class.getName()).log(Level.FINE, null, ex);
    +  171  0
                 }
    +  172  
             }
    -  169  0
             if (dataDirectory != null) {
    -  170  0
                 Settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDirectory);
    -  171  0
             } else if (System.getProperty("basedir") != null) {
    -  172  0
                 final File dataDir = new File(System.getProperty("basedir"), "data");
    -  173  0
                 Settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDir.getAbsolutePath());
    -  174  0
             } else {
    -  175  0
                 final File jarPath = new File(App.class.getProtectionDomain().getCodeSource().getLocation().getPath());
    -  176  0
                 final File base = jarPath.getParentFile();
    -  177  0
                 final String sub = Settings.getString(Settings.KEYS.DATA_DIRECTORY);
    -  178  0
                 final File dataDir = new File(base, sub);
    -  179  0
                 Settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDir.getAbsolutePath());
    -  180   -
             }
    -  181  0
             Settings.setBoolean(Settings.KEYS.AUTO_UPDATE, autoUpdate);
    -  182  0
             if (proxyUrl != null && !proxyUrl.isEmpty()) {
    -  183  0
                 Settings.setString(Settings.KEYS.PROXY_URL, proxyUrl);
    +  173  0
             if (dataDirectory != null) {
    +  174  0
                 Settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDirectory);
    +  175  0
             } else if (System.getProperty("basedir") != null) {
    +  176  0
                 final File dataDir = new File(System.getProperty("basedir"), "data");
    +  177  0
                 Settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDir.getAbsolutePath());
    +  178  0
             } else {
    +  179  0
                 final File jarPath = new File(App.class.getProtectionDomain().getCodeSource().getLocation().getPath());
    +  180  0
                 final File base = jarPath.getParentFile();
    +  181  0
                 final String sub = Settings.getString(Settings.KEYS.DATA_DIRECTORY);
    +  182  0
                 final File dataDir = new File(base, sub);
    +  183  0
                 Settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDir.getAbsolutePath());
     184  
             }
    -  185  0
             if (proxyPort != null && !proxyPort.isEmpty()) {
    -  186  0
                 Settings.setString(Settings.KEYS.PROXY_PORT, proxyPort);
    -  187   +  185  0
             Settings.setBoolean(Settings.KEYS.AUTO_UPDATE, autoUpdate);
    +  186  0
             if (proxyUrl != null && !proxyUrl.isEmpty()) {
    +  187  0
                 Settings.setString(Settings.KEYS.PROXY_URL, proxyUrl);
    +  188  
             }
    -  188  0
             if (proxyUser != null && !proxyUser.isEmpty()) {
    -  189  0
                 Settings.setString(Settings.KEYS.PROXY_USERNAME, proxyUser);
    -  190   +  189  0
             if (proxyPort != null && !proxyPort.isEmpty()) {
    +  190  0
                 Settings.setString(Settings.KEYS.PROXY_PORT, proxyPort);
    +  191  
             }
    -  191  0
             if (proxyPass != null && !proxyPass.isEmpty()) {
    -  192  0
                 Settings.setString(Settings.KEYS.PROXY_PASSWORD, proxyPass);
    -  193   +  192  0
             if (proxyUser != null && !proxyUser.isEmpty()) {
    +  193  0
                 Settings.setString(Settings.KEYS.PROXY_USERNAME, proxyUser);
    +  194  
             }
    -  194  0
             if (connectionTimeout != null && !connectionTimeout.isEmpty()) {
    -  195  0
                 Settings.setString(Settings.KEYS.CONNECTION_TIMEOUT, connectionTimeout);
    -  196   +  195  0
             if (proxyPass != null && !proxyPass.isEmpty()) {
    +  196  0
                 Settings.setString(Settings.KEYS.PROXY_PASSWORD, proxyPass);
    +  197  
             }
    -  197  0
         }
    -  198   +  198  0
             if (connectionTimeout != null && !connectionTimeout.isEmpty()) {
    +  199  0
                 Settings.setString(Settings.KEYS.CONNECTION_TIMEOUT, connectionTimeout);
    +  200   +
             }
    +  201  0
             if (suppressionFile != null && !suppressionFile.isEmpty()) {
    +  202  0
                 Settings.setString(Settings.KEYS.SUPPRESSION_FILE, suppressionFile);
    +  203   +
             }
    +  204  0
         }
    +  205  
     }
    - + diff --git a/dependency-check-cli/cobertura/org.owasp.dependencycheck.cli.CliParser.html b/dependency-check-cli/cobertura/org.owasp.dependencycheck.cli.CliParser.html index fdbef4be0..2e035cff3 100644 --- a/dependency-check-cli/cobertura/org.owasp.dependencycheck.cli.CliParser.html +++ b/dependency-check-cli/cobertura/org.owasp.dependencycheck.cli.CliParser.html @@ -12,8 +12,8 @@
     
    - - + +
    Classes in this File Line Coverage Branch Coverage Complexity
    CliParser
    77%
    71/92
    71%
    23/32
    1.708
    CliParser$ArgumentName
    0%
    0/1
    N/A
    1.708
    CliParser
    76%
    73/95
    71%
    23/32
    1.68
    CliParser$ArgumentName
    0%
    0/1
    N/A
    1.68
     
    @@ -390,650 +390,697 @@
                     .create(ArgumentName.VERBOSE_LOG_SHORT);
     209  
     
    -  210  9
             final OptionGroup og = new OptionGroup();
    -  211  9
             og.addOption(path);
    +  210  9
             final Option suppressionFile = OptionBuilder.withArgName("file").hasArg().withLongOpt(ArgumentName.SUPPRESION_FILE)
    +  211   +
                     .withDescription("The file path to the suppression XML file.")
     212   +
                     .create(ArgumentName.SUPPRESION_FILE_SHORT);
    +  213  
     
    -  213  9
             final Options opts = new Options();
    -  214  9
             opts.addOptionGroup(og);
    -  215  9
             opts.addOption(out);
    -  216  9
             opts.addOption(outputFormat);
    -  217  9
             opts.addOption(appName);
    -  218  9
             opts.addOption(version);
    -  219  9
             opts.addOption(help);
    -  220  9
             opts.addOption(noUpdate);
    -  221  9
             opts.addOption(props);
    -  222  9
             opts.addOption(data);
    -  223  9
             opts.addOption(verboseLog);
    -  224  9
             opts.addOption(proxyPort);
    -  225  9
             opts.addOption(proxyUrl);
    -  226  9
             opts.addOption(proxyUsername);
    -  227  9
             opts.addOption(proxyPassword);
    -  228  9
             opts.addOption(connectionTimeout);
    -  229   +  214  
     
    -  230  9
             return opts;
    -  231   -
         }
    -  232   +  215  9
             final OptionGroup og = new OptionGroup();
    +  216  9
             og.addOption(path);
    +  217  
     
    -  233   -
         /**
    -  234   -
          * Determines if the 'version' command line argument was passed in.
    +  218  9
             final Options opts = new Options();
    +  219  9
             opts.addOptionGroup(og);
    +  220  9
             opts.addOption(out);
    +  221  9
             opts.addOption(outputFormat);
    +  222  9
             opts.addOption(appName);
    +  223  9
             opts.addOption(version);
    +  224  9
             opts.addOption(help);
    +  225  9
             opts.addOption(noUpdate);
    +  226  9
             opts.addOption(props);
    +  227  9
             opts.addOption(data);
    +  228  9
             opts.addOption(verboseLog);
    +  229  9
             opts.addOption(suppressionFile);
    +  230  9
             opts.addOption(proxyPort);
    +  231  9
             opts.addOption(proxyUrl);
    +  232  9
             opts.addOption(proxyUsername);
    +  233  9
             opts.addOption(proxyPassword);
    +  234  9
             opts.addOption(connectionTimeout);
     235   -
          *
    -  236   -
          * @return whether or not the 'version' command line argument was passed in
    +
     
    +  236  9
             return opts;
     237   -
          */
    +
         }
     238   -
         public boolean isGetVersion() {
    -  239  7
             return (line != null) && line.hasOption(ArgumentName.VERSION);
    +
     
    +  239   +
         /**
     240   -
         }
    +
          * Determines if the 'version' command line argument was passed in.
     241   -
     
    +
          *
     242   -
         /**
    +
          * @return whether or not the 'version' command line argument was passed in
     243   -
          * Determines if the 'help' command line argument was passed in.
    +
          */
     244   -
          *
    -  245   -
          * @return whether or not the 'help' command line argument was passed in
    +
         public boolean isGetVersion() {
    +  245  7
             return (line != null) && line.hasOption(ArgumentName.VERSION);
     246   -
          */
    +
         }
     247   -
         public boolean isGetHelp() {
    -  248  7
             return (line != null) && line.hasOption(ArgumentName.HELP);
    +
     
    +  248   +
         /**
     249   -
         }
    +
          * Determines if the 'help' command line argument was passed in.
     250   -
     
    +
          *
     251   -
         /**
    +
          * @return whether or not the 'help' command line argument was passed in
     252   -
          * Determines if the 'scan' command line argument was passed in.
    +
          */
     253   -
          *
    -  254   -
          * @return whether or not the 'scan' command line argument was passed in
    +
         public boolean isGetHelp() {
    +  254  7
             return (line != null) && line.hasOption(ArgumentName.HELP);
     255   -
          */
    +
         }
     256   -
         public boolean isRunScan() {
    -  257  15
             return (line != null) && isValid && line.hasOption(ArgumentName.SCAN);
    +
     
    +  257   +
         /**
     258   -
         }
    +
          * Determines if the 'scan' command line argument was passed in.
     259   -
     
    +
          *
     260   -
         /**
    +
          * @return whether or not the 'scan' command line argument was passed in
     261   -
          * Displays the command line help message to the standard output.
    +
          */
     262   -
          */
    -  263   -
         public void printHelp() {
    -  264  2
             final HelpFormatter formatter = new HelpFormatter();
    -  265  2
             final String nl = System.getProperty("line.separator");
    +
         public boolean isRunScan() {
    +  263  15
             return (line != null) && isValid && line.hasOption(ArgumentName.SCAN);
    +  264   +
         }
    +  265   +
     
     266   -
     
    -  267  2
             formatter.printHelp(Settings.getString("application.name", "DependencyCheck"),
    +
         /**
    +  267   +
          * Displays the command line help message to the standard output.
     268   -
                     nl + Settings.getString("application.name", "DependencyCheck")
    +
          */
     269   -
                     + " can be used to identify if there are any known CVE vulnerabilities in libraries utilized by an application. "
    -  270   -
                     + Settings.getString("application.name", "DependencyCheck")
    -  271   -
                     + " will automatically update required data from the Internet, such as the CVE and CPE data files from nvd.nist.gov." + nl + nl,
    +
         public void printHelp() {
    +  270  2
             final HelpFormatter formatter = new HelpFormatter();
    +  271  2
             final String nl = System.getProperty("line.separator");
     272   -
                     options,
    -  273   -
                     "",
    +
     
    +  273  2
             formatter.printHelp(Settings.getString("application.name", "DependencyCheck"),
     274   -
                     true);
    -  275  2
         }
    +
                     nl + Settings.getString("application.name", "DependencyCheck")
    +  275   +
                     + " can be used to identify if there are any known CVE vulnerabilities in libraries utilized by an application. "
     276   -
     
    +
                     + Settings.getString("application.name", "DependencyCheck")
     277   -
         /**
    +
                     + " will automatically update required data from the Internet, such as the CVE and CPE data files from nvd.nist.gov." + nl + nl,
     278   -
          * Retrieves the file command line parameter(s) specified for the 'scan'
    +
                     options,
     279   -
          * argument.
    +
                     "",
     280   -
          *
    -  281   -
          * @return the file paths specified on the command line for scan
    +
                     true);
    +  281  2
         }
     282   -
          */
    +
     
     283   -
         public String[] getScanFiles() {
    -  284  3
             return line.getOptionValues(ArgumentName.SCAN);
    +
         /**
    +  284   +
          * Retrieves the file command line parameter(s) specified for the 'scan'
     285   -
         }
    +
          * argument.
     286   -
     
    +
          *
     287   -
         /**
    +
          * @return the file paths specified on the command line for scan
     288   -
          * Returns the directory to write the reports to specified on the command
    +
          */
     289   -
          * line.
    -  290   -
          *
    +
         public String[] getScanFiles() {
    +  290  3
             return line.getOptionValues(ArgumentName.SCAN);
     291   -
          * @return the path to the reports directory.
    +
         }
     292   -
          */
    +
     
     293   -
         public String getReportDirectory() {
    -  294  1
             return line.getOptionValue(ArgumentName.OUT, ".");
    +
         /**
    +  294   +
          * Returns the directory to write the reports to specified on the command
     295   -
         }
    +
          * line.
     296   -
     
    +
          *
     297   -
         /**
    +
          * @return the path to the reports directory.
     298   -
          * Returns the output format specified on the command line. Defaults to HTML
    +
          */
     299   -
          * if no format was specified.
    -  300   -
          *
    +
         public String getReportDirectory() {
    +  300  1
             return line.getOptionValue(ArgumentName.OUT, ".");
     301   -
          * @return the output format name.
    +
         }
     302   -
          */
    +
     
     303   -
         public String getReportFormat() {
    -  304  0
             return line.getOptionValue(ArgumentName.OUTPUT_FORMAT, "HTML");
    +
         /**
    +  304   +
          * Returns the output format specified on the command line. Defaults to HTML
     305   -
         }
    +
          * if no format was specified.
     306   -
     
    +
          *
     307   -
         /**
    +
          * @return the output format name.
     308   -
          * Returns the application name specified on the command line.
    +
          */
     309   -
          *
    -  310   -
          * @return the application name.
    +
         public String getReportFormat() {
    +  310  0
             return line.getOptionValue(ArgumentName.OUTPUT_FORMAT, "HTML");
     311   -
          */
    +
         }
     312   -
         public String getApplicationName() {
    -  313  0
             return line.getOptionValue(ArgumentName.APP_NAME);
    +
     
    +  313   +
         /**
     314   -
         }
    +
          * Returns the application name specified on the command line.
     315   -
     
    +
          *
     316   -
         /**
    +
          * @return the application name.
     317   -
          * Returns the connection timeout.
    +
          */
     318   -
          *
    -  319   -
          * @return the connection timeout
    +
         public String getApplicationName() {
    +  319  0
             return line.getOptionValue(ArgumentName.APP_NAME);
     320   -
          */
    +
         }
     321   -
         public String getConnectionTimeout() {
    -  322  0
             return line.getOptionValue(ArgumentName.CONNECTION_TIMEOUT);
    +
     
    +  322   +
         /**
     323   -
         }
    +
          * Returns the connection timeout.
     324   -
     
    +
          *
     325   -
         /**
    +
          * @return the connection timeout
     326   -
          * Returns the proxy url.
    +
          */
     327   -
          *
    -  328   -
          * @return the proxy url
    +
         public String getConnectionTimeout() {
    +  328  0
             return line.getOptionValue(ArgumentName.CONNECTION_TIMEOUT);
     329   -
          */
    +
         }
     330   -
         public String getProxyUrl() {
    -  331  0
             return line.getOptionValue(ArgumentName.PROXY_URL);
    +
     
    +  331   +
         /**
     332   -
         }
    +
          * Returns the proxy url.
     333   -
     
    +
          *
     334   -
         /**
    +
          * @return the proxy url
     335   -
          * Returns the proxy port.
    +
          */
     336   -
          *
    -  337   -
          * @return the proxy port
    +
         public String getProxyUrl() {
    +  337  0
             return line.getOptionValue(ArgumentName.PROXY_URL);
     338   -
          */
    +
         }
     339   -
         public String getProxyPort() {
    -  340  0
             return line.getOptionValue(ArgumentName.PROXY_PORT);
    +
     
    +  340   +
         /**
     341   -
         }
    +
          * Returns the proxy port.
     342   -
     
    +
          *
     343   -
         /**
    +
          * @return the proxy port
     344   -
          * Returns the proxy username.
    +
          */
     345   -
          *
    -  346   -
          * @return the proxy username
    +
         public String getProxyPort() {
    +  346  0
             return line.getOptionValue(ArgumentName.PROXY_PORT);
     347   -
          */
    +
         }
     348   -
         public String getProxyUsername() {
    -  349  0
             return line.getOptionValue(ArgumentName.PROXY_USERNAME);
    +
     
    +  349   +
         /**
     350   -
         }
    +
          * Returns the proxy username.
     351   -
     
    +
          *
     352   -
         /**
    +
          * @return the proxy username
     353   -
          * Returns the proxy password.
    +
          */
     354   -
          *
    -  355   -
          * @return the proxy password
    +
         public String getProxyUsername() {
    +  355  0
             return line.getOptionValue(ArgumentName.PROXY_USERNAME);
     356   -
          */
    +
         }
     357   -
         public String getProxyPassword() {
    -  358  0
             return line.getOptionValue(ArgumentName.PROXY_PASSWORD);
    +
     
    +  358   +
         /**
     359   -
         }
    +
          * Returns the proxy password.
     360   -
     
    +
          *
     361   -
         /**
    +
          * @return the proxy password
     362   -
          * Get the value of dataDirectory.
    +
          */
     363   -
          *
    -  364   -
          * @return the value of dataDirectory
    +
         public String getProxyPassword() {
    +  364  0
             return line.getOptionValue(ArgumentName.PROXY_PASSWORD);
     365   -
          */
    +
         }
     366   -
         public String getDataDirectory() {
    -  367  0
             return line.getOptionValue(ArgumentName.DATA_DIRECTORY);
    +
     
    +  367   +
         /**
     368   -
         }
    +
          * Get the value of dataDirectory.
     369   -
     
    +
          *
     370   -
         /**
    +
          * @return the value of dataDirectory
     371   -
          * Returns the properties file specified on the command line.
    +
          */
     372   -
          *
    -  373   -
          * @return the properties file specified on the command line
    +
         public String getDataDirectory() {
    +  373  0
             return line.getOptionValue(ArgumentName.DATA_DIRECTORY);
     374   -
          */
    +
         }
     375   -
         public File getPropertiesFile() {
    -  376  0
             final String path = line.getOptionValue(ArgumentName.PROP);
    -  377  0
             if (path != null) {
    -  378  0
                 return new File(path);
    +
     
    +  376   +
         /**
    +  377   +
          * Returns the properties file specified on the command line.
    +  378   +
          *
     379   -
             }
    -  380  0
             return null;
    +
          * @return the properties file specified on the command line
    +  380   +
          */
     381   -
         }
    -  382   -
     
    -  383   -
         /**
    -  384   -
          * Returns the path to the verbose log file.
    +
         public File getPropertiesFile() {
    +  382  0
             final String path = line.getOptionValue(ArgumentName.PROP);
    +  383  0
             if (path != null) {
    +  384  0
                 return new File(path);
     385   -
          *
    -  386   -
          * @return the path to the verbose log file
    +
             }
    +  386  0
             return null;
     387   -
          */
    +
         }
     388   -
         public String getVerboseLog() {
    -  389  0
             return line.getOptionValue(ArgumentName.VERBOSE_LOG);
    +
     
    +  389   +
         /**
     390   -
         }
    +
          * Returns the path to the verbose log file.
     391   -
     
    -  392   -
         /**
    -  393   -
          * <p>Prints the manifest information to standard output.</p>
    -  394   -
          * <ul><li>Implementation-Title: ${pom.name}</li>
    -  395   -
          * <li>Implementation-Version: ${pom.version}</li></ul>
    -  396   -
          */
    -  397   -
         public void printVersionInfo() {
    -  398  1
             final String version = String.format("%s version %s",
    -  399   -
                     Settings.getString("application.name", "DependencyCheck"),
    -  400   -
                     Settings.getString("application.version", "Unknown"));
    -  401  1
             System.out.println(version);
    -  402  1
         }
    -  403   -
     
    -  404   -
         /**
    -  405   -
          * Checks if the auto update feature has been disabled. If it has been
    -  406   -
          * disabled via the command line this will return false.
    -  407  
          *
    -  408   -
          * @return if auto-update is allowed.
    -  409   +  392   +
          * @return the path to the verbose log file
    +  393  
          */
    -  410   -
         public boolean isAutoUpdate() {
    -  411  0
             return (line == null) || !line.hasOption(ArgumentName.DISABLE_AUTO_UPDATE);
    -  412   +  394   +
         public String getVerboseLog() {
    +  395  0
             return line.getOptionValue(ArgumentName.VERBOSE_LOG);
    +  396  
         }
    -  413   +  397  
     
    -  414   +  398  
         /**
    -  415   -
          * A collection of static final strings that represent the possible command
    -  416   -
          * line arguments.
    -  417   +  399   +
          * Returns the path to the suppression file.
    +  400   +
          *
    +  401   +
          * @return the path to the suppression file
    +  402  
          */
    -  418  9
         public static class ArgumentName {
    -  419   +  403   +
         public String getSuppressionFile() {
    +  404  0
             return line.getOptionValue(ArgumentName.SUPPRESION_FILE);
    +  405   +
         }
    +  406  
     
    +  407   +
         /**
    +  408   +
          * <p>Prints the manifest information to standard output.</p>
    +  409   +
          * <ul><li>Implementation-Title: ${pom.name}</li>
    +  410   +
          * <li>Implementation-Version: ${pom.version}</li></ul>
    +  411   +
          */
    +  412   +
         public void printVersionInfo() {
    +  413  1
             final String version = String.format("%s version %s",
    +  414   +
                     Settings.getString("application.name", "DependencyCheck"),
    +  415   +
                     Settings.getString("application.version", "Unknown"));
    +  416  1
             System.out.println(version);
    +  417  1
         }
    +  418   +
     
    +  419   +
         /**
     420   -
             /**
    +
          * Checks if the auto update feature has been disabled. If it has been
     421   -
              * The long CLI argument name specifying the directory/file to scan.
    +
          * disabled via the command line this will return false.
     422   -
              */
    +
          *
     423   -
             public static final String SCAN = "scan";
    +
          * @return if auto-update is allowed.
     424   -
             /**
    +
          */
     425   -
              * The short CLI argument name specifying the directory/file to scan.
    -  426   -
              */
    +
         public boolean isAutoUpdate() {
    +  426  0
             return (line == null) || !line.hasOption(ArgumentName.DISABLE_AUTO_UPDATE);
     427   -
             public static final String SCAN_SHORT = "s";
    +
         }
     428   -
             /**
    +
     
     429   -
              * The long CLI argument name specifying that the CPE/CVE/etc. data
    +
         /**
     430   -
              * should not be automatically updated.
    +
          * A collection of static final strings that represent the possible command
     431   -
              */
    +
          * line arguments.
     432   -
             public static final String DISABLE_AUTO_UPDATE = "noupdate";
    -  433   -
             /**
    +
          */
    +  433  9
         public static class ArgumentName {
     434   -
              * The short CLI argument name specifying that the CPE/CVE/etc. data
    +
     
     435   -
              * should not be automatically updated.
    -  436   -
              */
    -  437   -
             public static final String DISABLE_AUTO_UPDATE_SHORT = "n";
    -  438  
             /**
    +  436   +
              * The long CLI argument name specifying the directory/file to scan.
    +  437   +
              */
    +  438   +
             public static final String SCAN = "scan";
     439   -
              * The long CLI argument name specifying the directory to write the
    +
             /**
     440   -
              * reports to.
    +
              * The short CLI argument name specifying the directory/file to scan.
     441  
              */
     442   -
             public static final String OUT = "out";
    +
             public static final String SCAN_SHORT = "s";
     443  
             /**
     444   -
              * The short CLI argument name specifying the directory to write the
    +
              * The long CLI argument name specifying that the CPE/CVE/etc. data
     445   -
              * reports to.
    +
              * should not be automatically updated.
     446  
              */
     447   -
             public static final String OUT_SHORT = "o";
    +
             public static final String DISABLE_AUTO_UPDATE = "noupdate";
     448  
             /**
     449   -
              * The long CLI argument name specifying the output format to write the
    +
              * The short CLI argument name specifying that the CPE/CVE/etc. data
     450   -
              * reports to.
    +
              * should not be automatically updated.
     451  
              */
     452   -
             public static final String OUTPUT_FORMAT = "format";
    +
             public static final String DISABLE_AUTO_UPDATE_SHORT = "n";
     453  
             /**
     454   -
              * The short CLI argument name specifying the output format to write the
    +
              * The long CLI argument name specifying the directory to write the
     455  
              * reports to.
     456  
              */
     457   -
             public static final String OUTPUT_FORMAT_SHORT = "f";
    +
             public static final String OUT = "out";
     458  
             /**
     459   -
              * The long CLI argument name specifying the name of the application to
    +
              * The short CLI argument name specifying the directory to write the
     460   -
              * be scanned.
    +
              * reports to.
     461  
              */
     462   -
             public static final String APP_NAME = "app";
    +
             public static final String OUT_SHORT = "o";
     463  
             /**
     464   -
              * The short CLI argument name specifying the name of the application to
    +
              * The long CLI argument name specifying the output format to write the
     465   -
              * be scanned.
    +
              * reports to.
     466  
              */
     467   -
             public static final String APP_NAME_SHORT = "a";
    +
             public static final String OUTPUT_FORMAT = "format";
     468  
             /**
     469   -
              * The long CLI argument name asking for help.
    +
              * The short CLI argument name specifying the output format to write the
     470   -
              */
    +
              * reports to.
     471   -
             public static final String HELP = "help";
    +
              */
     472   -
             /**
    +
             public static final String OUTPUT_FORMAT_SHORT = "f";
     473   -
              * The short CLI argument name asking for help.
    +
             /**
     474   -
              */
    +
              * The long CLI argument name specifying the name of the application to
     475   -
             public static final String HELP_SHORT = "h";
    +
              * be scanned.
     476   -
             /**
    +
              */
     477   -
              * The long CLI argument name asking for the version.
    +
             public static final String APP_NAME = "app";
     478   -
              */
    +
             /**
     479   -
             public static final String VERSION_SHORT = "v";
    +
              * The short CLI argument name specifying the name of the application to
     480   -
             /**
    +
              * be scanned.
     481   -
              * The short CLI argument name asking for the version.
    +
              */
     482   -
              */
    +
             public static final String APP_NAME_SHORT = "a";
     483   -
             public static final String VERSION = "version";
    +
             /**
     484   -
             /**
    +
              * The long CLI argument name asking for help.
     485   -
              * The short CLI argument name indicating the proxy port.
    +
              */
     486   -
              */
    +
             public static final String HELP = "help";
     487   -
             public static final String PROXY_PORT_SHORT = "p";
    +
             /**
     488   -
             /**
    +
              * The short CLI argument name asking for help.
     489   -
              * The CLI argument name indicating the proxy port.
    +
              */
     490   -
              */
    +
             public static final String HELP_SHORT = "h";
     491   -
             public static final String PROXY_PORT = "proxyport";
    +
             /**
     492   -
             /**
    +
              * The long CLI argument name asking for the version.
     493   -
              * The short CLI argument name indicating the proxy url.
    +
              */
     494   -
              */
    +
             public static final String VERSION_SHORT = "v";
     495   -
             public static final String PROXY_URL_SHORT = "u";
    +
             /**
     496   -
             /**
    +
              * The short CLI argument name asking for the version.
     497   -
              * The CLI argument name indicating the proxy url.
    +
              */
     498   -
              */
    +
             public static final String VERSION = "version";
     499   -
             public static final String PROXY_URL = "proxyurl";
    +
             /**
     500   -
             /**
    +
              * The short CLI argument name indicating the proxy port.
     501   -
              * The short CLI argument name indicating the proxy username.
    +
              */
     502   -
              */
    +
             public static final String PROXY_PORT_SHORT = "p";
     503   -
             public static final String PROXY_USERNAME_SHORT = "pu";
    +
             /**
     504   -
             /**
    +
              * The CLI argument name indicating the proxy port.
     505   -
              * The CLI argument name indicating the proxy username.
    +
              */
     506   -
              */
    +
             public static final String PROXY_PORT = "proxyport";
     507   -
             public static final String PROXY_USERNAME = "proxyuser";
    +
             /**
     508   -
             /**
    +
              * The short CLI argument name indicating the proxy url.
     509   -
              * The short CLI argument name indicating the proxy password.
    +
              */
     510   -
              */
    +
             public static final String PROXY_URL_SHORT = "u";
     511   -
             public static final String PROXY_PASSWORD_SHORT = "pp";
    +
             /**
     512   -
             /**
    +
              * The CLI argument name indicating the proxy url.
     513   -
              * The CLI argument name indicating the proxy password.
    +
              */
     514   -
              */
    +
             public static final String PROXY_URL = "proxyurl";
     515   -
             public static final String PROXY_PASSWORD = "proxypass";
    +
             /**
     516   -
             /**
    +
              * The short CLI argument name indicating the proxy username.
     517   -
              * The short CLI argument name indicating the connection timeout.
    +
              */
     518   -
              */
    +
             public static final String PROXY_USERNAME_SHORT = "pu";
     519   -
             public static final String CONNECTION_TIMEOUT_SHORT = "c";
    +
             /**
     520   -
             /**
    +
              * The CLI argument name indicating the proxy username.
     521   -
              * The CLI argument name indicating the connection timeout.
    +
              */
     522   -
              */
    +
             public static final String PROXY_USERNAME = "proxyuser";
     523   -
             public static final String CONNECTION_TIMEOUT = "connectiontimeout";
    +
             /**
     524   -
             /**
    +
              * The short CLI argument name indicating the proxy password.
     525   -
              * The short CLI argument name for setting the location of an additional
    +
              */
     526   -
              * properties file.
    +
             public static final String PROXY_PASSWORD_SHORT = "pp";
     527   -
              */
    +
             /**
     528   -
             public static final String PROP_SHORT = "p";
    +
              * The CLI argument name indicating the proxy password.
     529   -
             /**
    +
              */
     530   -
              * The CLI argument name for setting the location of an additional
    +
             public static final String PROXY_PASSWORD = "proxypass";
     531   -
              * properties file.
    +
             /**
     532   -
              */
    +
              * The short CLI argument name indicating the connection timeout.
     533   -
             public static final String PROP = "propertyfile";
    +
              */
     534   -
             /**
    +
             public static final String CONNECTION_TIMEOUT_SHORT = "c";
     535   -
              * The CLI argument name for setting the location of the data directory.
    +
             /**
     536   -
              */
    +
              * The CLI argument name indicating the connection timeout.
     537   -
             public static final String DATA_DIRECTORY = "data";
    +
              */
     538   -
             /**
    +
             public static final String CONNECTION_TIMEOUT = "connectiontimeout";
     539   -
              * The short CLI argument name for setting the location of the data
    +
             /**
     540   -
              * directory.
    +
              * The short CLI argument name for setting the location of an additional
     541   -
              */
    +
              * properties file.
     542   -
             public static final String DATA_DIRECTORY_SHORT = "d";
    +
              */
     543   -
             /**
    +
             public static final String PROP_SHORT = "p";
     544   -
              * The CLI argument name for setting the location of the data directory.
    -  545   -
              */
    -  546   -
             public static final String VERBOSE_LOG = "log";
    -  547  
             /**
    -  548   -
              * The short CLI argument name for setting the location of the data
    -  549   -
              * directory.
    -  550   +  545   +
              * The CLI argument name for setting the location of an additional
    +  546   +
              * properties file.
    +  547  
              */
    +  548   +
             public static final String PROP = "propertyfile";
    +  549   +
             /**
    +  550   +
              * The CLI argument name for setting the location of the data directory.
     551   -
             public static final String VERBOSE_LOG_SHORT = "l";
    +
              */
     552   -
         }
    +
             public static final String DATA_DIRECTORY = "data";
     553   +
             /**
    +  554   +
              * The short CLI argument name for setting the location of the data
    +  555   +
              * directory.
    +  556   +
              */
    +  557   +
             public static final String DATA_DIRECTORY_SHORT = "d";
    +  558   +
             /**
    +  559   +
              * The CLI argument name for setting the location of the data directory.
    +  560   +
              */
    +  561   +
             public static final String VERBOSE_LOG = "log";
    +  562   +
             /**
    +  563   +
              * The short CLI argument name for setting the location of the data
    +  564   +
              * directory.
    +  565   +
              */
    +  566   +
             public static final String VERBOSE_LOG_SHORT = "l";
    +  567   +
             /**
    +  568   +
              * The CLI argument name for setting the location of the suppression
    +  569   +
              * file.
    +  570   +
              */
    +  571   +
             public static final String SUPPRESION_FILE = "suppression";
    +  572   +
             /**
    +  573   +
              * The short CLI argument name for setting the location of the
    +  574   +
              * suppression file.
    +  575   +
              */
    +  576   +
             public static final String SUPPRESION_FILE_SHORT = "sf";
    +  577   +
         }
    +  578  
     }
    - + diff --git a/dependency-check-cli/cpd.html b/dependency-check-cli/cpd.html index 6a5f97197..e7882a62b 100644 --- a/dependency-check-cli/cpd.html +++ b/dependency-check-cli/cpd.html @@ -1,13 +1,13 @@ - + dependency-check-cli - CPD Results @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -87,6 +87,13 @@ Installation + + +
  • + + + + Configuration
  • diff --git a/dependency-check-cli/dependency-updates-report.html b/dependency-check-cli/dependency-updates-report.html index 3e7b4084d..165cddb67 100644 --- a/dependency-check-cli/dependency-updates-report.html +++ b/dependency-check-cli/dependency-updates-report.html @@ -1,13 +1,13 @@ - + dependency-check-cli - Dependency Updates Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -87,6 +87,13 @@ Installation + + +
  • + + + + Configuration
  • @@ -286,7 +293,7 @@ org.owasp dependency-check-core -1.0.5 +1.0.6 compile jar @@ -371,7 +378,7 @@ dependency-check-core Current Version -1.0.5 +1.0.6 Scope compile diff --git a/dependency-check-cli/findbugs.html b/dependency-check-cli/findbugs.html index 5077eff4c..bd719d7e6 100644 --- a/dependency-check-cli/findbugs.html +++ b/dependency-check-cli/findbugs.html @@ -1,13 +1,13 @@ - + dependency-check-cli - FindBugs Bug Detector Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -87,6 +87,13 @@ Installation + + +
  • + + + + Configuration
  • diff --git a/dependency-check-cli/index.html b/dependency-check-cli/index.html index c38471964..2d3e0217e 100644 --- a/dependency-check-cli/index.html +++ b/dependency-check-cli/index.html @@ -1,13 +1,13 @@ - + dependency-check-cli - About @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -87,6 +87,13 @@ Installation + + +
  • + + + + Configuration
  • diff --git a/dependency-check-cli/installation.html b/dependency-check-cli/installation.html index 15e449694..65dc53da0 100644 --- a/dependency-check-cli/installation.html +++ b/dependency-check-cli/installation.html @@ -1,13 +1,13 @@ - + dependency-check-cli - @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -86,6 +86,13 @@ Installation + +
  • + + + + Configuration +
  • @@ -132,7 +139,7 @@

    Installation & Usage

    -

    Downlod the dependency-check command line tool here. Extract the zip file to a location on your computer and put the ‘bin’ directory into the path environment variable. On *nix systems you will likely need to make the shell script executable:

    +

    Downlod the dependency-check command line tool here. Extract the zip file to a location on your computer and put the ‘bin’ directory into the path environment variable. On *nix systems you will likely need to make the shell script executable:

    $ chmod +777 dependency-check.sh
    @@ -143,6 +150,11 @@
     
    dependency-check.bat --app "My App Name" --scan "c:\java\application\lib"
     
     dependency-check.sh --app "My App Name" --scan "/java/application/lib"
    +
    +

    To view the command line arguments, see the arguments page, or you can run: dependency-check.bat –help

    + +
    +
    dependency-check.sh --help
     
    diff --git a/dependency-check-cli/license.html b/dependency-check-cli/license.html index 2ab3df0ae..4b8b56644 100644 --- a/dependency-check-cli/license.html +++ b/dependency-check-cli/license.html @@ -1,13 +1,13 @@ - + dependency-check-cli - Project License @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -87,6 +87,13 @@ Installation + + +
  • + + + + Configuration
  • diff --git a/dependency-check-cli/plugin-updates-report.html b/dependency-check-cli/plugin-updates-report.html index 77823798c..1c958166d 100644 --- a/dependency-check-cli/plugin-updates-report.html +++ b/dependency-check-cli/plugin-updates-report.html @@ -1,13 +1,13 @@ - + dependency-check-cli - Plugin Updates Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -87,6 +87,13 @@ Installation + + +
  • + + + + Configuration
  • @@ -243,7 +250,7 @@ # of plugins where a dependencies section containes a dependency with an updated version -0 +1

    Plugin Management

    @@ -411,7 +418,7 @@ - + @@ -419,7 +426,7 @@ - + @@ -724,7 +731,7 @@ - + @@ -732,7 +739,7 @@ - + @@ -750,7 +757,7 @@
    org.apache.maven.plugins maven-site-plugin 3.3
    org.apache.maven.pluginsNext Minor Next Major
    org.apache.maven.doxia doxia-module-markdown 1.4jar 1.5
    Status
    - + @@ -765,7 +772,10 @@ -
    Status No newer versions available.
     There is at least one newer minor version available. Minor updates are sometimes passive.
    Group Id org.apache.maven.doxia
    Typejar
    +jar + +Newer versions +1.5 Next Minor

    Plugin org.apache.maven.plugins:maven-surefire-plugin

    diff --git a/dependency-check-cli/pmd.html b/dependency-check-cli/pmd.html index 7f393c859..ba6805666 100644 --- a/dependency-check-cli/pmd.html +++ b/dependency-check-cli/pmd.html @@ -1,13 +1,13 @@ - + dependency-check-cli - PMD Results @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -87,6 +87,13 @@ Installation + + +
  • + + + + Configuration
  • @@ -229,16 +236,16 @@ - + - + - + -
    Line
    Useless parentheses.239
    245
    Useless parentheses.248
    254
    Useless parentheses.257
    263
    Useless parentheses.411
    +426 diff --git a/dependency-check-cli/project-info.html b/dependency-check-cli/project-info.html index 4bfa68b2d..7615e5992 100644 --- a/dependency-check-cli/project-info.html +++ b/dependency-check-cli/project-info.html @@ -1,13 +1,13 @@ - + dependency-check-cli - Project Information @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -87,6 +87,13 @@ Installation + + +
  • + + + + Configuration
  • diff --git a/dependency-check-cli/project-reports.html b/dependency-check-cli/project-reports.html index a1367f753..5aac55632 100644 --- a/dependency-check-cli/project-reports.html +++ b/dependency-check-cli/project-reports.html @@ -1,13 +1,13 @@ - + dependency-check-cli - Generated Reports @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -87,6 +87,13 @@ Installation + + +
  • + + + + Configuration
  • diff --git a/dependency-check-cli/project-summary.html b/dependency-check-cli/project-summary.html index 7fd03750b..f2b8072e2 100644 --- a/dependency-check-cli/project-summary.html +++ b/dependency-check-cli/project-summary.html @@ -1,13 +1,13 @@ - + dependency-check-cli - Project Summary @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -87,6 +87,13 @@ Installation + + +
  • + + + + Configuration
  • @@ -196,7 +203,7 @@ dependency-check-cli Version -1.0.5 +1.0.6 Type jar diff --git a/dependency-check-cli/surefire-report.html b/dependency-check-cli/surefire-report.html index 8c6368898..03a53095b 100644 --- a/dependency-check-cli/surefire-report.html +++ b/dependency-check-cli/surefire-report.html @@ -1,13 +1,13 @@ - + dependency-check-cli - Surefire Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -87,6 +87,13 @@ Installation + + +
  • + + + + Configuration
  • @@ -252,7 +259,7 @@ function toggleDisplay(elementId) { 0 0 100% -0.055
    +0.048

    Note: failures are anticipated and checked for with assertions while errors are unanticipated.


    Package List

    @@ -273,7 +280,7 @@ function toggleDisplay(elementId) { 0 0 100% -0.055
    +0.048

    Note: package statistics are not computed recursively, they only sum up all of its testsuites numbers.

    org.owasp.dependencycheck.cli

    @@ -295,7 +302,7 @@ function toggleDisplay(elementId) { 0 0 100% -0.055

    +0.048

    Test Cases

    [Summary] [Package List] [Test Cases]

    @@ -305,15 +312,15 @@ function toggleDisplay(elementId) { testParse_printHelp -0.048 +0.044 testParse_printVersionInfo -0.001 +0 testParse_help -0.001 +0 testParse_scan @@ -321,11 +328,11 @@ function toggleDisplay(elementId) { testParse -0.001 +0 testParse_unknown -0.001 +0 testParse_version @@ -337,7 +344,7 @@ function toggleDisplay(elementId) { testParse_scan_withFileExists -0.001

    +0.002
    diff --git a/dependency-check-cli/taglist.html b/dependency-check-cli/taglist.html index 8fb28d402..dc709ee59 100644 --- a/dependency-check-cli/taglist.html +++ b/dependency-check-cli/taglist.html @@ -1,13 +1,13 @@ - + dependency-check-cli - Tag List report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -87,6 +87,13 @@ Installation + + +
  • + + + + Configuration
  • diff --git a/dependency-check-cli/xref-test/index.html b/dependency-check-cli/xref-test/index.html index 3ec156bbd..db85415a2 100644 --- a/dependency-check-cli/xref-test/index.html +++ b/dependency-check-cli/xref-test/index.html @@ -3,7 +3,7 @@ - Dependency-Check Command Line 1.0.5 Reference + Dependency-Check Command Line 1.0.6 Reference diff --git a/dependency-check-cli/xref-test/org/owasp/dependencycheck/cli/package-frame.html b/dependency-check-cli/xref-test/org/owasp/dependencycheck/cli/package-frame.html index 75c66a947..c016d97e0 100644 --- a/dependency-check-cli/xref-test/org/owasp/dependencycheck/cli/package-frame.html +++ b/dependency-check-cli/xref-test/org/owasp/dependencycheck/cli/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Command Line 1.0.5 Reference Package org.owasp.dependencycheck.cli + Dependency-Check Command Line 1.0.6 Reference Package org.owasp.dependencycheck.cli diff --git a/dependency-check-cli/xref-test/org/owasp/dependencycheck/cli/package-summary.html b/dependency-check-cli/xref-test/org/owasp/dependencycheck/cli/package-summary.html index 7426b73b3..fa8da3248 100644 --- a/dependency-check-cli/xref-test/org/owasp/dependencycheck/cli/package-summary.html +++ b/dependency-check-cli/xref-test/org/owasp/dependencycheck/cli/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Command Line 1.0.5 Reference Package org.owasp.dependencycheck.cli + Dependency-Check Command Line 1.0.6 Reference Package org.owasp.dependencycheck.cli diff --git a/dependency-check-cli/xref-test/overview-frame.html b/dependency-check-cli/xref-test/overview-frame.html index e24e92a3f..7800ffb7e 100644 --- a/dependency-check-cli/xref-test/overview-frame.html +++ b/dependency-check-cli/xref-test/overview-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Command Line 1.0.5 Reference + Dependency-Check Command Line 1.0.6 Reference diff --git a/dependency-check-cli/xref-test/overview-summary.html b/dependency-check-cli/xref-test/overview-summary.html index 865b757a4..3eb8a8845 100644 --- a/dependency-check-cli/xref-test/overview-summary.html +++ b/dependency-check-cli/xref-test/overview-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Command Line 1.0.5 Reference + Dependency-Check Command Line 1.0.6 Reference @@ -24,7 +24,7 @@ -

    Dependency-Check Command Line 1.0.5 Reference

    +

    Dependency-Check Command Line 1.0.6 Reference

    diff --git a/dependency-check-cli/xref/index.html b/dependency-check-cli/xref/index.html index 3ec156bbd..db85415a2 100644 --- a/dependency-check-cli/xref/index.html +++ b/dependency-check-cli/xref/index.html @@ -3,7 +3,7 @@ - Dependency-Check Command Line 1.0.5 Reference + Dependency-Check Command Line 1.0.6 Reference diff --git a/dependency-check-cli/xref/org/owasp/dependencycheck/App.html b/dependency-check-cli/xref/org/owasp/dependencycheck/App.html index f2fda3493..8e5b70c72 100644 --- a/dependency-check-cli/xref/org/owasp/dependencycheck/App.html +++ b/dependency-check-cli/xref/org/owasp/dependencycheck/App.html @@ -109,7 +109,7 @@ 99 } elseif (cli.isRunScan()) { 100 updateSettings(cli.isAutoUpdate(), cli.getConnectionTimeout(), cli.getProxyUrl(), 101 cli.getProxyPort(), cli.getProxyUsername(), cli.getProxyPassword(), -102 cli.getDataDirectory(), cli.getPropertiesFile()); +102 cli.getDataDirectory(), cli.getPropertiesFile(), cli.getSuppressionFile()); 103 runScan(cli.getReportDirectory(), cli.getReportFormat(), cli.getApplicationName(), cli.getScanFiles()); 104 } else { 105 cli.printHelp(); @@ -157,55 +157,62 @@ 147 * @param proxyUrl the proxy url (null or blank means no proxy will be used)148 * @param proxyPort the proxy port (null or blank means no port will be149 * used) -150 * @param dataDirectory the directory to store/retrieve persistent data from -151 * @param propertiesFile the properties file to utilize -152 */ -153privatevoid updateSettings(boolean autoUpdate, String connectionTimeout, String proxyUrl, String proxyPort, -154 String proxyUser, String proxyPass, String dataDirectory, File propertiesFile) { -155 -156if (propertiesFile != null) { -157try { -158 Settings.mergeProperties(propertiesFile); -159 } catch (FileNotFoundException ex) { -160final String msg = String.format("Unable to load properties file '%s'", propertiesFile.getPath()); -161 Logger.getLogger(App.class.getName()).log(Level.SEVERE, msg); -162 Logger.getLogger(App.class.getName()).log(Level.FINE, null, ex); -163 } catch (IOException ex) { -164final String msg = String.format("Unable to find properties file '%s'", propertiesFile.getPath()); +150 * @param proxyUser the proxy user name +151 * @param proxyPass the password for the proxy +152 * @param dataDirectory the directory to store/retrieve persistent data from +153 * @param propertiesFile the properties file to utilize +154 * @param suppressionFile the path to the suppression file +155 */ +156privatevoid updateSettings(boolean autoUpdate, String connectionTimeout, String proxyUrl, String proxyPort, +157 String proxyUser, String proxyPass, String dataDirectory, File propertiesFile, +158 String suppressionFile) { +159 +160if (propertiesFile != null) { +161try { +162 Settings.mergeProperties(propertiesFile); +163 } catch (FileNotFoundException ex) { +164final String msg = String.format("Unable to load properties file '%s'", propertiesFile.getPath()); 165 Logger.getLogger(App.class.getName()).log(Level.SEVERE, msg); 166 Logger.getLogger(App.class.getName()).log(Level.FINE, null, ex); -167 } -168 } -169if (dataDirectory != null) { -170 Settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDirectory); -171 } elseif (System.getProperty("basedir") != null) { -172final File dataDir = new File(System.getProperty("basedir"), "data"); -173 Settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDir.getAbsolutePath()); -174 } else { -175final File jarPath = new File(App.class.getProtectionDomain().getCodeSource().getLocation().getPath()); -176final File base = jarPath.getParentFile(); -177final String sub = Settings.getString(Settings.KEYS.DATA_DIRECTORY); -178final File dataDir = new File(base, sub); -179 Settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDir.getAbsolutePath()); -180 } -181 Settings.setBoolean(Settings.KEYS.AUTO_UPDATE, autoUpdate); -182if (proxyUrl != null && !proxyUrl.isEmpty()) { -183 Settings.setString(Settings.KEYS.PROXY_URL, proxyUrl); +167 } catch (IOException ex) { +168final String msg = String.format("Unable to find properties file '%s'", propertiesFile.getPath()); +169 Logger.getLogger(App.class.getName()).log(Level.SEVERE, msg); +170 Logger.getLogger(App.class.getName()).log(Level.FINE, null, ex); +171 } +172 } +173if (dataDirectory != null) { +174 Settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDirectory); +175 } elseif (System.getProperty("basedir") != null) { +176final File dataDir = new File(System.getProperty("basedir"), "data"); +177 Settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDir.getAbsolutePath()); +178 } else { +179final File jarPath = new File(App.class.getProtectionDomain().getCodeSource().getLocation().getPath()); +180final File base = jarPath.getParentFile(); +181final String sub = Settings.getString(Settings.KEYS.DATA_DIRECTORY); +182final File dataDir = new File(base, sub); +183 Settings.setString(Settings.KEYS.DATA_DIRECTORY, dataDir.getAbsolutePath()); 184 } -185if (proxyPort != null && !proxyPort.isEmpty()) { -186 Settings.setString(Settings.KEYS.PROXY_PORT, proxyPort); -187 } -188if (proxyUser != null && !proxyUser.isEmpty()) { -189 Settings.setString(Settings.KEYS.PROXY_USERNAME, proxyUser); -190 } -191if (proxyPass != null && !proxyPass.isEmpty()) { -192 Settings.setString(Settings.KEYS.PROXY_PASSWORD, proxyPass); -193 } -194if (connectionTimeout != null && !connectionTimeout.isEmpty()) { -195 Settings.setString(Settings.KEYS.CONNECTION_TIMEOUT, connectionTimeout); -196 } -197 } -198 } +185 Settings.setBoolean(Settings.KEYS.AUTO_UPDATE, autoUpdate); +186if (proxyUrl != null && !proxyUrl.isEmpty()) { +187 Settings.setString(Settings.KEYS.PROXY_URL, proxyUrl); +188 } +189if (proxyPort != null && !proxyPort.isEmpty()) { +190 Settings.setString(Settings.KEYS.PROXY_PORT, proxyPort); +191 } +192if (proxyUser != null && !proxyUser.isEmpty()) { +193 Settings.setString(Settings.KEYS.PROXY_USERNAME, proxyUser); +194 } +195if (proxyPass != null && !proxyPass.isEmpty()) { +196 Settings.setString(Settings.KEYS.PROXY_PASSWORD, proxyPass); +197 } +198if (connectionTimeout != null && !connectionTimeout.isEmpty()) { +199 Settings.setString(Settings.KEYS.CONNECTION_TIMEOUT, connectionTimeout); +200 } +201if (suppressionFile != null && !suppressionFile.isEmpty()) { +202 Settings.setString(Settings.KEYS.SUPPRESSION_FILE, suppressionFile); +203 } +204 } +205 }
    diff --git a/dependency-check-cli/xref/org/owasp/dependencycheck/cli/CliParser.html b/dependency-check-cli/xref/org/owasp/dependencycheck/cli/CliParser.html index 4dff1321e..cff5f562f 100644 --- a/dependency-check-cli/xref/org/owasp/dependencycheck/cli/CliParser.html +++ b/dependency-check-cli/xref/org/owasp/dependencycheck/cli/CliParser.html @@ -217,350 +217,375 @@ 207 .withDescription("The file path to write verbose logging information.") 208 .create(ArgumentName.VERBOSE_LOG_SHORT); 209 -210final OptionGroup og = new OptionGroup(); -211 og.addOption(path); -212 -213final Options opts = new Options(); -214 opts.addOptionGroup(og); -215 opts.addOption(out); -216 opts.addOption(outputFormat); -217 opts.addOption(appName); -218 opts.addOption(version); -219 opts.addOption(help); -220 opts.addOption(noUpdate); -221 opts.addOption(props); -222 opts.addOption(data); -223 opts.addOption(verboseLog); -224 opts.addOption(proxyPort); -225 opts.addOption(proxyUrl); -226 opts.addOption(proxyUsername); -227 opts.addOption(proxyPassword); -228 opts.addOption(connectionTimeout); -229 -230return opts; -231 } -232 -233/** -234 * Determines if the 'version' command line argument was passed in. -235 * -236 * @return whether or not the 'version' command line argument was passed in -237 */ -238publicboolean isGetVersion() { -239return (line != null) && line.hasOption(ArgumentName.VERSION); -240 } -241 -242/** -243 * Determines if the 'help' command line argument was passed in. -244 * -245 * @return whether or not the 'help' command line argument was passed in -246 */ -247publicboolean isGetHelp() { -248return (line != null) && line.hasOption(ArgumentName.HELP); -249 } -250 -251/** -252 * Determines if the 'scan' command line argument was passed in. -253 * -254 * @return whether or not the 'scan' command line argument was passed in -255 */ -256publicboolean isRunScan() { -257return (line != null) && isValid && line.hasOption(ArgumentName.SCAN); -258 } -259 -260/** -261 * Displays the command line help message to the standard output. -262 */ -263publicvoid printHelp() { -264final HelpFormatter formatter = new HelpFormatter(); -265final String nl = System.getProperty("line.separator"); -266 -267 formatter.printHelp(Settings.getString("application.name", "DependencyCheck"), -268 nl + Settings.getString("application.name", "DependencyCheck") -269 + " can be used to identify if there are any known CVE vulnerabilities in libraries utilized by an application. " -270 + Settings.getString("application.name", "DependencyCheck") -271 + " will automatically update required data from the Internet, such as the CVE and CPE data files from nvd.nist.gov." + nl + nl, -272 options, -273"", -274true); -275 } -276 -277/** -278 * Retrieves the file command line parameter(s) specified for the 'scan' -279 * argument. -280 * -281 * @return the file paths specified on the command line for scan -282 */ -283public String[] getScanFiles() { -284return line.getOptionValues(ArgumentName.SCAN); -285 } -286 -287/** -288 * Returns the directory to write the reports to specified on the command -289 * line. -290 * -291 * @return the path to the reports directory. -292 */ -293public String getReportDirectory() { -294return line.getOptionValue(ArgumentName.OUT, "."); -295 } -296 -297/** -298 * Returns the output format specified on the command line. Defaults to HTML -299 * if no format was specified. -300 * -301 * @return the output format name. -302 */ -303public String getReportFormat() { -304return line.getOptionValue(ArgumentName.OUTPUT_FORMAT, "HTML"); -305 } -306 -307/** -308 * Returns the application name specified on the command line. -309 * -310 * @return the application name. -311 */ -312public String getApplicationName() { -313return line.getOptionValue(ArgumentName.APP_NAME); -314 } -315 -316/** -317 * Returns the connection timeout. -318 * -319 * @return the connection timeout -320 */ -321public String getConnectionTimeout() { -322return line.getOptionValue(ArgumentName.CONNECTION_TIMEOUT); -323 } -324 -325/** -326 * Returns the proxy url. -327 * -328 * @return the proxy url -329 */ -330public String getProxyUrl() { -331return line.getOptionValue(ArgumentName.PROXY_URL); -332 } -333 -334/** -335 * Returns the proxy port. -336 * -337 * @return the proxy port -338 */ -339public String getProxyPort() { -340return line.getOptionValue(ArgumentName.PROXY_PORT); -341 } -342 -343/** -344 * Returns the proxy username. -345 * -346 * @return the proxy username -347 */ -348public String getProxyUsername() { -349return line.getOptionValue(ArgumentName.PROXY_USERNAME); -350 } -351 -352/** -353 * Returns the proxy password. -354 * -355 * @return the proxy password -356 */ -357public String getProxyPassword() { -358return line.getOptionValue(ArgumentName.PROXY_PASSWORD); -359 } -360 -361/** -362 * Get the value of dataDirectory. -363 * -364 * @return the value of dataDirectory -365 */ -366public String getDataDirectory() { -367return line.getOptionValue(ArgumentName.DATA_DIRECTORY); -368 } -369 -370/** -371 * Returns the properties file specified on the command line. -372 * -373 * @return the properties file specified on the command line -374 */ -375public File getPropertiesFile() { -376final String path = line.getOptionValue(ArgumentName.PROP); -377if (path != null) { -378returnnew File(path); -379 } -380returnnull; -381 } -382 -383/** -384 * Returns the path to the verbose log file. -385 * -386 * @return the path to the verbose log file -387 */ -388public String getVerboseLog() { -389return line.getOptionValue(ArgumentName.VERBOSE_LOG); -390 } -391 -392/** -393 * <p>Prints the manifest information to standard output.</p> -394 * <ul><li>Implementation-Title: ${pom.name}</li> -395 * <li>Implementation-Version: ${pom.version}</li></ul> -396 */ -397publicvoid printVersionInfo() { -398final String version = String.format("%s version %s", -399 Settings.getString("application.name", "DependencyCheck"), -400 Settings.getString("application.version", "Unknown")); -401 System.out.println(version); -402 } -403 -404/** -405 * Checks if the auto update feature has been disabled. If it has been -406 * disabled via the command line this will return false. -407 * -408 * @return if auto-update is allowed. -409 */ -410publicboolean isAutoUpdate() { -411return (line == null) || !line.hasOption(ArgumentName.DISABLE_AUTO_UPDATE); -412 } -413 -414/** -415 * A collection of static final strings that represent the possible command -416 * line arguments. -417 */ -418publicstaticclassArgumentName { -419 -420/** -421 * The long CLI argument name specifying the directory/file to scan. -422 */ -423publicstaticfinal String SCAN = "scan"; -424/** -425 * The short CLI argument name specifying the directory/file to scan. -426 */ -427publicstaticfinal String SCAN_SHORT = "s"; -428/** -429 * The long CLI argument name specifying that the CPE/CVE/etc. data -430 * should not be automatically updated. -431 */ -432publicstaticfinal String DISABLE_AUTO_UPDATE = "noupdate"; -433/** -434 * The short CLI argument name specifying that the CPE/CVE/etc. data -435 * should not be automatically updated. -436 */ -437publicstaticfinal String DISABLE_AUTO_UPDATE_SHORT = "n"; -438/** -439 * The long CLI argument name specifying the directory to write the -440 * reports to. +210final Option suppressionFile = OptionBuilder.withArgName("file").hasArg().withLongOpt(ArgumentName.SUPPRESION_FILE) +211 .withDescription("The file path to the suppression XML file.") +212 .create(ArgumentName.SUPPRESION_FILE_SHORT); +213 +214 +215final OptionGroup og = new OptionGroup(); +216 og.addOption(path); +217 +218final Options opts = new Options(); +219 opts.addOptionGroup(og); +220 opts.addOption(out); +221 opts.addOption(outputFormat); +222 opts.addOption(appName); +223 opts.addOption(version); +224 opts.addOption(help); +225 opts.addOption(noUpdate); +226 opts.addOption(props); +227 opts.addOption(data); +228 opts.addOption(verboseLog); +229 opts.addOption(suppressionFile); +230 opts.addOption(proxyPort); +231 opts.addOption(proxyUrl); +232 opts.addOption(proxyUsername); +233 opts.addOption(proxyPassword); +234 opts.addOption(connectionTimeout); +235 +236return opts; +237 } +238 +239/** +240 * Determines if the 'version' command line argument was passed in. +241 * +242 * @return whether or not the 'version' command line argument was passed in +243 */ +244publicboolean isGetVersion() { +245return (line != null) && line.hasOption(ArgumentName.VERSION); +246 } +247 +248/** +249 * Determines if the 'help' command line argument was passed in. +250 * +251 * @return whether or not the 'help' command line argument was passed in +252 */ +253publicboolean isGetHelp() { +254return (line != null) && line.hasOption(ArgumentName.HELP); +255 } +256 +257/** +258 * Determines if the 'scan' command line argument was passed in. +259 * +260 * @return whether or not the 'scan' command line argument was passed in +261 */ +262publicboolean isRunScan() { +263return (line != null) && isValid && line.hasOption(ArgumentName.SCAN); +264 } +265 +266/** +267 * Displays the command line help message to the standard output. +268 */ +269publicvoid printHelp() { +270final HelpFormatter formatter = new HelpFormatter(); +271final String nl = System.getProperty("line.separator"); +272 +273 formatter.printHelp(Settings.getString("application.name", "DependencyCheck"), +274 nl + Settings.getString("application.name", "DependencyCheck") +275 + " can be used to identify if there are any known CVE vulnerabilities in libraries utilized by an application. " +276 + Settings.getString("application.name", "DependencyCheck") +277 + " will automatically update required data from the Internet, such as the CVE and CPE data files from nvd.nist.gov." + nl + nl, +278 options, +279"", +280true); +281 } +282 +283/** +284 * Retrieves the file command line parameter(s) specified for the 'scan' +285 * argument. +286 * +287 * @return the file paths specified on the command line for scan +288 */ +289public String[] getScanFiles() { +290return line.getOptionValues(ArgumentName.SCAN); +291 } +292 +293/** +294 * Returns the directory to write the reports to specified on the command +295 * line. +296 * +297 * @return the path to the reports directory. +298 */ +299public String getReportDirectory() { +300return line.getOptionValue(ArgumentName.OUT, "."); +301 } +302 +303/** +304 * Returns the output format specified on the command line. Defaults to HTML +305 * if no format was specified. +306 * +307 * @return the output format name. +308 */ +309public String getReportFormat() { +310return line.getOptionValue(ArgumentName.OUTPUT_FORMAT, "HTML"); +311 } +312 +313/** +314 * Returns the application name specified on the command line. +315 * +316 * @return the application name. +317 */ +318public String getApplicationName() { +319return line.getOptionValue(ArgumentName.APP_NAME); +320 } +321 +322/** +323 * Returns the connection timeout. +324 * +325 * @return the connection timeout +326 */ +327public String getConnectionTimeout() { +328return line.getOptionValue(ArgumentName.CONNECTION_TIMEOUT); +329 } +330 +331/** +332 * Returns the proxy url. +333 * +334 * @return the proxy url +335 */ +336public String getProxyUrl() { +337return line.getOptionValue(ArgumentName.PROXY_URL); +338 } +339 +340/** +341 * Returns the proxy port. +342 * +343 * @return the proxy port +344 */ +345public String getProxyPort() { +346return line.getOptionValue(ArgumentName.PROXY_PORT); +347 } +348 +349/** +350 * Returns the proxy username. +351 * +352 * @return the proxy username +353 */ +354public String getProxyUsername() { +355return line.getOptionValue(ArgumentName.PROXY_USERNAME); +356 } +357 +358/** +359 * Returns the proxy password. +360 * +361 * @return the proxy password +362 */ +363public String getProxyPassword() { +364return line.getOptionValue(ArgumentName.PROXY_PASSWORD); +365 } +366 +367/** +368 * Get the value of dataDirectory. +369 * +370 * @return the value of dataDirectory +371 */ +372public String getDataDirectory() { +373return line.getOptionValue(ArgumentName.DATA_DIRECTORY); +374 } +375 +376/** +377 * Returns the properties file specified on the command line. +378 * +379 * @return the properties file specified on the command line +380 */ +381public File getPropertiesFile() { +382final String path = line.getOptionValue(ArgumentName.PROP); +383if (path != null) { +384returnnew File(path); +385 } +386returnnull; +387 } +388 +389/** +390 * Returns the path to the verbose log file. +391 * +392 * @return the path to the verbose log file +393 */ +394public String getVerboseLog() { +395return line.getOptionValue(ArgumentName.VERBOSE_LOG); +396 } +397 +398/** +399 * Returns the path to the suppression file. +400 * +401 * @return the path to the suppression file +402 */ +403public String getSuppressionFile() { +404return line.getOptionValue(ArgumentName.SUPPRESION_FILE); +405 } +406 +407/** +408 * <p>Prints the manifest information to standard output.</p> +409 * <ul><li>Implementation-Title: ${pom.name}</li> +410 * <li>Implementation-Version: ${pom.version}</li></ul> +411 */ +412publicvoid printVersionInfo() { +413final String version = String.format("%s version %s", +414 Settings.getString("application.name", "DependencyCheck"), +415 Settings.getString("application.version", "Unknown")); +416 System.out.println(version); +417 } +418 +419/** +420 * Checks if the auto update feature has been disabled. If it has been +421 * disabled via the command line this will return false. +422 * +423 * @return if auto-update is allowed. +424 */ +425publicboolean isAutoUpdate() { +426return (line == null) || !line.hasOption(ArgumentName.DISABLE_AUTO_UPDATE); +427 } +428 +429/** +430 * A collection of static final strings that represent the possible command +431 * line arguments. +432 */ +433publicstaticclassArgumentName { +434 +435/** +436 * The long CLI argument name specifying the directory/file to scan. +437 */ +438publicstaticfinal String SCAN = "scan"; +439/** +440 * The short CLI argument name specifying the directory/file to scan.441 */ -442publicstaticfinal String OUT = "out"; +442publicstaticfinal String SCAN_SHORT = "s"; 443/** -444 * The short CLI argument name specifying the directory to write the -445 * reports to. +444 * The long CLI argument name specifying that the CPE/CVE/etc. data +445 * should not be automatically updated.446 */ -447publicstaticfinal String OUT_SHORT = "o"; +447publicstaticfinal String DISABLE_AUTO_UPDATE = "noupdate"; 448/** -449 * The long CLI argument name specifying the output format to write the -450 * reports to. +449 * The short CLI argument name specifying that the CPE/CVE/etc. data +450 * should not be automatically updated.451 */ -452publicstaticfinal String OUTPUT_FORMAT = "format"; +452publicstaticfinal String DISABLE_AUTO_UPDATE_SHORT = "n"; 453/** -454 * The short CLI argument name specifying the output format to write the +454 * The long CLI argument name specifying the directory to write the455 * reports to.456 */ -457publicstaticfinal String OUTPUT_FORMAT_SHORT = "f"; +457publicstaticfinal String OUT = "out"; 458/** -459 * The long CLI argument name specifying the name of the application to -460 * be scanned. +459 * The short CLI argument name specifying the directory to write the +460 * reports to.461 */ -462publicstaticfinal String APP_NAME = "app"; +462publicstaticfinal String OUT_SHORT = "o"; 463/** -464 * The short CLI argument name specifying the name of the application to -465 * be scanned. +464 * The long CLI argument name specifying the output format to write the +465 * reports to.466 */ -467publicstaticfinal String APP_NAME_SHORT = "a"; +467publicstaticfinal String OUTPUT_FORMAT = "format"; 468/** -469 * The long CLI argument name asking for help. -470 */ -471publicstaticfinal String HELP = "help"; -472/** -473 * The short CLI argument name asking for help. -474 */ -475publicstaticfinal String HELP_SHORT = "h"; -476/** -477 * The long CLI argument name asking for the version. -478 */ -479publicstaticfinal String VERSION_SHORT = "v"; -480/** -481 * The short CLI argument name asking for the version. -482 */ -483publicstaticfinal String VERSION = "version"; -484/** -485 * The short CLI argument name indicating the proxy port. -486 */ -487publicstaticfinal String PROXY_PORT_SHORT = "p"; -488/** -489 * The CLI argument name indicating the proxy port. -490 */ -491publicstaticfinal String PROXY_PORT = "proxyport"; -492/** -493 * The short CLI argument name indicating the proxy url. -494 */ -495publicstaticfinal String PROXY_URL_SHORT = "u"; -496/** -497 * The CLI argument name indicating the proxy url. -498 */ -499publicstaticfinal String PROXY_URL = "proxyurl"; -500/** -501 * The short CLI argument name indicating the proxy username. -502 */ -503publicstaticfinal String PROXY_USERNAME_SHORT = "pu"; -504/** -505 * The CLI argument name indicating the proxy username. -506 */ -507publicstaticfinal String PROXY_USERNAME = "proxyuser"; -508/** -509 * The short CLI argument name indicating the proxy password. -510 */ -511publicstaticfinal String PROXY_PASSWORD_SHORT = "pp"; -512/** -513 * The CLI argument name indicating the proxy password. -514 */ -515publicstaticfinal String PROXY_PASSWORD = "proxypass"; -516/** -517 * The short CLI argument name indicating the connection timeout. -518 */ -519publicstaticfinal String CONNECTION_TIMEOUT_SHORT = "c"; -520/** -521 * The CLI argument name indicating the connection timeout. -522 */ -523publicstaticfinal String CONNECTION_TIMEOUT = "connectiontimeout"; -524/** -525 * The short CLI argument name for setting the location of an additional -526 * properties file. -527 */ -528publicstaticfinal String PROP_SHORT = "p"; -529/** -530 * The CLI argument name for setting the location of an additional -531 * properties file. -532 */ -533publicstaticfinal String PROP = "propertyfile"; -534/** -535 * The CLI argument name for setting the location of the data directory. -536 */ -537publicstaticfinal String DATA_DIRECTORY = "data"; -538/** -539 * The short CLI argument name for setting the location of the data -540 * directory. -541 */ -542publicstaticfinal String DATA_DIRECTORY_SHORT = "d"; -543/** -544 * The CLI argument name for setting the location of the data directory. -545 */ -546publicstaticfinal String VERBOSE_LOG = "log"; -547/** -548 * The short CLI argument name for setting the location of the data -549 * directory. -550 */ -551publicstaticfinal String VERBOSE_LOG_SHORT = "l"; -552 } -553 } +469 * The short CLI argument name specifying the output format to write the +470 * reports to. +471 */ +472publicstaticfinal String OUTPUT_FORMAT_SHORT = "f"; +473/** +474 * The long CLI argument name specifying the name of the application to +475 * be scanned. +476 */ +477publicstaticfinal String APP_NAME = "app"; +478/** +479 * The short CLI argument name specifying the name of the application to +480 * be scanned. +481 */ +482publicstaticfinal String APP_NAME_SHORT = "a"; +483/** +484 * The long CLI argument name asking for help. +485 */ +486publicstaticfinal String HELP = "help"; +487/** +488 * The short CLI argument name asking for help. +489 */ +490publicstaticfinal String HELP_SHORT = "h"; +491/** +492 * The long CLI argument name asking for the version. +493 */ +494publicstaticfinal String VERSION_SHORT = "v"; +495/** +496 * The short CLI argument name asking for the version. +497 */ +498publicstaticfinal String VERSION = "version"; +499/** +500 * The short CLI argument name indicating the proxy port. +501 */ +502publicstaticfinal String PROXY_PORT_SHORT = "p"; +503/** +504 * The CLI argument name indicating the proxy port. +505 */ +506publicstaticfinal String PROXY_PORT = "proxyport"; +507/** +508 * The short CLI argument name indicating the proxy url. +509 */ +510publicstaticfinal String PROXY_URL_SHORT = "u"; +511/** +512 * The CLI argument name indicating the proxy url. +513 */ +514publicstaticfinal String PROXY_URL = "proxyurl"; +515/** +516 * The short CLI argument name indicating the proxy username. +517 */ +518publicstaticfinal String PROXY_USERNAME_SHORT = "pu"; +519/** +520 * The CLI argument name indicating the proxy username. +521 */ +522publicstaticfinal String PROXY_USERNAME = "proxyuser"; +523/** +524 * The short CLI argument name indicating the proxy password. +525 */ +526publicstaticfinal String PROXY_PASSWORD_SHORT = "pp"; +527/** +528 * The CLI argument name indicating the proxy password. +529 */ +530publicstaticfinal String PROXY_PASSWORD = "proxypass"; +531/** +532 * The short CLI argument name indicating the connection timeout. +533 */ +534publicstaticfinal String CONNECTION_TIMEOUT_SHORT = "c"; +535/** +536 * The CLI argument name indicating the connection timeout. +537 */ +538publicstaticfinal String CONNECTION_TIMEOUT = "connectiontimeout"; +539/** +540 * The short CLI argument name for setting the location of an additional +541 * properties file. +542 */ +543publicstaticfinal String PROP_SHORT = "p"; +544/** +545 * The CLI argument name for setting the location of an additional +546 * properties file. +547 */ +548publicstaticfinal String PROP = "propertyfile"; +549/** +550 * The CLI argument name for setting the location of the data directory. +551 */ +552publicstaticfinal String DATA_DIRECTORY = "data"; +553/** +554 * The short CLI argument name for setting the location of the data +555 * directory. +556 */ +557publicstaticfinal String DATA_DIRECTORY_SHORT = "d"; +558/** +559 * The CLI argument name for setting the location of the data directory. +560 */ +561publicstaticfinal String VERBOSE_LOG = "log"; +562/** +563 * The short CLI argument name for setting the location of the data +564 * directory. +565 */ +566publicstaticfinal String VERBOSE_LOG_SHORT = "l"; +567/** +568 * The CLI argument name for setting the location of the suppression +569 * file. +570 */ +571publicstaticfinal String SUPPRESION_FILE = "suppression"; +572/** +573 * The short CLI argument name for setting the location of the +574 * suppression file. +575 */ +576publicstaticfinal String SUPPRESION_FILE_SHORT = "sf"; +577 } +578 }
    diff --git a/dependency-check-cli/xref/org/owasp/dependencycheck/cli/package-frame.html b/dependency-check-cli/xref/org/owasp/dependencycheck/cli/package-frame.html index f0c611b97..f641e646b 100644 --- a/dependency-check-cli/xref/org/owasp/dependencycheck/cli/package-frame.html +++ b/dependency-check-cli/xref/org/owasp/dependencycheck/cli/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Command Line 1.0.5 Reference Package org.owasp.dependencycheck.cli + Dependency-Check Command Line 1.0.6 Reference Package org.owasp.dependencycheck.cli diff --git a/dependency-check-cli/xref/org/owasp/dependencycheck/cli/package-summary.html b/dependency-check-cli/xref/org/owasp/dependencycheck/cli/package-summary.html index 8896e822f..49ecbb08c 100644 --- a/dependency-check-cli/xref/org/owasp/dependencycheck/cli/package-summary.html +++ b/dependency-check-cli/xref/org/owasp/dependencycheck/cli/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Command Line 1.0.5 Reference Package org.owasp.dependencycheck.cli + Dependency-Check Command Line 1.0.6 Reference Package org.owasp.dependencycheck.cli diff --git a/dependency-check-cli/xref/org/owasp/dependencycheck/package-frame.html b/dependency-check-cli/xref/org/owasp/dependencycheck/package-frame.html index 13328cbf5..624c6d788 100644 --- a/dependency-check-cli/xref/org/owasp/dependencycheck/package-frame.html +++ b/dependency-check-cli/xref/org/owasp/dependencycheck/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Command Line 1.0.5 Reference Package org.owasp.dependencycheck + Dependency-Check Command Line 1.0.6 Reference Package org.owasp.dependencycheck diff --git a/dependency-check-cli/xref/org/owasp/dependencycheck/package-summary.html b/dependency-check-cli/xref/org/owasp/dependencycheck/package-summary.html index 850438291..e6244ddd6 100644 --- a/dependency-check-cli/xref/org/owasp/dependencycheck/package-summary.html +++ b/dependency-check-cli/xref/org/owasp/dependencycheck/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Command Line 1.0.5 Reference Package org.owasp.dependencycheck + Dependency-Check Command Line 1.0.6 Reference Package org.owasp.dependencycheck diff --git a/dependency-check-cli/xref/overview-frame.html b/dependency-check-cli/xref/overview-frame.html index 598e2f36c..3652a5a96 100644 --- a/dependency-check-cli/xref/overview-frame.html +++ b/dependency-check-cli/xref/overview-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Command Line 1.0.5 Reference + Dependency-Check Command Line 1.0.6 Reference diff --git a/dependency-check-cli/xref/overview-summary.html b/dependency-check-cli/xref/overview-summary.html index bc48c8014..7be857254 100644 --- a/dependency-check-cli/xref/overview-summary.html +++ b/dependency-check-cli/xref/overview-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Command Line 1.0.5 Reference + Dependency-Check Command Line 1.0.6 Reference @@ -24,7 +24,7 @@ -

    Dependency-Check Command Line 1.0.5 Reference

    +

    Dependency-Check Command Line 1.0.6 Reference

    diff --git a/dependency-check-core/apidocs/allclasses-frame.html b/dependency-check-core/apidocs/allclasses-frame.html index f243e3a6e..b2021b2b6 100644 --- a/dependency-check-core/apidocs/allclasses-frame.html +++ b/dependency-check-core/apidocs/allclasses-frame.html @@ -2,13 +2,13 @@ - + -All Classes (Dependency-Check Core 1.0.5 API) +All Classes (Dependency-Check Core 1.0.6 API) - + @@ -24,6 +24,8 @@ All Classes (Dependency-Check Core 1.0.5 API) diff --git a/dependency-check-core/apidocs/allclasses-noframe.html b/dependency-check-core/apidocs/allclasses-noframe.html index a512336c4..0541b754b 100644 --- a/dependency-check-core/apidocs/allclasses-noframe.html +++ b/dependency-check-core/apidocs/allclasses-noframe.html @@ -2,13 +2,13 @@ - + -All Classes (Dependency-Check Core 1.0.5 API) +All Classes (Dependency-Check Core 1.0.6 API) - + @@ -24,6 +24,8 @@ All Classes (Dependency-Check Core 1.0.5 API) diff --git a/dependency-check-core/apidocs/constant-values.html b/dependency-check-core/apidocs/constant-values.html index 2cf76cb98..b2a63e68a 100644 --- a/dependency-check-core/apidocs/constant-values.html +++ b/dependency-check-core/apidocs/constant-values.html @@ -2,13 +2,13 @@ - + -Constant Field Values (Dependency-Check Core 1.0.5 API) +Constant Field Values (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Constant Field Values (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Constant Field Values (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Constant Field Values (Dependency-Check Core 1.0.6 API)"; } } @@ -123,6 +123,30 @@ org.owasp.*

    +

    AbstractAnalyzer
    +AbstractSuppressionAnalyzer +
    AbstractTokenizingFilter
    AbstractUpdateTask @@ -50,7 +52,7 @@ All Classes (Dependency-Check Core 1.0.5 API)
    ArchiveExtractionException
    -BaseIndex +BaseDB
    BatchUpdateTask
    @@ -78,6 +80,8 @@ All Classes (Dependency-Check Core 1.0.5 API)
    CachedWebDataSource
    +CallableDownloadTask +
    Checksum
    CiManagement @@ -92,9 +96,9 @@ All Classes (Dependency-Check Core 1.0.5 API)
    CPEAnalyzer
    -CpeIndexReader +CpeMemoryIndex
    -CpeIndexWriter +CpeSuppressionAnalyzer
    CveDB
    @@ -176,6 +180,8 @@ All Classes (Dependency-Check Core 1.0.5 API)
    IndexEntry
    +IndexException +
    InvalidDataException
    InvalidDirectoryException @@ -290,6 +296,8 @@ All Classes (Dependency-Check Core 1.0.5 API)
    Profile.Repositories
    +PropertyType +
    Reference
    Relocation @@ -338,6 +346,16 @@ All Classes (Dependency-Check Core 1.0.5 API)
    StandardUpdateTask
    +SuppressionErrorHandler +
    +SuppressionHandler +
    +SuppressionParseException +
    +SuppressionParser +
    +SuppressionRule +
    TokenPairConcatenatingFilter
    Updateable @@ -364,6 +382,8 @@ All Classes (Dependency-Check Core 1.0.5 API)
    VulnerabilityComparator
    +VulnerabilitySuppressionAnalyzer +
    VulnerableSoftware
    AbstractAnalyzer
    +AbstractSuppressionAnalyzer +
    AbstractTokenizingFilter
    AbstractUpdateTask @@ -50,7 +52,7 @@ All Classes (Dependency-Check Core 1.0.5 API)
    ArchiveExtractionException
    -BaseIndex +BaseDB
    BatchUpdateTask
    @@ -78,6 +80,8 @@ All Classes (Dependency-Check Core 1.0.5 API)
    CachedWebDataSource
    +CallableDownloadTask +
    Checksum
    CiManagement @@ -92,9 +96,9 @@ All Classes (Dependency-Check Core 1.0.5 API)
    CPEAnalyzer
    -CpeIndexReader +CpeMemoryIndex
    -CpeIndexWriter +CpeSuppressionAnalyzer
    CveDB
    @@ -176,6 +180,8 @@ All Classes (Dependency-Check Core 1.0.5 API)
    IndexEntry
    +IndexException +
    InvalidDataException
    InvalidDirectoryException @@ -290,6 +296,8 @@ All Classes (Dependency-Check Core 1.0.5 API)
    Profile.Repositories
    +PropertyType +
    Reference
    Relocation @@ -338,6 +346,16 @@ All Classes (Dependency-Check Core 1.0.5 API)
    StandardUpdateTask
    +SuppressionErrorHandler +
    +SuppressionHandler +
    +SuppressionParseException +
    +SuppressionParser +
    +SuppressionRule +
    TokenPairConcatenatingFilter
    Updateable @@ -364,6 +382,8 @@ All Classes (Dependency-Check Core 1.0.5 API)
    VulnerabilityComparator
    +VulnerabilitySuppressionAnalyzer +
    VulnerableSoftware
    + + + + + + + + + + + + + + + +
    org.owasp.dependencycheck.data.BaseDB
    +public static final StringDB_SCHEMA_VERSION"2.7"
    +public static final StringDB_STRUCTURE_RESOURCE"data/initialize.sql"
    + +

    + +

    + @@ -153,126 +177,6 @@ org.owasp.*

    -

    org.owasp.dependencycheck.data.cpe.Fields
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    org.owasp.dependencycheck.data.nvdcve.CveDB
    -public static final StringCLEANUP_ORPHANS"DELETE FROM CpeEntry WHERE id not in (SELECT CPEEntryId FROM Software); "
    -public static final StringDB_SCHEMA_VERSION"2.6"
    -public static final StringDB_STRUCTURE_RESOURCE"data/initialize.sql"
    -public static final StringDELETE_REFERENCE"DELETE FROM reference WHERE cveid = ?"
    -public static final StringDELETE_SOFTWARE"DELETE FROM software WHERE cveid = ?"
    -public static final StringDELETE_VULNERABILITY"DELETE FROM vulnerability WHERE cve = ?"
    -public static final StringINSERT_CPE"INSERT INTO cpeEntry (cpe, vendor, product) VALUES (?, ?, ?)"
    -public static final StringINSERT_REFERENCE"INSERT INTO reference (cveid, name, url, source) VALUES (?, ?, ?, ?)"
    -public static final StringINSERT_SOFTWARE"INSERT INTO software (cveid, cpeEntryId, previousVersion) VALUES (?, ?, ?)"
    -public static final StringINSERT_VULNERABILITY"INSERT INTO vulnerability (cve, description, cwe, cvssScore, cvssAccessVector, cvssAccessComplexity, cvssAuthentication, cvssConfidentialityImpact, cvssIntegrityImpact, cvssAvailabilityImpact) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
    -public static final StringSELECT_CPE_ENTRIES"SELECT cpe FROM cpeEntry WHERE vendor = ? AND product = ?"
    -public static final StringSELECT_CPE_ID"SELECT id FROM cpeEntry WHERE cpe = ?"
    -public static final StringSELECT_CVE_FROM_SOFTWARE"SELECT cve, cpe, previousVersion FROM software INNER JOIN vulnerability ON vulnerability.id = software.cveId INNER JOIN cpeEntry ON cpeEntry.id = software.cpeEntryId WHERE vendor = ? AND product = ?"
    -public static final StringSELECT_REFERENCE"SELECT source, name, url FROM reference WHERE cveid = ?"
    -public static final StringSELECT_SOFTWARE"SELECT cpe, previousVersion FROM software INNER JOIN cpeEntry ON software.cpeEntryId = cpeEntry.id WHERE cveid = ?"
    -public static final StringSELECT_VULNERABILITY"SELECT id, description, cwe, cvssScore, cvssAccessVector, cvssAccessComplexity, cvssAuthentication, cvssConfidentialityImpact, cvssIntegrityImpact, cvssAvailabilityImpact FROM vulnerability WHERE cve = ?"
    -public static final StringSELECT_VULNERABILITY_ID"SELECT id FROM vulnerability WHERE cve = ?"
    -public static final StringUPDATE_VULNERABILITY"UPDATE vulnerability SET description=?, cwe=?, cvssScore=?, cvssAccessVector=?, cvssAccessComplexity=?, cvssAuthentication=?, cvssConfidentialityImpact=?, cvssIntegrityImpact=?, cvssAvailabilityImpact=? WHERE id=?"
    - -

    - -

    - @@ -453,6 +357,90 @@ org.owasp.*

    +

    org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler.Element
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    org.owasp.dependencycheck.suppression.SuppressionHandler
    +public static final StringCPE"cpe"
    +public static final StringCVE"cve"
    +public static final StringCVSS_BELOW"cvssBelow"
    +public static final StringCWE"cwe"
    +public static final StringFILE_PATH"filePath"
    +public static final StringSHA1"sha1"
    +public static final StringSUPPRESS"suppress"
    + +

    + +

    + + + + + + + + + + + + + + + + + + + + + + +
    org.owasp.dependencycheck.suppression.SuppressionParser
    +public static final StringJAXP_SCHEMA_LANGUAGE"http://java.sun.com/xml/jaxp/properties/schemaLanguage"
    +public static final StringJAXP_SCHEMA_SOURCE"http://java.sun.com/xml/jaxp/properties/schemaSource"
    +public static final StringW3C_XML_SCHEMA"http://www.w3.org/2001/XMLSchema"
    + +

    + +

    + @@ -476,12 +464,6 @@ org.owasp.* - - - - - @@ -548,6 +530,12 @@ org.owasp.* + + + + + @@ -572,6 +560,12 @@ org.owasp.* + + + + + diff --git a/dependency-check-core/apidocs/deprecated-list.html b/dependency-check-core/apidocs/deprecated-list.html index 9dab12474..3f7678148 100644 --- a/dependency-check-core/apidocs/deprecated-list.html +++ b/dependency-check-core/apidocs/deprecated-list.html @@ -2,13 +2,13 @@ - + -Deprecated List (Dependency-Check Core 1.0.5 API) +Deprecated List (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Deprecated List (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Deprecated List (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Deprecated List (Dependency-Check Core 1.0.6 API)"; } } @@ -98,6 +98,11 @@ function windowTitle() Deprecated Classes + + + diff --git a/dependency-check-core/apidocs/help-doc.html b/dependency-check-core/apidocs/help-doc.html index d7dae90cd..43ae5c131 100644 --- a/dependency-check-core/apidocs/help-doc.html +++ b/dependency-check-core/apidocs/help-doc.html @@ -2,13 +2,13 @@ - + -API Help (Dependency-Check Core 1.0.5 API) +API Help (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ API Help (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="API Help (Dependency-Check Core 1.0.5 API)"; + parent.document.title="API Help (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/index-all.html b/dependency-check-core/apidocs/index-all.html index d73b69c4b..c65c5c227 100644 --- a/dependency-check-core/apidocs/index-all.html +++ b/dependency-check-core/apidocs/index-all.html @@ -2,13 +2,13 @@ - + -Index (Dependency-Check Core 1.0.5 API) +Index (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Index (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Index (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Index (Dependency-Check Core 1.0.6 API)"; } } @@ -86,6 +86,10 @@ function windowTitle()
    AbstractAnalyzer - Class in org.owasp.dependencycheck.analyzer
     
    AbstractAnalyzer() - Constructor for class org.owasp.dependencycheck.analyzer.AbstractAnalyzer
      +
    AbstractSuppressionAnalyzer - Class in org.owasp.dependencycheck.analyzer
    Abstract base suppression analyzer that contains methods for parsing the + suppression xml file.
    AbstractSuppressionAnalyzer() - +Constructor for class org.owasp.dependencycheck.analyzer.AbstractSuppressionAnalyzer +
     
    AbstractTokenizingFilter - Class in org.owasp.dependencycheck.data.lucene
    An abstract tokenizing filter that can be used as the base for a tokenizing filter.
    AbstractTokenizingFilter(TokenStream) - Constructor for class org.owasp.dependencycheck.data.lucene.AbstractTokenizingFilter @@ -122,6 +126,18 @@ Method in class org.owasp.dependencycheck.data.update.addAnalysisException(Exception) - Method in class org.owasp.dependencycheck.dependency.Dependency
    Adds an exception to the analysis exceptions collection. +
    addCpe(PropertyType) - +Method in class org.owasp.dependencycheck.suppression.SuppressionRule +
    Adds the cpe to the cpe list. +
    addCve(String) - +Method in class org.owasp.dependencycheck.suppression.SuppressionRule +
    Adds the cve to the cve list. +
    addCvssBelow(Float) - +Method in class org.owasp.dependencycheck.suppression.SuppressionRule +
    Adds the cvss to the cvssBelow list. +
    addCwe(String) - +Method in class org.owasp.dependencycheck.suppression.SuppressionRule +
    Adds the cwe to the cwe list.
    addEvidence(Evidence) - Method in class org.owasp.dependencycheck.dependency.EvidenceCollection
    Adds evidence to the collection. @@ -182,7 +198,7 @@ Constructor for exception org.owasp.dependencycheck.analyzer.AnalysisException(String, Throwable) - Constructor for exception org.owasp.dependencycheck.analyzer.AnalysisException -
    Creates a new DownloadFailedException. +
    Creates a new AnalysisException.
    AnalysisPhase - Enum in org.owasp.dependencycheck.analyzer
    An enumeration defining the phases of analysis.
    analyze(Dependency, Engine) - Method in interface org.owasp.dependencycheck.analyzer.Analyzer
    Analyzes the given dependency. @@ -193,6 +209,9 @@ Method in class org.owasp.dependencycheck.analyzer.CPEAnalyzer
    Analyzes a dependency and attempts to determine if there are any CPE identifiers for this dependency. +
    analyze(Dependency, Engine) - +Method in class org.owasp.dependencycheck.analyzer.CpeSuppressionAnalyzer +
     
    analyze(Dependency, Engine) - Method in class org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzer
    Analyzes a set of dependencies. @@ -219,6 +238,9 @@ Method in class org.owasp.dependencycheck.analyzer.NvdCveAnalyzer
    Analyzes a dependency and attempts to determine if there are any CPE identifiers for this dependency. +
    analyze(Dependency, Engine) - +Method in class org.owasp.dependencycheck.analyzer.VulnerabilitySuppressionAnalyzer +
     
    analyzeDependencies() - Method in class org.owasp.dependencycheck.Engine
    Runs the analyzers against all of the dependencies. @@ -279,18 +301,18 @@ Variable in class org.owasp.dependencycheck.jaxb.pom.generated.ArchiveAnalyzer() - Constructor for class org.owasp.dependencycheck.analyzer.ArchiveAnalyzer
      -
    ArchiveExtractionException - Exception in org.owasp.dependencycheck.analyzer
    An exception thrown when the analysis of a dependency fails.
    ArchiveExtractionException() - +
    ArchiveExtractionException - Exception in org.owasp.dependencycheck.analyzer
    An exception thrown when files in an archive cannot be extracted.
    ArchiveExtractionException() - Constructor for exception org.owasp.dependencycheck.analyzer.ArchiveExtractionException -
    Creates a new AnalysisException. +
    Creates a new ArchiveExtractionException.
    ArchiveExtractionException(String) - Constructor for exception org.owasp.dependencycheck.analyzer.ArchiveExtractionException -
    Creates a new AnalysisException. +
    Creates a new ArchiveExtractionException.
    ArchiveExtractionException(Throwable) - Constructor for exception org.owasp.dependencycheck.analyzer.ArchiveExtractionException -
    Creates a new AnalysisException. +
    Creates a new ArchiveExtractionException.
    ArchiveExtractionException(String, Throwable) - Constructor for exception org.owasp.dependencycheck.analyzer.ArchiveExtractionException -
    Creates a new DownloadFailedException. +
    Creates a new ArchiveExtractionException.
    artifactId - Variable in class org.owasp.dependencycheck.jaxb.pom.generated.Dependency
      @@ -324,8 +346,8 @@ Static variable in class org.owasp.dependencycheck.utils.

    B

    -
    BaseIndex - Class in org.owasp.dependencycheck.data.cpe
    The Base Index class used to access the CPE Index.
    BaseIndex() - -Constructor for class org.owasp.dependencycheck.data.cpe.BaseIndex +
    BaseDB - Class in org.owasp.dependencycheck.data
     
    BaseDB() - +Constructor for class org.owasp.dependencycheck.data.BaseDB
     
    BATCH - Static variable in class org.owasp.dependencycheck.data.update.DataStoreMetaInfo @@ -333,9 +355,9 @@ Static variable in class org.owasp.dependencycheck.data.update.BATCH_UPDATE_URL - Static variable in class org.owasp.dependencycheck.utils.Settings.KEYS
    The location of the batch update URL. -
    BatchUpdateTask - Class in org.owasp.dependencycheck.data.update
    Class responsible for updating the CPE and NVDCVE data stores.
    BatchUpdateTask(DataStoreMetaInfo) - +
    BatchUpdateTask - Class in org.owasp.dependencycheck.data.update
    Deprecated. batch update mode will no longer be supported.
    BatchUpdateTask(DataStoreMetaInfo) - Constructor for class org.owasp.dependencycheck.data.update.BatchUpdateTask -
    Constructs a new BatchUpdateTask. +
    Deprecated. Constructs a new BatchUpdateTask.
    Build - Class in org.owasp.dependencycheck.jaxb.pom.generated
    3.0.0+
    Build() - Constructor for class org.owasp.dependencycheck.jaxb.pom.generated.Build
      @@ -384,9 +406,18 @@ Method in class org.owasp.dependencycheck.analyzer.

    C

    -
    CachedWebDataSource - Interface in org.owasp.dependencycheck.data
    Defines an Index who's data is retrieved from the Internet.
    characters(char[], int, int) - +
    CachedWebDataSource - Interface in org.owasp.dependencycheck.data
    Defines an Index who's data is retrieved from the Internet.
    call() - +Method in class org.owasp.dependencycheck.data.update.CallableDownloadTask +
      +
    CallableDownloadTask - Class in org.owasp.dependencycheck.data.update
    A callable object to download two files.
    CallableDownloadTask(NvdCveInfo, File, File) - +Constructor for class org.owasp.dependencycheck.data.update.CallableDownloadTask +
    Simple constructor for the callable download task. +
    characters(char[], int, int) - Method in class org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler
      +
    characters(char[], int, int) - +Method in class org.owasp.dependencycheck.suppression.SuppressionHandler +
    Collects the body text of the node being processed.
    Checksum - Class in org.owasp.dependencycheck.utils
    Includes methods to generate the MD5 and SHA1 checksum.
    Checksum() - Constructor for class org.owasp.dependencycheck.utils.Checksum
      @@ -405,9 +436,9 @@ Constructor for class org.owasp.dependencycheck.jaxb.pom.generated.classifier - Variable in class org.owasp.dependencycheck.jaxb.pom.generated.Dependency
      -
    CLEANUP_ORPHANS - -Static variable in class org.owasp.dependencycheck.data.nvdcve.CveDB -
    SQL Statement to cleanup orphan entries. +
    cleanup() - +Method in class org.owasp.dependencycheck.data.update.CallableDownloadTask +
    Attempts to delete the files that were downloaded.
    cleanupDatabase() - Method in class org.owasp.dependencycheck.data.nvdcve.CveDB
    It is possible that orphaned rows may be generated during database @@ -435,7 +466,7 @@ Method in class org.owasp.dependencycheck.analyzer.close() - Method in class org.owasp.dependencycheck.analyzer.CPEAnalyzer -
    Closes the data source. +
    Closes the data sources.
    close() - Method in class org.owasp.dependencycheck.analyzer.JarAnalyzer
    The close method does nothing for this Analyzer. @@ -448,32 +479,30 @@ Method in class org.owasp.dependencycheck.analyzer.close() - Method in class org.owasp.dependencycheck.concurrency.DirectorySpinLock
    Releases any locks and closes the underlying channel. -
    close() - -Method in class org.owasp.dependencycheck.data.cpe.BaseIndex -
    Closes the CPE Index. -
    close() - -Method in class org.owasp.dependencycheck.data.cpe.CpeIndexReader -
    Closes the CPE Index. -
    close() - -Method in class org.owasp.dependencycheck.data.cpe.CpeIndexWriter -
    Closes the CPE Index. -
    close() - -Method in class org.owasp.dependencycheck.data.nvdcve.CveDB +
    close() - +Method in class org.owasp.dependencycheck.data.BaseDB
    Closes the DB4O database. +
    close() - +Method in class org.owasp.dependencycheck.data.cpe.CpeMemoryIndex +
    Closes the CPE Index.
    close() - Method in class org.owasp.dependencycheck.utils.NonClosingStream
    Prevents closing of the stream.
    closeDataStores() - Method in class org.owasp.dependencycheck.data.update.AbstractUpdateTask
    Closes the CVE and CPE data stores. +
    closeResultSet(ResultSet) - +Method in class org.owasp.dependencycheck.data.BaseDB +
    Closes the result set capturing and ignoring any SQLExceptions that + occur. +
    closeStatement(Statement) - +Method in class org.owasp.dependencycheck.data.BaseDB +
    Closes the given statement object ignoring any exceptions that occur.
    comments - Variable in class org.owasp.dependencycheck.jaxb.pom.generated.License
      -
    commit() - -Method in class org.owasp.dependencycheck.data.cpe.CpeIndexWriter -
    Commits any pending changes. -
    commit() - -Method in class org.owasp.dependencycheck.data.nvdcve.CveDB +
    commit() - +Method in class org.owasp.dependencycheck.data.BaseDB
    Commits all completed transactions.
    compare(Vulnerability, Vulnerability) - Method in class org.owasp.dependencycheck.dependency.VulnerabilityComparator @@ -557,19 +586,17 @@ Static variable in class org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer
    Regex to identify core java libraries and a few other commonly misidentified ones. -
    CPE_DATA_DIRECTORY - -Static variable in class org.owasp.dependencycheck.utils.Settings.KEYS -
    The properties key for the path where the CPE Lucene Index will be - stored. +
    CPE - +Static variable in class org.owasp.dependencycheck.suppression.SuppressionHandler +
    The CPE element name.
    CPEAnalyzer - Class in org.owasp.dependencycheck.analyzer
    CPEAnalyzer is a utility class that takes a project dependency and attempts to discern if there is an associated CPE.
    CPEAnalyzer() - Constructor for class org.owasp.dependencycheck.analyzer.CPEAnalyzer
      -
    CpeIndexReader - Class in org.owasp.dependencycheck.data.cpe
     
    CpeIndexReader() - -Constructor for class org.owasp.dependencycheck.data.cpe.CpeIndexReader -
      -
    CpeIndexWriter - Class in org.owasp.dependencycheck.data.cpe
     
    CpeIndexWriter() - -Constructor for class org.owasp.dependencycheck.data.cpe.CpeIndexWriter +
    CpeMemoryIndex - Class in org.owasp.dependencycheck.data.cpe
    An in memory lucene index that contains the vendor/product combinations from + the CPE (application) identifiers within the NVD CVE data.
    CpeSuppressionAnalyzer - Class in org.owasp.dependencycheck.analyzer
    The suppression analyzer processes an externally defined XML document that + complies with the suppressions.xsd schema.
    CpeSuppressionAnalyzer() - +Constructor for class org.owasp.dependencycheck.analyzer.CpeSuppressionAnalyzer
     
    createActivation() - Method in class org.owasp.dependencycheck.jaxb.pom.generated.ObjectFactory @@ -841,9 +868,12 @@ Method in class org.owasp.dependencycheck.jaxb.pom.generated.createSite() - Method in class org.owasp.dependencycheck.jaxb.pom.generated.ObjectFactory
    Create an instance of Site -
    createTables() - -Method in class org.owasp.dependencycheck.data.nvdcve.CveDB -
    Creates the database structure (tables and indexes) to store the CVE data +
    CURRENT_VERSION - +Static variable in class org.owasp.dependencycheck.data.lucene.LuceneUtils +
    The current version of Lucene being used. +
    CVE - +Static variable in class org.owasp.dependencycheck.suppression.SuppressionHandler +
    The CVE element name.
    CVE_DATA_DIRECTORY - Static variable in class org.owasp.dependencycheck.utils.Settings.KEYS
    The properties key for the path where the CVE H2 database will be @@ -888,6 +918,9 @@ Static variable in class org.owasp.dependencycheck.data.nvdcve.CVSS_AVAILABILITY_IMPACT - Static variable in class org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.Element
    A node type in the NVD CVE Schema 2.0 +
    CVSS_BELOW - +Static variable in class org.owasp.dependencycheck.suppression.SuppressionHandler +
    The cvssBelow element name.
    CVSS_CONFIDENTIALITY_IMPACT - Static variable in class org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.Element
    A node type in the NVD CVE Schema 2.0 @@ -897,6 +930,9 @@ Static variable in class org.owasp.dependencycheck.data.nvdcve.CVSS_SCORE - Static variable in class org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.Element
    A node type in the NVD CVE Schema 2.0 +
    CWE - +Static variable in class org.owasp.dependencycheck.suppression.SuppressionHandler +
    The CWE element name.
    CweDB - Class in org.owasp.dependencycheck.data.cwe
     
    CweHandler - Class in org.owasp.dependencycheck.data.cwe
    A SAX Handler that will parse the CWE XML.
    CweHandler() - Constructor for class org.owasp.dependencycheck.data.cwe.CweHandler
      @@ -911,7 +947,10 @@ Static variable in class org.owasp.dependencycheck.utils.DatabaseException - Exception in org.owasp.dependencycheck.data.nvdcve
    An exception thrown if an operation against the database fails.
    DatabaseException(String) - Constructor for exception org.owasp.dependencycheck.data.nvdcve.DatabaseException
    Creates an DatabaseException. -
    DatabaseException(String, Exception) - +
    DatabaseException(Throwable) - +Constructor for exception org.owasp.dependencycheck.data.nvdcve.DatabaseException +
    Creates an DatabaseException. +
    DatabaseException(String, Throwable) - Constructor for exception org.owasp.dependencycheck.data.nvdcve.DatabaseException
    Creates an DatabaseException.
    DatabaseUpdater - Class in org.owasp.dependencycheck.data.update
    Class responsible for updating the CPE and NVDCVE data stores.
    DatabaseUpdater() - @@ -926,11 +965,11 @@ Static variable in class org.owasp.dependencycheck.utils.DB_DRIVER - Static variable in class org.owasp.dependencycheck.utils.Settings.KEYS
    The database driver class name. -
    DB_SCHEMA_VERSION - -Static variable in class org.owasp.dependencycheck.data.nvdcve.CveDB +
    DB_SCHEMA_VERSION - +Static variable in class org.owasp.dependencycheck.data.BaseDB
    The version of the current DB Schema. -
    DB_STRUCTURE_RESOURCE - -Static variable in class org.owasp.dependencycheck.data.nvdcve.CveDB +
    DB_STRUCTURE_RESOURCE - +Static variable in class org.owasp.dependencycheck.data.BaseDB
    Resource location for SQL file used to create the database schema.
    defaultGoal - Variable in class org.owasp.dependencycheck.jaxb.pom.generated.Build @@ -941,15 +980,6 @@ Variable in class org.owasp.dependencycheck.jaxb.pom.generated.delete(File) - Static method in class org.owasp.dependencycheck.utils.FileUtils
    Deletes a file. -
    DELETE_REFERENCE - -Static variable in class org.owasp.dependencycheck.data.nvdcve.CveDB -
    SQL Statement to delete references by vulnerability ID. -
    DELETE_SOFTWARE - -Static variable in class org.owasp.dependencycheck.data.nvdcve.CveDB -
    SQL Statement to delete software by vulnerability ID. -
    DELETE_VULNERABILITY - -Static variable in class org.owasp.dependencycheck.data.nvdcve.CveDB -
    SQL Statement to delete a vulnerability by CVE.
    deleteExistingData() - Method in class org.owasp.dependencycheck.data.update.AbstractUpdateTask
    Deletes the existing data directories. @@ -1123,6 +1153,9 @@ Method in class org.owasp.dependencycheck.data.nvdcve.endElement(String, String, String) - Method in class org.owasp.dependencycheck.jaxb.pom.MavenNamespaceFilter
    Indicatees the start of the document. +
    endElement(String, String, String) - +Method in class org.owasp.dependencycheck.suppression.SuppressionHandler +
    Handles the end element event.
    Engine - Class in org.owasp.dependencycheck
    Scans files, directories, etc.
    Engine() - Constructor for class org.owasp.dependencycheck.Engine
    Creates a new Engine. @@ -1159,9 +1192,15 @@ Method in class org.owasp.dependencycheck.dependency.VulnerableSoftware
    Standard equals implementation to compare this VulnerableSoftware to another object. +
    equals(Object) - +Method in class org.owasp.dependencycheck.suppression.PropertyType +
    Default implementation of equals.
    equals(Object) - Method in class org.owasp.dependencycheck.utils.DependencyVersion
    Compares the equality of this object to the one passed in as a parameter. +
    error(SAXParseException) - +Method in class org.owasp.dependencycheck.suppression.SuppressionErrorHandler +
    Handles errors.
    escapeLuceneQuery(CharSequence) - Static method in class org.owasp.dependencycheck.data.lucene.LuceneUtils
    Escapes the text passed in so that it is treated as data instead of @@ -1248,6 +1287,9 @@ Constructor for class org.owasp.dependencycheck.analyzer.family - Variable in class org.owasp.dependencycheck.jaxb.pom.generated.ActivationOS
      +
    fatalError(SAXParseException) - +Method in class org.owasp.dependencycheck.suppression.SuppressionErrorHandler +
    Handles fatal exceptions.
    fetchFile(URL, File) - Static method in class org.owasp.dependencycheck.utils.Downloader
    Retrieves a file from a given URL and saves it to the outputPath. @@ -1262,6 +1304,9 @@ Constructor for class org.owasp.dependencycheck.data.cpe.file - Variable in class org.owasp.dependencycheck.jaxb.pom.generated.Activation
      +
    FILE_PATH - +Static variable in class org.owasp.dependencycheck.suppression.SuppressionHandler +
    The file path element name.
    FileNameAnalyzer - Class in org.owasp.dependencycheck.analyzer
    Takes a dependency and analyzes the filename and determines the hashes.
    FileNameAnalyzer() - Constructor for class org.owasp.dependencycheck.analyzer.FileNameAnalyzer
      @@ -1289,14 +1334,11 @@ Variable in class org.owasp.dependencycheck.jaxb.pom.generated.filters - Variable in class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase
      -
    finalize() - -Method in class org.owasp.dependencycheck.analyzer.CPEAnalyzer -
    Ensures that the Lucene index is closed.
    finalize() - Method in class org.owasp.dependencycheck.analyzer.NvdCveAnalyzer
    Ensures that the CVE Database is closed. -
    finalize() - -Method in class org.owasp.dependencycheck.data.nvdcve.CveDB +
    finalize() - +Method in class org.owasp.dependencycheck.data.BaseDB
    Cleans up the object and ensures that "close" has been called.
    finalName - Variable in class org.owasp.dependencycheck.jaxb.pom.generated.Build @@ -1339,6 +1381,9 @@ Method in class org.owasp.dependencycheck.analyzer.getAnalysisPhase() - Method in class org.owasp.dependencycheck.analyzer.CPEAnalyzer
    Returns the analysis phase that this analyzer should run in. +
    getAnalysisPhase() - +Method in class org.owasp.dependencycheck.analyzer.CpeSuppressionAnalyzer +
    Returns the phase that the analyzer is intended to run in.
    getAnalysisPhase() - Method in class org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzer
    Returns the phase that the analyzer is intended to run in. @@ -1360,6 +1405,9 @@ Method in class org.owasp.dependencycheck.analyzer.getAnalysisPhase() - Method in class org.owasp.dependencycheck.analyzer.NvdCveAnalyzer
    Returns the analysis phase that this analyzer should run in. +
    getAnalysisPhase() - +Method in class org.owasp.dependencycheck.analyzer.VulnerabilitySuppressionAnalyzer +
    Returns the phase that the analyzer is intended to run in.
    getAnalyzers() - Method in class org.owasp.dependencycheck.analyzer.AnalyzerService
    Returns an Iterator for all instances of the Analyzer interface. @@ -1481,6 +1529,9 @@ Method in class org.owasp.dependencycheck.jaxb.pom.generated.getConfiguration() - Method in class org.owasp.dependencycheck.jaxb.pom.generated.ReportSet
    Gets the value of the configuration property. +
    getConnection() - +Method in class org.owasp.dependencycheck.data.BaseDB +
    Returns the database connection.
    getConnection() - Method in class org.owasp.dependencycheck.jaxb.pom.generated.Scm
    Gets the value of the connection property. @@ -1490,13 +1541,16 @@ Method in class org.owasp.dependencycheck.jaxb.pom.generated.getContributors() - Method in class org.owasp.dependencycheck.jaxb.pom.generated.Model
    Gets the value of the contributors property. -
    getCpeIndex() - -Method in class org.owasp.dependencycheck.data.update.AbstractUpdateTask -
    Returns the CpeIndex. +
    getCpe() - +Method in class org.owasp.dependencycheck.suppression.SuppressionRule +
    Get the value of cpe.
    getCPEs(String, String) - Method in class org.owasp.dependencycheck.data.nvdcve.CveDB
    Searches the CPE entries in the database and retrieves all entries for a given vendor and product combination. +
    getCve() - +Method in class org.owasp.dependencycheck.suppression.SuppressionRule +
    Get the value of cve.
    getCveDB() - Method in class org.owasp.dependencycheck.data.update.AbstractUpdateTask
    Returns the CveDB. @@ -1512,6 +1566,9 @@ Method in class org.owasp.dependencycheck.dependency.getCvssAvailabilityImpact() - Method in class org.owasp.dependencycheck.dependency.Vulnerability
    Get the value of cvssAvailabilityImpact. +
    getCvssBelow() - +Method in class org.owasp.dependencycheck.suppression.SuppressionRule +
    Get the value of cvssBelow.
    getCvssConfidentialityImpact() - Method in class org.owasp.dependencycheck.dependency.Vulnerability
    Get the value of cvssConfidentialityImpact. @@ -1527,15 +1584,14 @@ Method in class org.owasp.dependencycheck.data.cwe.getCwe() - Method in class org.owasp.dependencycheck.dependency.Vulnerability
    Get the value of cwe. +
    getCwe() - +Method in class org.owasp.dependencycheck.suppression.SuppressionRule +
    Get the value of cwe.
    getCweName(String) - Static method in class org.owasp.dependencycheck.data.cwe.CweDB
    Returns the full CWE name from the CWE ID. -
    getDataDirectory() - -Static method in class org.owasp.dependencycheck.data.cpe.BaseIndex -
    Retrieves the directory that the JAR file exists in so that we can ensure - we always use a common data directory. -
    getDataDirectory() - -Static method in class org.owasp.dependencycheck.data.nvdcve.CveDB +
    getDataDirectory() - +Static method in class org.owasp.dependencycheck.data.BaseDB
    Retrieves the directory that the JAR file exists in so that we can ensure we always use a common data directory.
    getDataDirectory(String, Class) - @@ -1543,6 +1599,9 @@ Static method in class org.owasp.dependencycheck.utils.getDataFile(String) - +Static method in class org.owasp.dependencycheck.utils.Settings +
    Returns a value from the properties file as a File object.
    getDataSources() - Method in class org.owasp.dependencycheck.data.UpdateService
    Returns an Iterator for all instances of the CachedWebDataSource @@ -1607,9 +1666,6 @@ Method in class org.owasp.dependencycheck.jaxb.pom.generated.getDevelopers() - Method in class org.owasp.dependencycheck.jaxb.pom.generated.Model
    Gets the value of the developers property. -
    getDirectory() - -Method in class org.owasp.dependencycheck.data.cpe.BaseIndex -
    Gets the directory.
    getDirectory() - Method in class org.owasp.dependencycheck.jaxb.pom.generated.Build
    Gets the value of the directory property. @@ -1628,8 +1684,8 @@ Method in class org.owasp.dependencycheck.jaxb.pom.generated.getDistributionManagement() - Method in class org.owasp.dependencycheck.jaxb.pom.generated.Profile
    Gets the value of the distributionManagement property. -
    getDocument(int) - -Method in class org.owasp.dependencycheck.data.cpe.CpeIndexReader +
    getDocument(int) - +Method in class org.owasp.dependencycheck.data.cpe.CpeMemoryIndex
    Retrieves a document from the Index.
    getDocumentId() - Method in class org.owasp.dependencycheck.data.cpe.IndexEntry @@ -1661,6 +1717,9 @@ Method in class org.owasp.dependencycheck.dependency.getEvidenceUsed() - Method in class org.owasp.dependencycheck.dependency.Dependency
    Returns the evidence used to identify this dependency. +
    getException() - +Method in class org.owasp.dependencycheck.data.update.CallableDownloadTask +
    Get the value of exception.
    getExclude() - Method in class org.owasp.dependencycheck.jaxb.pom.generated.Resource.Excludes
    Gets the value of the exclude property. @@ -1709,6 +1768,9 @@ Method in class org.owasp.dependencycheck.dependency.getFilePath() - Method in class org.owasp.dependencycheck.dependency.Dependency
    Gets the file path of the dependency. +
    getFilePath() - +Method in class org.owasp.dependencycheck.suppression.SuppressionRule +
    Get the value of filePath.
    getFilter() - Method in class org.owasp.dependencycheck.jaxb.pom.generated.Build.Filters
    Gets the value of the filter property. @@ -1727,6 +1789,12 @@ Method in class org.owasp.dependencycheck.jaxb.pom.generated.getFinalName() - Method in class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase
    Gets the value of the finalName property. +
    getFirst() - +Method in class org.owasp.dependencycheck.data.update.CallableDownloadTask +
    Get the value of first. +
    getGeneratedKey(PreparedStatement) - +Method in class org.owasp.dependencycheck.data.BaseDB +
    Returns the generated integer primary key for a newly inserted row.
    getGoal() - Method in class org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.Goals
    Gets the value of the goal property. @@ -1814,6 +1882,9 @@ Method in class org.owasp.dependencycheck.jaxb.pom.generated.getInstance() - Static method in class org.owasp.dependencycheck.analyzer.AnalyzerService
    Retrieve the singleton instance of AnalyzerService. +
    getInstance() - +Static method in class org.owasp.dependencycheck.data.cpe.CpeMemoryIndex +
    Gets the singleton instance of the CpeMemoryIndex.
    getInstance() - Static method in class org.owasp.dependencycheck.data.UpdateService
    Retrieve the singleton instance of UpdateService. @@ -1900,6 +1971,9 @@ Method in class org.owasp.dependencycheck.analyzer.getName() - Method in class org.owasp.dependencycheck.analyzer.CPEAnalyzer
    Returns the name of this analyzer. +
    getName() - +Method in class org.owasp.dependencycheck.analyzer.CpeSuppressionAnalyzer +
    Returns the name of the analyzer.
    getName() - Method in class org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzer
    Returns the name of the analyzer. @@ -1924,6 +1998,9 @@ Method in class org.owasp.dependencycheck.analyzer.getName() - Method in class org.owasp.dependencycheck.analyzer.NvdCveAnalyzer
    Returns the name of this analyzer. +
    getName() - +Method in class org.owasp.dependencycheck.analyzer.VulnerabilitySuppressionAnalyzer +
    Returns the name of the analyzer.
    getName() - Method in class org.owasp.dependencycheck.dependency.Evidence
    Get the value of name. @@ -1984,6 +2061,9 @@ Method in class org.owasp.dependencycheck.jaxb.pom.generated.getNotifiers() - Method in class org.owasp.dependencycheck.jaxb.pom.generated.CiManagement
    Gets the value of the notifiers property. +
    getNvdCveInfo() - +Method in class org.owasp.dependencycheck.data.update.CallableDownloadTask +
    Get the value of nvdCveInfo.
    getOldSchemaVersionUrl() - Method in class org.owasp.dependencycheck.data.update.NvdCveInfo
    Get the value of oldSchemaVersionUrl. @@ -2206,6 +2286,9 @@ Method in class org.owasp.dependencycheck.jaxb.pom.generated.getRoles() - Method in class org.owasp.dependencycheck.jaxb.pom.generated.Developer
    Gets the value of the roles property. +
    getRules() - +Method in class org.owasp.dependencycheck.analyzer.AbstractSuppressionAnalyzer +
    Get the value of rules.
    getScm() - Method in class org.owasp.dependencycheck.jaxb.pom.generated.Model
    Gets the value of the scm property. @@ -2218,6 +2301,12 @@ Method in class org.owasp.dependencycheck.jaxb.pom.generated.getSearchScore() - Method in class org.owasp.dependencycheck.data.cpe.IndexEntry
    Get the value of searchScore. +
    getSecond() - +Method in class org.owasp.dependencycheck.data.update.CallableDownloadTask +
    Get the value of second. +
    getSha1() - +Method in class org.owasp.dependencycheck.suppression.SuppressionRule +
    Get the value of sha1.
    getSHA1Checksum(File) - Static method in class org.owasp.dependencycheck.utils.Checksum
    Calculates the SHA1 checksum of a specified file. @@ -2254,6 +2343,9 @@ Static method in class org.owasp.dependencycheck.utils.getSubscribe() - Method in class org.owasp.dependencycheck.jaxb.pom.generated.MailingList
    Gets the value of the subscribe property. +
    getSupportedExtensions() - +Method in class org.owasp.dependencycheck.analyzer.AbstractSuppressionAnalyzer +
    Returns a list of file EXTENSIONS supported by this analyzer.
    getSupportedExtensions() - Method in interface org.owasp.dependencycheck.analyzer.Analyzer
    Returns a list of supported file extensions. @@ -2284,6 +2376,9 @@ Method in class org.owasp.dependencycheck.analyzer.getSupportedExtensions() - Method in class org.owasp.dependencycheck.analyzer.NvdCveAnalyzer
    Returns true because this analyzer supports all dependency types. +
    getSupressionRules() - +Method in class org.owasp.dependencycheck.suppression.SuppressionHandler +
    Get the value of supressionRules.
    getSystem() - Method in class org.owasp.dependencycheck.jaxb.pom.generated.CiManagement
    Gets the value of the system property. @@ -2419,12 +2514,18 @@ Method in class org.owasp.dependencycheck.dependency.getValue() - Method in class org.owasp.dependencycheck.jaxb.pom.generated.ActivationProperty
    Gets the value of the value property. +
    getValue() - +Method in class org.owasp.dependencycheck.suppression.PropertyType +
    Gets the value of the value property.
    getVendor() - Method in class org.owasp.dependencycheck.data.cpe.IndexEntry
    Get the value of vendor.
    getVendorEvidence() - Method in class org.owasp.dependencycheck.dependency.Dependency
    Gets the Vendor Evidence. +
    getVendorProductList() - +Method in class org.owasp.dependencycheck.data.nvdcve.CveDB +
    Returns the entire list of vendor/product combinations.
    getVersion() - Method in class org.owasp.dependencycheck.dependency.VulnerableSoftware
    Get the value of version. @@ -2515,6 +2616,21 @@ Variable in class org.owasp.dependencycheck.jaxb.pom.generated.

    H

    +
    hasCpe() - +Method in class org.owasp.dependencycheck.suppression.SuppressionRule +
    Returns whether or not this suppression rule as CPE entries. +
    hasCve() - +Method in class org.owasp.dependencycheck.suppression.SuppressionRule +
    Returns whether this suppression rule has CVE entries. +
    hasCvssBelow() - +Method in class org.owasp.dependencycheck.suppression.SuppressionRule +
    Returns whether or not this suppression rule has cvss suppressions. +
    hasCwe() - +Method in class org.owasp.dependencycheck.suppression.SuppressionRule +
    Returns whether this suppression rule has CWE entries. +
    hasException() - +Method in class org.owasp.dependencycheck.data.update.CallableDownloadTask +
    returns whether or not an exception occurred during download.
    hashCode() - Method in class org.owasp.dependencycheck.data.cpe.IndexEntry
      @@ -2536,6 +2652,9 @@ Method in class org.owasp.dependencycheck.dependency.hashCode() - Method in class org.owasp.dependencycheck.dependency.VulnerableSoftware
    Standard implementation of hashCode. +
    hashCode() - +Method in class org.owasp.dependencycheck.suppression.PropertyType +
    Default implementation of hashCode.
    hashCode() - Method in class org.owasp.dependencycheck.utils.DependencyVersion
    Calculates the hashCode for this object. @@ -2614,6 +2733,18 @@ Method in class org.owasp.dependencycheck.data.lucene.IndexEntry - Class in org.owasp.dependencycheck.data.cpe
    A CPE entry containing the name, vendor, product, and version.
    IndexEntry() - Constructor for class org.owasp.dependencycheck.data.cpe.IndexEntry
      +
    IndexException - Exception in org.owasp.dependencycheck.data.cpe
    An exception thrown when the there is an issue using the in-memory CPE Index.
    IndexException() - +Constructor for exception org.owasp.dependencycheck.data.cpe.IndexException +
    Creates a new IndexException. +
    IndexException(String) - +Constructor for exception org.owasp.dependencycheck.data.cpe.IndexException +
    Creates a new IndexException. +
    IndexException(Throwable) - +Constructor for exception org.owasp.dependencycheck.data.cpe.IndexException +
    Creates a new IndexException. +
    IndexException(String, Throwable) - +Constructor for exception org.owasp.dependencycheck.data.cpe.IndexException +
    Creates a new IndexException.
    inherited - Variable in class org.owasp.dependencycheck.jaxb.pom.generated.Plugin
      @@ -2632,6 +2763,9 @@ Method in class org.owasp.dependencycheck.reporting.initialize() - Method in class org.owasp.dependencycheck.analyzer.AbstractAnalyzer
    The initialize method does nothing for this Analyzer. +
    initialize() - +Method in class org.owasp.dependencycheck.analyzer.AbstractSuppressionAnalyzer +
    The initialize method loads the suppression XML file.
    initialize() - Method in interface org.owasp.dependencycheck.analyzer.Analyzer
    The initialize method is called (once) prior to the analyze method being @@ -2651,18 +2785,6 @@ Method in class org.owasp.dependencycheck.analyzer.initialize() - Method in class org.owasp.dependencycheck.analyzer.NvdCveAnalyzer
    Opens the NVD CVE Lucene Index. -
    INSERT_CPE - -Static variable in class org.owasp.dependencycheck.data.nvdcve.CveDB -
    SQL Statement to insert a new cpe. -
    INSERT_REFERENCE - -Static variable in class org.owasp.dependencycheck.data.nvdcve.CveDB -
    SQL Statement to insert a new reference. -
    INSERT_SOFTWARE - -Static variable in class org.owasp.dependencycheck.data.nvdcve.CveDB -
    SQL Statement to insert a new software. -
    INSERT_VULNERABILITY - -Static variable in class org.owasp.dependencycheck.data.nvdcve.CveDB -
    SQL Statement to insert a new vulnerability.
    interpolateString(String, Properties) - Method in class org.owasp.dependencycheck.analyzer.JarAnalyzer
    A utility function that will interpolate strings based on values given @@ -2704,6 +2826,9 @@ Method in class org.owasp.dependencycheck.jaxb.pom.generated.isBatchUpdateMode() - Method in class org.owasp.dependencycheck.data.update.DataStoreMetaInfo
    Get the value of batchUpdateMode. +
    isCaseSensitive() - +Method in class org.owasp.dependencycheck.suppression.PropertyType +
    Gets the value of the caseSensitive property.
    isCVSSAccessComplexityNode() - Method in class org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.Element
    Checks if the handler is at the CVSS_ACCESS_COMPLEXITY node. @@ -2727,7 +2852,7 @@ Method in class org.owasp.dependencycheck.data.nvdcve.isDoBatchUpdate() - Method in class org.owasp.dependencycheck.data.update.BatchUpdateTask -
    Get the value of doBatchUpdate +
    Deprecated. Get the value of doBatchUpdate
    isEmpty() - Method in class org.owasp.dependencycheck.data.update.DataStoreMetaInfo
    Returns whether or not any properties are set. @@ -2761,21 +2886,21 @@ Method in class org.owasp.dependencycheck.data.nvdcve.isNVDNode() - Method in class org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.Element
    Checks if the handler is at the NVD node. -
    isOpen() - -Method in class org.owasp.dependencycheck.analyzer.CPEAnalyzer -
    Returns the status of the data source - is the index open.
    isOpen() - Method in class org.owasp.dependencycheck.analyzer.NvdCveAnalyzer
    Returns the status of the data source - is the database open. -
    isOpen() - -Method in class org.owasp.dependencycheck.data.cpe.BaseIndex -
    Returns the status of the data source - is the index open. +
    isOpen() - +Method in class org.owasp.dependencycheck.data.cpe.CpeMemoryIndex +
    returns whether or not the index is open.
    isOptional() - Method in class org.owasp.dependencycheck.jaxb.pom.generated.Dependency
    Gets the value of the optional property.
    isProdNode() - Method in class org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler.Element
    Checks if the handler is at the PROD node. +
    isRegex() - +Method in class org.owasp.dependencycheck.suppression.PropertyType +
    Returns whether or not the value is a regex.
    isSendOnError() - Method in class org.owasp.dependencycheck.jaxb.pom.generated.Notifier
    Gets the value of the sendOnError property. @@ -2867,6 +2992,12 @@ Constructor for class org.owasp.dependencycheck.analyzer.JavaScriptAnalyzer() - Constructor for class org.owasp.dependencycheck.analyzer.JavaScriptAnalyzer
      +
    JAXP_SCHEMA_LANGUAGE - +Static variable in class org.owasp.dependencycheck.suppression.SuppressionParser +
    JAXP Schema Language. +
    JAXP_SCHEMA_SOURCE - +Static variable in class org.owasp.dependencycheck.suppression.SuppressionParser +
    JAXP Schema Source.
    jdk - Variable in class org.owasp.dependencycheck.jaxb.pom.generated.Activation
      @@ -2930,6 +3061,10 @@ Constructor for class org.owasp.dependencycheck.jaxb.pom.generated.mailingLists - Variable in class org.owasp.dependencycheck.jaxb.pom.generated.Model
      +
    matches(String) - +Method in class org.owasp.dependencycheck.suppression.PropertyType +
    Uses the object's properties to determine if the supplied string matches + the value of this property.
    matchesAtLeastThreeLevels(DependencyVersion) - Method in class org.owasp.dependencycheck.utils.DependencyVersion
    Determines if the three most major major version parts are identical. @@ -2939,9 +3074,15 @@ Variable in class org.owasp.dependencycheck.jaxb.pom.generated.MavenNamespaceFilter - Class in org.owasp.dependencycheck.jaxb.pom
    This filter is used when parsing POM documents.
    MavenNamespaceFilter() - Constructor for class org.owasp.dependencycheck.jaxb.pom.MavenNamespaceFilter
      +
    MAX_DOWNLOAD_THREAD_POOL_SIZE - +Static variable in class org.owasp.dependencycheck.utils.Settings.KEYS +
    The maximum number of threads to allocate when downloading files.
    MAX_SPIN - Static variable in class org.owasp.dependencycheck.concurrency.DirectorySpinLock
    The maximum wait period used when attempting to obtain a lock. +
    MAX_THREAD_POOL_SIZE - +Static variable in class org.owasp.dependencycheck.data.update.StandardUpdateTask +
    The max thread pool size to use when downloading files.
    merge(EvidenceCollection...) - Static method in class org.owasp.dependencycheck.dependency.EvidenceCollection
    Merges multiple EvidenceCollections together. @@ -3091,8 +3232,8 @@ Constructor for class org.owasp.dependencycheck.jaxb.pom.generated.notifiers - Variable in class org.owasp.dependencycheck.jaxb.pom.generated.CiManagement
      -
    numDocs() - -Method in class org.owasp.dependencycheck.data.cpe.CpeIndexReader +
    numDocs() - +Method in class org.owasp.dependencycheck.data.cpe.CpeMemoryIndex
    Returns the number of CPE entries stored in the index.
    NVD - Static variable in class org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler.Element @@ -3153,24 +3294,15 @@ Method in class org.owasp.dependencycheck.analyzer.open() - Method in class org.owasp.dependencycheck.analyzer.NvdCveAnalyzer
    Opens the data source. -
    open() - -Method in class org.owasp.dependencycheck.data.cpe.BaseIndex -
    Opens the CPE Index. -
    open() - -Method in class org.owasp.dependencycheck.data.cpe.CpeIndexReader -
    Opens the CPE Index. -
    open() - -Method in class org.owasp.dependencycheck.data.cpe.CpeIndexWriter -
    Opens the CPE Index. -
    open() - -Method in class org.owasp.dependencycheck.data.nvdcve.CveDB +
    open() - +Method in class org.owasp.dependencycheck.data.BaseDB
    Opens the database connection. +
    open(CveDB) - +Method in class org.owasp.dependencycheck.data.cpe.CpeMemoryIndex +
    Creates and loads data into an in memory index.
    openDataStores() - Method in class org.owasp.dependencycheck.data.update.AbstractUpdateTask
    Opens the CVE and CPE data stores. -
    openDirectory() - -Method in class org.owasp.dependencycheck.data.cpe.BaseIndex -
    Returns the Lucene directory object for the CPE Index.
    optional - Variable in class org.owasp.dependencycheck.jaxb.pom.generated.Dependency
      @@ -3234,7 +3366,12 @@ Variable in class org.owasp.dependencycheck.jaxb.pom.generated.org.owasp.dependencycheck.utils - package org.owasp.dependencycheck.utils
    + Contains classes used to generate reports.
    org.owasp.dependencycheck.suppression - package org.owasp.dependencycheck.suppression
    + + org.owasp.dependencycheck.suppression + + + Contains classes used to suppress findings.
    org.owasp.dependencycheck.utils - package org.owasp.dependencycheck.utils
    org.owasp.dependencycheck.utils @@ -3297,6 +3434,10 @@ Method in class org.owasp.dependencycheck.data.cpe.VulnerableSoftware
    Parses a name attribute value, from the cpe.xml, into its corresponding parts: vendor, product, version, revision. +
    parseSuppressionRules(File) - +Method in class org.owasp.dependencycheck.suppression.SuppressionParser +
    Parses the given xml file and returns a list of the suppression rules + contained.
    parseVersion(String) - Method in class org.owasp.dependencycheck.utils.DependencyVersion
    Parses a version string into its sub parts: major, minor, revision, @@ -3398,6 +3539,10 @@ Variable in class org.owasp.dependencycheck.jaxb.pom.generated.Prerequisites - Class in org.owasp.dependencycheck.jaxb.pom.generated
    Describes the prerequisites a project can have.
    Prerequisites() - Constructor for class org.owasp.dependencycheck.jaxb.pom.generated.Prerequisites
      +
    process(Dependency) - +Method in class org.owasp.dependencycheck.suppression.SuppressionRule +
    Processes a given dependency to determine if any CPE, CVE, CWE, or CVSS + scores should be suppressed.
    PROD - Static variable in class org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler.Element
    A node type in the NVD CVE Schema 1.2. @@ -3446,6 +3591,10 @@ Variable in class org.owasp.dependencycheck.jaxb.pom.generated.property - Variable in class org.owasp.dependencycheck.jaxb.pom.generated.Activation
      +
    PropertyType - Class in org.owasp.dependencycheck.suppression
    A simple PropertyType used to represent a string value that could be used as + a regular expression or could be case insensitive.
    PropertyType() - +Constructor for class org.owasp.dependencycheck.suppression.PropertyType +
     
    PROXY_PASSWORD - Static variable in class org.owasp.dependencycheck.utils.Settings.KEYS
    The properties key for the proxy password. @@ -3603,8 +3752,8 @@ Variable in class org.owasp.dependencycheck.jaxb.pom.generated.DataStoreMetaInfo
    Writes a properties file containing the last updated date to the VULNERABLE_CPE directory. -
    saveEntry(IndexEntry) - -Method in class org.owasp.dependencycheck.data.cpe.CpeIndexWriter +
    saveEntry(String, String, IndexWriter) - +Method in class org.owasp.dependencycheck.data.cpe.CpeMemoryIndex
    Saves a CPE IndexEntry into the Lucene index.
    scan(String[]) - Method in class org.owasp.dependencycheck.Engine @@ -3642,11 +3791,11 @@ Variable in class org.owasp.dependencycheck.jaxb.pom.generated.scriptSourceDirectory - Variable in class org.owasp.dependencycheck.jaxb.pom.generated.Build
      -
    search(String, int) - -Method in class org.owasp.dependencycheck.data.cpe.CpeIndexReader +
    search(String, int) - +Method in class org.owasp.dependencycheck.data.cpe.CpeMemoryIndex
    Searches the index using the given search string. -
    search(Query, int) - -Method in class org.owasp.dependencycheck.data.cpe.CpeIndexReader +
    search(Query, int) - +Method in class org.owasp.dependencycheck.data.cpe.CpeMemoryIndex
    Searches the index using the given query.
    searchCPE(String, String, Set<String>, Set<String>) - Method in class org.owasp.dependencycheck.analyzer.CPEAnalyzer @@ -3658,27 +3807,6 @@ Constructor for class org.owasp.dependencycheck.data.lucene.SearchVersionAnalyzer - Class in org.owasp.dependencycheck.data.lucene
    Deprecated. version information is no longer stored in lucene
    SearchVersionAnalyzer(Version) - Constructor for class org.owasp.dependencycheck.data.lucene.SearchVersionAnalyzer
    Deprecated. Creates a new SearchVersionAnalyzer. -
    SELECT_CPE_ENTRIES - -Static variable in class org.owasp.dependencycheck.data.nvdcve.CveDB -
    SQL Statement to find the CPE entry based on the vendor and product. -
    SELECT_CPE_ID - -Static variable in class org.owasp.dependencycheck.data.nvdcve.CveDB -
    SQL Statement to get a CPEProductID. -
    SELECT_CVE_FROM_SOFTWARE - -Static variable in class org.owasp.dependencycheck.data.nvdcve.CveDB -
    SQL Statement to find CVE entries based on CPE data. -
    SELECT_REFERENCE - -Static variable in class org.owasp.dependencycheck.data.nvdcve.CveDB -
    SQL Statement to select references by CVEID. -
    SELECT_SOFTWARE - -Static variable in class org.owasp.dependencycheck.data.nvdcve.CveDB -
    SQL Statement to select software by CVEID. -
    SELECT_VULNERABILITY - -Static variable in class org.owasp.dependencycheck.data.nvdcve.CveDB -
    SQL Statement to select a vulnerability by CVEID. -
    SELECT_VULNERABILITY_ID - -Static variable in class org.owasp.dependencycheck.data.nvdcve.CveDB -
    SQL Statement to select a vulnerability's primary key.
    sendOnError - Variable in class org.owasp.dependencycheck.jaxb.pom.generated.Notifier
      @@ -3748,6 +3876,9 @@ Method in class org.owasp.dependencycheck.jaxb.pom.generated.setBuild(BuildBase) - Method in class org.owasp.dependencycheck.jaxb.pom.generated.Profile
    Sets the value of the build property. +
    setCaseSensitive(boolean) - +Method in class org.owasp.dependencycheck.suppression.PropertyType +
    Sets the value of the caseSensitive property.
    setChecksumPolicy(String) - Method in class org.owasp.dependencycheck.jaxb.pom.generated.RepositoryPolicy
    Sets the value of the checksumPolicy property. @@ -3787,9 +3918,12 @@ Method in class org.owasp.dependencycheck.jaxb.pom.generated.setCpe(String) - Method in class org.owasp.dependencycheck.dependency.VulnerableSoftware
    Parse a CPE entry from the cpe string representation. -
    setCpeIndex(CpeIndexWriter) - -Method in class org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler -
    Sets the cpe index writer. +
    setCpe(List<PropertyType>) - +Method in class org.owasp.dependencycheck.suppression.SuppressionRule +
    Set the value of cpe. +
    setCve(List<String>) - +Method in class org.owasp.dependencycheck.suppression.SuppressionRule +
    Set the value of cve.
    setCveDB(CveDB) - Method in class org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler
    Sets the cveDB. @@ -3805,6 +3939,9 @@ Method in class org.owasp.dependencycheck.dependency.setCvssAvailabilityImpact(String) - Method in class org.owasp.dependencycheck.dependency.Vulnerability
    Set the value of cvssAvailabilityImpact. +
    setCvssBelow(List<Float>) - +Method in class org.owasp.dependencycheck.suppression.SuppressionRule +
    Set the value of cvssBelow.
    setCvssConfidentialityImpact(String) - Method in class org.owasp.dependencycheck.dependency.Vulnerability
    Set the value of cvssConfidentialityImpact. @@ -3817,6 +3954,9 @@ Method in class org.owasp.dependencycheck.dependency.setCwe(String) - Method in class org.owasp.dependencycheck.dependency.Vulnerability
    Set the value of cwe. +
    setCwe(List<String>) - +Method in class org.owasp.dependencycheck.suppression.SuppressionRule +
    Set the value of cwe.
    setDefaultGoal(String) - Method in class org.owasp.dependencycheck.jaxb.pom.generated.Build
    Sets the value of the defaultGoal property. @@ -3882,7 +4022,7 @@ Method in class org.owasp.dependencycheck.jaxb.pom.generated.setDoBatchUpdate(boolean) - Method in class org.owasp.dependencycheck.data.update.BatchUpdateTask -
    Set the value of doBatchUpdate +
    Deprecated. Set the value of doBatchUpdate
    setDocumentId(String) - Method in class org.owasp.dependencycheck.data.cpe.IndexEntry
    Set the value of documentId. @@ -3937,6 +4077,9 @@ Method in class org.owasp.dependencycheck.dependency.setFilePath(String) - Method in class org.owasp.dependencycheck.dependency.Dependency
    Sets the file path of the dependency. +
    setFilePath(PropertyType) - +Method in class org.owasp.dependencycheck.suppression.SuppressionRule +
    Set the value of filePath.
    setFiltering(Boolean) - Method in class org.owasp.dependencycheck.jaxb.pom.generated.Resource
    Sets the value of the filtering property. @@ -3952,6 +4095,9 @@ Method in class org.owasp.dependencycheck.jaxb.pom.generated.setFinalName(String) - Method in class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase
    Sets the value of the finalName property. +
    setFirst(File) - +Method in class org.owasp.dependencycheck.data.update.CallableDownloadTask +
    Set the value of first.
    setGoals(Plugin.Goals) - Method in class org.owasp.dependencycheck.jaxb.pom.generated.Plugin
    Sets the value of the goals property. @@ -4133,6 +4279,9 @@ Method in class org.owasp.dependencycheck.data.nvdcve.setNotifiers(CiManagement.Notifiers) - Method in class org.owasp.dependencycheck.jaxb.pom.generated.CiManagement
    Sets the value of the notifiers property. +
    setNvdCveInfo(NvdCveInfo) - +Method in class org.owasp.dependencycheck.data.update.CallableDownloadTask +
    Set the value of nvdCveInfo.
    setOldSchemaVersionUrl(String) - Method in class org.owasp.dependencycheck.data.update.NvdCveInfo
    Set the value of oldSchemaVersionUrl. @@ -4235,6 +4384,9 @@ Method in class org.owasp.dependencycheck.jaxb.pom.generated.setReferences(SortedSet<Reference>) - Method in class org.owasp.dependencycheck.dependency.Vulnerability
    Set the value of references. +
    setRegex(boolean) - +Method in class org.owasp.dependencycheck.suppression.PropertyType +
    Sets whether the value property is a regex.
    setRelatedDependencies(Set<Dependency>) - Method in class org.owasp.dependencycheck.dependency.Dependency
    Set the value of relatedDependencies. @@ -4289,6 +4441,9 @@ Method in class org.owasp.dependencycheck.jaxb.pom.generated.setRoles(Developer.Roles) - Method in class org.owasp.dependencycheck.jaxb.pom.generated.Developer
    Sets the value of the roles property. +
    setRules(List<SuppressionRule>) - +Method in class org.owasp.dependencycheck.analyzer.AbstractSuppressionAnalyzer +
    Set the value of rules.
    setScm(Scm) - Method in class org.owasp.dependencycheck.jaxb.pom.generated.Model
    Sets the value of the scm property. @@ -4301,6 +4456,9 @@ Method in class org.owasp.dependencycheck.jaxb.pom.generated.setSearchScore(float) - Method in class org.owasp.dependencycheck.data.cpe.IndexEntry
    Set the value of searchScore. +
    setSecond(File) - +Method in class org.owasp.dependencycheck.data.update.CallableDownloadTask +
    Set the value of second.
    setSendOnError(Boolean) - Method in class org.owasp.dependencycheck.jaxb.pom.generated.Notifier
    Sets the value of the sendOnError property. @@ -4313,6 +4471,9 @@ Method in class org.owasp.dependencycheck.jaxb.pom.generated.setSendOnWarning(Boolean) - Method in class org.owasp.dependencycheck.jaxb.pom.generated.Notifier
    Sets the value of the sendOnWarning property. +
    setSha1(String) - +Method in class org.owasp.dependencycheck.suppression.SuppressionRule +
    Set the value of sha1.
    setSha1sum(String) - Method in class org.owasp.dependencycheck.dependency.Dependency
    Sets the SHA1 Checksum of the dependency. @@ -4451,6 +4612,9 @@ Method in class org.owasp.dependencycheck.dependency.setValue(String) - Method in class org.owasp.dependencycheck.jaxb.pom.generated.ActivationProperty
    Sets the value of the value property. +
    setValue(String) - +Method in class org.owasp.dependencycheck.suppression.PropertyType +
    Sets the value of the value property.
    setVendor(String) - Method in class org.owasp.dependencycheck.data.cpe.IndexEntry
    Set the value of vendor. @@ -4490,6 +4654,9 @@ Method in class org.owasp.dependencycheck.dependency.setVulnerableSoftware(SortedSet<VulnerableSoftware>) - Method in class org.owasp.dependencycheck.dependency.Vulnerability
    Set the value of vulnerableSoftware. +
    SHA1 - +Static variable in class org.owasp.dependencycheck.suppression.SuppressionHandler +
    The sha1 hash element name.
    shouldDeleteAndRecreate() - Method in class org.owasp.dependencycheck.data.update.AbstractUpdateTask
    Get the value of deleteAndRecreate. @@ -4532,6 +4699,9 @@ Method in class org.owasp.dependencycheck.data.nvdcve.startElement(String, String, String, Attributes) - Method in class org.owasp.dependencycheck.jaxb.pom.MavenNamespaceFilter
    Called when an element is started. +
    startElement(String, String, String, Attributes) - +Method in class org.owasp.dependencycheck.suppression.SuppressionHandler +
    Handles the start element event.
    startPrefixMapping(String, String) - Method in class org.owasp.dependencycheck.jaxb.pom.MavenNamespaceFilter
    Called when prefix mapping is started. @@ -4541,6 +4711,9 @@ Variable in class org.owasp.dependencycheck.jaxb.pom.generated.subscribe - Variable in class org.owasp.dependencycheck.jaxb.pom.generated.MailingList
      +
    supportsExtension(String) - +Method in class org.owasp.dependencycheck.analyzer.AbstractSuppressionAnalyzer +
    Returns whether or not this analyzer can process the given extension.
    supportsExtension(String) - Method in interface org.owasp.dependencycheck.analyzer.Analyzer
    Returns whether or not this analyzer can process the given extension. @@ -4574,6 +4747,36 @@ Method in class org.owasp.dependencycheck.analyzer.supportsExtension(String) - Method in class org.owasp.dependencycheck.Engine
    Checks all analyzers to see if an extension is supported. +
    SUPPRESS - +Static variable in class org.owasp.dependencycheck.suppression.SuppressionHandler +
    The suppress node, indicates the start of a new rule. +
    SUPPRESSION_FILE - +Static variable in class org.owasp.dependencycheck.utils.Settings.KEYS +
    The key for a list of suppression files. +
    SuppressionErrorHandler - Class in org.owasp.dependencycheck.suppression
    An XML parsing error handler.
    SuppressionErrorHandler() - +Constructor for class org.owasp.dependencycheck.suppression.SuppressionErrorHandler +
      +
    SuppressionHandler - Class in org.owasp.dependencycheck.suppression
    A handler to load suppression rules.
    SuppressionHandler() - +Constructor for class org.owasp.dependencycheck.suppression.SuppressionHandler +
      +
    SuppressionParseException - Exception in org.owasp.dependencycheck.suppression
    An exception used when parsing a suppression rule file fails.
    SuppressionParseException() - +Constructor for exception org.owasp.dependencycheck.suppression.SuppressionParseException +
    Creates a new SuppressionParseException. +
    SuppressionParseException(String) - +Constructor for exception org.owasp.dependencycheck.suppression.SuppressionParseException +
    Creates a new SuppressionParseException. +
    SuppressionParseException(Throwable) - +Constructor for exception org.owasp.dependencycheck.suppression.SuppressionParseException +
    Creates a new SuppressionParseException. +
    SuppressionParseException(String, Throwable) - +Constructor for exception org.owasp.dependencycheck.suppression.SuppressionParseException +
    Creates a new SuppressionParseException. +
    SuppressionParser - Class in org.owasp.dependencycheck.suppression
    A simple validating parser for XML Suppression Rules.
    SuppressionParser() - +Constructor for class org.owasp.dependencycheck.suppression.SuppressionParser +
      +
    SuppressionRule - Class in org.owasp.dependencycheck.suppression
     
    SuppressionRule() - +Constructor for class org.owasp.dependencycheck.suppression.SuppressionRule +
     
    system - Variable in class org.owasp.dependencycheck.jaxb.pom.generated.CiManagement
      @@ -4645,6 +4848,9 @@ Method in class org.owasp.dependencycheck.dependency.VulnerableSoftware
    Standard toString() implementation display the name and whether or not previous versions are also affected. +
    toString() - +Method in class org.owasp.dependencycheck.suppression.PropertyType +
    Default implementation of toString().
    toString() - Method in class org.owasp.dependencycheck.utils.DependencyVersion
    Reconstructs the version string from the split version parts. @@ -4675,7 +4881,7 @@ Method in class org.owasp.dependencycheck.data.update.update() - Method in class org.owasp.dependencycheck.data.update.BatchUpdateTask -
    Downloads the latest NVD CVE XML file from the web and imports it into +
    Deprecated. Downloads the latest NVD CVE XML file from the web and imports it into the current CVE Database.
    update() - Method in class org.owasp.dependencycheck.data.update.DatabaseUpdater @@ -4688,9 +4894,6 @@ Method in class org.owasp.dependencycheck.data.update.update() - Method in interface org.owasp.dependencycheck.data.update.UpdateTask
    Updates the data store to the latest version. -
    UPDATE_VULNERABILITY - -Static variable in class org.owasp.dependencycheck.data.nvdcve.CveDB -
    SQL Statement to update a vulnerability.
    Updateable - Class in org.owasp.dependencycheck.data.update
    Contains a collection of updateable NvdCveInfo objects.
    Updateable() - Constructor for class org.owasp.dependencycheck.data.update.Updateable
      @@ -4714,7 +4917,7 @@ Method in class org.owasp.dependencycheck.data.update.updatesNeeded() - Method in class org.owasp.dependencycheck.data.update.BatchUpdateTask -
    Determines if the index needs to be updated. +
    Deprecated. Determines if the index needs to be updated.
    updatesNeeded() - Method in class org.owasp.dependencycheck.data.update.StandardUpdateTask
    Determines if the index needs to be updated. @@ -4859,6 +5062,10 @@ Constructor for class org.owasp.dependencycheck.dependency.VulnerabilityComparator - Class in org.owasp.dependencycheck.dependency
    Comparator for Vulnerability objects.
    VulnerabilityComparator() - Constructor for class org.owasp.dependencycheck.dependency.VulnerabilityComparator
      +
    VulnerabilitySuppressionAnalyzer - Class in org.owasp.dependencycheck.analyzer
    The suppression analyzer processes an externally defined XML document that + complies with the suppressions.xsd schema.
    VulnerabilitySuppressionAnalyzer() - +Constructor for class org.owasp.dependencycheck.analyzer.VulnerabilitySuppressionAnalyzer +
     
    VulnerableSoftware - Class in org.owasp.dependencycheck.dependency
    A record containing information about vulnerable software.
    VulnerableSoftware() - Constructor for class org.owasp.dependencycheck.dependency.VulnerableSoftware
      @@ -4867,6 +5074,12 @@ Constructor for class org.owasp.dependencycheck.dependency.

    W

    +
    W3C_XML_SCHEMA - +Static variable in class org.owasp.dependencycheck.suppression.SuppressionParser +
    W3C XML Schema. +
    warning(SAXParseException) - +Method in class org.owasp.dependencycheck.suppression.SuppressionErrorHandler +
    Logs warnings.
    withinRange(long, long, int) - Method in class org.owasp.dependencycheck.data.update.AbstractUpdateTask
    Determines if the epoch date is within the range specified of the diff --git a/dependency-check-core/apidocs/index.html b/dependency-check-core/apidocs/index.html index 03aec2471..27c1abaa4 100644 --- a/dependency-check-core/apidocs/index.html +++ b/dependency-check-core/apidocs/index.html @@ -2,10 +2,10 @@ - + -Dependency-Check Core 1.0.5 API +Dependency-Check Core 1.0.6 API diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/AbstractAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/AbstractAnalyzer.html index 9d483f9d9..09331820d 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/AbstractAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/AbstractAnalyzer.html @@ -2,13 +2,13 @@ - + -AbstractAnalyzer (Dependency-Check Core 1.0.5 API) +AbstractAnalyzer (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ AbstractAnalyzer (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="AbstractAnalyzer (Dependency-Check Core 1.0.5 API)"; + parent.document.title="AbstractAnalyzer (Dependency-Check Core 1.0.6 API)"; } } @@ -57,7 +57,7 @@ function windowTitle()
    NEXT CLASSNEXT CLASS +          Creates a new AnalysisException. +          Creates a new ArchiveExtractionException. +          Creates a new ArchiveExtractionException. +          Creates a new ArchiveExtractionException. +          Creates a new ArchiveExtractionException.
    org.owasp.dependencycheck.utils.Settings.KEYS "connection.timeout"
    -public static final StringCPE_DATA_DIRECTORY"data.cpe"
    public static final String CVE_DATA_DIRECTORY "database.drive"
    +public static final StringMAX_DOWNLOAD_THREAD_POOL_SIZE"max.download.threads"
    public static final String PROXY_PASSWORD "proxy.username"
    +public static final StringSUPPRESSION_FILE"suppression.file"
    public static final String TEMP_DIRECTORY
    org.owasp.dependencycheck.data.update.BatchUpdateTask +
    +          batch update mode will no longer be supported. 
    org.owasp.dependencycheck.data.lucene.SearchVersionAnalyzer
              version information is no longer stored in lucene 
    AnalysisException(Throwable ex) @@ -234,7 +234,7 @@ AnalysisException public AnalysisException(String msg, Throwable ex)
    -
    Creates a new DownloadFailedException. +
    Creates a new AnalysisException.

    Parameters:
    msg - a message for the exception.
    ex - the cause of the failure.
    @@ -270,7 +270,7 @@ public AnalysisException(PREV CLASS  + PREV CLASS   NEXT CLASS
    ArchiveExtractionException()
    -          Creates a new AnalysisException.
    ArchiveExtractionException(String msg)
    -          Creates a new AnalysisException.
    ArchiveExtractionException(String msg, Throwable ex)
    -          Creates a new DownloadFailedException.
    ArchiveExtractionException(Throwable ex)
    -          Creates a new AnalysisException.
      @@ -199,7 +199,7 @@ ArchiveExtractionException

     public ArchiveExtractionException()
    -
    Creates a new AnalysisException. +
    Creates a new ArchiveExtractionException.


    @@ -209,7 +209,7 @@ ArchiveExtractionException
     public ArchiveExtractionException(String msg)
    -
    Creates a new AnalysisException. +
    Creates a new ArchiveExtractionException.

    Parameters:
    msg - a message for the exception.
    @@ -221,7 +221,7 @@ ArchiveExtractionException
     public ArchiveExtractionException(Throwable ex)
    -
    Creates a new AnalysisException. +
    Creates a new ArchiveExtractionException.

    Parameters:
    ex - the cause of the failure.
    @@ -234,7 +234,7 @@ ArchiveExtractionException public ArchiveExtractionException(String msg, Throwable ex)
    -
    Creates a new DownloadFailedException. +
    Creates a new ArchiveExtractionException.

    Parameters:
    msg - a message for the exception.
    ex - the cause of the failure.
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/CPEAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/CPEAnalyzer.html index ca56cf1b1..7d03c5d29 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/CPEAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/CPEAnalyzer.html @@ -2,13 +2,13 @@ - + -CPEAnalyzer (Dependency-Check Core 1.0.5 API) +CPEAnalyzer (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ CPEAnalyzer (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="CPEAnalyzer (Dependency-Check Core 1.0.5 API)"; + parent.document.title="CPEAnalyzer (Dependency-Check Core 1.0.6 API)"; } } @@ -57,7 +57,7 @@ function windowTitle()  PREV CLASS  - NEXT CLASSNEXT CLASS FRAMES    NO FRAMES   @@ -171,7 +171,7 @@ CPEAnalyzer is a utility class that takes a project dependency and attempts close()
    -          Closes the data source. +          Closes the data sources. @@ -184,14 +184,6 @@ CPEAnalyzer is a utility class that takes a project dependency and attempts -protected  void -finalize() - -
    -          Ensures that the Lucene index is closed. - - -  AnalysisPhase getAnalysisPhase() @@ -224,14 +216,6 @@ CPEAnalyzer is a utility class that takes a project dependency and attempts - boolean -isOpen() - -
    -          Returns the status of the data source - is the index open. - - -  void open() @@ -265,7 +249,7 @@ CPEAnalyzer is a utility class that takes a project dependency and attempts Methods inherited from class java.lang.Object -clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait   @@ -326,7 +310,7 @@ close
     public void close()
    -
    Closes the data source. +
    Closes the data sources.

    Specified by:
    close in interface Analyzer
    @@ -337,42 +321,6 @@ public void close()

    -

    -isOpen

    -
    -public boolean isOpen()
    -
    -
    Returns the status of the data source - is the index open. -

    -

    -
    -
    -
    - -
    Returns:
    true or false.
    -
    -
    -
    - -

    -finalize

    -
    -protected void finalize()
    -                 throws Throwable
    -
    -
    Ensures that the Lucene index is closed. -

    -

    -
    Overrides:
    finalize in class Object
    -
    -
    - -
    Throws: -
    Throwable - when a throwable is thrown.
    -
    -
    -
    -

    determineCPE

    @@ -597,7 +545,7 @@ public void initialize()
     
     
      PREV CLASS 
    - NEXT CLASSNEXT CLASS
     
       FRAMES   
      NO FRAMES   
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/DependencyBundlingAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/DependencyBundlingAnalyzer.html
    index 32bfa2608..6e4d7e592 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/DependencyBundlingAnalyzer.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/DependencyBundlingAnalyzer.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -DependencyBundlingAnalyzer (Dependency-Check Core 1.0.5 API)
    +DependencyBundlingAnalyzer (Dependency-Check Core 1.0.6 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ DependencyBundlingAnalyzer (Dependency-Check Core 1.0.5 API)
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="DependencyBundlingAnalyzer (Dependency-Check Core 1.0.5 API)";
    +        parent.document.title="DependencyBundlingAnalyzer (Dependency-Check Core 1.0.6 API)";
         }
     }
     
    @@ -56,7 +56,7 @@ function windowTitle()
     
     
     PREV CLASS 
    + PREV CLASS 
      NEXT CLASS
     
       FRAMES   
    @@ -368,7 +368,7 @@ public void analyze(PREV CLASS 
    + PREV CLASS 
      NEXT CLASS
     
       FRAMES   
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/FalsePositiveAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/FalsePositiveAnalyzer.html
    index 3cd0a5259..dcfbefa50 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/FalsePositiveAnalyzer.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/FalsePositiveAnalyzer.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -FalsePositiveAnalyzer (Dependency-Check Core 1.0.5 API)
    +FalsePositiveAnalyzer (Dependency-Check Core 1.0.6 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ FalsePositiveAnalyzer (Dependency-Check Core 1.0.5 API)
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="FalsePositiveAnalyzer (Dependency-Check Core 1.0.5 API)";
    +        parent.document.title="FalsePositiveAnalyzer (Dependency-Check Core 1.0.6 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/FileNameAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/FileNameAnalyzer.html
    index 875759186..3d55f1803 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/FileNameAnalyzer.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/FileNameAnalyzer.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -FileNameAnalyzer (Dependency-Check Core 1.0.5 API)
    +FileNameAnalyzer (Dependency-Check Core 1.0.6 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ FileNameAnalyzer (Dependency-Check Core 1.0.5 API)
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="FileNameAnalyzer (Dependency-Check Core 1.0.5 API)";
    +        parent.document.title="FileNameAnalyzer (Dependency-Check Core 1.0.6 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/HintAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/HintAnalyzer.html
    index 41879b065..dab07f903 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/HintAnalyzer.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/HintAnalyzer.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -HintAnalyzer (Dependency-Check Core 1.0.5 API)
    +HintAnalyzer (Dependency-Check Core 1.0.6 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ HintAnalyzer (Dependency-Check Core 1.0.5 API)
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="HintAnalyzer (Dependency-Check Core 1.0.5 API)";
    +        parent.document.title="HintAnalyzer (Dependency-Check Core 1.0.6 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/JarAnalyzer.ClassNameInformation.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/JarAnalyzer.ClassNameInformation.html
    index e2ac2db46..624f60af9 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/JarAnalyzer.ClassNameInformation.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/JarAnalyzer.ClassNameInformation.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -JarAnalyzer.ClassNameInformation (Dependency-Check Core 1.0.5 API)
    +JarAnalyzer.ClassNameInformation (Dependency-Check Core 1.0.6 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ JarAnalyzer.ClassNameInformation (Dependency-Check Core 1.0.5 API)
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="JarAnalyzer.ClassNameInformation (Dependency-Check Core 1.0.5 API)";
    +        parent.document.title="JarAnalyzer.ClassNameInformation (Dependency-Check Core 1.0.6 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/JarAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/JarAnalyzer.html
    index cdcd5f64b..99c9978ec 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/JarAnalyzer.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/JarAnalyzer.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -JarAnalyzer (Dependency-Check Core 1.0.5 API)
    +JarAnalyzer (Dependency-Check Core 1.0.6 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ JarAnalyzer (Dependency-Check Core 1.0.5 API)
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="JarAnalyzer (Dependency-Check Core 1.0.5 API)";
    +        parent.document.title="JarAnalyzer (Dependency-Check Core 1.0.6 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/JavaScriptAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/JavaScriptAnalyzer.html
    index be08f35ab..7dd0e4202 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/JavaScriptAnalyzer.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/JavaScriptAnalyzer.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -JavaScriptAnalyzer (Dependency-Check Core 1.0.5 API)
    +JavaScriptAnalyzer (Dependency-Check Core 1.0.6 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ JavaScriptAnalyzer (Dependency-Check Core 1.0.5 API)
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="JavaScriptAnalyzer (Dependency-Check Core 1.0.5 API)";
    +        parent.document.title="JavaScriptAnalyzer (Dependency-Check Core 1.0.6 API)";
         }
     }
     
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/NvdCveAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/NvdCveAnalyzer.html
    index 1ac89a65f..5340bf12c 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/NvdCveAnalyzer.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/NvdCveAnalyzer.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -NvdCveAnalyzer (Dependency-Check Core 1.0.5 API)
    +NvdCveAnalyzer (Dependency-Check Core 1.0.6 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ NvdCveAnalyzer (Dependency-Check Core 1.0.5 API)
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="NvdCveAnalyzer (Dependency-Check Core 1.0.5 API)";
    +        parent.document.title="NvdCveAnalyzer (Dependency-Check Core 1.0.6 API)";
         }
     }
     
    @@ -57,7 +57,7 @@ function windowTitle()
     
     
      PREV CLASS 
    - NEXT CLASSNEXT CLASS
     
       FRAMES   
      NO FRAMES   
    @@ -482,7 +482,7 @@ public void initialize()
     
     
      PREV CLASS 
    - NEXT CLASSNEXT CLASS
     
       FRAMES   
      NO FRAMES   
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/AbstractAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/AbstractAnalyzer.html
    index 80bb7a559..dc61fc113 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/AbstractAnalyzer.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/AbstractAnalyzer.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -Uses of Class org.owasp.dependencycheck.analyzer.AbstractAnalyzer (Dependency-Check Core 1.0.5 API)
    +Uses of Class org.owasp.dependencycheck.analyzer.AbstractAnalyzer (Dependency-Check Core 1.0.6 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.analyzer.AbstractAnalyzer (Dependency-Ch
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.AbstractAnalyzer (Dependency-Check Core 1.0.5 API)";
    +        parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.AbstractAnalyzer (Dependency-Check Core 1.0.6 API)";
         }
     }
     
    @@ -120,6 +120,15 @@ Uses of 
     
      class
    +AbstractSuppressionAnalyzer
    +
    +
    +          Abstract base suppression analyzer that contains methods for parsing the + suppression xml file. + + + + class ArchiveAnalyzer
    @@ -129,6 +138,15 @@ Uses of  class +CpeSuppressionAnalyzer + +
    +          The suppression analyzer processes an externally defined XML document that + complies with the suppressions.xsd schema. + + + + class DependencyBundlingAnalyzer
    @@ -178,6 +196,15 @@ Uses of + + class +VulnerabilitySuppressionAnalyzer + +
    +          The suppression analyzer processes an externally defined XML document that + complies with the suppressions.xsd schema. +  

    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/AnalysisException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/AnalysisException.html index 0287b7f4d..e13e1fd08 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/AnalysisException.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/AnalysisException.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.analyzer.AnalysisException (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.analyzer.AnalysisException (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.analyzer.AnalysisException (Dependency-C function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.AnalysisException (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.AnalysisException (Dependency-Check Core 1.0.6 API)"; } } @@ -120,6 +120,15 @@ Uses of  void +VulnerabilitySuppressionAnalyzer.analyze(Dependency dependency, + Engine engine) + +
    +            + + + + void NvdCveAnalyzer.analyze(Dependency dependency, Engine engine) @@ -188,6 +197,15 @@ Uses of  void +CpeSuppressionAnalyzer.analyze(Dependency dependency, + Engine engine) + +
    +            + + + + void CPEAnalyzer.analyze(Dependency dependency, Engine engine) diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/AnalysisPhase.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/AnalysisPhase.html index 156fba9b7..5c31a38e9 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/AnalysisPhase.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/AnalysisPhase.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.analyzer.AnalysisPhase (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.analyzer.AnalysisPhase (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.analyzer.AnalysisPhase (Dependency-Check function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.AnalysisPhase (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.AnalysisPhase (Dependency-Check Core 1.0.6 API)"; } } @@ -154,6 +154,14 @@ Uses of  AnalysisPhase +VulnerabilitySuppressionAnalyzer.getAnalysisPhase() + +
    +          Returns the phase that the analyzer is intended to run in. + + + + AnalysisPhase NvdCveAnalyzer.getAnalysisPhase()
    @@ -204,6 +212,14 @@ Uses of AnalysisPhase
    DependencyBundlingAnalyzer.getAnalysisPhase() +
    +          Returns the phase that the analyzer is intended to run in. + + + + AnalysisPhase +CpeSuppressionAnalyzer.getAnalysisPhase() +
              Returns the phase that the analyzer is intended to run in. diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/Analyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/Analyzer.html index 0c1621431..8bb55d872 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/Analyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/Analyzer.html @@ -2,13 +2,13 @@ - + -Uses of Interface org.owasp.dependencycheck.analyzer.Analyzer (Dependency-Check Core 1.0.5 API) +Uses of Interface org.owasp.dependencycheck.analyzer.Analyzer (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Interface org.owasp.dependencycheck.analyzer.Analyzer (Dependency-Check function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Interface org.owasp.dependencycheck.analyzer.Analyzer (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Interface org.owasp.dependencycheck.analyzer.Analyzer (Dependency-Check Core 1.0.6 API)"; } } @@ -179,6 +179,15 @@ Uses of  class +AbstractSuppressionAnalyzer + +
    +          Abstract base suppression analyzer that contains methods for parsing the + suppression xml file. + + + + class ArchiveAnalyzer
    @@ -197,6 +206,15 @@ Uses of  class +CpeSuppressionAnalyzer + +
    +          The suppression analyzer processes an externally defined XML document that + complies with the suppressions.xsd schema. + + + + class DependencyBundlingAnalyzer
    @@ -255,6 +273,15 @@ Uses of + + class +VulnerabilitySuppressionAnalyzer + +
    +          The suppression analyzer processes an externally defined XML document that + complies with the suppressions.xsd schema. +  

    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/AnalyzerService.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/AnalyzerService.html index 81d23ba3c..d5e985567 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/AnalyzerService.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/AnalyzerService.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.analyzer.AnalyzerService (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.analyzer.AnalyzerService (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.analyzer.AnalyzerService (Dependency-Che function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.AnalyzerService (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.AnalyzerService (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/ArchiveAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/ArchiveAnalyzer.html index 5c670c760..8b6e6c32b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/ArchiveAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/ArchiveAnalyzer.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.analyzer.ArchiveAnalyzer (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.analyzer.ArchiveAnalyzer (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.analyzer.ArchiveAnalyzer (Dependency-Che function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.ArchiveAnalyzer (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.ArchiveAnalyzer (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/ArchiveExtractionException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/ArchiveExtractionException.html index a6d00a08e..0b5de6144 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/ArchiveExtractionException.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/ArchiveExtractionException.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.analyzer.ArchiveExtractionException (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.analyzer.ArchiveExtractionException (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.analyzer.ArchiveExtractionException (Dep function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.ArchiveExtractionException (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.ArchiveExtractionException (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/CPEAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/CPEAnalyzer.html index 46a57c58f..121786ca2 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/CPEAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/CPEAnalyzer.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.analyzer.CPEAnalyzer (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.analyzer.CPEAnalyzer (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.analyzer.CPEAnalyzer (Dependency-Check C function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.CPEAnalyzer (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.CPEAnalyzer (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/DependencyBundlingAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/DependencyBundlingAnalyzer.html index bd1ba84de..1e30813fe 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/DependencyBundlingAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/DependencyBundlingAnalyzer.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzer (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzer (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzer (Dep function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzer (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzer (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/FalsePositiveAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/FalsePositiveAnalyzer.html index ef3b8637c..6f0604409 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/FalsePositiveAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/FalsePositiveAnalyzer.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer (Dependen function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/FileNameAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/FileNameAnalyzer.html index 306bf2942..c36ea57a8 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/FileNameAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/FileNameAnalyzer.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.analyzer.FileNameAnalyzer (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.analyzer.FileNameAnalyzer (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.analyzer.FileNameAnalyzer (Dependency-Ch function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.FileNameAnalyzer (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.FileNameAnalyzer (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/HintAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/HintAnalyzer.html index fa2fc88ad..185f7b31a 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/HintAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/HintAnalyzer.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.analyzer.HintAnalyzer (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.analyzer.HintAnalyzer (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.analyzer.HintAnalyzer (Dependency-Check function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.HintAnalyzer (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.HintAnalyzer (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/JarAnalyzer.ClassNameInformation.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/JarAnalyzer.ClassNameInformation.html index 58f771982..114a769af 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/JarAnalyzer.ClassNameInformation.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/JarAnalyzer.ClassNameInformation.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.analyzer.JarAnalyzer.ClassNameInformation (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.analyzer.JarAnalyzer.ClassNameInformation (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.analyzer.JarAnalyzer.ClassNameInformatio function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.JarAnalyzer.ClassNameInformation (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.JarAnalyzer.ClassNameInformation (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/JarAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/JarAnalyzer.html index 4f4faf468..ef5a557e0 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/JarAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/JarAnalyzer.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.analyzer.JarAnalyzer (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.analyzer.JarAnalyzer (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.analyzer.JarAnalyzer (Dependency-Check C function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.JarAnalyzer (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.JarAnalyzer (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/JavaScriptAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/JavaScriptAnalyzer.html index 6106ca2b0..a8642fa12 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/JavaScriptAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/JavaScriptAnalyzer.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.analyzer.JavaScriptAnalyzer (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.analyzer.JavaScriptAnalyzer (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.analyzer.JavaScriptAnalyzer (Dependency- function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.JavaScriptAnalyzer (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.JavaScriptAnalyzer (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/NvdCveAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/NvdCveAnalyzer.html index 6ec88d30a..e4b95b1fa 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/NvdCveAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/class-use/NvdCveAnalyzer.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.analyzer.NvdCveAnalyzer (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.analyzer.NvdCveAnalyzer (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.analyzer.NvdCveAnalyzer (Dependency-Chec function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.NvdCveAnalyzer (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.analyzer.NvdCveAnalyzer (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-frame.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-frame.html index a80be1214..f9ebad76a 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-frame.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-frame.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.analyzer (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.analyzer (Dependency-Check Core 1.0.6 API) - + @@ -37,12 +37,16 @@ Classes 
    AbstractAnalyzer
    +AbstractSuppressionAnalyzer +
    AnalyzerService
    ArchiveAnalyzer
    CPEAnalyzer
    +CpeSuppressionAnalyzer +
    DependencyBundlingAnalyzer
    FalsePositiveAnalyzer @@ -57,7 +61,9 @@ Classes 
    JavaScriptAnalyzer
    -NvdCveAnalyzer +NvdCveAnalyzer +
    +VulnerabilitySuppressionAnalyzer diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-summary.html index 6e34763fa..2510e04fc 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-summary.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.analyzer (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.analyzer (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.analyzer (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.analyzer (Dependency-Check Core 1.0.5 API)"; + parent.document.title="org.owasp.dependencycheck.analyzer (Dependency-Check Core 1.0.6 API)"; } } @@ -120,6 +120,11 @@ Package org.owasp.dependencycheck.analyzer   +AbstractSuppressionAnalyzer +Abstract base suppression analyzer that contains methods for parsing the + suppression xml file. + + AnalyzerService   @@ -134,6 +139,11 @@ Package org.owasp.dependencycheck.analyzer to discern if there is an associated CPE. +CpeSuppressionAnalyzer +The suppression analyzer processes an externally defined XML document that + complies with the suppressions.xsd schema. + + DependencyBundlingAnalyzer This analyzer ensures dependencies that should be grouped together, to remove excess noise from the report, are grouped. @@ -170,6 +180,11 @@ Package org.owasp.dependencycheck.analyzer NvdCveAnalyzer is a utility class that takes a project dependency and attempts to discern if there is an associated CVEs. + +VulnerabilitySuppressionAnalyzer +The suppression analyzer processes an externally defined XML document that + complies with the suppressions.xsd schema. +   @@ -200,7 +215,7 @@ Package org.owasp.dependencycheck.analyzer ArchiveExtractionException -An exception thrown when the analysis of a dependency fails. +An exception thrown when files in an archive cannot be extracted.   diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-tree.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-tree.html index d68c5fcb1..128fd8106 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-tree.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-tree.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.analyzer Class Hierarchy (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.analyzer Class Hierarchy (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.analyzer Class Hierarchy (Dependency-Check Core 1.0.5 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.analyzer Class Hierarchy (Dependency-Check Core 1.0.5 API)"; + parent.document.title="org.owasp.dependencycheck.analyzer Class Hierarchy (Dependency-Check Core 1.0.6 API)"; } } @@ -95,6 +95,8 @@ Class Hierarchy

  • java.lang.Object
    • org.owasp.dependencycheck.analyzer.AbstractAnalyzer (implements org.owasp.dependencycheck.analyzer.Analyzer)
        +
      • org.owasp.dependencycheck.analyzer.AbstractSuppressionAnalyzer
      • org.owasp.dependencycheck.analyzer.ArchiveAnalyzer (implements org.owasp.dependencycheck.analyzer.Analyzer)
      • org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzer (implements org.owasp.dependencycheck.analyzer.Analyzer)
      • org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer
      • org.owasp.dependencycheck.analyzer.FileNameAnalyzer (implements org.owasp.dependencycheck.analyzer.Analyzer) diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-use.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-use.html index 833226df7..821ac488f 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-use.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/analyzer/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.owasp.dependencycheck.analyzer (Dependency-Check Core 1.0.5 API) +Uses of Package org.owasp.dependencycheck.analyzer (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Package org.owasp.dependencycheck.analyzer (Dependency-Check Core 1.0.5 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.owasp.dependencycheck.analyzer (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Package org.owasp.dependencycheck.analyzer (Dependency-Check Core 1.0.6 API)"; } } @@ -155,6 +155,13 @@ Classes in +AbstractSuppressionAnalyzer + +
        +          Abstract base suppression analyzer that contains methods for parsing the + suppression xml file. + + AnalysisException
        diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/class-use/Engine.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/class-use/Engine.html index da455e6ab..980b57c8f 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/class-use/Engine.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/class-use/Engine.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.Engine (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.Engine (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.Engine (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.Engine (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.Engine (Dependency-Check Core 1.0.6 API)"; } } @@ -129,6 +129,15 @@ Uses of  void +VulnerabilitySuppressionAnalyzer.analyze(Dependency dependency, + Engine engine) + +
        +            + + + + void NvdCveAnalyzer.analyze(Dependency dependency, Engine engine) @@ -197,6 +206,15 @@ Uses of  void +CpeSuppressionAnalyzer.analyze(Dependency dependency, + Engine engine) + +
        +            + + + + void CPEAnalyzer.analyze(Dependency dependency, Engine engine) diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/DirectoryLockException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/DirectoryLockException.html index bd2b1298e..3371c221f 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/DirectoryLockException.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/DirectoryLockException.html @@ -2,13 +2,13 @@ - + -DirectoryLockException (Dependency-Check Core 1.0.5 API) +DirectoryLockException (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ DirectoryLockException (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="DirectoryLockException (Dependency-Check Core 1.0.5 API)"; + parent.document.title="DirectoryLockException (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/DirectorySpinLock.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/DirectorySpinLock.html index 995ac969b..460435549 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/DirectorySpinLock.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/DirectorySpinLock.html @@ -2,13 +2,13 @@ - + -DirectorySpinLock (Dependency-Check Core 1.0.5 API) +DirectorySpinLock (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ DirectorySpinLock (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="DirectorySpinLock (Dependency-Check Core 1.0.5 API)"; + parent.document.title="DirectorySpinLock (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/InvalidDirectoryException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/InvalidDirectoryException.html index 56f9b262d..562ad2135 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/InvalidDirectoryException.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/InvalidDirectoryException.html @@ -2,13 +2,13 @@ - + -InvalidDirectoryException (Dependency-Check Core 1.0.5 API) +InvalidDirectoryException (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ InvalidDirectoryException (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="InvalidDirectoryException (Dependency-Check Core 1.0.5 API)"; + parent.document.title="InvalidDirectoryException (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/class-use/DirectoryLockException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/class-use/DirectoryLockException.html index b58465ebe..7cab5f869 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/class-use/DirectoryLockException.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/class-use/DirectoryLockException.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.concurrency.DirectoryLockException (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.concurrency.DirectoryLockException (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.concurrency.DirectoryLockException (Depe function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.concurrency.DirectoryLockException (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.concurrency.DirectoryLockException (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/class-use/DirectorySpinLock.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/class-use/DirectorySpinLock.html index ab27ca7b9..71449c321 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/class-use/DirectorySpinLock.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/class-use/DirectorySpinLock.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.concurrency.DirectorySpinLock (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.concurrency.DirectorySpinLock (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.concurrency.DirectorySpinLock (Dependenc function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.concurrency.DirectorySpinLock (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.concurrency.DirectorySpinLock (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/class-use/InvalidDirectoryException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/class-use/InvalidDirectoryException.html index 9e218b7e7..03c89d1f7 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/class-use/InvalidDirectoryException.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/class-use/InvalidDirectoryException.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.concurrency.InvalidDirectoryException (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.concurrency.InvalidDirectoryException (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.concurrency.InvalidDirectoryException (D function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.concurrency.InvalidDirectoryException (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.concurrency.InvalidDirectoryException (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/package-frame.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/package-frame.html index 7773df9ae..001ead093 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/package-frame.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/package-frame.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.concurrency (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.concurrency (Dependency-Check Core 1.0.6 API) - + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/package-summary.html index c0ade3ef7..e984798f8 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/package-summary.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.concurrency (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.concurrency (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.concurrency (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.concurrency (Dependency-Check Core 1.0.5 API)"; + parent.document.title="org.owasp.dependencycheck.concurrency (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/package-tree.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/package-tree.html index 449c83074..2becec3de 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/package-tree.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/package-tree.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.concurrency Class Hierarchy (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.concurrency Class Hierarchy (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.concurrency Class Hierarchy (Dependency-Check Core 1.0 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.concurrency Class Hierarchy (Dependency-Check Core 1.0.5 API)"; + parent.document.title="org.owasp.dependencycheck.concurrency Class Hierarchy (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/package-use.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/package-use.html index 2a56b4b32..68dcca753 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/package-use.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/concurrency/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.owasp.dependencycheck.concurrency (Dependency-Check Core 1.0.5 API) +Uses of Package org.owasp.dependencycheck.concurrency (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Package org.owasp.dependencycheck.concurrency (Dependency-Check Core 1.0 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.owasp.dependencycheck.concurrency (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Package org.owasp.dependencycheck.concurrency (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/CachedWebDataSource.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/CachedWebDataSource.html index 73c8ee73d..ae4f10512 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/CachedWebDataSource.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/CachedWebDataSource.html @@ -2,13 +2,13 @@ - + -CachedWebDataSource (Dependency-Check Core 1.0.5 API) +CachedWebDataSource (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ CachedWebDataSource (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="CachedWebDataSource (Dependency-Check Core 1.0.5 API)"; + parent.document.title="CachedWebDataSource (Dependency-Check Core 1.0.6 API)"; } } @@ -56,7 +56,7 @@ function windowTitle() - PREV CLASS  + PREV CLASS   NEXT CLASS FRAMES   @@ -194,7 +194,7 @@ void update() - PREV CLASS  + PREV CLASS   NEXT CLASS FRAMES   diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/NoDataException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/NoDataException.html index 0dd749212..7591cc4bb 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/NoDataException.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/NoDataException.html @@ -2,13 +2,13 @@ - + -NoDataException (Dependency-Check Core 1.0.5 API) +NoDataException (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ NoDataException (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="NoDataException (Dependency-Check Core 1.0.5 API)"; + parent.document.title="NoDataException (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/UpdateException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/UpdateException.html index a3b4c54be..b555125b1 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/UpdateException.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/UpdateException.html @@ -2,13 +2,13 @@ - + -UpdateException (Dependency-Check Core 1.0.5 API) +UpdateException (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ UpdateException (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="UpdateException (Dependency-Check Core 1.0.5 API)"; + parent.document.title="UpdateException (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/UpdateService.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/UpdateService.html index a4d76f673..ac407e95f 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/UpdateService.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/UpdateService.html @@ -2,13 +2,13 @@ - + -UpdateService (Dependency-Check Core 1.0.5 API) +UpdateService (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ UpdateService (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="UpdateService (Dependency-Check Core 1.0.5 API)"; + parent.document.title="UpdateService (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/class-use/CachedWebDataSource.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/class-use/CachedWebDataSource.html index 71fd49bc7..8d62b3e9b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/class-use/CachedWebDataSource.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/class-use/CachedWebDataSource.html @@ -2,13 +2,13 @@ - + -Uses of Interface org.owasp.dependencycheck.data.CachedWebDataSource (Dependency-Check Core 1.0.5 API) +Uses of Interface org.owasp.dependencycheck.data.CachedWebDataSource (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Interface org.owasp.dependencycheck.data.CachedWebDataSource (Dependency function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Interface org.owasp.dependencycheck.data.CachedWebDataSource (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Interface org.owasp.dependencycheck.data.CachedWebDataSource (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/class-use/NoDataException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/class-use/NoDataException.html index a4e8955bb..6c3558e66 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/class-use/NoDataException.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/class-use/NoDataException.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.NoDataException (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.data.NoDataException (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.NoDataException (Dependency-Check C function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.NoDataException (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.NoDataException (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/class-use/UpdateException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/class-use/UpdateException.html index dfab081d7..e5b5680b7 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/class-use/UpdateException.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/class-use/UpdateException.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.UpdateException (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.data.UpdateException (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.UpdateException (Dependency-Check C function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.UpdateException (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.UpdateException (Dependency-Check Core 1.0.6 API)"; } } @@ -208,7 +208,7 @@ Uses of update()
        -          Downloads the latest NVD CVE XML file from the web and imports it into +          Deprecated. Downloads the latest NVD CVE XML file from the web and imports it into the current CVE Database. @@ -233,7 +233,7 @@ Uses of updatesNeeded()
        -          Determines if the index needs to be updated. +          Deprecated. Determines if the index needs to be updated. @@ -261,7 +261,7 @@ Uses of BatchUpdateTask(DataStoreMetaInfo properties)
        -          Constructs a new BatchUpdateTask. +          Deprecated. Constructs a new BatchUpdateTask. StandardUpdateTask(DataStoreMetaInfo properties) diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/class-use/UpdateService.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/class-use/UpdateService.html index 7901da2b0..c88bdcc15 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/class-use/UpdateService.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/class-use/UpdateService.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.UpdateService (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.data.UpdateService (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.UpdateService (Dependency-Check Cor function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.UpdateService (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.UpdateService (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/Fields.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/Fields.html index 9f1175ab2..43121be3f 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/Fields.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/Fields.html @@ -2,13 +2,13 @@ - + -Fields (Dependency-Check Core 1.0.5 API) +Fields (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Fields (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Fields (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Fields (Dependency-Check Core 1.0.6 API)"; } } @@ -56,7 +56,7 @@ function windowTitle() PREV CLASS  + PREV CLASS   NEXT CLASS FRAMES   @@ -277,7 +277,7 @@ public Fields()
  • PREV CLASS  + PREV CLASS   NEXT CLASS FRAMES   diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/IndexEntry.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/IndexEntry.html index 954f4d6b4..beab7c10a 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/IndexEntry.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/IndexEntry.html @@ -2,13 +2,13 @@ - + -IndexEntry (Dependency-Check Core 1.0.5 API) +IndexEntry (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ IndexEntry (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="IndexEntry (Dependency-Check Core 1.0.5 API)"; + parent.document.title="IndexEntry (Dependency-Check Core 1.0.6 API)"; } } @@ -57,7 +57,7 @@ function windowTitle()  PREV CLASS  - NEXT CLASSNEXT CLASS FRAMES    NO FRAMES   @@ -516,7 +516,7 @@ public  PREV CLASS  - NEXT CLASSNEXT CLASS FRAMES    NO FRAMES   diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/class-use/Fields.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/class-use/Fields.html index 4b6643051..7623dd598 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/class-use/Fields.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/class-use/Fields.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.cpe.Fields (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.data.cpe.Fields (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.cpe.Fields (Dependency-Check Core 1 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.cpe.Fields (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.cpe.Fields (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/class-use/IndexEntry.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/class-use/IndexEntry.html index f1a01a426..abc2cd6df 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/class-use/IndexEntry.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/class-use/IndexEntry.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.cpe.IndexEntry (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.data.cpe.IndexEntry (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.cpe.IndexEntry (Dependency-Check Co function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.cpe.IndexEntry (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.cpe.IndexEntry (Dependency-Check Core 1.0.6 API)"; } } @@ -101,15 +101,6 @@ Packages that use -org.owasp.dependencycheck.data.cpe - - - org.owasp.dependencycheck.data.cpe - - - Contains classes for working with the CPE Lucene Index.  - - org.owasp.dependencycheck.dependency @@ -150,31 +141,6 @@ Uses of - - - - -
    -Uses of IndexEntry in org.owasp.dependencycheck.data.cpe
    -  -

    - - - - - - - - - -
    Methods in org.owasp.dependencycheck.data.cpe with parameters of type IndexEntry
    - voidCpeIndexWriter.saveEntry(IndexEntry entry) - -
    -          Saves a CPE IndexEntry into the Lucene index.
    -  -

    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-frame.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-frame.html index 04f1e4cd7..9373f3cd7 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-frame.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-frame.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.data.cpe (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.data.cpe (Dependency-Check Core 1.0.6 API) - + @@ -24,11 +24,7 @@ org.owasp.dependencycheck.data.cpe (Dependency-Check Core 1.0.5 API) Classes 
    -BaseIndex -
    -CpeIndexReader -
    -CpeIndexWriter +CpeMemoryIndex
    Fields
    @@ -37,5 +33,16 @@ Classes
     
    + + + + +
    +Exceptions  + +
    +IndexException
    + + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-summary.html index f5e7aee35..602a80ac9 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-summary.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.data.cpe (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.data.cpe (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.data.cpe (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.data.cpe (Dependency-Check Core 1.0.5 API)"; + parent.document.title="org.owasp.dependencycheck.data.cpe (Dependency-Check Core 1.0.6 API)"; } } @@ -101,16 +101,9 @@ Package org.owasp.dependencycheck.data.cpe Class Summary
    -BaseIndex -The Base Index class used to access the CPE Index. - - -CpeIndexReader -  - - -CpeIndexWriter -  +CpeMemoryIndex +An in memory lucene index that contains the vendor/product combinations from + the CPE (application) identifiers within the NVD CVE data. Fields @@ -124,6 +117,20 @@ Package org.owasp.dependencycheck.data.cpe   +

    + + + + + + + + + +
    +Exception Summary
    IndexExceptionAn exception thrown when the there is an issue using the in-memory CPE Index.
    +  +

    Package org.owasp.dependencycheck.data.cpe Description diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-tree.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-tree.html index c140f8c78..a4eeb12f3 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-tree.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-tree.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.data.cpe Class Hierarchy (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.data.cpe Class Hierarchy (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.data.cpe Class Hierarchy (Dependency-Check Core 1.0.5 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.data.cpe Class Hierarchy (Dependency-Check Core 1.0.5 API)"; + parent.document.title="org.owasp.dependencycheck.data.cpe Class Hierarchy (Dependency-Check Core 1.0.6 API)"; } } @@ -93,9 +93,12 @@ Class Hierarchy


    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-use.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-use.html index 9ffe6788c..e90bbe864 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-use.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cpe/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.owasp.dependencycheck.data.cpe (Dependency-Check Core 1.0.5 API) +Uses of Package org.owasp.dependencycheck.data.cpe (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Package org.owasp.dependencycheck.data.cpe (Dependency-Check Core 1.0.5 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.owasp.dependencycheck.data.cpe (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Package org.owasp.dependencycheck.data.cpe (Dependency-Check Core 1.0.6 API)"; } } @@ -110,23 +110,6 @@ Packages that use -org.owasp.dependencycheck.data.nvdcve - - - org.owasp.dependencycheck.data.nvdcve - - - Contains classes used to work with the NVD CVE data.  - - -org.owasp.dependencycheck.data.update - - - org.owasp.dependencycheck.data.nvdcve.xml - -   - - org.owasp.dependencycheck.dependency @@ -160,46 +143,17 @@ Classes in org.owasp.dependencycheck.data.cpe used by org.owasp.dependencycheck.data.cpe
    -BaseIndex +CpeMemoryIndex
    -          The Base Index class used to access the CPE Index. +          An in memory lucene index that contains the vendor/product combinations from + the CPE (application) identifiers within the NVD CVE data. -IndexEntry +IndexException
    -          A CPE entry containing the name, vendor, product, and version. - - -  -

    - - - - - - - - -
    -Classes in org.owasp.dependencycheck.data.cpe used by org.owasp.dependencycheck.data.nvdcve
    CpeIndexWriter - -
    -           
    -  -

    - - - - - - - +          An exception thrown when the there is an issue using the in-memory CPE Index.
    -Classes in org.owasp.dependencycheck.data.cpe used by org.owasp.dependencycheck.data.update
    CpeIndexWriter - -
    -           
      diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/CweDB.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/CweDB.html index 796ba1c9e..0709cb940 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/CweDB.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/CweDB.html @@ -2,13 +2,13 @@ - + -CweDB (Dependency-Check Core 1.0.5 API) +CweDB (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ CweDB (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="CweDB (Dependency-Check Core 1.0.5 API)"; + parent.document.title="CweDB (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/CweHandler.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/CweHandler.html index f6af2885c..352ceb84d 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/CweHandler.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/CweHandler.html @@ -2,13 +2,13 @@ - + -CweHandler (Dependency-Check Core 1.0.5 API) +CweHandler (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ CweHandler (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="CweHandler (Dependency-Check Core 1.0.5 API)"; + parent.document.title="CweHandler (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/class-use/CweDB.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/class-use/CweDB.html index 3fb47fbe8..c2cae01c6 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/class-use/CweDB.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/class-use/CweDB.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.cwe.CweDB (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.data.cwe.CweDB (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.cwe.CweDB (Dependency-Check Core 1. function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.cwe.CweDB (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.cwe.CweDB (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/class-use/CweHandler.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/class-use/CweHandler.html index 077131179..dbe80ec9a 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/class-use/CweHandler.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/class-use/CweHandler.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.cwe.CweHandler (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.data.cwe.CweHandler (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.cwe.CweHandler (Dependency-Check Co function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.cwe.CweHandler (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.cwe.CweHandler (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-frame.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-frame.html index fc4d3b552..91916121f 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-frame.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-frame.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.data.cwe (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.data.cwe (Dependency-Check Core 1.0.6 API) - + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-summary.html index 3e666e61f..8be419406 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-summary.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.data.cwe (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.data.cwe (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.data.cwe (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.data.cwe (Dependency-Check Core 1.0.5 API)"; + parent.document.title="org.owasp.dependencycheck.data.cwe (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-tree.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-tree.html index fcaefd55f..3d82d8a76 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-tree.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-tree.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.data.cwe Class Hierarchy (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.data.cwe Class Hierarchy (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.data.cwe Class Hierarchy (Dependency-Check Core 1.0.5 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.data.cwe Class Hierarchy (Dependency-Check Core 1.0.5 API)"; + parent.document.title="org.owasp.dependencycheck.data.cwe Class Hierarchy (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-use.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-use.html index fd93ed787..3d4dc1a0c 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-use.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/cwe/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.owasp.dependencycheck.data.cwe (Dependency-Check Core 1.0.5 API) +Uses of Package org.owasp.dependencycheck.data.cwe (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Package org.owasp.dependencycheck.data.cwe (Dependency-Check Core 1.0.5 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.owasp.dependencycheck.data.cwe (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Package org.owasp.dependencycheck.data.cwe (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/AbstractTokenizingFilter.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/AbstractTokenizingFilter.html index 60ca58ae4..4b514c59b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/AbstractTokenizingFilter.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/AbstractTokenizingFilter.html @@ -2,13 +2,13 @@ - + -AbstractTokenizingFilter (Dependency-Check Core 1.0.5 API) +AbstractTokenizingFilter (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ AbstractTokenizingFilter (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="AbstractTokenizingFilter (Dependency-Check Core 1.0.5 API)"; + parent.document.title="AbstractTokenizingFilter (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/AlphaNumericTokenizer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/AlphaNumericTokenizer.html index ec7734dff..1a5b47c68 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/AlphaNumericTokenizer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/AlphaNumericTokenizer.html @@ -2,13 +2,13 @@ - + -AlphaNumericTokenizer (Dependency-Check Core 1.0.5 API) +AlphaNumericTokenizer (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ AlphaNumericTokenizer (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="AlphaNumericTokenizer (Dependency-Check Core 1.0.5 API)"; + parent.document.title="AlphaNumericTokenizer (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/DependencySimilarity.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/DependencySimilarity.html index 7166a5563..99b924f80 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/DependencySimilarity.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/DependencySimilarity.html @@ -2,13 +2,13 @@ - + -DependencySimilarity (Dependency-Check Core 1.0.5 API) +DependencySimilarity (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ DependencySimilarity (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="DependencySimilarity (Dependency-Check Core 1.0.5 API)"; + parent.document.title="DependencySimilarity (Dependency-Check Core 1.0.6 API)"; } } @@ -127,7 +127,7 @@ Class DependencySimilarity Nested classes/interfaces inherited from class org.apache.lucene.search.similarities.Similarity -org.apache.lucene.search.similarities.Similarity.ExactSimScorer, org.apache.lucene.search.similarities.Similarity.SimWeight, org.apache.lucene.search.similarities.Similarity.SloppySimScorer +org.apache.lucene.search.similarities.Similarity.SimScorer, org.apache.lucene.search.similarities.Similarity.SimWeight   @@ -191,7 +191,7 @@ Class DependencySimilarity Methods inherited from class org.apache.lucene.search.similarities.DefaultSimilarity -coord, getDiscountOverlaps, lengthNorm, queryNorm, scorePayload, setDiscountOverlaps, sloppyFreq, tf, toString +coord, decodeNormValue, encodeNormValue, getDiscountOverlaps, lengthNorm, queryNorm, scorePayload, setDiscountOverlaps, sloppyFreq, tf, toString   @@ -200,7 +200,7 @@ Class DependencySimilarity Methods inherited from class org.apache.lucene.search.similarities.TFIDFSimilarity -computeNorm, computeWeight, decodeNormValue, encodeNormValue, exactSimScorer, idfExplain, idfExplain, sloppySimScorer, tf +computeNorm, computeWeight, idfExplain, idfExplain, simScorer   diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/FieldAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/FieldAnalyzer.html index c4672afea..72f12c9cf 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/FieldAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/FieldAnalyzer.html @@ -2,13 +2,13 @@ - + -FieldAnalyzer (Dependency-Check Core 1.0.5 API) +FieldAnalyzer (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ FieldAnalyzer (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="FieldAnalyzer (Dependency-Check Core 1.0.5 API)"; + parent.document.title="FieldAnalyzer (Dependency-Check Core 1.0.6 API)"; } } @@ -77,7 +77,7 @@ function windowTitle() - SUMMARY: NESTED | FIELD | CONSTR | METHOD + SUMMARY: NESTED | FIELD | CONSTR | METHOD
    DETAIL: FIELD | CONSTR | METHOD @@ -138,7 +138,25 @@ Class FieldAnalyzer   + + + + + + +
    +Field Summary
    + + + + + + + +
    Fields inherited from class org.apache.lucene.analysis.Analyzer
    GLOBAL_REUSE_STRATEGY, PER_FIELD_REUSE_STRATEGY
    @@ -179,7 +197,7 @@ Class FieldAnalyzer Methods inherited from class org.apache.lucene.analysis.Analyzer -close, getOffsetGap, getPositionIncrementGap, initReader, tokenStream +close, getOffsetGap, getPositionIncrementGap, getReuseStrategy, initReader, tokenStream, tokenStream   @@ -293,7 +311,7 @@ protected org.apache.lucene.analysis.Analyzer.TokenStreamComponents createCom - SUMMARY: NESTED | FIELD | CONSTR | METHOD + SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/LuceneUtils.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/LuceneUtils.html index cee41b101..9366ebc99 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/LuceneUtils.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/LuceneUtils.html @@ -2,13 +2,13 @@ - + -LuceneUtils (Dependency-Check Core 1.0.5 API) +LuceneUtils (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ LuceneUtils (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="LuceneUtils (Dependency-Check Core 1.0.5 API)"; + parent.document.title="LuceneUtils (Dependency-Check Core 1.0.6 API)"; } } @@ -77,9 +77,9 @@ function windowTitle() - SUMMARY: NESTED | FIELD | CONSTR | METHOD + SUMMARY: NESTED | FIELD | CONSTR | METHOD -DETAIL: FIELD | CONSTR | METHOD +DETAIL: FIELD | CONSTR | METHOD @@ -114,7 +114,24 @@ Class LuceneUtils


    + + + + + + + + + + +
    +Field Summary
    +static org.apache.lucene.util.VersionCURRENT_VERSION + +
    +          The current version of Lucene being used.
    @@ -155,6 +172,28 @@ Class LuceneUtils  

    + + + + + + + +
    +Field Detail
    + +

    +CURRENT_VERSION

    +
    +public static final org.apache.lucene.util.Version CURRENT_VERSION
    +
    +
    The current version of Lucene being used. Declaring this one place so an + upgrade doesn't require hunting through the code base. +

    +

    +
    +
    + @@ -245,9 +284,9 @@ public static - SUMMARY: NESTED | FIELD | CONSTR | METHOD + SUMMARY: NESTED | FIELD | CONSTR | METHOD -DETAIL: FIELD | CONSTR | METHOD +DETAIL: FIELD | CONSTR | METHOD diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/SearchFieldAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/SearchFieldAnalyzer.html index 6c82b4e2d..135c0d9a3 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/SearchFieldAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/SearchFieldAnalyzer.html @@ -2,13 +2,13 @@ - + -SearchFieldAnalyzer (Dependency-Check Core 1.0.5 API) +SearchFieldAnalyzer (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ SearchFieldAnalyzer (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="SearchFieldAnalyzer (Dependency-Check Core 1.0.5 API)"; + parent.document.title="SearchFieldAnalyzer (Dependency-Check Core 1.0.6 API)"; } } @@ -77,7 +77,7 @@ function windowTitle() - SUMMARY: NESTED | FIELD | CONSTR | METHOD + SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD @@ -136,7 +136,25 @@ A Lucene field analyzer used to analyzer queries against the CPE data.   + + + + + + +
    +Field Summary
    + + + + + + + +
    Fields inherited from class org.apache.lucene.analysis.Analyzer
    GLOBAL_REUSE_STRATEGY, PER_FIELD_REUSE_STRATEGY
    @@ -186,7 +204,7 @@ A Lucene field analyzer used to analyzer queries against the CPE data. Methods inherited from class org.apache.lucene.analysis.Analyzer -close, getOffsetGap, getPositionIncrementGap, initReader, tokenStream +close, getOffsetGap, getPositionIncrementGap, getReuseStrategy, initReader, tokenStream, tokenStream   @@ -316,7 +334,7 @@ public void clear() - SUMMARY: NESTED | FIELD | CONSTR | METHOD + SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/SearchVersionAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/SearchVersionAnalyzer.html index f087ac6fa..a4d9a71de 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/SearchVersionAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/SearchVersionAnalyzer.html @@ -2,13 +2,13 @@ - + -SearchVersionAnalyzer (Dependency-Check Core 1.0.5 API) +SearchVersionAnalyzer (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ SearchVersionAnalyzer (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="SearchVersionAnalyzer (Dependency-Check Core 1.0.5 API)"; + parent.document.title="SearchVersionAnalyzer (Dependency-Check Core 1.0.6 API)"; } } @@ -77,7 +77,7 @@ function windowTitle() - SUMMARY: NESTED | FIELD | CONSTR | METHOD + SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD @@ -140,7 +140,25 @@ SearchVersionAnalyzer is a Lucene Analyzer used to analyze version   + + + + + + +
    +Field Summary
    + + + + + + + +
    Fields inherited from class org.apache.lucene.analysis.Analyzer
    GLOBAL_REUSE_STRATEGY, PER_FIELD_REUSE_STRATEGY
    @@ -181,7 +199,7 @@ SearchVersionAnalyzer is a Lucene Analyzer used to analyze version Methods inherited from class org.apache.lucene.analysis.Analyzer -close, getOffsetGap, getPositionIncrementGap, initReader, tokenStream +close, getOffsetGap, getPositionIncrementGap, getReuseStrategy, initReader, tokenStream, tokenStream   @@ -295,7 +313,7 @@ protected org.apache.lucene.analysis.Analyzer.TokenStreamComponents createCom - SUMMARY: NESTED | FIELD | CONSTR | METHOD + SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/TokenPairConcatenatingFilter.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/TokenPairConcatenatingFilter.html index efd9e4761..4091026d7 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/TokenPairConcatenatingFilter.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/TokenPairConcatenatingFilter.html @@ -2,13 +2,13 @@ - + -TokenPairConcatenatingFilter (Dependency-Check Core 1.0.5 API) +TokenPairConcatenatingFilter (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ TokenPairConcatenatingFilter (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="TokenPairConcatenatingFilter (Dependency-Check Core 1.0.5 API)"; + parent.document.title="TokenPairConcatenatingFilter (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/UrlTokenizingFilter.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/UrlTokenizingFilter.html index d3b544651..171610c2f 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/UrlTokenizingFilter.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/UrlTokenizingFilter.html @@ -2,13 +2,13 @@ - + -UrlTokenizingFilter (Dependency-Check Core 1.0.5 API) +UrlTokenizingFilter (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ UrlTokenizingFilter (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="UrlTokenizingFilter (Dependency-Check Core 1.0.5 API)"; + parent.document.title="UrlTokenizingFilter (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/VersionAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/VersionAnalyzer.html index a2576c715..28922d917 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/VersionAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/VersionAnalyzer.html @@ -2,13 +2,13 @@ - + -VersionAnalyzer (Dependency-Check Core 1.0.5 API) +VersionAnalyzer (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ VersionAnalyzer (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="VersionAnalyzer (Dependency-Check Core 1.0.5 API)"; + parent.document.title="VersionAnalyzer (Dependency-Check Core 1.0.6 API)"; } } @@ -77,7 +77,7 @@ function windowTitle() - SUMMARY: NESTED | FIELD | CONSTR | METHOD + SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD @@ -139,7 +139,25 @@ VersionAnalyzer is a Lucene Analyzer used to analyze version information.   + + + + + + +
    +Field Summary
    + + + + + + + +
    Fields inherited from class org.apache.lucene.analysis.Analyzer
    GLOBAL_REUSE_STRATEGY, PER_FIELD_REUSE_STRATEGY
    @@ -180,7 +198,7 @@ VersionAnalyzer is a Lucene Analyzer used to analyze version information. Methods inherited from class org.apache.lucene.analysis.Analyzer -close, getOffsetGap, getPositionIncrementGap, initReader, tokenStream +close, getOffsetGap, getPositionIncrementGap, getReuseStrategy, initReader, tokenStream, tokenStream   @@ -294,7 +312,7 @@ protected org.apache.lucene.analysis.Analyzer.TokenStreamComponents createCom - SUMMARY: NESTED | FIELD | CONSTR | METHOD + SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/VersionTokenizingFilter.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/VersionTokenizingFilter.html index 85a6692e5..ae63776eb 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/VersionTokenizingFilter.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/VersionTokenizingFilter.html @@ -2,13 +2,13 @@ - + -VersionTokenizingFilter (Dependency-Check Core 1.0.5 API) +VersionTokenizingFilter (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ VersionTokenizingFilter (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="VersionTokenizingFilter (Dependency-Check Core 1.0.5 API)"; + parent.document.title="VersionTokenizingFilter (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/AbstractTokenizingFilter.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/AbstractTokenizingFilter.html index 8df9f9afe..1fab06477 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/AbstractTokenizingFilter.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/AbstractTokenizingFilter.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.lucene.AbstractTokenizingFilter (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.data.lucene.AbstractTokenizingFilter (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.lucene.AbstractTokenizingFilter (De function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.AbstractTokenizingFilter (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.AbstractTokenizingFilter (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/AlphaNumericTokenizer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/AlphaNumericTokenizer.html index 0e4327491..beefd5d68 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/AlphaNumericTokenizer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/AlphaNumericTokenizer.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.lucene.AlphaNumericTokenizer (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.data.lucene.AlphaNumericTokenizer (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.lucene.AlphaNumericTokenizer (Depen function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.AlphaNumericTokenizer (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.AlphaNumericTokenizer (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/DependencySimilarity.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/DependencySimilarity.html index 73169d810..d72a91192 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/DependencySimilarity.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/DependencySimilarity.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.lucene.DependencySimilarity (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.data.lucene.DependencySimilarity (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.lucene.DependencySimilarity (Depend function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.DependencySimilarity (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.DependencySimilarity (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/FieldAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/FieldAnalyzer.html index 8284bbaf5..20120aa9e 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/FieldAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/FieldAnalyzer.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.lucene.FieldAnalyzer (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.data.lucene.FieldAnalyzer (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.lucene.FieldAnalyzer (Dependency-Ch function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.FieldAnalyzer (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.FieldAnalyzer (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/LuceneUtils.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/LuceneUtils.html index 961a28d05..150ca058e 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/LuceneUtils.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/LuceneUtils.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.lucene.LuceneUtils (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.data.lucene.LuceneUtils (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.lucene.LuceneUtils (Dependency-Chec function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.LuceneUtils (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.LuceneUtils (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/SearchFieldAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/SearchFieldAnalyzer.html index 961817b4b..482a16ee6 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/SearchFieldAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/SearchFieldAnalyzer.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.lucene.SearchFieldAnalyzer (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.data.lucene.SearchFieldAnalyzer (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.lucene.SearchFieldAnalyzer (Depende function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.SearchFieldAnalyzer (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.SearchFieldAnalyzer (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/SearchVersionAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/SearchVersionAnalyzer.html index a30f55b61..fd20037c4 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/SearchVersionAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/SearchVersionAnalyzer.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.lucene.SearchVersionAnalyzer (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.data.lucene.SearchVersionAnalyzer (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.lucene.SearchVersionAnalyzer (Depen function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.SearchVersionAnalyzer (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.SearchVersionAnalyzer (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/TokenPairConcatenatingFilter.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/TokenPairConcatenatingFilter.html index 408d78dd3..240ece4a6 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/TokenPairConcatenatingFilter.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/TokenPairConcatenatingFilter.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.lucene.TokenPairConcatenatingFilter (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.data.lucene.TokenPairConcatenatingFilter (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.lucene.TokenPairConcatenatingFilter function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.TokenPairConcatenatingFilter (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.TokenPairConcatenatingFilter (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/UrlTokenizingFilter.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/UrlTokenizingFilter.html index 4dbb7f5e5..f770fd392 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/UrlTokenizingFilter.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/UrlTokenizingFilter.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.lucene.UrlTokenizingFilter (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.data.lucene.UrlTokenizingFilter (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.lucene.UrlTokenizingFilter (Depende function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.UrlTokenizingFilter (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.UrlTokenizingFilter (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/VersionAnalyzer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/VersionAnalyzer.html index 172b63ef6..2a622dbc4 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/VersionAnalyzer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/VersionAnalyzer.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.lucene.VersionAnalyzer (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.data.lucene.VersionAnalyzer (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.lucene.VersionAnalyzer (Dependency- function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.VersionAnalyzer (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.VersionAnalyzer (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/VersionTokenizingFilter.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/VersionTokenizingFilter.html index abcc32ff1..c1dd33510 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/VersionTokenizingFilter.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/class-use/VersionTokenizingFilter.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.lucene.VersionTokenizingFilter (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.data.lucene.VersionTokenizingFilter (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.lucene.VersionTokenizingFilter (Dep function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.VersionTokenizingFilter (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.lucene.VersionTokenizingFilter (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-frame.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-frame.html index 35a196ad5..a21968c48 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-frame.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-frame.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.data.lucene (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.data.lucene (Dependency-Check Core 1.0.6 API) - + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-summary.html index 02737b3b6..2510d1b47 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-summary.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.data.lucene (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.data.lucene (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.data.lucene (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.data.lucene (Dependency-Check Core 1.0.5 API)"; + parent.document.title="org.owasp.dependencycheck.data.lucene (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-tree.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-tree.html index 5fa76e5ef..441f68899 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-tree.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-tree.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.data.lucene Class Hierarchy (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.data.lucene Class Hierarchy (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.data.lucene Class Hierarchy (Dependency-Check Core 1.0 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.data.lucene Class Hierarchy (Dependency-Check Core 1.0.5 API)"; + parent.document.title="org.owasp.dependencycheck.data.lucene Class Hierarchy (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-use.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-use.html index aef1d2db0..906d18aa5 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-use.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/lucene/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.owasp.dependencycheck.data.lucene (Dependency-Check Core 1.0.5 API) +Uses of Package org.owasp.dependencycheck.data.lucene (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Package org.owasp.dependencycheck.data.lucene (Dependency-Check Core 1.0 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.owasp.dependencycheck.data.lucene (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Package org.owasp.dependencycheck.data.lucene (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/CveDB.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/CveDB.html index 61bdd774d..60fd98b4f 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/CveDB.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/CveDB.html @@ -2,13 +2,13 @@ - + -CveDB (Dependency-Check Core 1.0.5 API) +CveDB (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ CveDB (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="CveDB (Dependency-Check Core 1.0.5 API)"; + parent.document.title="CveDB (Dependency-Check Core 1.0.6 API)"; } } @@ -77,9 +77,9 @@ function windowTitle() - SUMMARY: NESTED | FIELD | CONSTR | METHOD + SUMMARY: NESTED | FIELD | CONSTR | METHOD -DETAIL: FIELD | CONSTR | METHOD +DETAIL: FIELD | CONSTR | METHOD @@ -94,11 +94,12 @@ org.owasp.dependencycheck.data.nvdcve Class CveDB
     java.lang.Object
    -  extended by org.owasp.dependencycheck.data.nvdcve.CveDB
    +  extended by org.owasp.dependencycheck.data.BaseDB
    +      extended by org.owasp.dependencycheck.data.nvdcve.CveDB
     

    -
    public class CveDB
    extends Object
    +
    public class CveDB
    extends BaseDB

    @@ -121,149 +122,14 @@ The database holding information about the NVD CVE data. Field Summary - - -static String -CLEANUP_ORPHANS - -
    -          SQL Statement to cleanup orphan entries. + +  + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
    Fields inherited from class org.owasp.dependencycheck.data.BaseDB
    -static StringDB_SCHEMA_VERSION - -
    -          The version of the current DB Schema.
    -static StringDB_STRUCTURE_RESOURCE - -
    -          Resource location for SQL file used to create the database schema.
    -static StringDELETE_REFERENCE - -
    -          SQL Statement to delete references by vulnerability ID.
    -static StringDELETE_SOFTWARE - -
    -          SQL Statement to delete software by vulnerability ID.
    -static StringDELETE_VULNERABILITY - -
    -          SQL Statement to delete a vulnerability by CVE.
    -static StringINSERT_CPE - -
    -          SQL Statement to insert a new cpe.
    -static StringINSERT_REFERENCE - -
    -          SQL Statement to insert a new reference.
    -static StringINSERT_SOFTWARE - -
    -          SQL Statement to insert a new software.
    -static StringINSERT_VULNERABILITY - -
    -          SQL Statement to insert a new vulnerability.
    -static StringSELECT_CPE_ENTRIES - -
    -          SQL Statement to find the CPE entry based on the vendor and product.
    -static StringSELECT_CPE_ID - -
    -          SQL Statement to get a CPEProductID.
    -static StringSELECT_CVE_FROM_SOFTWARE - -
    -          SQL Statement to find CVE entries based on CPE data.
    -static StringSELECT_REFERENCE - -
    -          SQL Statement to select references by CVEID.
    -static StringSELECT_SOFTWARE - -
    -          SQL Statement to select software by CVEID.
    -static StringSELECT_VULNERABILITY - -
    -          SQL Statement to select a vulnerability by CVEID.
    -static StringSELECT_VULNERABILITY_ID - -
    -          SQL Statement to select a vulnerability's primary key.
    -static StringUPDATE_VULNERABILITY - -
    -          SQL Statement to update a vulnerability.
    DB_SCHEMA_VERSION, DB_STRUCTURE_RESOURCE
      @@ -302,38 +168,6 @@ The database holding information about the NVD CVE data. - void -close() - -
    -          Closes the DB4O database. - - - - void -commit() - -
    -          Commits all completed transactions. - - - -protected  void -createTables() - -
    -          Creates the database structure (tables and indexes) to store the CVE data - - - -protected  void -finalize() - -
    -          Cleans up the object and ensures that "close" has been called. - - -  Set<VulnerableSoftware> getCPEs(String vendor, String product) @@ -344,12 +178,11 @@ The database holding information about the NVD CVE data. -static File -getDataDirectory() + ResultSet +getVendorProductList()
    -          Retrieves the directory that the JAR file exists in so that we can ensure - we always use a common data directory. +          Returns the entire list of vendor/product combinations. @@ -362,20 +195,21 @@ The database holding information about the NVD CVE data.  void -open() - -
    -          Opens the database connection. - - - - void updateVulnerability(Vulnerability vuln)
              Updates the vulnerability within the database. +  + + + + + + + +
    Methods inherited from class org.owasp.dependencycheck.data.BaseDB
    close, closeResultSet, closeStatement, commit, finalize, getConnection, getDataDirectory, getGeneratedKey, open
      @@ -388,233 +222,6 @@ The database holding information about the NVD CVE data.  

    - - - -

    - - - -
    -Field Detail
    - -

    -DB_STRUCTURE_RESOURCE

    -
    -public static final String DB_STRUCTURE_RESOURCE
    -
    -
    Resource location for SQL file used to create the database schema. -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -DB_SCHEMA_VERSION

    -
    -public static final String DB_SCHEMA_VERSION
    -
    -
    The version of the current DB Schema. -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -DELETE_REFERENCE

    -
    -public static final String DELETE_REFERENCE
    -
    -
    SQL Statement to delete references by vulnerability ID. -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -DELETE_SOFTWARE

    -
    -public static final String DELETE_SOFTWARE
    -
    -
    SQL Statement to delete software by vulnerability ID. -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -DELETE_VULNERABILITY

    -
    -public static final String DELETE_VULNERABILITY
    -
    -
    SQL Statement to delete a vulnerability by CVE. -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -CLEANUP_ORPHANS

    -
    -public static final String CLEANUP_ORPHANS
    -
    -
    SQL Statement to cleanup orphan entries. Yes, the db schema could be a - little tighter, but what we have works well to keep the data file size - down a bit. -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -INSERT_REFERENCE

    -
    -public static final String INSERT_REFERENCE
    -
    -
    SQL Statement to insert a new reference. -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -INSERT_SOFTWARE

    -
    -public static final String INSERT_SOFTWARE
    -
    -
    SQL Statement to insert a new software. -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -INSERT_CPE

    -
    -public static final String INSERT_CPE
    -
    -
    SQL Statement to insert a new cpe. -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -SELECT_CPE_ID

    -
    -public static final String SELECT_CPE_ID
    -
    -
    SQL Statement to get a CPEProductID. -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -INSERT_VULNERABILITY

    -
    -public static final String INSERT_VULNERABILITY
    -
    -
    SQL Statement to insert a new vulnerability. -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -UPDATE_VULNERABILITY

    -
    -public static final String UPDATE_VULNERABILITY
    -
    -
    SQL Statement to update a vulnerability. -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -SELECT_CVE_FROM_SOFTWARE

    -
    -public static final String SELECT_CVE_FROM_SOFTWARE
    -
    -
    SQL Statement to find CVE entries based on CPE data. -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -SELECT_CPE_ENTRIES

    -
    -public static final String SELECT_CPE_ENTRIES
    -
    -
    SQL Statement to find the CPE entry based on the vendor and product. -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -SELECT_REFERENCE

    -
    -public static final String SELECT_REFERENCE
    -
    -
    SQL Statement to select references by CVEID. -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -SELECT_SOFTWARE

    -
    -public static final String SELECT_SOFTWARE
    -
    -
    SQL Statement to select software by CVEID. -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -SELECT_VULNERABILITY

    -
    -public static final String SELECT_VULNERABILITY
    -
    -
    SQL Statement to select a vulnerability by CVEID. -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    - -

    -SELECT_VULNERABILITY_ID

    -
    -public static final String SELECT_VULNERABILITY_ID
    -
    -
    SQL Statement to select a vulnerability's primary key. -

    -

    -
    See Also:
    Constant Field Values
    -
    - @@ -642,80 +249,6 @@ public CveDB() -

    -open

    -
    -public void open()
    -          throws IOException,
    -                 SQLException,
    -                 DatabaseException,
    -                 ClassNotFoundException
    -
    -
    Opens the database connection. If the database does not exist, it will - create a new one. -

    -

    - -
    Throws: -
    IOException - thrown if there is an IO Exception -
    SQLException - thrown if there is a SQL Exception -
    DatabaseException - thrown if there is an error initializing a new - database -
    ClassNotFoundException - thrown if the h2 database driver cannot be - loaded
    -
    -
    -
    - -

    -commit

    -
    -public void commit()
    -            throws SQLException
    -
    -
    Commits all completed transactions. -

    -

    - -
    Throws: -
    SQLException - thrown if a SQL Exception occurs
    -
    -
    -
    - -

    -finalize

    -
    -protected void finalize()
    -                 throws Throwable
    -
    -
    Cleans up the object and ensures that "close" has been called. -

    -

    -
    Overrides:
    finalize in class Object
    -
    -
    - -
    Throws: -
    Throwable - thrown if there is a problem
    -
    -
    -
    - -

    -close

    -
    -public void close()
    -
    -
    Closes the DB4O database. Close should be called on this object when it - is done being used. -

    -

    -
    -
    -
    -
    -

    getCPEs

    @@ -734,6 +267,20 @@ public 

    +getVendorProductList

    +
    +public ResultSet getVendorProductList()
    +
    +
    Returns the entire list of vendor/product combinations. +

    +

    + +
    Returns:
    the entire list of vendor/product combinations.
    +
    +
    +
    +

    getVulnerabilities

    @@ -768,24 +315,6 @@ public void updateVulnerability(

    -getDataDirectory

    -
    -public static File getDataDirectory()
    -                             throws IOException
    -
    -
    Retrieves the directory that the JAR file exists in so that we can ensure - we always use a common data directory. -

    -

    - -
    Returns:
    the data directory for this index. -
    Throws: -
    IOException - is thrown if an IOException occurs of course...
    -
    -
    -
    -

    cleanupDatabase

    @@ -799,24 +328,6 @@ public void cleanupDatabase()
    -
    - -

    -createTables

    -
    -protected void createTables()
    -                     throws SQLException,
    -                            DatabaseException
    -
    -
    Creates the database structure (tables and indexes) to store the CVE data -

    -

    - -
    Throws: -
    SQLException - thrown if there is a sql exception -
    DatabaseException - thrown if there is a database exception
    -
    -

    @@ -869,9 +380,9 @@ protected void createTables() - SUMMARY: NESTED | FIELD | CONSTR | METHOD + SUMMARY: NESTED | FIELD | CONSTR | METHOD
    -DETAIL: FIELD | CONSTR | METHOD +DETAIL: FIELD | CONSTR | METHOD diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/DatabaseException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/DatabaseException.html index 317c5ec32..a5f7a1999 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/DatabaseException.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/DatabaseException.html @@ -2,13 +2,13 @@ - + -DatabaseException (Dependency-Check Core 1.0.5 API) +DatabaseException (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ DatabaseException (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="DatabaseException (Dependency-Check Core 1.0.5 API)"; + parent.document.title="DatabaseException (Dependency-Check Core 1.0.6 API)"; } } @@ -134,8 +134,14 @@ An exception thrown if an operation against the database fails.           Creates an DatabaseException. -DatabaseException(String msg, - Exception ex) +DatabaseException(String msg, + Throwable ex) + +
    +          Creates an DatabaseException. + + +DatabaseException(Throwable ex)
              Creates an DatabaseException. @@ -194,11 +200,23 @@ public DatabaseException(

    +

    +DatabaseException

    +
    +public DatabaseException(Throwable ex)
    +
    +
    Creates an DatabaseException. +

    +

    +
    Parameters:
    ex - the cause of the exception
    +
    +
    + +

    DatabaseException

     public DatabaseException(String msg,
    -                         Exception ex)
    + Throwable ex)
    Creates an DatabaseException.

    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/InvalidDataException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/InvalidDataException.html index 96e07baa0..a49df987b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/InvalidDataException.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/InvalidDataException.html @@ -2,13 +2,13 @@ - + -InvalidDataException (Dependency-Check Core 1.0.5 API) +InvalidDataException (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ InvalidDataException (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="InvalidDataException (Dependency-Check Core 1.0.5 API)"; + parent.document.title="InvalidDataException (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCve12Handler.Element.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCve12Handler.Element.html index 2e4ce0df3..9379c214b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCve12Handler.Element.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCve12Handler.Element.html @@ -2,13 +2,13 @@ - + -NvdCve12Handler.Element (Dependency-Check Core 1.0.5 API) +NvdCve12Handler.Element (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ NvdCve12Handler.Element (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="NvdCve12Handler.Element (Dependency-Check Core 1.0.5 API)"; + parent.document.title="NvdCve12Handler.Element (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCve12Handler.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCve12Handler.html index 84e9a9455..4a14646da 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCve12Handler.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCve12Handler.html @@ -2,13 +2,13 @@ - + -NvdCve12Handler (Dependency-Check Core 1.0.5 API) +NvdCve12Handler (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ NvdCve12Handler (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="NvdCve12Handler (Dependency-Check Core 1.0.5 API)"; + parent.document.title="NvdCve12Handler (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCve20Handler.Element.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCve20Handler.Element.html index be96568e3..8d5eeeae7 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCve20Handler.Element.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCve20Handler.Element.html @@ -2,13 +2,13 @@ - + -NvdCve20Handler.Element (Dependency-Check Core 1.0.5 API) +NvdCve20Handler.Element (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ NvdCve20Handler.Element (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="NvdCve20Handler.Element (Dependency-Check Core 1.0.5 API)"; + parent.document.title="NvdCve20Handler.Element (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCve20Handler.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCve20Handler.html index 39bcc813f..fe1dc191b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCve20Handler.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/NvdCve20Handler.html @@ -2,13 +2,13 @@ - + -NvdCve20Handler (Dependency-Check Core 1.0.5 API) +NvdCve20Handler (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ NvdCve20Handler (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="NvdCve20Handler (Dependency-Check Core 1.0.5 API)"; + parent.document.title="NvdCve20Handler (Dependency-Check Core 1.0.6 API)"; } } @@ -199,14 +199,6 @@ A SAX Handler that will parse the NVD CVE XML (schema version 2.0).  void -setCpeIndex(CpeIndexWriter index) - -
    -          Sets the cpe index writer. - - - - void setCveDB(CveDB db)
    @@ -391,19 +383,6 @@ public void setPrevVersionVulnMap(

    -setCpeIndex

    -
    -public void setCpeIndex(CpeIndexWriter index)
    -
    -
    Sets the cpe index writer. -

    -

    -
    Parameters:
    index - the CPE Lucene Index
    -
    -

    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/CveDB.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/CveDB.html index f82d3ff88..16df6c657 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/CveDB.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/CveDB.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.nvdcve.CveDB (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.data.nvdcve.CveDB (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.nvdcve.CveDB (Dependency-Check Core function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.nvdcve.CveDB (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.nvdcve.CveDB (Dependency-Check Core 1.0.6 API)"; } } @@ -91,6 +91,15 @@ function windowTitle() Packages that use CveDB +org.owasp.dependencycheck.data.cpe + + + org.owasp.dependencycheck.data.cpe + + + Contains classes for working with the CPE Lucene Index.  + + org.owasp.dependencycheck.data.nvdcve @@ -110,6 +119,31 @@ Packages that use + + + + +
    +Uses of CveDB in org.owasp.dependencycheck.data.cpe
    +  +

    + + + + + + + + + +
    Methods in org.owasp.dependencycheck.data.cpe with parameters of type CveDB
    + voidCpeMemoryIndex.open(CveDB cve) + +
    +          Creates and loads data into an in memory index.
    +  +

    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/DatabaseException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/DatabaseException.html index 38f6017d7..0e15a6f32 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/DatabaseException.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/DatabaseException.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.nvdcve.DatabaseException (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.data.nvdcve.DatabaseException (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.nvdcve.DatabaseException (Dependenc function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.nvdcve.DatabaseException (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.nvdcve.DatabaseException (Dependency-Check Core 1.0.6 API)"; } } @@ -101,6 +101,15 @@ Packages that use + + + + +          Deprecated. Get the value of doBatchUpdate +          Deprecated. Set the value of doBatchUpdate @@ -173,7 +176,7 @@ Class responsible for updating the CPE and NVDCVE data stores. +          Deprecated. Determines if the index needs to be updated.
    org.owasp.dependencycheck.data + + org.owasp.dependencycheck.data + + + Contains classes used to work with the data sources. 
    org.owasp.dependencycheck.data.nvdcve @@ -153,6 +162,39 @@ Uses of + + + + +
    +Uses of DatabaseException in org.owasp.dependencycheck.data
    +  +

    + + + + + + + + + + + + + +
    Methods in org.owasp.dependencycheck.data that throw DatabaseException
    +protected  intBaseDB.getGeneratedKey(PreparedStatement statement) + +
    +          Returns the generated integer primary key for a newly inserted row.
    + voidBaseDB.open() + +
    +          Opens the database connection.
    +  +

    @@ -169,14 +211,6 @@ Uses of - - - - - - - - + + + + + + + + + + + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/package-tree.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/package-tree.html index 32224cfc6..5a555a433 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/package-tree.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/package-tree.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.data Class Hierarchy (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.data Class Hierarchy (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.data Class Hierarchy (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.data Class Hierarchy (Dependency-Check Core 1.0.5 API)"; + parent.document.title="org.owasp.dependencycheck.data Class Hierarchy (Dependency-Check Core 1.0.6 API)"; } } @@ -93,7 +93,7 @@ Class Hierarchy
    • java.lang.Object
        -
      • java.lang.Throwable (implements java.io.Serializable) +
      • org.owasp.dependencycheck.data.BaseDB
      • java.lang.Throwable (implements java.io.Serializable)
        • java.lang.Exception
          • java.io.IOException
              diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/package-use.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/package-use.html index 128b17dea..fcd1fe31d 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/package-use.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.owasp.dependencycheck.data (Dependency-Check Core 1.0.5 API) +Uses of Package org.owasp.dependencycheck.data (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Package org.owasp.dependencycheck.data (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.owasp.dependencycheck.data (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Package org.owasp.dependencycheck.data (Dependency-Check Core 1.0.6 API)"; } } @@ -100,6 +100,15 @@ Packages that use +
    + + + + +
    -protected  voidCveDB.createTables() - -
    -          Creates the database structure (tables and indexes) to store the CVE data
     List<Vulnerability> CveDB.getVulnerabilities(String cpeStr) @@ -186,14 +220,6 @@ Uses of  voidCveDB.open() - -
    -          Opens the database connection.
    - void CveDB.updateVulnerability(Vulnerability vuln)
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/InvalidDataException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/InvalidDataException.html index 05c119dd5..bae3b4197 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/InvalidDataException.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/InvalidDataException.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.nvdcve.InvalidDataException (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.data.nvdcve.InvalidDataException (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.nvdcve.InvalidDataException (Depend function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.nvdcve.InvalidDataException (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.nvdcve.InvalidDataException (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/NvdCve12Handler.Element.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/NvdCve12Handler.Element.html index e00fcc883..09c8fb2db 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/NvdCve12Handler.Element.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/NvdCve12Handler.Element.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler.Element (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler.Element (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler.Element (Dep function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler.Element (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler.Element (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/NvdCve12Handler.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/NvdCve12Handler.html index ad9e680c7..db66c00aa 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/NvdCve12Handler.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/NvdCve12Handler.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler (Dependency- function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/NvdCve20Handler.Element.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/NvdCve20Handler.Element.html index e22bec19c..6e5eaa596 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/NvdCve20Handler.Element.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/NvdCve20Handler.Element.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.Element (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.Element (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.Element (Dep function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.Element (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.Element (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/NvdCve20Handler.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/NvdCve20Handler.html index d99f8bc0d..197bf4216 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/NvdCve20Handler.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/class-use/NvdCve20Handler.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler (Dependency- function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-frame.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-frame.html index 80a19855a..3db14ca2e 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-frame.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-frame.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.data.nvdcve (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.data.nvdcve (Dependency-Check Core 1.0.6 API) - + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-summary.html index 2eb743e6c..d3018c578 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-summary.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.data.nvdcve (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.data.nvdcve (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.data.nvdcve (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.data.nvdcve (Dependency-Check Core 1.0.5 API)"; + parent.document.title="org.owasp.dependencycheck.data.nvdcve (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-tree.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-tree.html index 447d3b6ae..5d7aa202b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-tree.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-tree.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.data.nvdcve Class Hierarchy (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.data.nvdcve Class Hierarchy (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.data.nvdcve Class Hierarchy (Dependency-Check Core 1.0 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.data.nvdcve Class Hierarchy (Dependency-Check Core 1.0.5 API)"; + parent.document.title="org.owasp.dependencycheck.data.nvdcve Class Hierarchy (Dependency-Check Core 1.0.6 API)"; } } @@ -93,7 +93,9 @@ Class Hierarchy
    • java.lang.Object
        -
      • org.owasp.dependencycheck.data.nvdcve.CveDB
      • org.xml.sax.helpers.DefaultHandler (implements org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler) +
      • org.owasp.dependencycheck.data.BaseDB
          +
        • org.owasp.dependencycheck.data.nvdcve.CveDB
        +
      • org.xml.sax.helpers.DefaultHandler (implements org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler)
      • org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler.Element
      • org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.Element
      • java.lang.Throwable (implements java.io.Serializable) diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-use.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-use.html index 6c746eec2..9865c4587 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-use.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/nvdcve/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.owasp.dependencycheck.data.nvdcve (Dependency-Check Core 1.0.5 API) +Uses of Package org.owasp.dependencycheck.data.nvdcve (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Package org.owasp.dependencycheck.data.nvdcve (Dependency-Check Core 1.0 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.owasp.dependencycheck.data.nvdcve (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Package org.owasp.dependencycheck.data.nvdcve (Dependency-Check Core 1.0.6 API)"; } } @@ -101,6 +101,24 @@ Packages that use +
    org.owasp.dependencycheck.data + + org.owasp.dependencycheck.data + + + Contains classes used to work with the data sources. 
    org.owasp.dependencycheck.data.cpe + + org.owasp.dependencycheck.data.cpe + + + Contains classes for working with the CPE Lucene Index. 
    org.owasp.dependencycheck.data.nvdcve @@ -135,6 +153,36 @@ Classes in + + + + + + + +
    +Classes in org.owasp.dependencycheck.data.nvdcve used by org.owasp.dependencycheck.data
    DatabaseException + +
    +          An exception thrown if an operation against the database fails.
    +  +

    + + + + + + + + +
    +Classes in org.owasp.dependencycheck.data.nvdcve used by org.owasp.dependencycheck.data.cpe
    CveDB + +
    +          The database holding information about the NVD CVE data.
    +  +

    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/package-frame.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/package-frame.html index 7de07636d..fe0c2e190 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/package-frame.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/package-frame.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.data (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.data (Dependency-Check Core 1.0.6 API) - + @@ -35,6 +35,8 @@ Interfaces  Classes 
    +BaseDB +
    UpdateService
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/package-summary.html index b85ce6e2d..cf8bf6be6 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/package-summary.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.data (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.data (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.data (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.data (Dependency-Check Core 1.0.5 API)"; + parent.document.title="org.owasp.dependencycheck.data (Dependency-Check Core 1.0.6 API)"; } } @@ -115,6 +115,10 @@ Package org.owasp.dependencycheck.data Class Summary

    BaseDB 
    UpdateService  
    org.owasp.dependencycheck.data.nvdcve + + org.owasp.dependencycheck.data.nvdcve + + + Contains classes used to work with the NVD CVE data. 
    org.owasp.dependencycheck.data.update @@ -131,6 +140,21 @@ Classes in UpdateService +
    +           
    +  +

    + + + + + + + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/AbstractUpdateTask.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/AbstractUpdateTask.html index 78bfb8dc1..b7c800bb1 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/AbstractUpdateTask.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/AbstractUpdateTask.html @@ -2,13 +2,13 @@ - + -AbstractUpdateTask (Dependency-Check Core 1.0.5 API) +AbstractUpdateTask (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ AbstractUpdateTask (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="AbstractUpdateTask (Dependency-Check Core 1.0.5 API)"; + parent.document.title="AbstractUpdateTask (Dependency-Check Core 1.0.6 API)"; } } @@ -162,14 +162,6 @@ Class responsible for updating the CPE and NVDCVE data stores. - - - - + NEXT CLASS +          Deprecated. Constructs a new BatchUpdateTask.
    +Classes in org.owasp.dependencycheck.data used by org.owasp.dependencycheck.data.nvdcve
    BaseDB +
               
    -protected  CpeIndexWritergetCpeIndex() - -
    -          Returns the CpeIndex.
    protected  CveDB getCveDB() @@ -347,23 +339,6 @@ protected

    -getCpeIndex

    -
    -protected CpeIndexWriter getCpeIndex()
    -
    -
    Returns the CpeIndex. -

    -

    -
    -
    -
    - -
    Returns:
    the CpeIndex
    -
    -
    -
    -

    isUpdateNeeded

    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/BatchUpdateTask.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/BatchUpdateTask.html
    index 3aef52242..7c61ea13e 100644
    --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/BatchUpdateTask.html
    +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/BatchUpdateTask.html
    @@ -2,13 +2,13 @@
     
     
     
    -
    +
     
     
    -BatchUpdateTask (Dependency-Check Core 1.0.5 API)
    +BatchUpdateTask (Dependency-Check Core 1.0.6 API)
     
     
    -
    +
     
     
     
    @@ -16,7 +16,7 @@ BatchUpdateTask (Dependency-Check Core 1.0.5 API)
     function windowTitle()
     {
         if (location.href.indexOf('is-external=true') == -1) {
    -        parent.document.title="BatchUpdateTask (Dependency-Check Core 1.0.5 API)";
    +        parent.document.title="BatchUpdateTask (Dependency-Check Core 1.0.6 API)";
         }
     }
     
    @@ -57,7 +57,7 @@ function windowTitle()
     
    BatchUpdateTask(DataStoreMetaInfo properties)
    -          Constructs a new BatchUpdateTask.
      @@ -148,7 +151,7 @@ Class responsible for updating the CPE and NVDCVE data stores.

    isDoBatchUpdate()
    -          Get the value of doBatchUpdate
    @@ -156,7 +159,7 @@ Class responsible for updating the CPE and NVDCVE data stores. setDoBatchUpdate(boolean doBatchUpdate)
    -          Set the value of doBatchUpdate
    @@ -164,7 +167,7 @@ Class responsible for updating the CPE and NVDCVE data stores. update()
    -          Downloads the latest NVD CVE XML file from the web and imports it into +          Deprecated. Downloads the latest NVD CVE XML file from the web and imports it into the current CVE Database.
    updatesNeeded()
    -          Determines if the index needs to be updated.
      @@ -182,7 +185,7 @@ Class responsible for updating the CPE and NVDCVE data stores. Methods inherited from class org.owasp.dependencycheck.data.update.AbstractUpdateTask -closeDataStores, deleteExistingData, getCpeIndex, getCveDB, getProperties, getUpdateable, importXML, isUpdateNeeded, openDataStores, setDeleteAndRecreate, shouldDeleteAndRecreate, withinRange +closeDataStores, deleteExistingData, getCveDB, getProperties, getUpdateable, importXML, isUpdateNeeded, openDataStores, setDeleteAndRecreate, shouldDeleteAndRecreate, withinRange   @@ -215,7 +218,7 @@ public BatchUpdateTask(DownloadFailedException, UpdateException

    -
    Constructs a new BatchUpdateTask. +
    Deprecated. 
    Constructs a new BatchUpdateTask.

    Parameters:
    properties - information about the data store @@ -242,7 +245,7 @@ isDoBatchUpdate
     protected boolean isDoBatchUpdate()
    -
    Get the value of doBatchUpdate +
    Deprecated. 
    Get the value of doBatchUpdate

    @@ -256,7 +259,7 @@ setDoBatchUpdate
     protected void setDoBatchUpdate(boolean doBatchUpdate)
    -
    Set the value of doBatchUpdate +
    Deprecated. 
    Set the value of doBatchUpdate

    Parameters:
    doBatchUpdate - new value of doBatchUpdate
    @@ -270,7 +273,7 @@ update public void update() throws UpdateException
    -

    Downloads the latest NVD CVE XML file from the web and imports it into +

    Deprecated. 

    Downloads the latest NVD CVE XML file from the web and imports it into the current CVE Database.

    @@ -293,7 +296,7 @@ public DownloadFailedException, UpdateException
    -
    Determines if the index needs to be updated. This is done by fetching the +
    Deprecated. 
    Determines if the index needs to be updated. This is done by fetching the NVD CVE meta data and checking the last update date. If the data needs to be refreshed this method will return the NvdCveUrl for the files that need to be updated. @@ -345,7 +348,7 @@ public  PREV CLASS  - NEXT CLASSNEXT CLASS FRAMES    NO FRAMES   diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/DataStoreMetaInfo.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/DataStoreMetaInfo.html index 7353ecd03..e8a2fd5ed 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/DataStoreMetaInfo.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/DataStoreMetaInfo.html @@ -2,13 +2,13 @@ - + -DataStoreMetaInfo (Dependency-Check Core 1.0.5 API) +DataStoreMetaInfo (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ DataStoreMetaInfo (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="DataStoreMetaInfo (Dependency-Check Core 1.0.5 API)"; + parent.document.title="DataStoreMetaInfo (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/DatabaseUpdater.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/DatabaseUpdater.html index 7ff854a04..e61a57b4d 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/DatabaseUpdater.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/DatabaseUpdater.html @@ -2,13 +2,13 @@ - + -DatabaseUpdater (Dependency-Check Core 1.0.5 API) +DatabaseUpdater (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ DatabaseUpdater (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="DatabaseUpdater (Dependency-Check Core 1.0.5 API)"; + parent.document.title="DatabaseUpdater (Dependency-Check Core 1.0.6 API)"; } } @@ -56,7 +56,7 @@ function windowTitle() PREV CLASS  + PREV CLASS   NEXT CLASS FRAMES   @@ -267,7 +267,7 @@ protected void deleteExistingData() PREV CLASS  + PREV CLASS   NEXT CLASS FRAMES   diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/NvdCveInfo.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/NvdCveInfo.html index 775b3a0c2..b746b0fe3 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/NvdCveInfo.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/NvdCveInfo.html @@ -2,13 +2,13 @@ - + -NvdCveInfo (Dependency-Check Core 1.0.5 API) +NvdCveInfo (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ NvdCveInfo (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="NvdCveInfo (Dependency-Check Core 1.0.5 API)"; + parent.document.title="NvdCveInfo (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/StandardUpdateTask.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/StandardUpdateTask.html index 0049e5dca..87e8c553f 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/StandardUpdateTask.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/StandardUpdateTask.html @@ -2,13 +2,13 @@ - + -StandardUpdateTask (Dependency-Check Core 1.0.5 API) +StandardUpdateTask (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ StandardUpdateTask (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="StandardUpdateTask (Dependency-Check Core 1.0.5 API)"; + parent.document.title="StandardUpdateTask (Dependency-Check Core 1.0.6 API)"; } } @@ -77,9 +77,9 @@ function windowTitle() - SUMMARY: NESTED | FIELD | CONSTR | METHOD + SUMMARY: NESTED | FIELD | CONSTR | METHOD -DETAIL: FIELD | CONSTR | METHOD +DETAIL: FIELD | CONSTR | METHOD @@ -117,7 +117,24 @@ Class responsible for updating the CPE and NVDCVE data stores.

    + + + + + + + + + + +
    +Field Summary
    +static intMAX_THREAD_POOL_SIZE + +
    +          The max thread pool size to use when downloading files.
    @@ -166,7 +183,7 @@ Class responsible for updating the CPE and NVDCVE data stores. Methods inherited from class org.owasp.dependencycheck.data.update.AbstractUpdateTask -closeDataStores, deleteExistingData, getCpeIndex, getCveDB, getProperties, getUpdateable, importXML, isUpdateNeeded, openDataStores, setDeleteAndRecreate, shouldDeleteAndRecreate, withinRange +closeDataStores, deleteExistingData, getCveDB, getProperties, getUpdateable, importXML, isUpdateNeeded, openDataStores, setDeleteAndRecreate, shouldDeleteAndRecreate, withinRange   @@ -181,6 +198,27 @@ Class responsible for updating the CPE and NVDCVE data stores.  

    + + + + + + + +
    +Field Detail
    + +

    +MAX_THREAD_POOL_SIZE

    +
    +public static final int MAX_THREAD_POOL_SIZE
    +
    +
    The max thread pool size to use when downloading files. +

    +

    +
    +
    + @@ -322,9 +360,9 @@ protected - SUMMARY: NESTED | FIELD | CONSTR | METHOD + SUMMARY: NESTED | FIELD | CONSTR | METHOD
    -DETAIL: FIELD | CONSTR | METHOD +DETAIL: FIELD | CONSTR | METHOD diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/UpdateTask.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/UpdateTask.html index 96f33eba8..80434a78f 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/UpdateTask.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/UpdateTask.html @@ -2,13 +2,13 @@ - + -UpdateTask (Dependency-Check Core 1.0.5 API) +UpdateTask (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ UpdateTask (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="UpdateTask (Dependency-Check Core 1.0.5 API)"; + parent.document.title="UpdateTask (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/UpdateTaskFactory.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/UpdateTaskFactory.html index 4e2c469c3..c657a4130 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/UpdateTaskFactory.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/UpdateTaskFactory.html @@ -2,13 +2,13 @@ - + -UpdateTaskFactory (Dependency-Check Core 1.0.5 API) +UpdateTaskFactory (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ UpdateTaskFactory (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="UpdateTaskFactory (Dependency-Check Core 1.0.5 API)"; + parent.document.title="UpdateTaskFactory (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/Updateable.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/Updateable.html index ad574c213..be4b9f4f5 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/Updateable.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/Updateable.html @@ -2,13 +2,13 @@ - + -Updateable (Dependency-Check Core 1.0.5 API) +Updateable (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Updateable (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Updateable (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Updateable (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/AbstractUpdateTask.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/AbstractUpdateTask.html index f3172fff8..b8285bf42 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/AbstractUpdateTask.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/AbstractUpdateTask.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.update.AbstractUpdateTask (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.data.update.AbstractUpdateTask (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.update.AbstractUpdateTask (Dependen function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.update.AbstractUpdateTask (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.update.AbstractUpdateTask (Dependency-Check Core 1.0.6 API)"; } } @@ -121,7 +121,7 @@ Uses of BatchUpdateTask
    -          Class responsible for updating the CPE and NVDCVE data stores. +          Deprecated. batch update mode will no longer be supported. diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/BatchUpdateTask.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/BatchUpdateTask.html index df11e790d..1dddf010b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/BatchUpdateTask.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/BatchUpdateTask.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.update.BatchUpdateTask (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.data.update.BatchUpdateTask (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.update.BatchUpdateTask (Dependency- function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.update.BatchUpdateTask (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.update.BatchUpdateTask (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/DataStoreMetaInfo.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/DataStoreMetaInfo.html index 90779c06c..e8b4df443 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/DataStoreMetaInfo.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/DataStoreMetaInfo.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.update.DataStoreMetaInfo (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.data.update.DataStoreMetaInfo (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.update.DataStoreMetaInfo (Dependenc function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.update.DataStoreMetaInfo (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.update.DataStoreMetaInfo (Dependency-Check Core 1.0.6 API)"; } } @@ -141,7 +141,7 @@ Uses of BatchUpdateTask(DataStoreMetaInfo properties)
    -          Constructs a new BatchUpdateTask. +          Deprecated. Constructs a new BatchUpdateTask. StandardUpdateTask(DataStoreMetaInfo properties) diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/DatabaseUpdater.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/DatabaseUpdater.html index 74e7c34f5..8ae9b7088 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/DatabaseUpdater.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/DatabaseUpdater.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.update.DatabaseUpdater (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.data.update.DatabaseUpdater (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.update.DatabaseUpdater (Dependency- function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.update.DatabaseUpdater (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.update.DatabaseUpdater (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/NvdCveInfo.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/NvdCveInfo.html index 3c9da10b3..daa46ba94 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/NvdCveInfo.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/NvdCveInfo.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.update.NvdCveInfo (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.data.update.NvdCveInfo (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.update.NvdCveInfo (Dependency-Check function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.update.NvdCveInfo (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.update.NvdCveInfo (Dependency-Check Core 1.0.6 API)"; } } @@ -118,6 +118,14 @@ Uses of  NvdCveInfo +CallableDownloadTask.getNvdCveInfo() + +
    +          Get the value of nvdCveInfo. + + + + NvdCveInfo Updateable.next()
    @@ -164,6 +172,30 @@ Uses of + + void +CallableDownloadTask.setNvdCveInfo(NvdCveInfo nvdCveInfo) + +
    +          Set the value of nvdCveInfo. + + +  +

    + + + + + + + +
    Constructors in org.owasp.dependencycheck.data.update with parameters of type NvdCveInfo
    CallableDownloadTask(NvdCveInfo nvdCveInfo, + File first, + File second) + +
    +          Simple constructor for the callable download task.
     

    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/StandardUpdateTask.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/StandardUpdateTask.html index 3f5dd9f01..7a758bf9b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/StandardUpdateTask.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/StandardUpdateTask.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.update.StandardUpdateTask (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.data.update.StandardUpdateTask (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.update.StandardUpdateTask (Dependen function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.update.StandardUpdateTask (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.update.StandardUpdateTask (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/UpdateTask.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/UpdateTask.html index d6d567192..b07ad5f4f 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/UpdateTask.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/UpdateTask.html @@ -2,13 +2,13 @@ - + -Uses of Interface org.owasp.dependencycheck.data.update.UpdateTask (Dependency-Check Core 1.0.5 API) +Uses of Interface org.owasp.dependencycheck.data.update.UpdateTask (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Interface org.owasp.dependencycheck.data.update.UpdateTask (Dependency-C function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Interface org.owasp.dependencycheck.data.update.UpdateTask (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Interface org.owasp.dependencycheck.data.update.UpdateTask (Dependency-Check Core 1.0.6 API)"; } } @@ -129,7 +129,7 @@ Uses of BatchUpdateTask
    -          Class responsible for updating the CPE and NVDCVE data stores. +          Deprecated. batch update mode will no longer be supported. diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/UpdateTaskFactory.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/UpdateTaskFactory.html index 205fb23f1..69cdf7dbc 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/UpdateTaskFactory.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/UpdateTaskFactory.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.update.UpdateTaskFactory (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.data.update.UpdateTaskFactory (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.update.UpdateTaskFactory (Dependenc function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.update.UpdateTaskFactory (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.update.UpdateTaskFactory (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/Updateable.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/Updateable.html index 982031e97..863ee1703 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/Updateable.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/class-use/Updateable.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.data.update.Updateable (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.data.update.Updateable (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.data.update.Updateable (Dependency-Check function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.data.update.Updateable (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.data.update.Updateable (Dependency-Check Core 1.0.6 API)"; } } @@ -137,7 +137,7 @@ Uses of updatesNeeded()
    -          Determines if the index needs to be updated. +          Deprecated. Determines if the index needs to be updated. diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/package-frame.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/package-frame.html index eaf94c388..60d15331b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/package-frame.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/package-frame.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.data.update (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.data.update (Dependency-Check Core 1.0.6 API) - + @@ -39,6 +39,8 @@ Classes 
    BatchUpdateTask
    +CallableDownloadTask +
    DatabaseUpdater
    DataStoreMetaInfo diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/package-summary.html index fefe7ad52..e7297fa68 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/package-summary.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.data.update (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.data.update (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.data.update (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.data.update (Dependency-Check Core 1.0.5 API)"; + parent.document.title="org.owasp.dependencycheck.data.update (Dependency-Check Core 1.0.6 API)"; } } @@ -119,7 +119,11 @@ Package org.owasp.dependencycheck.data.update BatchUpdateTask -Class responsible for updating the CPE and NVDCVE data stores. +Deprecated. batch update mode will no longer be supported. + + +CallableDownloadTask +A callable object to download two files. DatabaseUpdater diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/package-tree.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/package-tree.html index e5b75bf45..301d8bd70 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/package-tree.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/package-tree.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.data.update Class Hierarchy (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.data.update Class Hierarchy (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.data.update Class Hierarchy (Dependency-Check Core 1.0 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.data.update Class Hierarchy (Dependency-Check Core 1.0.5 API)"; + parent.document.title="org.owasp.dependencycheck.data.update Class Hierarchy (Dependency-Check Core 1.0.6 API)"; } } @@ -96,6 +96,7 @@ Class Hierarchy

  • org.owasp.dependencycheck.data.update.AbstractUpdateTask (implements org.owasp.dependencycheck.data.update.UpdateTask) +
  • org.owasp.dependencycheck.data.update.CallableDownloadTask (implements java.util.concurrent.Callable<V>)
  • org.owasp.dependencycheck.data.update.DatabaseUpdater (implements org.owasp.dependencycheck.data.CachedWebDataSource)
  • org.owasp.dependencycheck.data.update.DataStoreMetaInfo
  • org.owasp.dependencycheck.data.update.NvdCveInfo
  • org.owasp.dependencycheck.data.update.Updateable (implements java.lang.Iterable<T>, java.util.Iterator<E>)
  • org.owasp.dependencycheck.data.update.UpdateTaskFactory diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/package-use.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/package-use.html index c21490c92..5006dd81d 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/package-use.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/data/update/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.owasp.dependencycheck.data.update (Dependency-Check Core 1.0.5 API) +Uses of Package org.owasp.dependencycheck.data.update (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Package org.owasp.dependencycheck.data.update (Dependency-Check Core 1.0 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.owasp.dependencycheck.data.update (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Package org.owasp.dependencycheck.data.update (Dependency-Check Core 1.0.6 API)"; } } @@ -114,6 +114,12 @@ Classes in +CallableDownloadTask + +
    +          A callable object to download two files. + + DataStoreMetaInfo
    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Dependency.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Dependency.html index 6a7a8b721..62ad5c74d 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Dependency.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Dependency.html @@ -2,13 +2,13 @@ - + -Dependency (Dependency-Check Core 1.0.5 API) +Dependency (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Dependency (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Dependency (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Dependency (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Evidence.Confidence.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Evidence.Confidence.html index 55ddb1ee0..e4cea42cc 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Evidence.Confidence.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Evidence.Confidence.html @@ -2,13 +2,13 @@ - + -Evidence.Confidence (Dependency-Check Core 1.0.5 API) +Evidence.Confidence (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Evidence.Confidence (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Evidence.Confidence (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Evidence.Confidence (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Evidence.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Evidence.html index 1868a1ac4..1bd932965 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Evidence.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Evidence.html @@ -2,13 +2,13 @@ - + -Evidence (Dependency-Check Core 1.0.5 API) +Evidence (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Evidence (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Evidence (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Evidence (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/EvidenceCollection.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/EvidenceCollection.html index 6aa286c75..c74098dbc 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/EvidenceCollection.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/EvidenceCollection.html @@ -2,13 +2,13 @@ - + -EvidenceCollection (Dependency-Check Core 1.0.5 API) +EvidenceCollection (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ EvidenceCollection (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="EvidenceCollection (Dependency-Check Core 1.0.5 API)"; + parent.document.title="EvidenceCollection (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Identifier.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Identifier.html index a5005f8d0..50ce50596 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Identifier.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Identifier.html @@ -2,13 +2,13 @@ - + -Identifier (Dependency-Check Core 1.0.5 API) +Identifier (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Identifier (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Identifier (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Identifier (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Reference.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Reference.html index 2baaff87c..18dee4173 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Reference.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Reference.html @@ -2,13 +2,13 @@ - + -Reference (Dependency-Check Core 1.0.5 API) +Reference (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Reference (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Reference (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Reference (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Vulnerability.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Vulnerability.html index d0de2c20a..45e37a710 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Vulnerability.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/Vulnerability.html @@ -2,13 +2,13 @@ - + -Vulnerability (Dependency-Check Core 1.0.5 API) +Vulnerability (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Vulnerability (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Vulnerability (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Vulnerability (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/VulnerabilityComparator.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/VulnerabilityComparator.html index d70abf6cc..acd0bae7a 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/VulnerabilityComparator.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/VulnerabilityComparator.html @@ -2,13 +2,13 @@ - + -VulnerabilityComparator (Dependency-Check Core 1.0.5 API) +VulnerabilityComparator (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ VulnerabilityComparator (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="VulnerabilityComparator (Dependency-Check Core 1.0.5 API)"; + parent.document.title="VulnerabilityComparator (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/VulnerableSoftware.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/VulnerableSoftware.html index edf153e09..a38033d12 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/VulnerableSoftware.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/VulnerableSoftware.html @@ -2,13 +2,13 @@ - + -VulnerableSoftware (Dependency-Check Core 1.0.5 API) +VulnerableSoftware (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ VulnerableSoftware (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="VulnerableSoftware (Dependency-Check Core 1.0.5 API)"; + parent.document.title="VulnerableSoftware (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Dependency.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Dependency.html index c7e41eaf7..b4f497d6b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Dependency.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Dependency.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.dependency.Dependency (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.dependency.Dependency (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.dependency.Dependency (Dependency-Check function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.Dependency (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.Dependency (Dependency-Check Core 1.0.6 API)"; } } @@ -127,6 +127,15 @@ Packages that use +org.owasp.dependencycheck.suppression + + + org.owasp.dependencycheck.suppression + + + Contains classes used to suppress findings.  +  

    @@ -172,6 +181,15 @@ Uses of  void +VulnerabilitySuppressionAnalyzer.analyze(Dependency dependency, + Engine engine) + +
    +            + + + + void NvdCveAnalyzer.analyze(Dependency dependency, Engine engine) @@ -240,6 +258,15 @@ Uses of  void +CpeSuppressionAnalyzer.analyze(Dependency dependency, + Engine engine) + +
    +            + + + + void CPEAnalyzer.analyze(Dependency dependency, Engine engine) @@ -396,6 +423,32 @@ Uses of + + + + +
    +Uses of Dependency in org.owasp.dependencycheck.suppression
    +  +

    + + + + + + + + + +
    Methods in org.owasp.dependencycheck.suppression with parameters of type Dependency
    + voidSuppressionRule.process(Dependency dependency) + +
    +          Processes a given dependency to determine if any CPE, CVE, CWE, or CVSS + scores should be suppressed.
    +  +


    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Evidence.Confidence.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Evidence.Confidence.html index f2d35952c..774c0d7ac 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Evidence.Confidence.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Evidence.Confidence.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.dependency.Evidence.Confidence (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.dependency.Evidence.Confidence (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.dependency.Evidence.Confidence (Dependen function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.Evidence.Confidence (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.Evidence.Confidence (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Evidence.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Evidence.html index a63c501fe..1fb8701bd 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Evidence.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Evidence.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.dependency.Evidence (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.dependency.Evidence (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.dependency.Evidence (Dependency-Check Co function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.Evidence (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.Evidence (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/EvidenceCollection.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/EvidenceCollection.html index cf193ae91..bef655694 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/EvidenceCollection.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/EvidenceCollection.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.dependency.EvidenceCollection (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.dependency.EvidenceCollection (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.dependency.EvidenceCollection (Dependenc function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.EvidenceCollection (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.EvidenceCollection (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Identifier.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Identifier.html index d2b4883e7..cad7591b7 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Identifier.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Identifier.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.dependency.Identifier (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.dependency.Identifier (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.dependency.Identifier (Dependency-Check function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.Identifier (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.Identifier (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Reference.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Reference.html index ad4f1cf99..bcbe31e5c 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Reference.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Reference.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.dependency.Reference (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.dependency.Reference (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.dependency.Reference (Dependency-Check C function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.Reference (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.Reference (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Vulnerability.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Vulnerability.html index 28fd807e8..6f8127a56 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Vulnerability.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/Vulnerability.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.dependency.Vulnerability (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.dependency.Vulnerability (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.dependency.Vulnerability (Dependency-Che function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.Vulnerability (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.Vulnerability (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/VulnerabilityComparator.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/VulnerabilityComparator.html index bd3f932cb..d2124a9fc 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/VulnerabilityComparator.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/VulnerabilityComparator.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.dependency.VulnerabilityComparator (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.dependency.VulnerabilityComparator (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.dependency.VulnerabilityComparator (Depe function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.VulnerabilityComparator (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.VulnerabilityComparator (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/VulnerableSoftware.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/VulnerableSoftware.html index edd747b6d..b49fdea30 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/VulnerableSoftware.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/class-use/VulnerableSoftware.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.dependency.VulnerableSoftware (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.dependency.VulnerableSoftware (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.dependency.VulnerableSoftware (Dependenc function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.VulnerableSoftware (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.dependency.VulnerableSoftware (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-frame.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-frame.html index 6b205e252..a1b815baa 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-frame.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-frame.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.dependency (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.dependency (Dependency-Check Core 1.0.6 API) - + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-summary.html index c2637ebe7..80eeb5491 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-summary.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.dependency (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.dependency (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.dependency (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.dependency (Dependency-Check Core 1.0.5 API)"; + parent.document.title="org.owasp.dependencycheck.dependency (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-tree.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-tree.html index 9d88cb25e..4ab0d3cf8 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-tree.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-tree.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.dependency Class Hierarchy (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.dependency Class Hierarchy (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.dependency Class Hierarchy (Dependency-Check Core 1.0. function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.dependency Class Hierarchy (Dependency-Check Core 1.0.5 API)"; + parent.document.title="org.owasp.dependencycheck.dependency Class Hierarchy (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-use.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-use.html index 4a076f3ed..90c9742c7 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-use.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/dependency/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.owasp.dependencycheck.dependency (Dependency-Check Core 1.0.5 API) +Uses of Package org.owasp.dependencycheck.dependency (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Package org.owasp.dependencycheck.dependency (Dependency-Check Core 1.0. function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.owasp.dependencycheck.dependency (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Package org.owasp.dependencycheck.dependency (Dependency-Check Core 1.0.6 API)"; } } @@ -136,6 +136,15 @@ Packages that use +org.owasp.dependencycheck.suppression + + + org.owasp.dependencycheck.suppression + + + Contains classes used to suppress findings.  +  

    @@ -256,6 +265,21 @@ Classes in Dependency +
    +          A program dependency. + + +  +

    + + + + + + + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/MavenNamespaceFilter.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/MavenNamespaceFilter.html index 01dea333c..e45cafe71 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/MavenNamespaceFilter.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/MavenNamespaceFilter.html @@ -2,13 +2,13 @@ - + -MavenNamespaceFilter (Dependency-Check Core 1.0.5 API) +MavenNamespaceFilter (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ MavenNamespaceFilter (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="MavenNamespaceFilter (Dependency-Check Core 1.0.5 API)"; + parent.document.title="MavenNamespaceFilter (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/class-use/MavenNamespaceFilter.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/class-use/MavenNamespaceFilter.html index a56f04136..42d2a6824 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/class-use/MavenNamespaceFilter.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/class-use/MavenNamespaceFilter.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.MavenNamespaceFilter (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.MavenNamespaceFilter (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.MavenNamespaceFilter (Dependenc function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.MavenNamespaceFilter (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.MavenNamespaceFilter (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Activation.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Activation.html index 8fbaa32eb..adbd0f1fe 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Activation.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Activation.html @@ -2,13 +2,13 @@ - + -Activation (Dependency-Check Core 1.0.5 API) +Activation (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Activation (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Activation (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Activation (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ActivationFile.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ActivationFile.html index 1e804795b..761eccf27 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ActivationFile.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ActivationFile.html @@ -2,13 +2,13 @@ - + -ActivationFile (Dependency-Check Core 1.0.5 API) +ActivationFile (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ ActivationFile (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="ActivationFile (Dependency-Check Core 1.0.5 API)"; + parent.document.title="ActivationFile (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ActivationOS.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ActivationOS.html index ea1ec567f..86407ae5b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ActivationOS.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ActivationOS.html @@ -2,13 +2,13 @@ - + -ActivationOS (Dependency-Check Core 1.0.5 API) +ActivationOS (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ ActivationOS (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="ActivationOS (Dependency-Check Core 1.0.5 API)"; + parent.document.title="ActivationOS (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ActivationProperty.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ActivationProperty.html index a7d7a6f02..1d123db31 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ActivationProperty.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ActivationProperty.html @@ -2,13 +2,13 @@ - + -ActivationProperty (Dependency-Check Core 1.0.5 API) +ActivationProperty (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ ActivationProperty (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="ActivationProperty (Dependency-Check Core 1.0.5 API)"; + parent.document.title="ActivationProperty (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.Extensions.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.Extensions.html index 3c5fd8ffc..c37e183d4 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.Extensions.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.Extensions.html @@ -2,13 +2,13 @@ - + -Build.Extensions (Dependency-Check Core 1.0.5 API) +Build.Extensions (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Build.Extensions (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Build.Extensions (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Build.Extensions (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.Filters.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.Filters.html index 6c478330f..eead2250b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.Filters.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.Filters.html @@ -2,13 +2,13 @@ - + -Build.Filters (Dependency-Check Core 1.0.5 API) +Build.Filters (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Build.Filters (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Build.Filters (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Build.Filters (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.Plugins.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.Plugins.html index 100950dc7..7140736b7 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.Plugins.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.Plugins.html @@ -2,13 +2,13 @@ - + -Build.Plugins (Dependency-Check Core 1.0.5 API) +Build.Plugins (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Build.Plugins (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Build.Plugins (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Build.Plugins (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.Resources.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.Resources.html index 5ec55f389..15ff27d9b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.Resources.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.Resources.html @@ -2,13 +2,13 @@ - + -Build.Resources (Dependency-Check Core 1.0.5 API) +Build.Resources (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Build.Resources (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Build.Resources (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Build.Resources (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.TestResources.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.TestResources.html index e6098bf1f..26b07fc66 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.TestResources.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.TestResources.html @@ -2,13 +2,13 @@ - + -Build.TestResources (Dependency-Check Core 1.0.5 API) +Build.TestResources (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Build.TestResources (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Build.TestResources (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Build.TestResources (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.html index e7fe6b4d6..a6c6499ac 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Build.html @@ -2,13 +2,13 @@ - + -Build (Dependency-Check Core 1.0.5 API) +Build (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Build (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Build (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Build (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.Filters.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.Filters.html index 29a991c0e..f28f092b8 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.Filters.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.Filters.html @@ -2,13 +2,13 @@ - + -BuildBase.Filters (Dependency-Check Core 1.0.5 API) +BuildBase.Filters (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ BuildBase.Filters (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="BuildBase.Filters (Dependency-Check Core 1.0.5 API)"; + parent.document.title="BuildBase.Filters (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.Plugins.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.Plugins.html index 49ddfd757..698d33ce0 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.Plugins.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.Plugins.html @@ -2,13 +2,13 @@ - + -BuildBase.Plugins (Dependency-Check Core 1.0.5 API) +BuildBase.Plugins (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ BuildBase.Plugins (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="BuildBase.Plugins (Dependency-Check Core 1.0.5 API)"; + parent.document.title="BuildBase.Plugins (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.Resources.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.Resources.html index dbde6184d..0754c0e63 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.Resources.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.Resources.html @@ -2,13 +2,13 @@ - + -BuildBase.Resources (Dependency-Check Core 1.0.5 API) +BuildBase.Resources (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ BuildBase.Resources (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="BuildBase.Resources (Dependency-Check Core 1.0.5 API)"; + parent.document.title="BuildBase.Resources (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.TestResources.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.TestResources.html index 8c35b31e6..239a42ba6 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.TestResources.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.TestResources.html @@ -2,13 +2,13 @@ - + -BuildBase.TestResources (Dependency-Check Core 1.0.5 API) +BuildBase.TestResources (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ BuildBase.TestResources (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="BuildBase.TestResources (Dependency-Check Core 1.0.5 API)"; + parent.document.title="BuildBase.TestResources (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.html index b9832af2b..83762fa9e 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/BuildBase.html @@ -2,13 +2,13 @@ - + -BuildBase (Dependency-Check Core 1.0.5 API) +BuildBase (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ BuildBase (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="BuildBase (Dependency-Check Core 1.0.5 API)"; + parent.document.title="BuildBase (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/CiManagement.Notifiers.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/CiManagement.Notifiers.html index 1f5192443..ce52dba0c 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/CiManagement.Notifiers.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/CiManagement.Notifiers.html @@ -2,13 +2,13 @@ - + -CiManagement.Notifiers (Dependency-Check Core 1.0.5 API) +CiManagement.Notifiers (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ CiManagement.Notifiers (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="CiManagement.Notifiers (Dependency-Check Core 1.0.5 API)"; + parent.document.title="CiManagement.Notifiers (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/CiManagement.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/CiManagement.html index 54b68f216..3c051777d 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/CiManagement.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/CiManagement.html @@ -2,13 +2,13 @@ - + -CiManagement (Dependency-Check Core 1.0.5 API) +CiManagement (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ CiManagement (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="CiManagement (Dependency-Check Core 1.0.5 API)"; + parent.document.title="CiManagement (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Contributor.Properties.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Contributor.Properties.html index dc365a0f8..649072e43 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Contributor.Properties.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Contributor.Properties.html @@ -2,13 +2,13 @@ - + -Contributor.Properties (Dependency-Check Core 1.0.5 API) +Contributor.Properties (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Contributor.Properties (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Contributor.Properties (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Contributor.Properties (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Contributor.Roles.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Contributor.Roles.html index 022389ab1..33371b7a8 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Contributor.Roles.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Contributor.Roles.html @@ -2,13 +2,13 @@ - + -Contributor.Roles (Dependency-Check Core 1.0.5 API) +Contributor.Roles (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Contributor.Roles (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Contributor.Roles (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Contributor.Roles (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Contributor.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Contributor.html index 19b9b71d2..d88ce51e4 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Contributor.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Contributor.html @@ -2,13 +2,13 @@ - + -Contributor (Dependency-Check Core 1.0.5 API) +Contributor (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Contributor (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Contributor (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Contributor (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Dependency.Exclusions.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Dependency.Exclusions.html index e427ed301..336db1536 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Dependency.Exclusions.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Dependency.Exclusions.html @@ -2,13 +2,13 @@ - + -Dependency.Exclusions (Dependency-Check Core 1.0.5 API) +Dependency.Exclusions (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Dependency.Exclusions (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Dependency.Exclusions (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Dependency.Exclusions (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Dependency.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Dependency.html index 9875e3ac8..1639693b0 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Dependency.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Dependency.html @@ -2,13 +2,13 @@ - + -Dependency (Dependency-Check Core 1.0.5 API) +Dependency (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Dependency (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Dependency (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Dependency (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/DependencyManagement.Dependencies.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/DependencyManagement.Dependencies.html index c32af643d..06a65fe01 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/DependencyManagement.Dependencies.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/DependencyManagement.Dependencies.html @@ -2,13 +2,13 @@ - + -DependencyManagement.Dependencies (Dependency-Check Core 1.0.5 API) +DependencyManagement.Dependencies (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ DependencyManagement.Dependencies (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="DependencyManagement.Dependencies (Dependency-Check Core 1.0.5 API)"; + parent.document.title="DependencyManagement.Dependencies (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/DependencyManagement.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/DependencyManagement.html index 610394526..4dfb656bd 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/DependencyManagement.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/DependencyManagement.html @@ -2,13 +2,13 @@ - + -DependencyManagement (Dependency-Check Core 1.0.5 API) +DependencyManagement (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ DependencyManagement (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="DependencyManagement (Dependency-Check Core 1.0.5 API)"; + parent.document.title="DependencyManagement (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/DeploymentRepository.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/DeploymentRepository.html index b44974d57..ec25cf896 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/DeploymentRepository.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/DeploymentRepository.html @@ -2,13 +2,13 @@ - + -DeploymentRepository (Dependency-Check Core 1.0.5 API) +DeploymentRepository (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ DeploymentRepository (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="DeploymentRepository (Dependency-Check Core 1.0.5 API)"; + parent.document.title="DeploymentRepository (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Developer.Properties.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Developer.Properties.html index f95a5ee8a..54f62c592 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Developer.Properties.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Developer.Properties.html @@ -2,13 +2,13 @@ - + -Developer.Properties (Dependency-Check Core 1.0.5 API) +Developer.Properties (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Developer.Properties (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Developer.Properties (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Developer.Properties (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Developer.Roles.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Developer.Roles.html index ddfcbfe35..d17d9ead4 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Developer.Roles.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Developer.Roles.html @@ -2,13 +2,13 @@ - + -Developer.Roles (Dependency-Check Core 1.0.5 API) +Developer.Roles (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Developer.Roles (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Developer.Roles (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Developer.Roles (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Developer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Developer.html index 5973a200e..51fd8603d 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Developer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Developer.html @@ -2,13 +2,13 @@ - + -Developer (Dependency-Check Core 1.0.5 API) +Developer (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Developer (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Developer (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Developer (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/DistributionManagement.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/DistributionManagement.html index 9bcc9938a..460df26ef 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/DistributionManagement.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/DistributionManagement.html @@ -2,13 +2,13 @@ - + -DistributionManagement (Dependency-Check Core 1.0.5 API) +DistributionManagement (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ DistributionManagement (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="DistributionManagement (Dependency-Check Core 1.0.5 API)"; + parent.document.title="DistributionManagement (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Exclusion.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Exclusion.html index 64a8a17e7..aafa95de2 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Exclusion.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Exclusion.html @@ -2,13 +2,13 @@ - + -Exclusion (Dependency-Check Core 1.0.5 API) +Exclusion (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Exclusion (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Exclusion (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Exclusion (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Extension.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Extension.html index bce3d4816..bf2c4f48b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Extension.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Extension.html @@ -2,13 +2,13 @@ - + -Extension (Dependency-Check Core 1.0.5 API) +Extension (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Extension (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Extension (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Extension (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/IssueManagement.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/IssueManagement.html index c60a57b13..e35877a9b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/IssueManagement.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/IssueManagement.html @@ -2,13 +2,13 @@ - + -IssueManagement (Dependency-Check Core 1.0.5 API) +IssueManagement (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ IssueManagement (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="IssueManagement (Dependency-Check Core 1.0.5 API)"; + parent.document.title="IssueManagement (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/License.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/License.html index b9ddd2abf..a6da2a1ca 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/License.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/License.html @@ -2,13 +2,13 @@ - + -License (Dependency-Check Core 1.0.5 API) +License (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ License (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="License (Dependency-Check Core 1.0.5 API)"; + parent.document.title="License (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/MailingList.OtherArchives.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/MailingList.OtherArchives.html index fe0ce5c3a..183b54113 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/MailingList.OtherArchives.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/MailingList.OtherArchives.html @@ -2,13 +2,13 @@ - + -MailingList.OtherArchives (Dependency-Check Core 1.0.5 API) +MailingList.OtherArchives (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ MailingList.OtherArchives (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="MailingList.OtherArchives (Dependency-Check Core 1.0.5 API)"; + parent.document.title="MailingList.OtherArchives (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/MailingList.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/MailingList.html index 95a94b8ca..a0f9a33ea 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/MailingList.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/MailingList.html @@ -2,13 +2,13 @@ - + -MailingList (Dependency-Check Core 1.0.5 API) +MailingList (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ MailingList (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="MailingList (Dependency-Check Core 1.0.5 API)"; + parent.document.title="MailingList (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Contributors.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Contributors.html index d5807663f..5cd2f6a00 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Contributors.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Contributors.html @@ -2,13 +2,13 @@ - + -Model.Contributors (Dependency-Check Core 1.0.5 API) +Model.Contributors (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Model.Contributors (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Model.Contributors (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Model.Contributors (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Dependencies.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Dependencies.html index 5f1b38b84..a85f3f513 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Dependencies.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Dependencies.html @@ -2,13 +2,13 @@ - + -Model.Dependencies (Dependency-Check Core 1.0.5 API) +Model.Dependencies (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Model.Dependencies (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Model.Dependencies (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Model.Dependencies (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Developers.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Developers.html index dc42b3c73..cd93cdf23 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Developers.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Developers.html @@ -2,13 +2,13 @@ - + -Model.Developers (Dependency-Check Core 1.0.5 API) +Model.Developers (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Model.Developers (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Model.Developers (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Model.Developers (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Licenses.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Licenses.html index 9627db899..e8e3dc6ca 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Licenses.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Licenses.html @@ -2,13 +2,13 @@ - + -Model.Licenses (Dependency-Check Core 1.0.5 API) +Model.Licenses (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Model.Licenses (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Model.Licenses (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Model.Licenses (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.MailingLists.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.MailingLists.html index 0fb03d8c1..b26f20494 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.MailingLists.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.MailingLists.html @@ -2,13 +2,13 @@ - + -Model.MailingLists (Dependency-Check Core 1.0.5 API) +Model.MailingLists (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Model.MailingLists (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Model.MailingLists (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Model.MailingLists (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Modules.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Modules.html index 5b54b4f25..fd798f1bc 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Modules.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Modules.html @@ -2,13 +2,13 @@ - + -Model.Modules (Dependency-Check Core 1.0.5 API) +Model.Modules (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Model.Modules (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Model.Modules (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Model.Modules (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.PluginRepositories.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.PluginRepositories.html index 382137698..8bd937870 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.PluginRepositories.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.PluginRepositories.html @@ -2,13 +2,13 @@ - + -Model.PluginRepositories (Dependency-Check Core 1.0.5 API) +Model.PluginRepositories (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Model.PluginRepositories (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Model.PluginRepositories (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Model.PluginRepositories (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Profiles.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Profiles.html index fd6616b95..9b659fd03 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Profiles.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Profiles.html @@ -2,13 +2,13 @@ - + -Model.Profiles (Dependency-Check Core 1.0.5 API) +Model.Profiles (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Model.Profiles (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Model.Profiles (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Model.Profiles (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Properties.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Properties.html index c0ac7b171..6b43c44b2 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Properties.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Properties.html @@ -2,13 +2,13 @@ - + -Model.Properties (Dependency-Check Core 1.0.5 API) +Model.Properties (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Model.Properties (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Model.Properties (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Model.Properties (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Reports.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Reports.html index 295dc0267..9d9823260 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Reports.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Reports.html @@ -2,13 +2,13 @@ - + -Model.Reports (Dependency-Check Core 1.0.5 API) +Model.Reports (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Model.Reports (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Model.Reports (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Model.Reports (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Repositories.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Repositories.html index e327e8618..fa06aeef2 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Repositories.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.Repositories.html @@ -2,13 +2,13 @@ - + -Model.Repositories (Dependency-Check Core 1.0.5 API) +Model.Repositories (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Model.Repositories (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Model.Repositories (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Model.Repositories (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.html index a9cda39cf..047613852 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Model.html @@ -2,13 +2,13 @@ - + -Model (Dependency-Check Core 1.0.5 API) +Model (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Model (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Model (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Model (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Notifier.Configuration.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Notifier.Configuration.html index 7430e4775..1261faf7f 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Notifier.Configuration.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Notifier.Configuration.html @@ -2,13 +2,13 @@ - + -Notifier.Configuration (Dependency-Check Core 1.0.5 API) +Notifier.Configuration (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Notifier.Configuration (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Notifier.Configuration (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Notifier.Configuration (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Notifier.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Notifier.html index 6878ff07a..26428b741 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Notifier.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Notifier.html @@ -2,13 +2,13 @@ - + -Notifier (Dependency-Check Core 1.0.5 API) +Notifier (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Notifier (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Notifier (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Notifier (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ObjectFactory.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ObjectFactory.html index f707fc1e4..5bdd30f65 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ObjectFactory.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ObjectFactory.html @@ -2,13 +2,13 @@ - + -ObjectFactory (Dependency-Check Core 1.0.5 API) +ObjectFactory (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ ObjectFactory (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="ObjectFactory (Dependency-Check Core 1.0.5 API)"; + parent.document.title="ObjectFactory (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Organization.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Organization.html index 7306af815..5373cc3d3 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Organization.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Organization.html @@ -2,13 +2,13 @@ - + -Organization (Dependency-Check Core 1.0.5 API) +Organization (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Organization (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Organization (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Organization (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Parent.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Parent.html index 2e91b536a..65db83716 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Parent.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Parent.html @@ -2,13 +2,13 @@ - + -Parent (Dependency-Check Core 1.0.5 API) +Parent (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Parent (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Parent (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Parent (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.Configuration.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.Configuration.html index a4b6287ea..7ca412057 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.Configuration.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.Configuration.html @@ -2,13 +2,13 @@ - + -Plugin.Configuration (Dependency-Check Core 1.0.5 API) +Plugin.Configuration (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Plugin.Configuration (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Plugin.Configuration (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Plugin.Configuration (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.Dependencies.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.Dependencies.html index f169a046e..5fa6d839a 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.Dependencies.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.Dependencies.html @@ -2,13 +2,13 @@ - + -Plugin.Dependencies (Dependency-Check Core 1.0.5 API) +Plugin.Dependencies (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Plugin.Dependencies (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Plugin.Dependencies (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Plugin.Dependencies (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.Executions.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.Executions.html index c9b2a9685..106823d28 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.Executions.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.Executions.html @@ -2,13 +2,13 @@ - + -Plugin.Executions (Dependency-Check Core 1.0.5 API) +Plugin.Executions (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Plugin.Executions (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Plugin.Executions (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Plugin.Executions (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.Goals.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.Goals.html index 040dc5a7b..e2212cdfe 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.Goals.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.Goals.html @@ -2,13 +2,13 @@ - + -Plugin.Goals (Dependency-Check Core 1.0.5 API) +Plugin.Goals (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Plugin.Goals (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Plugin.Goals (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Plugin.Goals (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.html index 333236313..655ecde58 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Plugin.html @@ -2,13 +2,13 @@ - + -Plugin (Dependency-Check Core 1.0.5 API) +Plugin (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Plugin (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Plugin (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Plugin (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginExecution.Configuration.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginExecution.Configuration.html index 93b495dac..c2ff229f5 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginExecution.Configuration.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginExecution.Configuration.html @@ -2,13 +2,13 @@ - + -PluginExecution.Configuration (Dependency-Check Core 1.0.5 API) +PluginExecution.Configuration (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ PluginExecution.Configuration (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="PluginExecution.Configuration (Dependency-Check Core 1.0.5 API)"; + parent.document.title="PluginExecution.Configuration (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginExecution.Goals.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginExecution.Goals.html index 5855aa895..fc2147572 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginExecution.Goals.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginExecution.Goals.html @@ -2,13 +2,13 @@ - + -PluginExecution.Goals (Dependency-Check Core 1.0.5 API) +PluginExecution.Goals (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ PluginExecution.Goals (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="PluginExecution.Goals (Dependency-Check Core 1.0.5 API)"; + parent.document.title="PluginExecution.Goals (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginExecution.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginExecution.html index f643de6c8..51131afd1 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginExecution.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginExecution.html @@ -2,13 +2,13 @@ - + -PluginExecution (Dependency-Check Core 1.0.5 API) +PluginExecution (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ PluginExecution (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="PluginExecution (Dependency-Check Core 1.0.5 API)"; + parent.document.title="PluginExecution (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginManagement.Plugins.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginManagement.Plugins.html index c45ebb2b1..9d52dbca3 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginManagement.Plugins.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginManagement.Plugins.html @@ -2,13 +2,13 @@ - + -PluginManagement.Plugins (Dependency-Check Core 1.0.5 API) +PluginManagement.Plugins (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ PluginManagement.Plugins (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="PluginManagement.Plugins (Dependency-Check Core 1.0.5 API)"; + parent.document.title="PluginManagement.Plugins (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginManagement.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginManagement.html index 65331a0e9..d8c686251 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginManagement.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/PluginManagement.html @@ -2,13 +2,13 @@ - + -PluginManagement (Dependency-Check Core 1.0.5 API) +PluginManagement (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ PluginManagement (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="PluginManagement (Dependency-Check Core 1.0.5 API)"; + parent.document.title="PluginManagement (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Prerequisites.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Prerequisites.html index 5cf56d7be..ccd25fc3a 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Prerequisites.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Prerequisites.html @@ -2,13 +2,13 @@ - + -Prerequisites (Dependency-Check Core 1.0.5 API) +Prerequisites (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Prerequisites (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Prerequisites (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Prerequisites (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Dependencies.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Dependencies.html index 454175ca0..b49339615 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Dependencies.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Dependencies.html @@ -2,13 +2,13 @@ - + -Profile.Dependencies (Dependency-Check Core 1.0.5 API) +Profile.Dependencies (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Profile.Dependencies (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Profile.Dependencies (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Profile.Dependencies (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Modules.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Modules.html index c4230b72a..c8c12987f 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Modules.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Modules.html @@ -2,13 +2,13 @@ - + -Profile.Modules (Dependency-Check Core 1.0.5 API) +Profile.Modules (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Profile.Modules (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Profile.Modules (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Profile.Modules (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.PluginRepositories.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.PluginRepositories.html index 0f94a0208..d404c9bf3 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.PluginRepositories.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.PluginRepositories.html @@ -2,13 +2,13 @@ - + -Profile.PluginRepositories (Dependency-Check Core 1.0.5 API) +Profile.PluginRepositories (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Profile.PluginRepositories (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Profile.PluginRepositories (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Profile.PluginRepositories (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Properties.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Properties.html index 89485928c..2b8b2e75b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Properties.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Properties.html @@ -2,13 +2,13 @@ - + -Profile.Properties (Dependency-Check Core 1.0.5 API) +Profile.Properties (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Profile.Properties (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Profile.Properties (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Profile.Properties (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Reports.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Reports.html index ed0318140..fe6ad60a5 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Reports.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Reports.html @@ -2,13 +2,13 @@ - + -Profile.Reports (Dependency-Check Core 1.0.5 API) +Profile.Reports (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Profile.Reports (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Profile.Reports (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Profile.Reports (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Repositories.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Repositories.html index 84a7f6554..9dabad2a8 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Repositories.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.Repositories.html @@ -2,13 +2,13 @@ - + -Profile.Repositories (Dependency-Check Core 1.0.5 API) +Profile.Repositories (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Profile.Repositories (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Profile.Repositories (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Profile.Repositories (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.html index ee75aa5e4..9586327be 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Profile.html @@ -2,13 +2,13 @@ - + -Profile (Dependency-Check Core 1.0.5 API) +Profile (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Profile (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Profile (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Profile (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Relocation.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Relocation.html index 9f6e2c361..189287328 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Relocation.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Relocation.html @@ -2,13 +2,13 @@ - + -Relocation (Dependency-Check Core 1.0.5 API) +Relocation (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Relocation (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Relocation (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Relocation (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportPlugin.Configuration.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportPlugin.Configuration.html index 4e25f6a5c..0ce290d80 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportPlugin.Configuration.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportPlugin.Configuration.html @@ -2,13 +2,13 @@ - + -ReportPlugin.Configuration (Dependency-Check Core 1.0.5 API) +ReportPlugin.Configuration (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ ReportPlugin.Configuration (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="ReportPlugin.Configuration (Dependency-Check Core 1.0.5 API)"; + parent.document.title="ReportPlugin.Configuration (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportPlugin.ReportSets.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportPlugin.ReportSets.html index 684622a7b..d336a4fe1 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportPlugin.ReportSets.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportPlugin.ReportSets.html @@ -2,13 +2,13 @@ - + -ReportPlugin.ReportSets (Dependency-Check Core 1.0.5 API) +ReportPlugin.ReportSets (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ ReportPlugin.ReportSets (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="ReportPlugin.ReportSets (Dependency-Check Core 1.0.5 API)"; + parent.document.title="ReportPlugin.ReportSets (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportPlugin.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportPlugin.html index b47b240c1..4b3d82311 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportPlugin.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportPlugin.html @@ -2,13 +2,13 @@ - + -ReportPlugin (Dependency-Check Core 1.0.5 API) +ReportPlugin (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ ReportPlugin (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="ReportPlugin (Dependency-Check Core 1.0.5 API)"; + parent.document.title="ReportPlugin (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportSet.Configuration.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportSet.Configuration.html index f2f457c22..7784452f9 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportSet.Configuration.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportSet.Configuration.html @@ -2,13 +2,13 @@ - + -ReportSet.Configuration (Dependency-Check Core 1.0.5 API) +ReportSet.Configuration (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ ReportSet.Configuration (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="ReportSet.Configuration (Dependency-Check Core 1.0.5 API)"; + parent.document.title="ReportSet.Configuration (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportSet.Reports.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportSet.Reports.html index 5a3700d17..9b994b8b6 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportSet.Reports.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportSet.Reports.html @@ -2,13 +2,13 @@ - + -ReportSet.Reports (Dependency-Check Core 1.0.5 API) +ReportSet.Reports (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ ReportSet.Reports (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="ReportSet.Reports (Dependency-Check Core 1.0.5 API)"; + parent.document.title="ReportSet.Reports (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportSet.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportSet.html index df3d289dd..d576c0e0f 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportSet.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/ReportSet.html @@ -2,13 +2,13 @@ - + -ReportSet (Dependency-Check Core 1.0.5 API) +ReportSet (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ ReportSet (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="ReportSet (Dependency-Check Core 1.0.5 API)"; + parent.document.title="ReportSet (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Reporting.Plugins.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Reporting.Plugins.html index 76164d4df..76d71bfa6 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Reporting.Plugins.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Reporting.Plugins.html @@ -2,13 +2,13 @@ - + -Reporting.Plugins (Dependency-Check Core 1.0.5 API) +Reporting.Plugins (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Reporting.Plugins (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Reporting.Plugins (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Reporting.Plugins (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Reporting.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Reporting.html index b4ba20bee..83b05eb78 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Reporting.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Reporting.html @@ -2,13 +2,13 @@ - + -Reporting (Dependency-Check Core 1.0.5 API) +Reporting (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Reporting (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Reporting (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Reporting (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Repository.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Repository.html index 9bdf643e7..14de86f61 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Repository.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Repository.html @@ -2,13 +2,13 @@ - + -Repository (Dependency-Check Core 1.0.5 API) +Repository (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Repository (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Repository (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Repository (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/RepositoryPolicy.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/RepositoryPolicy.html index 7c0960dd1..267645b15 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/RepositoryPolicy.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/RepositoryPolicy.html @@ -2,13 +2,13 @@ - + -RepositoryPolicy (Dependency-Check Core 1.0.5 API) +RepositoryPolicy (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ RepositoryPolicy (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="RepositoryPolicy (Dependency-Check Core 1.0.5 API)"; + parent.document.title="RepositoryPolicy (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Resource.Excludes.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Resource.Excludes.html index 92059f048..540a8445a 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Resource.Excludes.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Resource.Excludes.html @@ -2,13 +2,13 @@ - + -Resource.Excludes (Dependency-Check Core 1.0.5 API) +Resource.Excludes (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Resource.Excludes (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Resource.Excludes (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Resource.Excludes (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Resource.Includes.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Resource.Includes.html index bf001480e..7173baa06 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Resource.Includes.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Resource.Includes.html @@ -2,13 +2,13 @@ - + -Resource.Includes (Dependency-Check Core 1.0.5 API) +Resource.Includes (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Resource.Includes (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Resource.Includes (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Resource.Includes (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Resource.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Resource.html index da817e77a..bd06bda4f 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Resource.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Resource.html @@ -2,13 +2,13 @@ - + -Resource (Dependency-Check Core 1.0.5 API) +Resource (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Resource (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Resource (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Resource (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Scm.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Scm.html index 8287dd7e8..c000a4958 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Scm.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Scm.html @@ -2,13 +2,13 @@ - + -Scm (Dependency-Check Core 1.0.5 API) +Scm (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Scm (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Scm (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Scm (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Site.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Site.html index 12a8a84ed..e080da367 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Site.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/Site.html @@ -2,13 +2,13 @@ - + -Site (Dependency-Check Core 1.0.5 API) +Site (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Site (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Site (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Site (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Activation.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Activation.html index 378939085..4a2714949 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Activation.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Activation.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Activation (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Activation (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Activation (Dependenc function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Activation (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Activation (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ActivationFile.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ActivationFile.html index 9cf50f1d5..cea333247 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ActivationFile.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ActivationFile.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ActivationFile (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ActivationFile (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ActivationFile (Depen function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ActivationFile (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ActivationFile (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ActivationOS.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ActivationOS.html index 78308753c..e0728a8f6 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ActivationOS.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ActivationOS.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ActivationOS (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ActivationOS (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ActivationOS (Depende function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ActivationOS (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ActivationOS (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ActivationProperty.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ActivationProperty.html index 133f69102..3fa3b9765 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ActivationProperty.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ActivationProperty.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ActivationProperty (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ActivationProperty (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ActivationProperty (D function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ActivationProperty (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ActivationProperty (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.Extensions.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.Extensions.html index dc8c36f0d..d572aa498 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.Extensions.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.Extensions.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Extensions (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Extensions (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Extensions (Dep function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Extensions (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Extensions (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.Filters.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.Filters.html index a628b7ad6..e3fd85c50 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.Filters.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.Filters.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Filters (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Filters (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Filters (Depend function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Filters (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Filters (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.Plugins.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.Plugins.html index 71107b1dd..82ac4a83d 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.Plugins.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.Plugins.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Plugins (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Plugins (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Plugins (Depend function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Plugins (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Plugins (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.Resources.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.Resources.html index b51efeffc..742b341f1 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.Resources.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.Resources.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Resources (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Resources (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Resources (Depe function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Resources (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.Resources (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.TestResources.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.TestResources.html index f0b372572..681c6afe9 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.TestResources.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.TestResources.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.TestResources (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.TestResources (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.TestResources ( function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.TestResources (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build.TestResources (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.html index f3004225a..cde08710a 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Build.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build (Dependency-Che function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Build (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.Filters.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.Filters.html index ab31514df..4fb14f94f 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.Filters.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.Filters.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Filters (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Filters (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Filters (De function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Filters (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Filters (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.Plugins.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.Plugins.html index 31ca886d7..e5a605bf7 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.Plugins.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.Plugins.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Plugins (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Plugins (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Plugins (De function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Plugins (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Plugins (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.Resources.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.Resources.html index c2942caae..7135a1148 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.Resources.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.Resources.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Resources (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Resources (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Resources ( function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Resources (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Resources (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.TestResources.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.TestResources.html index 6d2640a85..1857fbcac 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.TestResources.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.TestResources.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.TestResources (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.TestResources (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.TestResourc function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.TestResources (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.TestResources (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.html index d22e48877..d43dfe857 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/BuildBase.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase (Dependency function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.BuildBase (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/CiManagement.Notifiers.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/CiManagement.Notifiers.html index f6eb09955..1c44bb937 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/CiManagement.Notifiers.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/CiManagement.Notifiers.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.CiManagement.Notifiers (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.CiManagement.Notifiers (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.CiManagement.Notifier function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.CiManagement.Notifiers (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.CiManagement.Notifiers (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/CiManagement.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/CiManagement.html index 1d3b68f1b..f05d0e775 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/CiManagement.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/CiManagement.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.CiManagement (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.CiManagement (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.CiManagement (Depende function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.CiManagement (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.CiManagement (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Contributor.Properties.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Contributor.Properties.html index 0b1c2db39..7a4bc5191 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Contributor.Properties.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Contributor.Properties.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Contributor.Properties (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Contributor.Properties (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Contributor.Propertie function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Contributor.Properties (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Contributor.Properties (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Contributor.Roles.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Contributor.Roles.html index 6721812e3..90822e86b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Contributor.Roles.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Contributor.Roles.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Contributor.Roles (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Contributor.Roles (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Contributor.Roles (De function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Contributor.Roles (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Contributor.Roles (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Contributor.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Contributor.html index c3590efea..b0bd10e71 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Contributor.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Contributor.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Contributor (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Contributor (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Contributor (Dependen function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Contributor (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Contributor (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Dependency.Exclusions.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Dependency.Exclusions.html index 2dfc87d28..41bcba5ce 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Dependency.Exclusions.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Dependency.Exclusions.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Dependency.Exclusions (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Dependency.Exclusions (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Dependency.Exclusions function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Dependency.Exclusions (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Dependency.Exclusions (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Dependency.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Dependency.html index 9ff36a4f3..e70273560 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Dependency.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Dependency.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Dependency (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Dependency (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Dependency (Dependenc function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Dependency (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Dependency (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/DependencyManagement.Dependencies.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/DependencyManagement.Dependencies.html index 13d0ace56..07ecd697f 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/DependencyManagement.Dependencies.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/DependencyManagement.Dependencies.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DependencyManagement.Dependencies (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DependencyManagement.Dependencies (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DependencyManagement. function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DependencyManagement.Dependencies (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DependencyManagement.Dependencies (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/DependencyManagement.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/DependencyManagement.html index 0b9228e3e..911faeed8 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/DependencyManagement.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/DependencyManagement.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DependencyManagement (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DependencyManagement (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DependencyManagement function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DependencyManagement (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DependencyManagement (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/DeploymentRepository.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/DeploymentRepository.html index da7538caa..06211498b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/DeploymentRepository.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/DeploymentRepository.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DeploymentRepository (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DeploymentRepository (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DeploymentRepository function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DeploymentRepository (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DeploymentRepository (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Developer.Properties.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Developer.Properties.html index 621ad85f9..4e4aa7e29 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Developer.Properties.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Developer.Properties.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Developer.Properties (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Developer.Properties (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Developer.Properties function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Developer.Properties (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Developer.Properties (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Developer.Roles.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Developer.Roles.html index fbbe2a558..7e6efc914 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Developer.Roles.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Developer.Roles.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Developer.Roles (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Developer.Roles (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Developer.Roles (Depe function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Developer.Roles (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Developer.Roles (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Developer.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Developer.html index d736e737a..9dfc781d7 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Developer.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Developer.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Developer (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Developer (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Developer (Dependency function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Developer (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Developer (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/DistributionManagement.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/DistributionManagement.html index 39188fcb0..007b94eec 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/DistributionManagement.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/DistributionManagement.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DistributionManagement (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DistributionManagement (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DistributionManagemen function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DistributionManagement (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.DistributionManagement (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Exclusion.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Exclusion.html index 3f3089602..484545d7c 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Exclusion.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Exclusion.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Exclusion (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Exclusion (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Exclusion (Dependency function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Exclusion (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Exclusion (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Extension.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Extension.html index 9f2677baa..347075b19 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Extension.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Extension.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Extension (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Extension (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Extension (Dependency function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Extension (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Extension (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/IssueManagement.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/IssueManagement.html index 9ade2f839..cca0d7fb1 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/IssueManagement.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/IssueManagement.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.IssueManagement (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.IssueManagement (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.IssueManagement (Depe function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.IssueManagement (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.IssueManagement (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/License.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/License.html index 55711e8bd..bdf6f9cce 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/License.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/License.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.License (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.License (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.License (Dependency-C function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.License (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.License (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/MailingList.OtherArchives.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/MailingList.OtherArchives.html index 1018c735c..dfee4006d 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/MailingList.OtherArchives.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/MailingList.OtherArchives.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.MailingList.OtherArchives (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.MailingList.OtherArchives (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.MailingList.OtherArch function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.MailingList.OtherArchives (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.MailingList.OtherArchives (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/MailingList.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/MailingList.html index 3fb30da8c..4cb0a4d33 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/MailingList.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/MailingList.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.MailingList (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.MailingList (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.MailingList (Dependen function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.MailingList (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.MailingList (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Contributors.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Contributors.html index 9c3c7640e..f23e620a9 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Contributors.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Contributors.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Contributors (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Contributors (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Contributors (D function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Contributors (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Contributors (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Dependencies.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Dependencies.html index d69d99f93..c9c33794b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Dependencies.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Dependencies.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Dependencies (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Dependencies (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Dependencies (D function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Dependencies (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Dependencies (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Developers.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Developers.html index 3d94e8fab..92f04d1a8 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Developers.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Developers.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Developers (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Developers (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Developers (Dep function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Developers (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Developers (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Licenses.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Licenses.html index c43db7e31..bd3bee1e2 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Licenses.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Licenses.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Licenses (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Licenses (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Licenses (Depen function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Licenses (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Licenses (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.MailingLists.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.MailingLists.html index c0d3aca00..bd4da0347 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.MailingLists.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.MailingLists.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.MailingLists (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.MailingLists (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.MailingLists (D function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.MailingLists (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.MailingLists (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Modules.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Modules.html index bd7fc714e..8fd09b377 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Modules.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Modules.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Modules (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Modules (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Modules (Depend function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Modules (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Modules (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.PluginRepositories.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.PluginRepositories.html index 54c04877c..c9279af1f 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.PluginRepositories.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.PluginRepositories.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.PluginRepositories (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.PluginRepositories (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.PluginRepositor function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.PluginRepositories (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.PluginRepositories (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Profiles.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Profiles.html index ea2c1fede..ebf090929 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Profiles.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Profiles.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Profiles (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Profiles (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Profiles (Depen function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Profiles (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Profiles (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Properties.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Properties.html index 3b85ef803..ff77ba28c 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Properties.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Properties.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Properties (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Properties (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Properties (Dep function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Properties (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Properties (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Reports.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Reports.html index 3693f5273..cf0085fa7 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Reports.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Reports.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Reports (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Reports (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Reports (Depend function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Reports (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Reports (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Repositories.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Repositories.html index 686a48790..5ba431b52 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Repositories.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.Repositories.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Repositories (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Repositories (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Repositories (D function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Repositories (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model.Repositories (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.html index db981fa24..29035b5a3 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Model.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model (Dependency-Che function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Model (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Notifier.Configuration.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Notifier.Configuration.html index ced57e8ca..d0c73eff1 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Notifier.Configuration.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Notifier.Configuration.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Notifier.Configuration (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Notifier.Configuration (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Notifier.Configuratio function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Notifier.Configuration (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Notifier.Configuration (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Notifier.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Notifier.html index b31ad39a6..82d41d53b 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Notifier.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Notifier.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Notifier (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Notifier (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Notifier (Dependency- function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Notifier (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Notifier (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ObjectFactory.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ObjectFactory.html index 0f114be5f..f2cdd17d7 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ObjectFactory.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ObjectFactory.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ObjectFactory (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ObjectFactory (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ObjectFactory (Depend function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ObjectFactory (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ObjectFactory (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Organization.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Organization.html index f97653154..43a05d883 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Organization.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Organization.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Organization (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Organization (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Organization (Depende function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Organization (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Organization (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Parent.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Parent.html index e638a7360..e9dc8c273 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Parent.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Parent.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Parent (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Parent (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Parent (Dependency-Ch function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Parent (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Parent (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.Configuration.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.Configuration.html index 80b9794cd..fad9ce0ef 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.Configuration.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.Configuration.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Configuration (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Configuration (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Configuration function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Configuration (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Configuration (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.Dependencies.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.Dependencies.html index 07fd125b1..058ac58ac 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.Dependencies.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.Dependencies.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Dependencies (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Dependencies (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Dependencies ( function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Dependencies (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Dependencies (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.Executions.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.Executions.html index b089beb60..37e437bef 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.Executions.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.Executions.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Executions (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Executions (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Executions (De function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Executions (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Executions (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.Goals.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.Goals.html index 4cfdeee50..91ecedc25 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.Goals.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.Goals.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Goals (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Goals (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Goals (Depende function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Goals (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Goals (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.html index 8ee2ed395..1f82d9901 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Plugin.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin (Dependency-Ch function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Plugin (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginExecution.Configuration.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginExecution.Configuration.html index 2aaf9d411..480882df2 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginExecution.Configuration.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginExecution.Configuration.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.Configuration (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.Configuration (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.Confi function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.Configuration (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.Configuration (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginExecution.Goals.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginExecution.Goals.html index ed6d9ead8..09a5d7792 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginExecution.Goals.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginExecution.Goals.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.Goals (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.Goals (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.Goals function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.Goals (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.Goals (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginExecution.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginExecution.html index 7032ae7ea..545daf212 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginExecution.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginExecution.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution (Depe function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginManagement.Plugins.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginManagement.Plugins.html index 5886e8c91..a220fbf22 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginManagement.Plugins.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginManagement.Plugins.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginManagement.Plugins (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginManagement.Plugins (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginManagement.Plug function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginManagement.Plugins (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginManagement.Plugins (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginManagement.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginManagement.html index b02d67b5d..abfeb1a09 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginManagement.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/PluginManagement.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginManagement (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginManagement (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginManagement (Dep function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginManagement (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.PluginManagement (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Prerequisites.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Prerequisites.html index d8ef8fc05..e0cb147de 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Prerequisites.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Prerequisites.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Prerequisites (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Prerequisites (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Prerequisites (Depend function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Prerequisites (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Prerequisites (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Dependencies.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Dependencies.html index f01605afa..bb415559f 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Dependencies.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Dependencies.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Dependencies (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Dependencies (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Dependencies function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Dependencies (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Dependencies (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Modules.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Modules.html index d703a1be1..7a1368335 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Modules.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Modules.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Modules (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Modules (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Modules (Depe function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Modules (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Modules (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.PluginRepositories.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.PluginRepositories.html index af0e29743..66634fb4c 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.PluginRepositories.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.PluginRepositories.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.PluginRepositories (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.PluginRepositories (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.PluginReposit function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.PluginRepositories (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.PluginRepositories (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Properties.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Properties.html index 5a1bcb2c3..89c216358 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Properties.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Properties.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Properties (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Properties (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Properties (D function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Properties (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Properties (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Reports.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Reports.html index 7298b7a65..0c332db2d 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Reports.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Reports.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Reports (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Reports (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Reports (Depe function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Reports (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Reports (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Repositories.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Repositories.html index f018f9174..5a953dfd4 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Repositories.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.Repositories.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Repositories (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Repositories (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Repositories function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Repositories (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile.Repositories (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.html index b3cec040a..094c25150 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Profile.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile (Dependency-C function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Profile (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Relocation.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Relocation.html index d3a9283b8..ec3ccbef3 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Relocation.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Relocation.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Relocation (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Relocation (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Relocation (Dependenc function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Relocation (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Relocation (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportPlugin.Configuration.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportPlugin.Configuration.html index fe9f2c9e6..6f0af491c 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportPlugin.Configuration.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportPlugin.Configuration.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin.Configuration (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin.Configuration (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin.Configur function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin.Configuration (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin.Configuration (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportPlugin.ReportSets.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportPlugin.ReportSets.html index 98849c2f2..34b3c83b0 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportPlugin.ReportSets.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportPlugin.ReportSets.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin.ReportSets (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin.ReportSets (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin.ReportSe function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin.ReportSets (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin.ReportSets (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportPlugin.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportPlugin.html index e81b6cd1a..0c663755f 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportPlugin.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportPlugin.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin (Depende function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportSet.Configuration.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportSet.Configuration.html index 74ddbd103..57e1b1177 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportSet.Configuration.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportSet.Configuration.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportSet.Configuration (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportSet.Configuration (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportSet.Configurati function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportSet.Configuration (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportSet.Configuration (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportSet.Reports.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportSet.Reports.html index 96ccb57c6..00daaa9b1 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportSet.Reports.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportSet.Reports.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportSet.Reports (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportSet.Reports (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportSet.Reports (De function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportSet.Reports (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportSet.Reports (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportSet.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportSet.html index acbc1a7d1..b524674fb 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportSet.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/ReportSet.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportSet (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportSet (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportSet (Dependency function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportSet (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.ReportSet (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Reporting.Plugins.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Reporting.Plugins.html index e1a59dc7b..b2f2373b1 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Reporting.Plugins.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Reporting.Plugins.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Reporting.Plugins (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Reporting.Plugins (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Reporting.Plugins (De function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Reporting.Plugins (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Reporting.Plugins (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Reporting.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Reporting.html index 80002bcb7..bd2d354f4 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Reporting.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Reporting.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Reporting (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Reporting (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Reporting (Dependency function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Reporting (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Reporting (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Repository.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Repository.html index 580a11b4c..e4f42880e 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Repository.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Repository.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Repository (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Repository (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Repository (Dependenc function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Repository (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Repository (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/RepositoryPolicy.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/RepositoryPolicy.html index 42b67cb50..b8715bdc9 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/RepositoryPolicy.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/RepositoryPolicy.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.RepositoryPolicy (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.RepositoryPolicy (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.RepositoryPolicy (Dep function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.RepositoryPolicy (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.RepositoryPolicy (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Resource.Excludes.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Resource.Excludes.html index 6b334972d..d6b0720f6 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Resource.Excludes.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Resource.Excludes.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Resource.Excludes (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Resource.Excludes (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Resource.Excludes (De function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Resource.Excludes (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Resource.Excludes (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Resource.Includes.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Resource.Includes.html index 82aa45945..6982f76c7 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Resource.Includes.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Resource.Includes.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Resource.Includes (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Resource.Includes (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Resource.Includes (De function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Resource.Includes (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Resource.Includes (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Resource.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Resource.html index 130fc20cd..e751c1c80 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Resource.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Resource.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Resource (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Resource (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Resource (Dependency- function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Resource (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Resource (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Scm.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Scm.html index 50efa3acb..47d9f67a9 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Scm.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Scm.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Scm (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Scm (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Scm (Dependency-Check function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Scm (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Scm (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Site.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Site.html index 90585b306..ac2be7748 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Site.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/class-use/Site.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Site (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Site (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Site (Dependency-Chec function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Site (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.jaxb.pom.generated.Site (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/package-frame.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/package-frame.html index 41eaa5034..dd7632cd7 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/package-frame.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/package-frame.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.jaxb.pom.generated (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.jaxb.pom.generated (Dependency-Check Core 1.0.6 API) - + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/package-summary.html index 8453541af..7a6cb9f5d 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/package-summary.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.jaxb.pom.generated (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.jaxb.pom.generated (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.jaxb.pom.generated (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.jaxb.pom.generated (Dependency-Check Core 1.0.5 API)"; + parent.document.title="org.owasp.dependencycheck.jaxb.pom.generated (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/package-tree.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/package-tree.html index d29b14c8e..1b8e11e47 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/package-tree.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/package-tree.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.jaxb.pom.generated Class Hierarchy (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.jaxb.pom.generated Class Hierarchy (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.jaxb.pom.generated Class Hierarchy (Dependency-Check C function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.jaxb.pom.generated Class Hierarchy (Dependency-Check Core 1.0.5 API)"; + parent.document.title="org.owasp.dependencycheck.jaxb.pom.generated Class Hierarchy (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/package-use.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/package-use.html index 834d8b749..3ca175660 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/package-use.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/generated/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.owasp.dependencycheck.jaxb.pom.generated (Dependency-Check Core 1.0.5 API) +Uses of Package org.owasp.dependencycheck.jaxb.pom.generated (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Package org.owasp.dependencycheck.jaxb.pom.generated (Dependency-Check C function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.owasp.dependencycheck.jaxb.pom.generated (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Package org.owasp.dependencycheck.jaxb.pom.generated (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/package-frame.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/package-frame.html index c405557b4..736eb74f2 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/package-frame.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/package-frame.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.jaxb.pom (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.jaxb.pom (Dependency-Check Core 1.0.6 API) - + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/package-summary.html index 1f758cc05..c4d6f7d6e 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/package-summary.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.jaxb.pom (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.jaxb.pom (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.jaxb.pom (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.jaxb.pom (Dependency-Check Core 1.0.5 API)"; + parent.document.title="org.owasp.dependencycheck.jaxb.pom (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/package-tree.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/package-tree.html index 495cbc37b..cd79aca2f 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/package-tree.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/package-tree.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.jaxb.pom Class Hierarchy (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.jaxb.pom Class Hierarchy (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.jaxb.pom Class Hierarchy (Dependency-Check Core 1.0.5 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.jaxb.pom Class Hierarchy (Dependency-Check Core 1.0.5 API)"; + parent.document.title="org.owasp.dependencycheck.jaxb.pom Class Hierarchy (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/package-use.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/package-use.html index b9ee43ccd..05aae2859 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/package-use.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/jaxb/pom/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.owasp.dependencycheck.jaxb.pom (Dependency-Check Core 1.0.5 API) +Uses of Package org.owasp.dependencycheck.jaxb.pom (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Package org.owasp.dependencycheck.jaxb.pom (Dependency-Check Core 1.0.5 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.owasp.dependencycheck.jaxb.pom (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Package org.owasp.dependencycheck.jaxb.pom (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/package-frame.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/package-frame.html index d553f850e..6b3fef9a1 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/package-frame.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/package-frame.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck (Dependency-Check Core 1.0.6 API) - + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/package-summary.html index cd48a8e97..a56f7c2bf 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/package-summary.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck (Dependency-Check Core 1.0.5 API)"; + parent.document.title="org.owasp.dependencycheck (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/package-tree.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/package-tree.html index a93934ad2..ce3f2a7fd 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/package-tree.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/package-tree.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck Class Hierarchy (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck Class Hierarchy (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck Class Hierarchy (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck Class Hierarchy (Dependency-Check Core 1.0.5 API)"; + parent.document.title="org.owasp.dependencycheck Class Hierarchy (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/package-use.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/package-use.html index dbce547cb..04ff3a37e 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/package-use.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.owasp.dependencycheck (Dependency-Check Core 1.0.5 API) +Uses of Package org.owasp.dependencycheck (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Package org.owasp.dependencycheck (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.owasp.dependencycheck (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Package org.owasp.dependencycheck (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/ReportGenerator.Format.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/ReportGenerator.Format.html index 060322339..3dafbb275 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/ReportGenerator.Format.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/ReportGenerator.Format.html @@ -2,13 +2,13 @@ - + -ReportGenerator.Format (Dependency-Check Core 1.0.5 API) +ReportGenerator.Format (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ ReportGenerator.Format (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="ReportGenerator.Format (Dependency-Check Core 1.0.5 API)"; + parent.document.title="ReportGenerator.Format (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/ReportGenerator.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/ReportGenerator.html index 919280640..7cf805d74 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/ReportGenerator.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/ReportGenerator.html @@ -2,13 +2,13 @@ - + -ReportGenerator (Dependency-Check Core 1.0.5 API) +ReportGenerator (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ ReportGenerator (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="ReportGenerator (Dependency-Check Core 1.0.5 API)"; + parent.document.title="ReportGenerator (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/VelocityLoggerRedirect.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/VelocityLoggerRedirect.html index 48021b2b8..37842de47 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/VelocityLoggerRedirect.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/VelocityLoggerRedirect.html @@ -2,13 +2,13 @@ - + -VelocityLoggerRedirect (Dependency-Check Core 1.0.5 API) +VelocityLoggerRedirect (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ VelocityLoggerRedirect (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="VelocityLoggerRedirect (Dependency-Check Core 1.0.5 API)"; + parent.document.title="VelocityLoggerRedirect (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/class-use/ReportGenerator.Format.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/class-use/ReportGenerator.Format.html index 8715adee8..5a1fe877c 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/class-use/ReportGenerator.Format.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/class-use/ReportGenerator.Format.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.reporting.ReportGenerator.Format (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.reporting.ReportGenerator.Format (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.reporting.ReportGenerator.Format (Depend function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.reporting.ReportGenerator.Format (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.reporting.ReportGenerator.Format (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/class-use/ReportGenerator.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/class-use/ReportGenerator.html index 5e4045b0d..2daadaa32 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/class-use/ReportGenerator.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/class-use/ReportGenerator.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.reporting.ReportGenerator (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.reporting.ReportGenerator (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.reporting.ReportGenerator (Dependency-Ch function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.reporting.ReportGenerator (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.reporting.ReportGenerator (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/class-use/VelocityLoggerRedirect.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/class-use/VelocityLoggerRedirect.html index 4c9294c1f..6347b1568 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/class-use/VelocityLoggerRedirect.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/class-use/VelocityLoggerRedirect.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.reporting.VelocityLoggerRedirect (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.reporting.VelocityLoggerRedirect (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.reporting.VelocityLoggerRedirect (Depend function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.reporting.VelocityLoggerRedirect (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.reporting.VelocityLoggerRedirect (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/package-frame.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/package-frame.html index 51036ed57..f7a1d330a 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/package-frame.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/package-frame.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.reporting (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.reporting (Dependency-Check Core 1.0.6 API) - + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/package-summary.html index bb110c2ad..7386974b3 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/reporting/package-summary.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.reporting (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.reporting (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.reporting (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.reporting (Dependency-Check Core 1.0.5 API)"; + parent.document.title="org.owasp.dependencycheck.reporting (Dependency-Check Core 1.0.6 API)"; } } @@ -57,7 +57,7 @@ function windowTitle() + NEXT PACKAGENEXT PACKAGENEXTNEXT - - - - + + + + + + + + + + + + +          Deprecated. Determines if the index needs to be updated. +          Deprecated. Constructs a new BatchUpdateTask. diff --git a/dependency-check-core/apidocs/overview-summary.html b/dependency-check-core/apidocs/overview-summary.html index eacd19fca..7d68d4a4f 100644 --- a/dependency-check-core/apidocs/overview-summary.html +++ b/dependency-check-core/apidocs/overview-summary.html @@ -2,13 +2,13 @@ - + -Overview (Dependency-Check Core 1.0.5 API) +Overview (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Overview (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Overview (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Overview (Dependency-Check Core 1.0.6 API)"; } } @@ -82,7 +82,7 @@ function windowTitle()

    -Dependency-Check Core 1.0.5 API +Dependency-Check Core 1.0.6 API

    @@ -204,6 +204,15 @@ Dependency-Check Core 1.0.5 API Contains classes used to generate reports. + + + + - + - + - + - + - + - + @@ -652,7 +652,7 @@ -
    +Classes in org.owasp.dependencycheck.dependency used by org.owasp.dependencycheck.suppression
    Dependency +
              A program dependency.
    static StringCPE_DATA_DIRECTORY - -
    -          The properties key for the path where the CPE Lucene Index will be - stored.
    -static String CVE_DATA_DIRECTORY
    @@ -250,6 +241,14 @@ The collection of keys used within the properties file.
    static StringMAX_DOWNLOAD_THREAD_POOL_SIZE + +
    +          The maximum number of threads to allocate when downloading files.
    +static String PROXY_PASSWORD
    @@ -283,6 +282,14 @@ The collection of keys used within the properties file.
    static StringSUPPRESSION_FILE + +
    +          The key for a list of suppression files.
    +static String TEMP_DIRECTORY
    @@ -385,19 +392,6 @@ public static final

    -CPE_DATA_DIRECTORY

    -
    -public static final String CPE_DATA_DIRECTORY
    -
    -
    The properties key for the path where the CPE Lucene Index will be - stored. -

    -

    -
    See Also:
    Constant Field Values
    -
    -
    -

    CVE_DATA_DIRECTORY

    @@ -572,6 +566,30 @@ public static final Constant Field Values
     
    +
    + +

    +MAX_DOWNLOAD_THREAD_POOL_SIZE

    +
    +public static final String MAX_DOWNLOAD_THREAD_POOL_SIZE
    +
    +
    The maximum number of threads to allocate when downloading files. +

    +

    +
    See Also:
    Constant Field Values
    +
    +
    + +

    +SUPPRESSION_FILE

    +
    +public static final String SUPPRESSION_FILE
    +
    +
    The key for a list of suppression files. +

    +

    +
    See Also:
    Constant Field Values
    +

    diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/Settings.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/Settings.html index d20bdb4c2..c8276ec56 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/Settings.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/Settings.html @@ -2,13 +2,13 @@ - + -Settings (Dependency-Check Core 1.0.5 API) +Settings (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Settings (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Settings (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Settings (Dependency-Check Core 1.0.6 API)"; } } @@ -150,6 +150,14 @@ A simple settings container that wraps the dependencycheck.properties file.
    static FilegetDataFile(String key) + +
    +          Returns a value from the properties file as a File object.
    +static File getFile(String key)
    @@ -381,9 +389,28 @@ public static

    +getDataFile

    +
    +public static File getDataFile(String key)
    +
    +
    Returns a value from the properties file as a File object. If the value + was specified as a system property or passed in via the -Dprop=value + argument - this method will return the value from the system properties + before the values in the contained configuration file. + + This method will check the configured base directory and will use this as + the base of the file path. Additionally, if the base directory begins + with a leading "[JAR]\" sequence with the path to the folder containing + the JAR file containing this class.

    Parameters:
    key - the key to lookup within the properties file diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/UrlStringUtils.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/UrlStringUtils.html index f16b09c84..5aa279c26 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/UrlStringUtils.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/UrlStringUtils.html @@ -2,13 +2,13 @@ - + -UrlStringUtils (Dependency-Check Core 1.0.5 API) +UrlStringUtils (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ UrlStringUtils (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="UrlStringUtils (Dependency-Check Core 1.0.5 API)"; + parent.document.title="UrlStringUtils (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Checksum.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Checksum.html index f5a7fbbba..f44e6c8cb 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Checksum.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Checksum.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.utils.Checksum (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.utils.Checksum (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.utils.Checksum (Dependency-Check Core 1. function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.utils.Checksum (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.utils.Checksum (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/DependencyVersion.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/DependencyVersion.html index de0fd59b4..193154f00 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/DependencyVersion.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/DependencyVersion.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.utils.DependencyVersion (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.utils.DependencyVersion (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.utils.DependencyVersion (Dependency-Chec function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.utils.DependencyVersion (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.utils.DependencyVersion (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/DependencyVersionUtil.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/DependencyVersionUtil.html index d7725252f..b67810d22 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/DependencyVersionUtil.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/DependencyVersionUtil.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.utils.DependencyVersionUtil (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.utils.DependencyVersionUtil (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.utils.DependencyVersionUtil (Dependency- function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.utils.DependencyVersionUtil (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.utils.DependencyVersionUtil (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/DownloadFailedException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/DownloadFailedException.html index 73aa46249..0eca85158 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/DownloadFailedException.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/DownloadFailedException.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.utils.DownloadFailedException (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.utils.DownloadFailedException (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.utils.DownloadFailedException (Dependenc function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.utils.DownloadFailedException (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.utils.DownloadFailedException (Dependency-Check Core 1.0.6 API)"; } } @@ -167,7 +167,7 @@ Uses of updatesNeeded()
    -          Determines if the index needs to be updated.
    @@ -195,7 +195,7 @@ Uses of BatchUpdateTask(DataStoreMetaInfo properties)
    -          Constructs a new BatchUpdateTask.
    StandardUpdateTask(DataStoreMetaInfo properties) diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Downloader.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Downloader.html index 9fcac4ac9..06c031f7f 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Downloader.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Downloader.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.utils.Downloader (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.utils.Downloader (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.utils.Downloader (Dependency-Check Core function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.utils.Downloader (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.utils.Downloader (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/ExtractionException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/ExtractionException.html index ff1bb3fcf..d4adc4e2e 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/ExtractionException.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/ExtractionException.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.utils.ExtractionException (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.utils.ExtractionException (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.utils.ExtractionException (Dependency-Ch function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.utils.ExtractionException (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.utils.ExtractionException (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/FileUtils.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/FileUtils.html index a283a892e..b696c3219 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/FileUtils.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/FileUtils.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.utils.FileUtils (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.utils.FileUtils (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.utils.FileUtils (Dependency-Check Core 1 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.utils.FileUtils (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.utils.FileUtils (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Filter.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Filter.html index e1a080c2a..277236b39 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Filter.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Filter.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.utils.Filter (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.utils.Filter (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.utils.Filter (Dependency-Check Core 1.0. function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.utils.Filter (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.utils.Filter (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/InvalidSettingException.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/InvalidSettingException.html index d2ab90cb4..28fdc4ec1 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/InvalidSettingException.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/InvalidSettingException.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.utils.InvalidSettingException (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.utils.InvalidSettingException (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.utils.InvalidSettingException (Dependenc function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.utils.InvalidSettingException (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.utils.InvalidSettingException (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/LogFilter.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/LogFilter.html index 75de674df..165a6a9bd 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/LogFilter.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/LogFilter.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.utils.LogFilter (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.utils.LogFilter (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.utils.LogFilter (Dependency-Check Core 1 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.utils.LogFilter (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.utils.LogFilter (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/LogUtils.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/LogUtils.html index f51ef20fe..193f15b19 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/LogUtils.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/LogUtils.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.utils.LogUtils (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.utils.LogUtils (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.utils.LogUtils (Dependency-Check Core 1. function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.utils.LogUtils (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.utils.LogUtils (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/NonClosingStream.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/NonClosingStream.html index 6b16d3b97..af0a1d490 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/NonClosingStream.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/NonClosingStream.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.utils.NonClosingStream (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.utils.NonClosingStream (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.utils.NonClosingStream (Dependency-Check function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.utils.NonClosingStream (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.utils.NonClosingStream (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Settings.KEYS.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Settings.KEYS.html index efcb57cee..da2fd619a 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Settings.KEYS.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Settings.KEYS.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.utils.Settings.KEYS (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.utils.Settings.KEYS (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.utils.Settings.KEYS (Dependency-Check Co function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.utils.Settings.KEYS (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.utils.Settings.KEYS (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Settings.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Settings.html index 2d8837e60..edca9f0e8 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Settings.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/Settings.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.utils.Settings (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.utils.Settings (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.utils.Settings (Dependency-Check Core 1. function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.utils.Settings (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.utils.Settings (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/UrlStringUtils.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/UrlStringUtils.html index b6007918d..65390eaf6 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/UrlStringUtils.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/class-use/UrlStringUtils.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.utils.UrlStringUtils (Dependency-Check Core 1.0.5 API) +Uses of Class org.owasp.dependencycheck.utils.UrlStringUtils (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.utils.UrlStringUtils (Dependency-Check C function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.utils.UrlStringUtils (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.utils.UrlStringUtils (Dependency-Check Core 1.0.6 API)"; } } diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/package-frame.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/package-frame.html index dd11a90d5..55c126dfe 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/package-frame.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/package-frame.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.utils (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.utils (Dependency-Check Core 1.0.6 API) - + diff --git a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/package-summary.html b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/package-summary.html index ac48b2dc6..ecfbc8b67 100644 --- a/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/package-summary.html +++ b/dependency-check-core/apidocs/org/owasp/dependencycheck/utils/package-summary.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.utils (Dependency-Check Core 1.0.5 API) +org.owasp.dependencycheck.utils (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.utils (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.utils (Dependency-Check Core 1.0.5 API)"; + parent.document.title="org.owasp.dependencycheck.utils (Dependency-Check Core 1.0.6 API)"; } } @@ -56,7 +56,7 @@ function windowTitle()
    org.owasp.dependencycheck.suppression + + org.owasp.dependencycheck.suppression + + + Contains classes used to suppress findings.
    org.owasp.dependencycheck.utils diff --git a/dependency-check-core/apidocs/overview-tree.html b/dependency-check-core/apidocs/overview-tree.html index 670dd99f3..984ad073a 100644 --- a/dependency-check-core/apidocs/overview-tree.html +++ b/dependency-check-core/apidocs/overview-tree.html @@ -2,13 +2,13 @@ - + -Class Hierarchy (Dependency-Check Core 1.0.5 API) +Class Hierarchy (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Class Hierarchy (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Class Hierarchy (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Class Hierarchy (Dependency-Check Core 1.0.6 API)"; } } @@ -85,7 +85,7 @@ function windowTitle() Hierarchy For All Packages
    -
    Package Hierarchies:
    org.owasp.dependencycheck, org.owasp.dependencycheck.analyzer, org.owasp.dependencycheck.concurrency, org.owasp.dependencycheck.data, org.owasp.dependencycheck.data.cpe, org.owasp.dependencycheck.data.cwe, org.owasp.dependencycheck.data.lucene, org.owasp.dependencycheck.data.nvdcve, org.owasp.dependencycheck.data.update, org.owasp.dependencycheck.dependency, org.owasp.dependencycheck.jaxb.pom, org.owasp.dependencycheck.jaxb.pom.generated, org.owasp.dependencycheck.reporting, org.owasp.dependencycheck.utils
    +
    Package Hierarchies:
    org.owasp.dependencycheck, org.owasp.dependencycheck.analyzer, org.owasp.dependencycheck.concurrency, org.owasp.dependencycheck.data, org.owasp.dependencycheck.data.cpe, org.owasp.dependencycheck.data.cwe, org.owasp.dependencycheck.data.lucene, org.owasp.dependencycheck.data.nvdcve, org.owasp.dependencycheck.data.update, org.owasp.dependencycheck.dependency, org.owasp.dependencycheck.jaxb.pom, org.owasp.dependencycheck.jaxb.pom.generated, org.owasp.dependencycheck.reporting, org.owasp.dependencycheck.suppression, org.owasp.dependencycheck.utils

    Class Hierarchy @@ -94,6 +94,8 @@ Class Hierarchy
  • java.lang.Object -
  • org.owasp.dependencycheck.data.cpe.BaseIndex -
  • org.owasp.dependencycheck.jaxb.pom.generated.Build
  • org.owasp.dependencycheck.jaxb.pom.generated.Build.Extensions
  • org.owasp.dependencycheck.jaxb.pom.generated.Build.Filters
  • org.owasp.dependencycheck.jaxb.pom.generated.Build.Plugins
  • org.owasp.dependencycheck.jaxb.pom.generated.Build.Resources
  • org.owasp.dependencycheck.jaxb.pom.generated.Build.TestResources
  • org.owasp.dependencycheck.jaxb.pom.generated.BuildBase
  • org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Filters
  • org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Plugins
  • org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Resources
  • org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.TestResources
  • org.owasp.dependencycheck.utils.Checksum
  • org.owasp.dependencycheck.jaxb.pom.generated.CiManagement
  • org.owasp.dependencycheck.jaxb.pom.generated.CiManagement.Notifiers
  • org.owasp.dependencycheck.jaxb.pom.generated.Contributor
  • org.owasp.dependencycheck.jaxb.pom.generated.Contributor.Properties
  • org.owasp.dependencycheck.jaxb.pom.generated.Contributor.Roles
  • org.owasp.dependencycheck.analyzer.CPEAnalyzer (implements org.owasp.dependencycheck.analyzer.Analyzer) -
  • org.owasp.dependencycheck.data.nvdcve.CveDB
  • org.owasp.dependencycheck.data.cwe.CweDB
  • org.owasp.dependencycheck.data.update.DatabaseUpdater (implements org.owasp.dependencycheck.data.CachedWebDataSource) +
  • org.owasp.dependencycheck.data.BaseDB
      +
    • org.owasp.dependencycheck.data.nvdcve.CveDB
    +
  • org.owasp.dependencycheck.jaxb.pom.generated.Build
  • org.owasp.dependencycheck.jaxb.pom.generated.Build.Extensions
  • org.owasp.dependencycheck.jaxb.pom.generated.Build.Filters
  • org.owasp.dependencycheck.jaxb.pom.generated.Build.Plugins
  • org.owasp.dependencycheck.jaxb.pom.generated.Build.Resources
  • org.owasp.dependencycheck.jaxb.pom.generated.Build.TestResources
  • org.owasp.dependencycheck.jaxb.pom.generated.BuildBase
  • org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Filters
  • org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Plugins
  • org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.Resources
  • org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.TestResources
  • org.owasp.dependencycheck.data.update.CallableDownloadTask (implements java.util.concurrent.Callable<V>) +
  • org.owasp.dependencycheck.utils.Checksum
  • org.owasp.dependencycheck.jaxb.pom.generated.CiManagement
  • org.owasp.dependencycheck.jaxb.pom.generated.CiManagement.Notifiers
  • org.owasp.dependencycheck.jaxb.pom.generated.Contributor
  • org.owasp.dependencycheck.jaxb.pom.generated.Contributor.Properties
  • org.owasp.dependencycheck.jaxb.pom.generated.Contributor.Roles
  • org.owasp.dependencycheck.analyzer.CPEAnalyzer (implements org.owasp.dependencycheck.analyzer.Analyzer) +
  • org.owasp.dependencycheck.data.cpe.CpeMemoryIndex
  • org.owasp.dependencycheck.data.cwe.CweDB
  • org.owasp.dependencycheck.data.update.DatabaseUpdater (implements org.owasp.dependencycheck.data.CachedWebDataSource)
  • org.owasp.dependencycheck.data.update.DataStoreMetaInfo
  • org.xml.sax.helpers.DefaultHandler (implements org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler) +
  • org.owasp.dependencycheck.data.cwe.CweHandler
  • org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler
  • org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler
  • org.owasp.dependencycheck.suppression.SuppressionHandler
  • org.owasp.dependencycheck.dependency.Dependency (implements java.lang.Comparable<T>)
  • org.owasp.dependencycheck.jaxb.pom.generated.Dependency
  • org.owasp.dependencycheck.jaxb.pom.generated.Dependency.Exclusions
  • org.owasp.dependencycheck.jaxb.pom.generated.DependencyManagement
  • org.owasp.dependencycheck.jaxb.pom.generated.DependencyManagement.Dependencies
  • org.owasp.dependencycheck.utils.DependencyVersion (implements java.lang.Comparable<T>, java.lang.Iterable<T>)
  • org.owasp.dependencycheck.utils.DependencyVersionUtil
  • org.owasp.dependencycheck.jaxb.pom.generated.DeploymentRepository
  • org.owasp.dependencycheck.jaxb.pom.generated.Developer
  • org.owasp.dependencycheck.jaxb.pom.generated.Developer.Properties
  • org.owasp.dependencycheck.jaxb.pom.generated.Developer.Roles
  • org.owasp.dependencycheck.concurrency.DirectorySpinLock (implements java.io.Closeable) @@ -144,18 +147,19 @@ Class Hierarchy
  • org.owasp.dependencycheck.jaxb.pom.generated.IssueManagement
  • org.owasp.dependencycheck.analyzer.JarAnalyzer.ClassNameInformation
  • org.owasp.dependencycheck.jaxb.pom.generated.License
  • org.owasp.dependencycheck.utils.LogFilter (implements java.util.logging.Filter)
  • org.owasp.dependencycheck.utils.LogUtils
  • org.owasp.dependencycheck.data.lucene.LuceneUtils
  • org.owasp.dependencycheck.jaxb.pom.generated.MailingList
  • org.owasp.dependencycheck.jaxb.pom.generated.MailingList.OtherArchives
  • org.owasp.dependencycheck.jaxb.pom.generated.Model
  • org.owasp.dependencycheck.jaxb.pom.generated.Model.Contributors
  • org.owasp.dependencycheck.jaxb.pom.generated.Model.Dependencies
  • org.owasp.dependencycheck.jaxb.pom.generated.Model.Developers
  • org.owasp.dependencycheck.jaxb.pom.generated.Model.Licenses
  • org.owasp.dependencycheck.jaxb.pom.generated.Model.MailingLists
  • org.owasp.dependencycheck.jaxb.pom.generated.Model.Modules
  • org.owasp.dependencycheck.jaxb.pom.generated.Model.PluginRepositories
  • org.owasp.dependencycheck.jaxb.pom.generated.Model.Profiles
  • org.owasp.dependencycheck.jaxb.pom.generated.Model.Properties
  • org.owasp.dependencycheck.jaxb.pom.generated.Model.Reports
  • org.owasp.dependencycheck.jaxb.pom.generated.Model.Repositories
  • org.owasp.dependencycheck.jaxb.pom.generated.Notifier
  • org.owasp.dependencycheck.jaxb.pom.generated.Notifier.Configuration
  • org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler.Element
  • org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.Element
  • org.owasp.dependencycheck.analyzer.NvdCveAnalyzer (implements org.owasp.dependencycheck.analyzer.Analyzer) -
  • org.owasp.dependencycheck.data.update.NvdCveInfo
  • org.owasp.dependencycheck.jaxb.pom.generated.ObjectFactory
  • org.owasp.dependencycheck.jaxb.pom.generated.Organization
  • org.owasp.dependencycheck.jaxb.pom.generated.Parent
  • org.owasp.dependencycheck.jaxb.pom.generated.Plugin
  • org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Configuration
  • org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Dependencies
  • org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Executions
  • org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Goals
  • org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution
  • org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.Configuration
  • org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.Goals
  • org.owasp.dependencycheck.jaxb.pom.generated.PluginManagement
  • org.owasp.dependencycheck.jaxb.pom.generated.PluginManagement.Plugins
  • org.owasp.dependencycheck.jaxb.pom.generated.Prerequisites
  • org.owasp.dependencycheck.jaxb.pom.generated.Profile
  • org.owasp.dependencycheck.jaxb.pom.generated.Profile.Dependencies
  • org.owasp.dependencycheck.jaxb.pom.generated.Profile.Modules
  • org.owasp.dependencycheck.jaxb.pom.generated.Profile.PluginRepositories
  • org.owasp.dependencycheck.jaxb.pom.generated.Profile.Properties
  • org.owasp.dependencycheck.jaxb.pom.generated.Profile.Reports
  • org.owasp.dependencycheck.jaxb.pom.generated.Profile.Repositories
  • org.owasp.dependencycheck.dependency.Reference (implements java.lang.Comparable<T>, java.io.Serializable) +
  • org.owasp.dependencycheck.data.update.NvdCveInfo
  • org.owasp.dependencycheck.jaxb.pom.generated.ObjectFactory
  • org.owasp.dependencycheck.jaxb.pom.generated.Organization
  • org.owasp.dependencycheck.jaxb.pom.generated.Parent
  • org.owasp.dependencycheck.jaxb.pom.generated.Plugin
  • org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Configuration
  • org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Dependencies
  • org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Executions
  • org.owasp.dependencycheck.jaxb.pom.generated.Plugin.Goals
  • org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution
  • org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.Configuration
  • org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.Goals
  • org.owasp.dependencycheck.jaxb.pom.generated.PluginManagement
  • org.owasp.dependencycheck.jaxb.pom.generated.PluginManagement.Plugins
  • org.owasp.dependencycheck.jaxb.pom.generated.Prerequisites
  • org.owasp.dependencycheck.jaxb.pom.generated.Profile
  • org.owasp.dependencycheck.jaxb.pom.generated.Profile.Dependencies
  • org.owasp.dependencycheck.jaxb.pom.generated.Profile.Modules
  • org.owasp.dependencycheck.jaxb.pom.generated.Profile.PluginRepositories
  • org.owasp.dependencycheck.jaxb.pom.generated.Profile.Properties
  • org.owasp.dependencycheck.jaxb.pom.generated.Profile.Reports
  • org.owasp.dependencycheck.jaxb.pom.generated.Profile.Repositories
  • org.owasp.dependencycheck.suppression.PropertyType
  • org.owasp.dependencycheck.dependency.Reference (implements java.lang.Comparable<T>, java.io.Serializable)
  • org.owasp.dependencycheck.jaxb.pom.generated.Relocation
  • org.owasp.dependencycheck.reporting.ReportGenerator
  • org.owasp.dependencycheck.jaxb.pom.generated.Reporting
  • org.owasp.dependencycheck.jaxb.pom.generated.Reporting.Plugins
  • org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin
  • org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin.Configuration
  • org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin.ReportSets
  • org.owasp.dependencycheck.jaxb.pom.generated.ReportSet
  • org.owasp.dependencycheck.jaxb.pom.generated.ReportSet.Configuration
  • org.owasp.dependencycheck.jaxb.pom.generated.ReportSet.Reports
  • org.owasp.dependencycheck.jaxb.pom.generated.Repository
  • org.owasp.dependencycheck.jaxb.pom.generated.RepositoryPolicy
  • org.owasp.dependencycheck.jaxb.pom.generated.Resource
  • org.owasp.dependencycheck.jaxb.pom.generated.Resource.Excludes
  • org.owasp.dependencycheck.jaxb.pom.generated.Resource.Includes
  • org.owasp.dependencycheck.jaxb.pom.generated.Scm
  • org.owasp.dependencycheck.utils.Settings
  • org.owasp.dependencycheck.utils.Settings.KEYS
  • org.apache.lucene.search.similarities.Similarity
    • org.apache.lucene.search.similarities.TFIDFSimilarity
      • org.apache.lucene.search.similarities.DefaultSimilarity
    -
  • org.owasp.dependencycheck.jaxb.pom.generated.Site
  • java.lang.Throwable (implements java.io.Serializable) +
  • org.owasp.dependencycheck.jaxb.pom.generated.Site
  • org.owasp.dependencycheck.suppression.SuppressionErrorHandler (implements org.xml.sax.ErrorHandler) +
  • org.owasp.dependencycheck.suppression.SuppressionParser
  • org.owasp.dependencycheck.suppression.SuppressionRule
  • java.lang.Throwable (implements java.io.Serializable)
  • org.owasp.dependencycheck.data.update.Updateable (implements java.lang.Iterable<T>, java.util.Iterator<E>) diff --git a/dependency-check-core/apidocs/package-list b/dependency-check-core/apidocs/package-list index 94c452da0..410059f16 100644 --- a/dependency-check-core/apidocs/package-list +++ b/dependency-check-core/apidocs/package-list @@ -11,4 +11,5 @@ org.owasp.dependencycheck.dependency org.owasp.dependencycheck.jaxb.pom org.owasp.dependencycheck.jaxb.pom.generated org.owasp.dependencycheck.reporting +org.owasp.dependencycheck.suppression org.owasp.dependencycheck.utils diff --git a/dependency-check-core/apidocs/serialized-form.html b/dependency-check-core/apidocs/serialized-form.html index d64d9d27b..d70a8cd37 100644 --- a/dependency-check-core/apidocs/serialized-form.html +++ b/dependency-check-core/apidocs/serialized-form.html @@ -2,13 +2,13 @@ - + -Serialized Form (Dependency-Check Core 1.0.5 API) +Serialized Form (Dependency-Check Core 1.0.6 API) - + @@ -16,7 +16,7 @@ Serialized Form (Dependency-Check Core 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Serialized Form (Dependency-Check Core 1.0.5 API)"; + parent.document.title="Serialized Form (Dependency-Check Core 1.0.6 API)"; } } @@ -265,6 +265,20 @@ float searchScore
    + +

    + + + + + +
    +Class org.owasp.dependencycheck.data.cpe.IndexException extends Exception implements Serializable
    + +

    +serialVersionUID: 1L + +


    @@ -608,6 +622,28 @@ edition
    +
    + + + +
    +Package org.owasp.dependencycheck.suppression
    + +

    + + + + + +
    +Class org.owasp.dependencycheck.suppression.SuppressionParseException extends IOException implements Serializable
    + +

    +serialVersionUID: 1L + +

    +


    + - +
    diff --git a/dependency-check-core/checkstyle.html b/dependency-check-core/checkstyle.html index 6a9863a79..31112ddb4 100644 --- a/dependency-check-core/checkstyle.html +++ b/dependency-check-core/checkstyle.html @@ -1,13 +1,13 @@ - + dependency-check-core - Checkstyle Results @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -227,7 +227,7 @@
    Warnings Warnings Errors Errors
    151162 0 0 1
    diff --git a/dependency-check-core/checkstyle.rss b/dependency-check-core/checkstyle.rss index 0dca10c5c..b807685f4 100644 --- a/dependency-check-core/checkstyle.rss +++ b/dependency-check-core/checkstyle.rss @@ -8,7 +8,7 @@ en-us ©2012 - 2013 OWASP - File: 151, + <title>File: 162, Errors: 1, Warnings: 0, Infos: 0 @@ -155,7 +155,7 @@ </tr> <tr> <td> - <a href="https://github.com/jeremylong/DependencyCheck.git/dependency-check-core/checkstyle.html#org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler.java">org/owasp/dependencycheck/data/nvdcve/NvdCve12Handler.java</a> + <a href="https://github.com/jeremylong/DependencyCheck.git/dependency-check-core/checkstyle.html#org.owasp.dependencycheck.data.lucene.AbstractTokenizingFilter.java">org/owasp/dependencycheck/data/lucene/AbstractTokenizingFilter.java</a> </td> <td> 0 @@ -169,7 +169,7 @@ </tr> <tr> <td> - <a href="https://github.com/jeremylong/DependencyCheck.git/dependency-check-core/checkstyle.html#org.owasp.dependencycheck.data.lucene.AbstractTokenizingFilter.java">org/owasp/dependencycheck/data/lucene/AbstractTokenizingFilter.java</a> + <a href="https://github.com/jeremylong/DependencyCheck.git/dependency-check-core/checkstyle.html#org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler.java">org/owasp/dependencycheck/data/nvdcve/NvdCve12Handler.java</a> </td> <td> 0 @@ -320,6 +320,20 @@ <td> 0 </td> + </tr> + <tr> + <td> + <a href="https://github.com/jeremylong/DependencyCheck.git/dependency-check-core/checkstyle.html#org.owasp.dependencycheck.data.update.CallableDownloadTask.java">org/owasp/dependencycheck/data/update/CallableDownloadTask.java</a> + </td> + <td> + 0 + </td> + <td> + 0 + </td> + <td> + 0 + </td> </tr> <tr> <td> @@ -334,6 +348,20 @@ <td> 0 </td> + </tr> + <tr> + <td> + <a href="https://github.com/jeremylong/DependencyCheck.git/dependency-check-core/checkstyle.html#org.owasp.dependencycheck.analyzer.CpeSuppressionAnalyzer.java">org/owasp/dependencycheck/analyzer/CpeSuppressionAnalyzer.java</a> + </td> + <td> + 0 + </td> + <td> + 0 + </td> + <td> + 0 + </td> </tr> <tr> <td> @@ -376,6 +404,20 @@ <td> 0 </td> + </tr> + <tr> + <td> + <a href="https://github.com/jeremylong/DependencyCheck.git/dependency-check-core/checkstyle.html#org.owasp.dependencycheck.jaxb.pom.generated.Parent.java">org/owasp/dependencycheck/jaxb/pom/generated/Parent.java</a> + </td> + <td> + 0 + </td> + <td> + 0 + </td> + <td> + 0 + </td> </tr> <tr> <td> @@ -404,20 +446,6 @@ <td> 0 </td> - </tr> - <tr> - <td> - <a href="https://github.com/jeremylong/DependencyCheck.git/dependency-check-core/checkstyle.html#org.owasp.dependencycheck.jaxb.pom.generated.Parent.java">org/owasp/dependencycheck/jaxb/pom/generated/Parent.java</a> - </td> - <td> - 0 - </td> - <td> - 0 - </td> - <td> - 0 - </td> </tr> <tr> <td> @@ -684,6 +712,20 @@ <td> 0 </td> + </tr> + <tr> + <td> + <a href="https://github.com/jeremylong/DependencyCheck.git/dependency-check-core/checkstyle.html#org.owasp.dependencycheck.data.cpe.CpeMemoryIndex.java">org/owasp/dependencycheck/data/cpe/CpeMemoryIndex.java</a> + </td> + <td> + 0 + </td> + <td> + 0 + </td> + <td> + 0 + </td> </tr> <tr> <td> @@ -712,6 +754,20 @@ <td> 0 </td> + </tr> + <tr> + <td> + <a href="https://github.com/jeremylong/DependencyCheck.git/dependency-check-core/checkstyle.html#org.owasp.dependencycheck.suppression.PropertyType.java">org/owasp/dependencycheck/suppression/PropertyType.java</a> + </td> + <td> + 0 + </td> + <td> + 0 + </td> + <td> + 0 + </td> </tr> <tr> <td> @@ -782,6 +838,20 @@ <td> 0 </td> + </tr> + <tr> + <td> + <a href="https://github.com/jeremylong/DependencyCheck.git/dependency-check-core/checkstyle.html#org.owasp.dependencycheck.suppression.package-info.java">org/owasp/dependencycheck/suppression/package-info.java</a> + </td> + <td> + 0 + </td> + <td> + 0 + </td> + <td> + 0 + </td> </tr> <tr> <td> @@ -838,6 +908,20 @@ <td> 0 </td> + </tr> + <tr> + <td> + <a href="https://github.com/jeremylong/DependencyCheck.git/dependency-check-core/checkstyle.html#org.owasp.dependencycheck.suppression.SuppressionParser.java">org/owasp/dependencycheck/suppression/SuppressionParser.java</a> + </td> + <td> + 0 + </td> + <td> + 0 + </td> + <td> + 0 + </td> </tr> <tr> <td> @@ -1384,6 +1468,34 @@ <td> 0 </td> + </tr> + <tr> + <td> + <a href="https://github.com/jeremylong/DependencyCheck.git/dependency-check-core/checkstyle.html#org.owasp.dependencycheck.data.cpe.IndexException.java">org/owasp/dependencycheck/data/cpe/IndexException.java</a> + </td> + <td> + 0 + </td> + <td> + 0 + </td> + <td> + 0 + </td> + </tr> + <tr> + <td> + <a href="https://github.com/jeremylong/DependencyCheck.git/dependency-check-core/checkstyle.html#org.owasp.dependencycheck.suppression.SuppressionRule.java">org/owasp/dependencycheck/suppression/SuppressionRule.java</a> + </td> + <td> + 0 + </td> + <td> + 0 + </td> + <td> + 0 + </td> </tr> <tr> <td> @@ -1555,7 +1667,21 @@ </tr> <tr> <td> - <a href="https://github.com/jeremylong/DependencyCheck.git/dependency-check-core/checkstyle.html#org.owasp.dependencycheck.data.cpe.BaseIndex.java">org/owasp/dependencycheck/data/cpe/BaseIndex.java</a> + <a href="https://github.com/jeremylong/DependencyCheck.git/dependency-check-core/checkstyle.html#org.owasp.dependencycheck.suppression.SuppressionHandler.java">org/owasp/dependencycheck/suppression/SuppressionHandler.java</a> + </td> + <td> + 0 + </td> + <td> + 0 + </td> + <td> + 0 + </td> + </tr> + <tr> + <td> + <a href="https://github.com/jeremylong/DependencyCheck.git/dependency-check-core/checkstyle.html#org.owasp.dependencycheck.analyzer.VulnerabilitySuppressionAnalyzer.java">org/owasp/dependencycheck/analyzer/VulnerabilitySuppressionAnalyzer.java</a> </td> <td> 0 @@ -1681,7 +1807,7 @@ </tr> <tr> <td> - <a href="https://github.com/jeremylong/DependencyCheck.git/dependency-check-core/checkstyle.html#org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzer.java">org/owasp/dependencycheck/analyzer/DependencyBundlingAnalyzer.java</a> + <a href="https://github.com/jeremylong/DependencyCheck.git/dependency-check-core/checkstyle.html#org.owasp.dependencycheck.jaxb.pom.generated.Organization.java">org/owasp/dependencycheck/jaxb/pom/generated/Organization.java</a> </td> <td> 0 @@ -1695,7 +1821,7 @@ </tr> <tr> <td> - <a href="https://github.com/jeremylong/DependencyCheck.git/dependency-check-core/checkstyle.html#org.owasp.dependencycheck.jaxb.pom.generated.Organization.java">org/owasp/dependencycheck/jaxb/pom/generated/Organization.java</a> + <a href="https://github.com/jeremylong/DependencyCheck.git/dependency-check-core/checkstyle.html#org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzer.java">org/owasp/dependencycheck/analyzer/DependencyBundlingAnalyzer.java</a> </td> <td> 0 @@ -1734,6 +1860,20 @@ <td> 0 </td> + </tr> + <tr> + <td> + <a href="https://github.com/jeremylong/DependencyCheck.git/dependency-check-core/checkstyle.html#org.owasp.dependencycheck.suppression.SuppressionParseException.java">org/owasp/dependencycheck/suppression/SuppressionParseException.java</a> + </td> + <td> + 0 + </td> + <td> + 0 + </td> + <td> + 0 + </td> </tr> <tr> <td> @@ -1765,7 +1905,7 @@ </tr> <tr> <td> - <a href="https://github.com/jeremylong/DependencyCheck.git/dependency-check-core/checkstyle.html#org.owasp.dependencycheck.data.lucene.SearchFieldAnalyzer.java">org/owasp/dependencycheck/data/lucene/SearchFieldAnalyzer.java</a> + <a href="https://github.com/jeremylong/DependencyCheck.git/dependency-check-core/checkstyle.html#org.owasp.dependencycheck.analyzer.AbstractSuppressionAnalyzer.java">org/owasp/dependencycheck/analyzer/AbstractSuppressionAnalyzer.java</a> </td> <td> 0 @@ -1779,7 +1919,7 @@ </tr> <tr> <td> - <a href="https://github.com/jeremylong/DependencyCheck.git/dependency-check-core/checkstyle.html#org.owasp.dependencycheck.data.cpe.CpeIndexWriter.java">org/owasp/dependencycheck/data/cpe/CpeIndexWriter.java</a> + <a href="https://github.com/jeremylong/DependencyCheck.git/dependency-check-core/checkstyle.html#org.owasp.dependencycheck.data.lucene.SearchFieldAnalyzer.java">org/owasp/dependencycheck/data/lucene/SearchFieldAnalyzer.java</a> </td> <td> 0 @@ -1874,20 +2014,6 @@ <td> 0 </td> - </tr> - <tr> - <td> - <a href="https://github.com/jeremylong/DependencyCheck.git/dependency-check-core/checkstyle.html#org.owasp.dependencycheck.data.cpe.CpeIndexReader.java">org/owasp/dependencycheck/data/cpe/CpeIndexReader.java</a> - </td> - <td> - 0 - </td> - <td> - 0 - </td> - <td> - 0 - </td> </tr> <tr> <td> @@ -2056,6 +2182,20 @@ <td> 0 </td> + </tr> + <tr> + <td> + <a href="https://github.com/jeremylong/DependencyCheck.git/dependency-check-core/checkstyle.html#org.owasp.dependencycheck.suppression.SuppressionErrorHandler.java">org/owasp/dependencycheck/suppression/SuppressionErrorHandler.java</a> + </td> + <td> + 0 + </td> + <td> + 0 + </td> + <td> + 0 + </td> </tr> <tr> <td> @@ -2112,6 +2252,20 @@ <td> 0 </td> + </tr> + <tr> + <td> + <a href="https://github.com/jeremylong/DependencyCheck.git/dependency-check-core/checkstyle.html#org.owasp.dependencycheck.data.BaseDB.java">org/owasp/dependencycheck/data/BaseDB.java</a> + </td> + <td> + 0 + </td> + <td> + 0 + </td> + <td> + 0 + </td> </tr> <tr> <td> diff --git a/dependency-check-core/cobertura/frame-packages.html b/dependency-check-core/cobertura/frame-packages.html index a86db9b53..ff5316f5f 100644 --- a/dependency-check-core/cobertura/frame-packages.html +++ b/dependency-check-core/cobertura/frame-packages.html @@ -52,6 +52,9 @@ <td nowrap="nowrap"><a href="frame-summary-org.owasp.dependencycheck.reporting.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.reporting.html"' target="summary">org.owasp.dependencycheck.reporting</a></td> </tr> <tr> +<td nowrap="nowrap"><a href="frame-summary-org.owasp.dependencycheck.suppression.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.suppression.html"' target="summary">org.owasp.dependencycheck.suppression</a></td> +</tr> +<tr> <td nowrap="nowrap"><a href="frame-summary-org.owasp.dependencycheck.utils.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.utils.html"' target="summary">org.owasp.dependencycheck.utils</a></td> </tr> </table> diff --git a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.analyzer.html b/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.analyzer.html index d92a218e0..0cda173f2 100644 --- a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.analyzer.html +++ b/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.analyzer.html @@ -18,6 +18,9 @@ org.owasp.dependencycheck.analyzer <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.analyzer.AbstractAnalyzer.html">AbstractAnalyzer</a> <i>(100%)</i></td> </tr> <tr> +<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.analyzer.AbstractSuppressionAnalyzer.html">AbstractSuppressionAnalyzer</a> <i>(47%)</i></td> +</tr> +<tr> <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.analyzer.AnalysisException.html">AnalysisException</a> <i>(0%)</i></td> </tr> <tr> @@ -36,7 +39,10 @@ org.owasp.dependencycheck.analyzer <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.analyzer.ArchiveExtractionException.html">ArchiveExtractionException</a> <i>(0%)</i></td> </tr> <tr> -<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.analyzer.CPEAnalyzer.html">CPEAnalyzer</a> <i>(81%)</i></td> +<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.analyzer.CPEAnalyzer.html">CPEAnalyzer</a> <i>(80%)</i></td> +</tr> +<tr> +<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.analyzer.CpeSuppressionAnalyzer.html">CpeSuppressionAnalyzer</a> <i>(66%)</i></td> </tr> <tr> <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzer.html">DependencyBundlingAnalyzer</a> <i>(33%)</i></td> @@ -59,6 +65,9 @@ org.owasp.dependencycheck.analyzer <tr> <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.analyzer.NvdCveAnalyzer.html">NvdCveAnalyzer</a> <i>(74%)</i></td> </tr> +<tr> +<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.analyzer.VulnerabilitySuppressionAnalyzer.html">VulnerabilitySuppressionAnalyzer</a> <i>(66%)</i></td> +</tr> </tbody> </table> </body> diff --git a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.data.cpe.html b/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.data.cpe.html index d0644e08c..4f8990e90 100644 --- a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.data.cpe.html +++ b/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.data.cpe.html @@ -15,13 +15,7 @@ org.owasp.dependencycheck.data.cpe <table width="100%"> <tbody> <tr> -<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.cpe.BaseIndex.html">BaseIndex</a> <i>(73%)</i></td> -</tr> -<tr> -<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.cpe.CpeIndexReader.html">CpeIndexReader</a> <i>(60%)</i></td> -</tr> -<tr> -<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.cpe.CpeIndexWriter.html">CpeIndexWriter</a> <i>(48%)</i></td> +<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.cpe.CpeMemoryIndex.html">CpeMemoryIndex</a> <i>(72%)</i></td> </tr> <tr> <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.cpe.Fields.html">Fields</a> <i>(0%)</i></td> @@ -29,6 +23,9 @@ org.owasp.dependencycheck.data.cpe <tr> <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.cpe.IndexEntry.html">IndexEntry</a> <i>(63%)</i></td> </tr> +<tr> +<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.cpe.IndexException.html">IndexException</a> <i>(0%)</i></td> +</tr> </tbody> </table> </body> diff --git a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.data.html b/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.data.html index 05988dbbf..1c7662d3b 100644 --- a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.data.html +++ b/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.data.html @@ -15,6 +15,9 @@ org.owasp.dependencycheck.data <table width="100%"> <tbody> <tr> +<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.BaseDB.html">BaseDB</a> <i>(45%)</i></td> +</tr> +<tr> <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.CachedWebDataSource.html">CachedWebDataSource</a> <i>(N/A)</i></td> </tr> <tr> diff --git a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.data.nvdcve.html b/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.data.nvdcve.html index 4eef4c009..3edcbc5fb 100644 --- a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.data.nvdcve.html +++ b/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.data.nvdcve.html @@ -30,7 +30,7 @@ org.owasp.dependencycheck.data.nvdcve <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler.html">NvdCve12Handler</a> <i>(93%)</i></td> </tr> <tr> -<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.html">NvdCve20Handler</a> <i>(79%)</i></td> +<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.html">NvdCve20Handler</a> <i>(82%)</i></td> </tr> </tbody> </table> diff --git a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.data.update.html b/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.data.update.html index 05750ef1e..099e287ce 100644 --- a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.data.update.html +++ b/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.data.update.html @@ -15,12 +15,15 @@ org.owasp.dependencycheck.data.update <table width="100%"> <tbody> <tr> -<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.update.AbstractUpdateTask.html">AbstractUpdateTask</a> <i>(51%)</i></td> +<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.update.AbstractUpdateTask.html">AbstractUpdateTask</a> <i>(47%)</i></td> </tr> <tr> <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.update.BatchUpdateTask.html">BatchUpdateTask</a> <i>(28%)</i></td> </tr> <tr> +<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.update.CallableDownloadTask.html">CallableDownloadTask</a> <i>(0%)</i></td> +</tr> +<tr> <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.update.DataStoreMetaInfo.html">DataStoreMetaInfo</a> <i>(65%)</i></td> </tr> <tr> diff --git a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.dependency.html b/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.dependency.html index 3b6208cd5..331f53e1e 100644 --- a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.dependency.html +++ b/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.dependency.html @@ -15,7 +15,7 @@ org.owasp.dependencycheck.dependency <table width="100%"> <tbody> <tr> -<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.dependency.Dependency.html">Dependency</a> <i>(59%)</i></td> +<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.dependency.Dependency.html">Dependency</a> <i>(60%)</i></td> </tr> <tr> <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.dependency.Evidence.html">Evidence</a> <i>(53%)</i></td> @@ -30,7 +30,7 @@ org.owasp.dependencycheck.dependency <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.dependency.Reference.html">Reference</a> <i>(41%)</i></td> </tr> <tr> -<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.dependency.Vulnerability.html">Vulnerability</a> <i>(66%)</i></td> +<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.dependency.Vulnerability.html">Vulnerability</a> <i>(70%)</i></td> </tr> <tr> <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.dependency.VulnerabilityComparator.html">VulnerabilityComparator</a> <i>(100%)</i></td> diff --git a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.html b/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.html index 891b884de..728242878 100644 --- a/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.html +++ b/dependency-check-core/cobertura/frame-sourcefiles-org.owasp.dependencycheck.html @@ -15,7 +15,7 @@ org.owasp.dependencycheck <table width="100%"> <tbody> <tr> -<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.Engine.html">Engine</a> <i>(60%)</i></td> +<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.Engine.html">Engine</a> <i>(58%)</i></td> </tr> </tbody> </table> diff --git a/dependency-check-core/cobertura/frame-sourcefiles.html b/dependency-check-core/cobertura/frame-sourcefiles.html index 59c775ee3..d0a979fa4 100644 --- a/dependency-check-core/cobertura/frame-sourcefiles.html +++ b/dependency-check-core/cobertura/frame-sourcefiles.html @@ -18,10 +18,13 @@ All Packages <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.analyzer.AbstractAnalyzer.html">AbstractAnalyzer</a> <i>(100%)</i></td> </tr> <tr> +<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.analyzer.AbstractSuppressionAnalyzer.html">AbstractSuppressionAnalyzer</a> <i>(47%)</i></td> +</tr> +<tr> <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.lucene.AbstractTokenizingFilter.html">AbstractTokenizingFilter</a> <i>(100%)</i></td> </tr> <tr> -<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.update.AbstractUpdateTask.html">AbstractUpdateTask</a> <i>(51%)</i></td> +<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.update.AbstractUpdateTask.html">AbstractUpdateTask</a> <i>(47%)</i></td> </tr> <tr> <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.jaxb.pom.generated.Activation.html">Activation</a> <i>(6%)</i></td> @@ -57,7 +60,7 @@ All Packages <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.analyzer.ArchiveExtractionException.html">ArchiveExtractionException</a> <i>(0%)</i></td> </tr> <tr> -<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.cpe.BaseIndex.html">BaseIndex</a> <i>(73%)</i></td> +<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.BaseDB.html">BaseDB</a> <i>(45%)</i></td> </tr> <tr> <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.update.BatchUpdateTask.html">BatchUpdateTask</a> <i>(28%)</i></td> @@ -69,12 +72,15 @@ All Packages <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.html">BuildBase</a> <i>(7%)</i></td> </tr> <tr> -<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.analyzer.CPEAnalyzer.html">CPEAnalyzer</a> <i>(81%)</i></td> +<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.analyzer.CPEAnalyzer.html">CPEAnalyzer</a> <i>(80%)</i></td> </tr> <tr> <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.CachedWebDataSource.html">CachedWebDataSource</a> <i>(N/A)</i></td> </tr> <tr> +<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.update.CallableDownloadTask.html">CallableDownloadTask</a> <i>(0%)</i></td> +</tr> +<tr> <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.utils.Checksum.html">Checksum</a> <i>(84%)</i></td> </tr> <tr> @@ -87,10 +93,10 @@ All Packages <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.nvdcve.CorruptDatabaseException.html">CorruptDatabaseException</a> <i>(0%)</i></td> </tr> <tr> -<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.cpe.CpeIndexReader.html">CpeIndexReader</a> <i>(60%)</i></td> +<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.cpe.CpeMemoryIndex.html">CpeMemoryIndex</a> <i>(72%)</i></td> </tr> <tr> -<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.cpe.CpeIndexWriter.html">CpeIndexWriter</a> <i>(48%)</i></td> +<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.analyzer.CpeSuppressionAnalyzer.html">CpeSuppressionAnalyzer</a> <i>(66%)</i></td> </tr> <tr> <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.nvdcve.CveDB.html">CveDB</a> <i>(47%)</i></td> @@ -111,7 +117,7 @@ All Packages <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.update.DatabaseUpdater.html">DatabaseUpdater</a> <i>(0%)</i></td> </tr> <tr> -<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.dependency.Dependency.html">Dependency</a> <i>(59%)</i></td> +<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.dependency.Dependency.html">Dependency</a> <i>(60%)</i></td> </tr> <tr> <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.jaxb.pom.generated.Dependency.html">Dependency</a> <i>(9%)</i></td> @@ -153,7 +159,7 @@ All Packages <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.utils.Downloader.html">Downloader</a> <i>(7%)</i></td> </tr> <tr> -<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.Engine.html">Engine</a> <i>(60%)</i></td> +<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.Engine.html">Engine</a> <i>(58%)</i></td> </tr> <tr> <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.dependency.Evidence.html">Evidence</a> <i>(53%)</i></td> @@ -198,6 +204,9 @@ All Packages <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.cpe.IndexEntry.html">IndexEntry</a> <i>(63%)</i></td> </tr> <tr> +<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.cpe.IndexException.html">IndexException</a> <i>(0%)</i></td> +</tr> +<tr> <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.nvdcve.InvalidDataException.html">InvalidDataException</a> <i>(0%)</i></td> </tr> <tr> @@ -249,7 +258,7 @@ All Packages <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler.html">NvdCve12Handler</a> <i>(93%)</i></td> </tr> <tr> -<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.html">NvdCve20Handler</a> <i>(79%)</i></td> +<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.html">NvdCve20Handler</a> <i>(82%)</i></td> </tr> <tr> <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.analyzer.NvdCveAnalyzer.html">NvdCveAnalyzer</a> <i>(74%)</i></td> @@ -282,6 +291,9 @@ All Packages <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.jaxb.pom.generated.Profile.html">Profile</a> <i>(4%)</i></td> </tr> <tr> +<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.suppression.PropertyType.html">PropertyType</a> <i>(70%)</i></td> +</tr> +<tr> <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.dependency.Reference.html">Reference</a> <i>(41%)</i></td> </tr> <tr> @@ -327,6 +339,21 @@ All Packages <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.update.StandardUpdateTask.html">StandardUpdateTask</a> <i>(0%)</i></td> </tr> <tr> +<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.suppression.SuppressionErrorHandler.html">SuppressionErrorHandler</a> <i>(6%)</i></td> +</tr> +<tr> +<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.suppression.SuppressionHandler.html">SuppressionHandler</a> <i>(97%)</i></td> +</tr> +<tr> +<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.suppression.SuppressionParseException.html">SuppressionParseException</a> <i>(0%)</i></td> +</tr> +<tr> +<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.suppression.SuppressionParser.html">SuppressionParser</a> <i>(58%)</i></td> +</tr> +<tr> +<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.suppression.SuppressionRule.html">SuppressionRule</a> <i>(95%)</i></td> +</tr> +<tr> <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.lucene.TokenPairConcatenatingFilter.html">TokenPairConcatenatingFilter</a> <i>(100%)</i></td> </tr> <tr> @@ -360,12 +387,15 @@ All Packages <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.data.lucene.VersionTokenizingFilter.html">VersionTokenizingFilter</a> <i>(0%)</i></td> </tr> <tr> -<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.dependency.Vulnerability.html">Vulnerability</a> <i>(66%)</i></td> +<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.dependency.Vulnerability.html">Vulnerability</a> <i>(70%)</i></td> </tr> <tr> <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.dependency.VulnerabilityComparator.html">VulnerabilityComparator</a> <i>(100%)</i></td> </tr> <tr> +<td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.analyzer.VulnerabilitySuppressionAnalyzer.html">VulnerabilitySuppressionAnalyzer</a> <i>(66%)</i></td> +</tr> +<tr> <td nowrap="nowrap"><a target="summary" href="org.owasp.dependencycheck.dependency.VulnerableSoftware.html">VulnerableSoftware</a> <i>(76%)</i></td> </tr> <tr> diff --git a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.analyzer.html b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.analyzer.html index 79eb84f32..05aa7b609 100644 --- a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.analyzer.html +++ b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.analyzer.html @@ -16,7 +16,7 @@ <table class="report" id="packageResults"> <thead><tr> <td class="heading">Package</td> <td class="heading"># Classes</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead> <tbody> - <tr><td><a href="frame-summary-org.owasp.dependencycheck.analyzer.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.analyzer.html"'>org.owasp.dependencycheck.analyzer</a></td><td class="value">18</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">72%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:72px"><span class="text">845/1171</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">60%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:60px"><span class="text">433/718</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.141843971631205;</span>4.142</td></tr> + <tr><td><a href="frame-summary-org.owasp.dependencycheck.analyzer.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.analyzer.html"'>org.owasp.dependencycheck.analyzer</a></td><td class="value">21</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">71%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:71px"><span class="text">864/1209</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">59%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:59px"><span class="text">431/726</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.006622516556291;</span>4.007</td></tr> </tbody> </table> <script type="text/javascript"> @@ -30,6 +30,8 @@ packageTable.sort(0); <tbody> <tr><td><a href="org.owasp.dependencycheck.analyzer.AbstractAnalyzer.html">AbstractAnalyzer</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">100%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">6/6</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.0;</span>1</td></tr> + <tr><td><a href="org.owasp.dependencycheck.analyzer.AbstractSuppressionAnalyzer.html">AbstractSuppressionAnalyzer</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">47%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:47px"><span class="text">10/21</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">50%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:50px"><span class="text">1/2</span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.5;</span>1.5</td></tr> + <tr><td><a href="org.owasp.dependencycheck.analyzer.AnalysisException.html">AnalysisException</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/8</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.0;</span>1</td></tr> <tr><td><a href="org.owasp.dependencycheck.analyzer.AnalysisPhase.html">AnalysisPhase</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">100%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">10/10</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">0.0;</span>0</td></tr> @@ -42,9 +44,11 @@ packageTable.sort(0); <tr><td><a href="org.owasp.dependencycheck.analyzer.ArchiveExtractionException.html">ArchiveExtractionException</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/8</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.0;</span>1</td></tr> - <tr><td><a href="org.owasp.dependencycheck.analyzer.CPEAnalyzer.html">CPEAnalyzer</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">89%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:89px"><span class="text">175/196</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">84%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:84px"><span class="text">108/128</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.0625;</span>4.062</td></tr> - <tr><td><a href="org.owasp.dependencycheck.analyzer.CPEAnalyzer.html">CPEAnalyzer$IdentifierConfidence</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">100%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">3/3</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.0625;</span>4.062</td></tr> - <tr><td><a href="org.owasp.dependencycheck.analyzer.CPEAnalyzer.html">CPEAnalyzer$IdentifierMatch</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">38%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:38px"><span class="text">15/39</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">16%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:16px"><span class="text">4/24</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.0625;</span>4.062</td></tr> + <tr><td><a href="org.owasp.dependencycheck.analyzer.CPEAnalyzer.html">CPEAnalyzer</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">88%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:88px"><span class="text">172/195</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">84%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:84px"><span class="text">103/122</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.266666666666667;</span>4.267</td></tr> + <tr><td><a href="org.owasp.dependencycheck.analyzer.CPEAnalyzer.html">CPEAnalyzer$IdentifierConfidence</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">100%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">3/3</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.266666666666667;</span>4.267</td></tr> + <tr><td><a href="org.owasp.dependencycheck.analyzer.CPEAnalyzer.html">CPEAnalyzer$IdentifierMatch</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">38%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:38px"><span class="text">15/39</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">16%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:16px"><span class="text">4/24</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.266666666666667;</span>4.267</td></tr> + + <tr><td><a href="org.owasp.dependencycheck.analyzer.CpeSuppressionAnalyzer.html">CpeSuppressionAnalyzer</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">66%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:66px"><span class="text">6/9</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">16%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:16px"><span class="text">1/6</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.3333333333333335;</span>2.333</td></tr> <tr><td><a href="org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzer.html">DependencyBundlingAnalyzer</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">33%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:33px"><span class="text">37/112</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">26%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:26px"><span class="text">25/96</span></div></div></td></tr></table></td><td class="value"><span class="hidden">6.9;</span>6.9</td></tr> @@ -61,6 +65,8 @@ packageTable.sort(0); <tr><td><a href="org.owasp.dependencycheck.analyzer.NvdCveAnalyzer.html">NvdCveAnalyzer</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">74%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:74px"><span class="text">20/27</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">37%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:37px"><span class="text">3/8</span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.5;</span>1.5</td></tr> + <tr><td><a href="org.owasp.dependencycheck.analyzer.VulnerabilitySuppressionAnalyzer.html">VulnerabilitySuppressionAnalyzer</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">66%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:66px"><span class="text">6/9</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">16%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:16px"><span class="text">1/6</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.3333333333333335;</span>2.333</td></tr> + </tbody> </table> <script type="text/javascript"> @@ -68,6 +74,6 @@ var classTable = new SortableTable(document.getElementById("classResults"), ["String", "Percentage", "Percentage", "FormattedNumber"]); classTable.sort(0); </script> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.concurrency.html b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.concurrency.html index d1d876309..3ec059df7 100644 --- a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.concurrency.html +++ b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.concurrency.html @@ -41,6 +41,6 @@ var classTable = new SortableTable(document.getElementById("classResults"), ["String", "Percentage", "Percentage", "FormattedNumber"]); classTable.sort(0); </script> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.cpe.html b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.cpe.html index ef6b7c9cc..f6ec7093c 100644 --- a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.cpe.html +++ b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.cpe.html @@ -16,7 +16,7 @@ <table class="report" id="packageResults"> <thead><tr> <td class="heading">Package</td> <td class="heading"># Classes</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead> <tbody> - <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.cpe.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.cpe.html"'>org.owasp.dependencycheck.data.cpe</a></td><td class="value">5</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">58%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:58px"><span class="text">96/163</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">35%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:35px"><span class="text">21/60</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.3225806451612905;</span>2.323</td></tr> + <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.cpe.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.cpe.html"'>org.owasp.dependencycheck.data.cpe</a></td><td class="value">4</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">65%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:65px"><span class="text">93/141</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">41%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:41px"><span class="text">24/58</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.566666666666667;</span>2.567</td></tr> </tbody> </table> <script type="text/javascript"> @@ -28,16 +28,14 @@ packageTable.sort(0); <table class="report" id="classResults"> <thead><tr> <td class="heading">Classes in this Package</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead> <tbody> - <tr><td><a href="org.owasp.dependencycheck.data.cpe.BaseIndex.html">BaseIndex</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">73%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:73px"><span class="text">17/23</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">25%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:25px"><span class="text">1/4</span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.6666666666666667;</span>1.667</td></tr> - - <tr><td><a href="org.owasp.dependencycheck.data.cpe.CpeIndexReader.html">CpeIndexReader</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">60%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:60px"><span class="text">32/53</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">33%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:33px"><span class="text">6/18</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.5;</span>2.5</td></tr> - - <tr><td><a href="org.owasp.dependencycheck.data.cpe.CpeIndexWriter.html">CpeIndexWriter</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">48%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:48px"><span class="text">24/50</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">50%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:50px"><span class="text">3/6</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.4;</span>2.4</td></tr> + <tr><td><a href="org.owasp.dependencycheck.data.cpe.CpeMemoryIndex.html">CpeMemoryIndex</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">72%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:72px"><span class="text">70/96</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">50%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:50px"><span class="text">13/26</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.0714285714285716;</span>3.071</td></tr> <tr><td><a href="org.owasp.dependencycheck.data.cpe.Fields.html">Fields</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/1</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">0.0;</span>0</td></tr> <tr><td><a href="org.owasp.dependencycheck.data.cpe.IndexEntry.html">IndexEntry</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">63%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:63px"><span class="text">23/36</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">34%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:34px"><span class="text">11/32</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.5;</span>2.5</td></tr> + <tr><td><a href="org.owasp.dependencycheck.data.cpe.IndexException.html">IndexException</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/8</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.0;</span>1</td></tr> + </tbody> </table> <script type="text/javascript"> @@ -45,6 +43,6 @@ var classTable = new SortableTable(document.getElementById("classResults"), ["String", "Percentage", "Percentage", "FormattedNumber"]); classTable.sort(0); </script> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.cwe.html b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.cwe.html index 119eb4058..ddec495dd 100644 --- a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.cwe.html +++ b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.cwe.html @@ -39,6 +39,6 @@ var classTable = new SortableTable(document.getElementById("classResults"), ["String", "Percentage", "Percentage", "FormattedNumber"]); classTable.sort(0); </script> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.html b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.html index 7e34e91fd..28f65edb4 100644 --- a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.html +++ b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.html @@ -16,12 +16,12 @@ <table class="report" id="packageResults"> <thead><tr> <td class="heading">Package</td> <td class="heading"># Classes</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead> <tbody> - <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.html"'>org.owasp.dependencycheck.data</a></td><td class="value">4</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/23</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/2</span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.0833333333333333;</span>1.083</td></tr> - <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.cpe.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.cpe.html"'>org.owasp.dependencycheck.data.cpe</a></td><td class="value">5</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">58%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:58px"><span class="text">96/163</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">35%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:35px"><span class="text">21/60</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.3225806451612905;</span>2.323</td></tr> + <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.html"'>org.owasp.dependencycheck.data</a></td><td class="value">5</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">35%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:35px"><span class="text">34/97</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">45%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:45px"><span class="text">10/22</span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.8636363636363635;</span>1.864</td></tr> + <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.cpe.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.cpe.html"'>org.owasp.dependencycheck.data.cpe</a></td><td class="value">4</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">65%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:65px"><span class="text">93/141</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">41%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:41px"><span class="text">24/58</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.566666666666667;</span>2.567</td></tr> <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.cwe.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.cwe.html"'>org.owasp.dependencycheck.data.cwe</a></td><td class="value">2</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">35%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:35px"><span class="text">11/31</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">25%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:25px"><span class="text">2/8</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.8;</span>2.8</td></tr> - <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.lucene.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.lucene.html"'>org.owasp.dependencycheck.data.lucene</a></td><td class="value">11</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">67%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:67px"><span class="text">96/143</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">52%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:52px"><span class="text">35/67</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.5;</span>2.5</td></tr> - <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.nvdcve.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.nvdcve.html"'>org.owasp.dependencycheck.data.nvdcve</a></td><td class="value">8</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">59%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:59px"><span class="text">320/534</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">75%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:75px"><span class="text">158/210</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.305084745762712;</span>3.305</td></tr> - <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.update.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.update.html"'>org.owasp.dependencycheck.data.update</a></td><td class="value">9</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">33%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:33px"><span class="text">159/473</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">21%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:21px"><span class="text">32/152</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.2857142857142856;</span>3.286</td></tr> + <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.lucene.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.lucene.html"'>org.owasp.dependencycheck.data.lucene</a></td><td class="value">11</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">67%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:67px"><span class="text">97/144</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">52%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:52px"><span class="text">35/67</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.5;</span>2.5</td></tr> + <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.nvdcve.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.nvdcve.html"'>org.owasp.dependencycheck.data.nvdcve</a></td><td class="value">8</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">62%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:62px"><span class="text">295/474</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">78%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:78px"><span class="text">150/190</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.3333333333333335;</span>3.333</td></tr> + <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.update.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.update.html"'>org.owasp.dependencycheck.data.update</a></td><td class="value">10</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">30%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:30px"><span class="text">150/484</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">19%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:19px"><span class="text">29/150</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.9452054794520546;</span>2.945</td></tr> </tbody> </table> <script type="text/javascript"> @@ -33,6 +33,8 @@ packageTable.sort(0); <table class="report" id="classResults"> <thead><tr> <td class="heading">Classes in this Package</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead> <tbody> + <tr><td><a href="org.owasp.dependencycheck.data.BaseDB.html">BaseDB</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">45%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:45px"><span class="text">34/74</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">50%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:50px"><span class="text">10/20</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.8;</span>2.8</td></tr> + <tr><td><a href="org.owasp.dependencycheck.data.CachedWebDataSource.html">CachedWebDataSource</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.0;</span>1</td></tr> <tr><td><a href="org.owasp.dependencycheck.data.NoDataException.html">NoDataException</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/8</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.0;</span>1</td></tr> @@ -48,6 +50,6 @@ var classTable = new SortableTable(document.getElementById("classResults"), ["String", "Percentage", "Percentage", "FormattedNumber"]); classTable.sort(0); </script> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.lucene.html b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.lucene.html index 8ec4c2670..3c2b980cc 100644 --- a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.lucene.html +++ b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.lucene.html @@ -16,7 +16,7 @@ <table class="report" id="packageResults"> <thead><tr> <td class="heading">Package</td> <td class="heading"># Classes</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead> <tbody> - <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.lucene.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.lucene.html"'>org.owasp.dependencycheck.data.lucene</a></td><td class="value">11</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">67%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:67px"><span class="text">96/143</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">52%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:52px"><span class="text">35/67</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.5;</span>2.5</td></tr> + <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.lucene.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.lucene.html"'>org.owasp.dependencycheck.data.lucene</a></td><td class="value">11</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">67%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:67px"><span class="text">97/144</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">52%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:52px"><span class="text">35/67</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.5;</span>2.5</td></tr> </tbody> </table> <script type="text/javascript"> @@ -36,7 +36,7 @@ packageTable.sort(0); <tr><td><a href="org.owasp.dependencycheck.data.lucene.FieldAnalyzer.html">FieldAnalyzer</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">100%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">9/9</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.0;</span>1</td></tr> - <tr><td><a href="org.owasp.dependencycheck.data.lucene.LuceneUtils.html">LuceneUtils</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">88%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:88px"><span class="text">15/17</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">33%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:33px"><span class="text">9/27</span></div></div></td></tr></table></td><td class="value"><span class="hidden">9.0;</span>9</td></tr> + <tr><td><a href="org.owasp.dependencycheck.data.lucene.LuceneUtils.html">LuceneUtils</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">88%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:88px"><span class="text">16/18</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">33%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:33px"><span class="text">9/27</span></div></div></td></tr></table></td><td class="value"><span class="hidden">9.0;</span>9</td></tr> <tr><td><a href="org.owasp.dependencycheck.data.lucene.SearchFieldAnalyzer.html">SearchFieldAnalyzer</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">100%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">15/15</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">50%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:50px"><span class="text">1/2</span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.3333333333333333;</span>1.333</td></tr> @@ -57,6 +57,6 @@ var classTable = new SortableTable(document.getElementById("classResults"), ["String", "Percentage", "Percentage", "FormattedNumber"]); classTable.sort(0); </script> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.nvdcve.html b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.nvdcve.html index 347651b65..71b5b843d 100644 --- a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.nvdcve.html +++ b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.nvdcve.html @@ -16,7 +16,7 @@ <table class="report" id="packageResults"> <thead><tr> <td class="heading">Package</td> <td class="heading"># Classes</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead> <tbody> - <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.nvdcve.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.nvdcve.html"'>org.owasp.dependencycheck.data.nvdcve</a></td><td class="value">8</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">59%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:59px"><span class="text">320/534</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">75%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:75px"><span class="text">158/210</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.305084745762712;</span>3.305</td></tr> + <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.nvdcve.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.nvdcve.html"'>org.owasp.dependencycheck.data.nvdcve</a></td><td class="value">8</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">62%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:62px"><span class="text">295/474</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">78%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:78px"><span class="text">150/190</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.3333333333333335;</span>3.333</td></tr> </tbody> </table> <script type="text/javascript"> @@ -30,17 +30,17 @@ packageTable.sort(0); <tbody> <tr><td><a href="org.owasp.dependencycheck.data.nvdcve.CorruptDatabaseException.html">CorruptDatabaseException</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/4</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.0;</span>1</td></tr> - <tr><td><a href="org.owasp.dependencycheck.data.nvdcve.CveDB.html">CveDB</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">47%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:47px"><span class="text">151/319</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">62%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:62px"><span class="text">59/94</span></div></div></td></tr></table></td><td class="value"><span class="hidden">5.0;</span>5</td></tr> + <tr><td><a href="org.owasp.dependencycheck.data.nvdcve.CveDB.html">CveDB</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">47%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:47px"><span class="text">124/260</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">64%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:64px"><span class="text">49/76</span></div></div></td></tr></table></td><td class="value"><span class="hidden">6.777777777777778;</span>6.778</td></tr> - <tr><td><a href="org.owasp.dependencycheck.data.nvdcve.DatabaseException.html">DatabaseException</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/4</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.0;</span>1</td></tr> + <tr><td><a href="org.owasp.dependencycheck.data.nvdcve.DatabaseException.html">DatabaseException</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/6</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.0;</span>1</td></tr> <tr><td><a href="org.owasp.dependencycheck.data.nvdcve.InvalidDataException.html">InvalidDataException</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/4</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.0;</span>1</td></tr> <tr><td><a href="org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler.html">NvdCve12Handler</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">95%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:95px"><span class="text">47/49</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">86%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:86px"><span class="text">26/30</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.6;</span>2.6</td></tr> <tr><td><a href="org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler.html">NvdCve12Handler$Element</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">77%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:77px"><span class="text">7/9</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.6;</span>2.6</td></tr> - <tr><td><a href="org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.html">NvdCve20Handler</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">76%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:76px"><span class="text">97/126</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">84%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:84px"><span class="text">73/86</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.0;</span>3</td></tr> - <tr><td><a href="org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.html">NvdCve20Handler$Element</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">94%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:94px"><span class="text">18/19</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.0;</span>3</td></tr> + <tr><td><a href="org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.html">NvdCve20Handler</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">80%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:80px"><span class="text">99/123</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">89%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:89px"><span class="text">75/84</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.04;</span>3.04</td></tr> + <tr><td><a href="org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.html">NvdCve20Handler$Element</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">94%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:94px"><span class="text">18/19</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.04;</span>3.04</td></tr> </tbody> </table> @@ -49,6 +49,6 @@ var classTable = new SortableTable(document.getElementById("classResults"), ["String", "Percentage", "Percentage", "FormattedNumber"]); classTable.sort(0); </script> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.update.html b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.update.html index bcb21a23b..f06c91c21 100644 --- a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.update.html +++ b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.data.update.html @@ -16,7 +16,7 @@ <table class="report" id="packageResults"> <thead><tr> <td class="heading">Package</td> <td class="heading"># Classes</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead> <tbody> - <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.update.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.update.html"'>org.owasp.dependencycheck.data.update</a></td><td class="value">9</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">33%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:33px"><span class="text">159/473</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">21%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:21px"><span class="text">32/152</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.2857142857142856;</span>3.286</td></tr> + <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.update.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.update.html"'>org.owasp.dependencycheck.data.update</a></td><td class="value">10</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">30%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:30px"><span class="text">150/484</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">19%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:19px"><span class="text">29/150</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.9452054794520546;</span>2.945</td></tr> </tbody> </table> <script type="text/javascript"> @@ -28,21 +28,23 @@ packageTable.sort(0); <table class="report" id="classResults"> <thead><tr> <td class="heading">Classes in this Package</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead> <tbody> - <tr><td><a href="org.owasp.dependencycheck.data.update.AbstractUpdateTask.html">AbstractUpdateTask</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">51%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:51px"><span class="text">37/72</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">83%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:83px"><span class="text">10/12</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.0;</span>2</td></tr> + <tr><td><a href="org.owasp.dependencycheck.data.update.AbstractUpdateTask.html">AbstractUpdateTask</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">47%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:47px"><span class="text">28/59</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">87%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:87px"><span class="text">7/8</span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.8571428571428572;</span>1.857</td></tr> <tr><td><a href="org.owasp.dependencycheck.data.update.BatchUpdateTask.html">BatchUpdateTask</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">28%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:28px"><span class="text">30/106</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">17%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:17px"><span class="text">8/46</span></div></div></td></tr></table></td><td class="value"><span class="hidden">7.166666666666667;</span>7.167</td></tr> + <tr><td><a href="org.owasp.dependencycheck.data.update.CallableDownloadTask.html">CallableDownloadTask</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/41</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/22</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.0;</span>2</td></tr> + <tr><td><a href="org.owasp.dependencycheck.data.update.DataStoreMetaInfo.html">DataStoreMetaInfo</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">65%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:65px"><span class="text">48/73</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">62%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:62px"><span class="text">10/16</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.111111111111111;</span>3.111</td></tr> - <tr><td><a href="org.owasp.dependencycheck.data.update.DatabaseUpdater.html">DatabaseUpdater</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/43</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/12</span></div></div></td></tr></table></td><td class="value"><span class="hidden">8.0;</span>8</td></tr> + <tr><td><a href="org.owasp.dependencycheck.data.update.DatabaseUpdater.html">DatabaseUpdater</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/25</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/8</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.5;</span>4.5</td></tr> <tr><td><a href="org.owasp.dependencycheck.data.update.NvdCveInfo.html">NvdCveInfo</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">100%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">17/17</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.0;</span>1</td></tr> - <tr><td><a href="org.owasp.dependencycheck.data.update.StandardUpdateTask.html">StandardUpdateTask</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/126</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/60</span></div></div></td></tr></table></td><td class="value"><span class="hidden">14.75;</span>14.75</td></tr> + <tr><td><a href="org.owasp.dependencycheck.data.update.StandardUpdateTask.html">StandardUpdateTask</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/129</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/46</span></div></div></td></tr></table></td><td class="value"><span class="hidden">14.25;</span>14.25</td></tr> <tr><td><a href="org.owasp.dependencycheck.data.update.UpdateTask.html">UpdateTask</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.0;</span>1</td></tr> - <tr><td><a href="org.owasp.dependencycheck.data.update.UpdateTaskFactory.html">UpdateTaskFactory</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/7</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/2</span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.5;</span>1.5</td></tr> + <tr><td><a href="org.owasp.dependencycheck.data.update.UpdateTaskFactory.html">UpdateTaskFactory</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/5</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.0;</span>1</td></tr> <tr><td><a href="org.owasp.dependencycheck.data.update.Updateable.html">Updateable</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">93%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:93px"><span class="text">27/29</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">100%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">4/4</span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.25;</span>1.25</td></tr> @@ -53,6 +55,6 @@ var classTable = new SortableTable(document.getElementById("classResults"), ["String", "Percentage", "Percentage", "FormattedNumber"]); classTable.sort(0); </script> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.dependency.html b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.dependency.html index 222362d3a..bd0f116a6 100644 --- a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.dependency.html +++ b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.dependency.html @@ -16,7 +16,7 @@ <table class="report" id="packageResults"> <thead><tr> <td class="heading">Package</td> <td class="heading"># Classes</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead> <tbody> - <tr><td><a href="frame-summary-org.owasp.dependencycheck.dependency.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.dependency.html"'>org.owasp.dependencycheck.dependency</a></td><td class="value">14</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">62%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:62px"><span class="text">333/529</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">35%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:35px"><span class="text">135/376</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.4387096774193546;</span>2.439</td></tr> + <tr><td><a href="frame-summary-org.owasp.dependencycheck.dependency.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.dependency.html"'>org.owasp.dependencycheck.dependency</a></td><td class="value">14</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">63%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:63px"><span class="text">338/529</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">36%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:36px"><span class="text">136/376</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.4387096774193546;</span>2.439</td></tr> </tbody> </table> <script type="text/javascript"> @@ -28,7 +28,7 @@ packageTable.sort(0); <table class="report" id="classResults"> <thead><tr> <td class="heading">Classes in this Package</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead> <tbody> - <tr><td><a href="org.owasp.dependencycheck.dependency.Dependency.html">Dependency</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">59%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:59px"><span class="text">83/140</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">13%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:13px"><span class="text">17/124</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.7804878048780486;</span>2.78</td></tr> + <tr><td><a href="org.owasp.dependencycheck.dependency.Dependency.html">Dependency</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">60%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:60px"><span class="text">85/140</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">13%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:13px"><span class="text">17/124</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.7804878048780486;</span>2.78</td></tr> <tr><td><a href="org.owasp.dependencycheck.dependency.Evidence.html">Evidence</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">48%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:48px"><span class="text">24/49</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">25%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:25px"><span class="text">10/40</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.2941176470588234;</span>2.294</td></tr> <tr><td><a href="org.owasp.dependencycheck.dependency.Evidence.html">Evidence$Confidence</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">100%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">5/5</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.2941176470588234;</span>2.294</td></tr> @@ -44,7 +44,7 @@ packageTable.sort(0); <tr><td><a href="org.owasp.dependencycheck.dependency.Reference.html">Reference</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">41%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:41px"><span class="text">14/34</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">8%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:8px"><span class="text">3/34</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.4444444444444446;</span>3.444</td></tr> - <tr><td><a href="org.owasp.dependencycheck.dependency.Vulnerability.html">Vulnerability</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">66%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:66px"><span class="text">45/68</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">18%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:18px"><span class="text">3/16</span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.3125;</span>1.312</td></tr> + <tr><td><a href="org.owasp.dependencycheck.dependency.Vulnerability.html">Vulnerability</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">70%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:70px"><span class="text">48/68</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">25%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:25px"><span class="text">4/16</span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.3125;</span>1.312</td></tr> <tr><td><a href="org.owasp.dependencycheck.dependency.VulnerabilityComparator.html">VulnerabilityComparator</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">100%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">2/2</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.0;</span>1</td></tr> @@ -57,6 +57,6 @@ var classTable = new SortableTable(document.getElementById("classResults"), ["String", "Percentage", "Percentage", "FormattedNumber"]); classTable.sort(0); </script> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.html b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.html index ca7d465f5..bcbd588d9 100644 --- a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.html +++ b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.html @@ -16,20 +16,21 @@ <table class="report" id="packageResults"> <thead><tr> <td class="heading">Package</td> <td class="heading"># Classes</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead> <tbody> - <tr><td><a href="frame-summary-org.owasp.dependencycheck.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.html"'>org.owasp.dependencycheck</a></td><td class="value">1</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">60%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:60px"><span class="text">98/162</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">70%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:70px"><span class="text">49/70</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.7222222222222223;</span>3.722</td></tr> - <tr><td><a href="frame-summary-org.owasp.dependencycheck.analyzer.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.analyzer.html"'>org.owasp.dependencycheck.analyzer</a></td><td class="value">18</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">72%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:72px"><span class="text">845/1171</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">60%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:60px"><span class="text">433/718</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.141843971631205;</span>4.142</td></tr> + <tr><td><a href="frame-summary-org.owasp.dependencycheck.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.html"'>org.owasp.dependencycheck</a></td><td class="value">1</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">58%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:58px"><span class="text">97/167</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">71%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:71px"><span class="text">47/66</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.055555555555555;</span>4.056</td></tr> + <tr><td><a href="frame-summary-org.owasp.dependencycheck.analyzer.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.analyzer.html"'>org.owasp.dependencycheck.analyzer</a></td><td class="value">21</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">71%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:71px"><span class="text">864/1209</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">59%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:59px"><span class="text">431/726</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.006622516556291;</span>4.007</td></tr> <tr><td><a href="frame-summary-org.owasp.dependencycheck.concurrency.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.concurrency.html"'>org.owasp.dependencycheck.concurrency</a></td><td class="value">3</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">56%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:56px"><span class="text">53/94</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">66%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:66px"><span class="text">16/24</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.611111111111111;</span>2.611</td></tr> - <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.html"'>org.owasp.dependencycheck.data</a></td><td class="value">4</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/23</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/2</span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.0833333333333333;</span>1.083</td></tr> - <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.cpe.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.cpe.html"'>org.owasp.dependencycheck.data.cpe</a></td><td class="value">5</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">58%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:58px"><span class="text">96/163</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">35%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:35px"><span class="text">21/60</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.3225806451612905;</span>2.323</td></tr> + <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.html"'>org.owasp.dependencycheck.data</a></td><td class="value">5</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">35%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:35px"><span class="text">34/97</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">45%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:45px"><span class="text">10/22</span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.8636363636363635;</span>1.864</td></tr> + <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.cpe.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.cpe.html"'>org.owasp.dependencycheck.data.cpe</a></td><td class="value">4</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">65%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:65px"><span class="text">93/141</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">41%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:41px"><span class="text">24/58</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.566666666666667;</span>2.567</td></tr> <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.cwe.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.cwe.html"'>org.owasp.dependencycheck.data.cwe</a></td><td class="value">2</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">35%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:35px"><span class="text">11/31</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">25%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:25px"><span class="text">2/8</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.8;</span>2.8</td></tr> - <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.lucene.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.lucene.html"'>org.owasp.dependencycheck.data.lucene</a></td><td class="value">11</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">67%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:67px"><span class="text">96/143</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">52%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:52px"><span class="text">35/67</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.5;</span>2.5</td></tr> - <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.nvdcve.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.nvdcve.html"'>org.owasp.dependencycheck.data.nvdcve</a></td><td class="value">8</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">59%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:59px"><span class="text">320/534</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">75%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:75px"><span class="text">158/210</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.305084745762712;</span>3.305</td></tr> - <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.update.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.update.html"'>org.owasp.dependencycheck.data.update</a></td><td class="value">9</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">33%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:33px"><span class="text">159/473</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">21%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:21px"><span class="text">32/152</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.2857142857142856;</span>3.286</td></tr> - <tr><td><a href="frame-summary-org.owasp.dependencycheck.dependency.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.dependency.html"'>org.owasp.dependencycheck.dependency</a></td><td class="value">14</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">62%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:62px"><span class="text">333/529</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">35%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:35px"><span class="text">135/376</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.4387096774193546;</span>2.439</td></tr> + <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.lucene.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.lucene.html"'>org.owasp.dependencycheck.data.lucene</a></td><td class="value">11</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">67%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:67px"><span class="text">97/144</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">52%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:52px"><span class="text">35/67</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.5;</span>2.5</td></tr> + <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.nvdcve.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.nvdcve.html"'>org.owasp.dependencycheck.data.nvdcve</a></td><td class="value">8</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">62%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:62px"><span class="text">295/474</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">78%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:78px"><span class="text">150/190</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.3333333333333335;</span>3.333</td></tr> + <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.update.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.update.html"'>org.owasp.dependencycheck.data.update</a></td><td class="value">10</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">30%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:30px"><span class="text">150/484</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">19%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:19px"><span class="text">29/150</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.9452054794520546;</span>2.945</td></tr> + <tr><td><a href="frame-summary-org.owasp.dependencycheck.dependency.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.dependency.html"'>org.owasp.dependencycheck.dependency</a></td><td class="value">14</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">63%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:63px"><span class="text">338/529</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">36%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:36px"><span class="text">136/376</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.4387096774193546;</span>2.439</td></tr> <tr><td><a href="frame-summary-org.owasp.dependencycheck.jaxb.pom.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.jaxb.pom.html"'>org.owasp.dependencycheck.jaxb.pom</a></td><td class="value">1</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">100%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">13/13</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">50%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:50px"><span class="text">1/2</span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.25;</span>1.25</td></tr> <tr><td><a href="frame-summary-org.owasp.dependencycheck.jaxb.pom.generated.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.jaxb.pom.generated.html"'>org.owasp.dependencycheck.jaxb.pom.generated</a></td><td class="value">87</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">7%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:7px"><span class="text">74/945</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">1%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:1px"><span class="text">1/98</span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.0907407407407408;</span>1.091</td></tr> <tr><td><a href="frame-summary-org.owasp.dependencycheck.reporting.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.reporting.html"'>org.owasp.dependencycheck.reporting</a></td><td class="value">3</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">52%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:52px"><span class="text">53/101</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">18%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:18px"><span class="text">8/44</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.2727272727272725;</span>4.273</td></tr> - <tr><td><a href="frame-summary-org.owasp.dependencycheck.utils.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.utils.html"'>org.owasp.dependencycheck.utils</a></td><td class="value">18</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">54%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:54px"><span class="text">265/488</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">59%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:59px"><span class="text">117/196</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.1298701298701297;</span>3.13</td></tr> + <tr><td><a href="frame-summary-org.owasp.dependencycheck.suppression.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.suppression.html"'>org.owasp.dependencycheck.suppression</a></td><td class="value">6</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">77%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:77px"><span class="text">179/231</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">74%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:74px"><span class="text">98/132</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.8125;</span>2.812</td></tr> + <tr><td><a href="frame-summary-org.owasp.dependencycheck.utils.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.utils.html"'>org.owasp.dependencycheck.utils</a></td><td class="value">18</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">54%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:54px"><span class="text">268/492</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">58%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:58px"><span class="text">116/198</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.128205128205128;</span>3.128</td></tr> </tbody> </table> <script type="text/javascript"> @@ -41,7 +42,7 @@ packageTable.sort(0); <table class="report" id="classResults"> <thead><tr> <td class="heading">Classes in this Package</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead> <tbody> - <tr><td><a href="org.owasp.dependencycheck.Engine.html">Engine</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">60%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:60px"><span class="text">98/162</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">70%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:70px"><span class="text">49/70</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.7222222222222223;</span>3.722</td></tr> + <tr><td><a href="org.owasp.dependencycheck.Engine.html">Engine</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">58%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:58px"><span class="text">97/167</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">71%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:71px"><span class="text">47/66</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.055555555555555;</span>4.056</td></tr> </tbody> </table> @@ -50,6 +51,6 @@ var classTable = new SortableTable(document.getElementById("classResults"), ["String", "Percentage", "Percentage", "FormattedNumber"]); classTable.sort(0); </script> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.jaxb.pom.generated.html b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.jaxb.pom.generated.html index d4448914d..278d19939 100644 --- a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.jaxb.pom.generated.html +++ b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.jaxb.pom.generated.html @@ -160,6 +160,6 @@ var classTable = new SortableTable(document.getElementById("classResults"), ["String", "Percentage", "Percentage", "FormattedNumber"]); classTable.sort(0); </script> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.jaxb.pom.html b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.jaxb.pom.html index 1fbe623a6..38f01d5b6 100644 --- a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.jaxb.pom.html +++ b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.jaxb.pom.html @@ -38,6 +38,6 @@ var classTable = new SortableTable(document.getElementById("classResults"), ["String", "Percentage", "Percentage", "FormattedNumber"]); classTable.sort(0); </script> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.reporting.html b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.reporting.html index 35f5850ff..d674b2add 100644 --- a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.reporting.html +++ b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.reporting.html @@ -40,6 +40,6 @@ var classTable = new SortableTable(document.getElementById("classResults"), ["String", "Percentage", "Percentage", "FormattedNumber"]); classTable.sort(0); </script> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.utils.html b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.utils.html index 48e0c7025..565ca953c 100644 --- a/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.utils.html +++ b/dependency-check-core/cobertura/frame-summary-org.owasp.dependencycheck.utils.html @@ -16,7 +16,7 @@ <table class="report" id="packageResults"> <thead><tr> <td class="heading">Package</td> <td class="heading"># Classes</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead> <tbody> - <tr><td><a href="frame-summary-org.owasp.dependencycheck.utils.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.utils.html"'>org.owasp.dependencycheck.utils</a></td><td class="value">18</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">54%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:54px"><span class="text">265/488</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">59%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:59px"><span class="text">117/196</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.1298701298701297;</span>3.13</td></tr> + <tr><td><a href="frame-summary-org.owasp.dependencycheck.utils.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.utils.html"'>org.owasp.dependencycheck.utils</a></td><td class="value">18</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">54%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:54px"><span class="text">268/492</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">58%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:58px"><span class="text">116/198</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.128205128205128;</span>3.128</td></tr> </tbody> </table> <script type="text/javascript"> @@ -41,7 +41,7 @@ packageTable.sort(0); <tr><td><a href="org.owasp.dependencycheck.utils.ExtractionException.html">ExtractionException</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/8</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.0;</span>1</td></tr> - <tr><td><a href="org.owasp.dependencycheck.utils.FileUtils.html">FileUtils</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">52%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:52px"><span class="text">40/76</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">62%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:62px"><span class="text">20/32</span></div></div></td></tr></table></td><td class="value"><span class="hidden">5.285714285714286;</span>5.286</td></tr> + <tr><td><a href="org.owasp.dependencycheck.utils.FileUtils.html">FileUtils</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">52%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:52px"><span class="text">40/76</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">56%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:56px"><span class="text">18/32</span></div></div></td></tr></table></td><td class="value"><span class="hidden">5.285714285714286;</span>5.286</td></tr> <tr><td><a href="org.owasp.dependencycheck.utils.Filter.html">Filter</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">100%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">4/4</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.6666666666666667;</span>1.667</td></tr> <tr><td><a href="org.owasp.dependencycheck.utils.Filter.html">Filter$1</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">100%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">2/2</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.6666666666666667;</span>1.667</td></tr> @@ -55,8 +55,8 @@ packageTable.sort(0); <tr><td><a href="org.owasp.dependencycheck.utils.NonClosingStream.html">NonClosingStream</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">100%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">3/3</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.0;</span>1</td></tr> - <tr><td><a href="org.owasp.dependencycheck.utils.Settings.html">Settings</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">60%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:60px"><span class="text">49/81</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">42%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:42px"><span class="text">6/14</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.2941176470588234;</span>2.294</td></tr> - <tr><td><a href="org.owasp.dependencycheck.utils.Settings.html">Settings$KEYS</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/2</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.2941176470588234;</span>2.294</td></tr> + <tr><td><a href="org.owasp.dependencycheck.utils.Settings.html">Settings</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">61%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:61px"><span class="text">52/85</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">43%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:43px"><span class="text">7/16</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.3333333333333335;</span>2.333</td></tr> + <tr><td><a href="org.owasp.dependencycheck.utils.Settings.html">Settings$KEYS</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/2</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.3333333333333335;</span>2.333</td></tr> <tr><td><a href="org.owasp.dependencycheck.utils.UrlStringUtils.html">UrlStringUtils</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">82%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:82px"><span class="text">19/23</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">75%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:75px"><span class="text">9/12</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.5;</span>2.5</td></tr> @@ -67,6 +67,6 @@ var classTable = new SortableTable(document.getElementById("classResults"), ["String", "Percentage", "Percentage", "FormattedNumber"]); classTable.sort(0); </script> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/frame-summary.html b/dependency-check-core/cobertura/frame-summary.html index bf7f8a67a..75b4eacb1 100644 --- a/dependency-check-core/cobertura/frame-summary.html +++ b/dependency-check-core/cobertura/frame-summary.html @@ -16,21 +16,22 @@ <table class="report" id="packageResults"> <thead><tr> <td class="heading">Package</td> <td class="heading"># Classes</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead> <tbody> - <tr><td><b>All Packages</b></td><td class="value">184</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">49%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:49px"><span class="text">2416/4870</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">49%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:49px"><span class="text">1008/2027</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.176975945017182;</span>2.177</td></tr> - <tr><td><a href="frame-summary-org.owasp.dependencycheck.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.html"'>org.owasp.dependencycheck</a></td><td class="value">1</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">60%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:60px"><span class="text">98/162</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">70%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:70px"><span class="text">49/70</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.7222222222222223;</span>3.722</td></tr> - <tr><td><a href="frame-summary-org.owasp.dependencycheck.analyzer.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.analyzer.html"'>org.owasp.dependencycheck.analyzer</a></td><td class="value">18</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">72%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:72px"><span class="text">845/1171</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">60%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:60px"><span class="text">433/718</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.141843971631205;</span>4.142</td></tr> + <tr><td><b>All Packages</b></td><td class="value">194</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">50%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:50px"><span class="text">2619/5152</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">51%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:51px"><span class="text">1104/2161</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.200162074554295;</span>2.2</td></tr> + <tr><td><a href="frame-summary-org.owasp.dependencycheck.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.html"'>org.owasp.dependencycheck</a></td><td class="value">1</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">58%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:58px"><span class="text">97/167</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">71%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:71px"><span class="text">47/66</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.055555555555555;</span>4.056</td></tr> + <tr><td><a href="frame-summary-org.owasp.dependencycheck.analyzer.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.analyzer.html"'>org.owasp.dependencycheck.analyzer</a></td><td class="value">21</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">71%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:71px"><span class="text">864/1209</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">59%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:59px"><span class="text">431/726</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.006622516556291;</span>4.007</td></tr> <tr><td><a href="frame-summary-org.owasp.dependencycheck.concurrency.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.concurrency.html"'>org.owasp.dependencycheck.concurrency</a></td><td class="value">3</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">56%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:56px"><span class="text">53/94</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">66%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:66px"><span class="text">16/24</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.611111111111111;</span>2.611</td></tr> - <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.html"'>org.owasp.dependencycheck.data</a></td><td class="value">4</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/23</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/2</span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.0833333333333333;</span>1.083</td></tr> - <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.cpe.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.cpe.html"'>org.owasp.dependencycheck.data.cpe</a></td><td class="value">5</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">58%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:58px"><span class="text">96/163</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">35%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:35px"><span class="text">21/60</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.3225806451612905;</span>2.323</td></tr> + <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.html"'>org.owasp.dependencycheck.data</a></td><td class="value">5</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">35%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:35px"><span class="text">34/97</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">45%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:45px"><span class="text">10/22</span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.8636363636363635;</span>1.864</td></tr> + <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.cpe.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.cpe.html"'>org.owasp.dependencycheck.data.cpe</a></td><td class="value">4</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">65%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:65px"><span class="text">93/141</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">41%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:41px"><span class="text">24/58</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.566666666666667;</span>2.567</td></tr> <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.cwe.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.cwe.html"'>org.owasp.dependencycheck.data.cwe</a></td><td class="value">2</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">35%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:35px"><span class="text">11/31</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">25%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:25px"><span class="text">2/8</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.8;</span>2.8</td></tr> - <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.lucene.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.lucene.html"'>org.owasp.dependencycheck.data.lucene</a></td><td class="value">11</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">67%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:67px"><span class="text">96/143</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">52%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:52px"><span class="text">35/67</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.5;</span>2.5</td></tr> - <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.nvdcve.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.nvdcve.html"'>org.owasp.dependencycheck.data.nvdcve</a></td><td class="value">8</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">59%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:59px"><span class="text">320/534</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">75%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:75px"><span class="text">158/210</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.305084745762712;</span>3.305</td></tr> - <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.update.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.update.html"'>org.owasp.dependencycheck.data.update</a></td><td class="value">9</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">33%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:33px"><span class="text">159/473</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">21%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:21px"><span class="text">32/152</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.2857142857142856;</span>3.286</td></tr> - <tr><td><a href="frame-summary-org.owasp.dependencycheck.dependency.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.dependency.html"'>org.owasp.dependencycheck.dependency</a></td><td class="value">14</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">62%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:62px"><span class="text">333/529</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">35%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:35px"><span class="text">135/376</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.4387096774193546;</span>2.439</td></tr> + <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.lucene.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.lucene.html"'>org.owasp.dependencycheck.data.lucene</a></td><td class="value">11</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">67%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:67px"><span class="text">97/144</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">52%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:52px"><span class="text">35/67</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.5;</span>2.5</td></tr> + <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.nvdcve.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.nvdcve.html"'>org.owasp.dependencycheck.data.nvdcve</a></td><td class="value">8</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">62%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:62px"><span class="text">295/474</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">78%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:78px"><span class="text">150/190</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.3333333333333335;</span>3.333</td></tr> + <tr><td><a href="frame-summary-org.owasp.dependencycheck.data.update.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.data.update.html"'>org.owasp.dependencycheck.data.update</a></td><td class="value">10</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">30%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:30px"><span class="text">150/484</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">19%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:19px"><span class="text">29/150</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.9452054794520546;</span>2.945</td></tr> + <tr><td><a href="frame-summary-org.owasp.dependencycheck.dependency.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.dependency.html"'>org.owasp.dependencycheck.dependency</a></td><td class="value">14</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">63%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:63px"><span class="text">338/529</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">36%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:36px"><span class="text">136/376</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.4387096774193546;</span>2.439</td></tr> <tr><td><a href="frame-summary-org.owasp.dependencycheck.jaxb.pom.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.jaxb.pom.html"'>org.owasp.dependencycheck.jaxb.pom</a></td><td class="value">1</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">100%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">13/13</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">50%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:50px"><span class="text">1/2</span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.25;</span>1.25</td></tr> <tr><td><a href="frame-summary-org.owasp.dependencycheck.jaxb.pom.generated.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.jaxb.pom.generated.html"'>org.owasp.dependencycheck.jaxb.pom.generated</a></td><td class="value">87</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">7%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:7px"><span class="text">74/945</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">1%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:1px"><span class="text">1/98</span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.0907407407407408;</span>1.091</td></tr> <tr><td><a href="frame-summary-org.owasp.dependencycheck.reporting.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.reporting.html"'>org.owasp.dependencycheck.reporting</a></td><td class="value">3</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">52%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:52px"><span class="text">53/101</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">18%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:18px"><span class="text">8/44</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.2727272727272725;</span>4.273</td></tr> - <tr><td><a href="frame-summary-org.owasp.dependencycheck.utils.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.utils.html"'>org.owasp.dependencycheck.utils</a></td><td class="value">18</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">54%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:54px"><span class="text">265/488</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">59%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:59px"><span class="text">117/196</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.1298701298701297;</span>3.13</td></tr> + <tr><td><a href="frame-summary-org.owasp.dependencycheck.suppression.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.suppression.html"'>org.owasp.dependencycheck.suppression</a></td><td class="value">6</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">77%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:77px"><span class="text">179/231</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">74%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:74px"><span class="text">98/132</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.8125;</span>2.812</td></tr> + <tr><td><a href="frame-summary-org.owasp.dependencycheck.utils.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-org.owasp.dependencycheck.utils.html"'>org.owasp.dependencycheck.utils</a></td><td class="value">18</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">54%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:54px"><span class="text">268/492</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">58%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:58px"><span class="text">116/198</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.128205128205128;</span>3.128</td></tr> </tbody> </table> <script type="text/javascript"> @@ -38,6 +39,6 @@ var packageTable = new SortableTable(document.getElementById("packageResults"), ["String", "Number", "Percentage", "Percentage", "FormattedNumber"]); packageTable.sort(0); </script> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.Engine.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.Engine.html index dc39852a4..5f8627c2e 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.Engine.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.Engine.html @@ -12,7 +12,7 @@ <div class="separator"> </div> <table class="report"> <thead><tr> <td class="heading">Classes in this File</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead> - <tr><td><a href="org.owasp.dependencycheck.Engine.html">Engine</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">60%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:60px"><span class="text">98/162</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">70%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:70px"><span class="text">49/70</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.7222222222222223;</span>3.722</td></tr> + <tr><td><a href="org.owasp.dependencycheck.Engine.html">Engine</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">58%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:58px"><span class="text">97/167</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">71%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:71px"><span class="text">47/66</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.055555555555555;</span>4.056</td></tr> </table> <div class="separator"> </div> @@ -64,689 +64,690 @@ <tr> <td class="numLine"> 23</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> java.io.IOException;</pre></td></tr> <tr> <td class="numLine"> 24</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.ArrayList;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> java.sql.SQLException;</pre></td></tr> <tr> <td class="numLine"> 25</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.HashSet;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.ArrayList;</pre></td></tr> <tr> <td class="numLine"> 26</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.Iterator;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.HashSet;</pre></td></tr> <tr> <td class="numLine"> 27</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.List;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.Iterator;</pre></td></tr> <tr> <td class="numLine"> 28</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.Set;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.List;</pre></td></tr> <tr> <td class="numLine"> 29</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.logging.Level;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.Set;</pre></td></tr> <tr> <td class="numLine"> 30</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.logging.Logger;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.logging.Level;</pre></td></tr> <tr> <td class="numLine"> 31</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.analyzer.AnalysisException;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.logging.Logger;</pre></td></tr> <tr> <td class="numLine"> 32</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.analyzer.AnalysisPhase;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.analyzer.AnalysisException;</pre></td></tr> <tr> <td class="numLine"> 33</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.analyzer.Analyzer;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.analyzer.AnalysisPhase;</pre></td></tr> <tr> <td class="numLine"> 34</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.analyzer.AnalyzerService;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.analyzer.Analyzer;</pre></td></tr> <tr> <td class="numLine"> 35</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.CachedWebDataSource;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.analyzer.AnalyzerService;</pre></td></tr> <tr> <td class="numLine"> 36</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.NoDataException;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.CachedWebDataSource;</pre></td></tr> <tr> <td class="numLine"> 37</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.UpdateException;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.NoDataException;</pre></td></tr> <tr> <td class="numLine"> 38</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.UpdateService;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.UpdateException;</pre></td></tr> <tr> <td class="numLine"> 39</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.cpe.CpeIndexReader;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.UpdateService;</pre></td></tr> <tr> <td class="numLine"> 40</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.dependency.Dependency;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.cpe.CpeMemoryIndex;</pre></td></tr> <tr> <td class="numLine"> 41</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.utils.FileUtils;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.cpe.IndexException;</pre></td></tr> <tr> <td class="numLine"> 42</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.utils.InvalidSettingException;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.nvdcve.CveDB;</pre></td></tr> <tr> <td class="numLine"> 43</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.utils.Settings;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.nvdcve.DatabaseException;</pre></td></tr> <tr> <td class="numLine"> 44</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.dependency.Dependency;</pre></td></tr> <tr> <td class="numLine"> 45</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.utils.FileUtils;</pre></td></tr> <tr> <td class="numLine"> 46</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Scans files, directories, etc. for Dependencies. Analyzers are loaded and</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.utils.InvalidSettingException;</pre></td></tr> <tr> <td class="numLine"> 47</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * used to process the files found by the scan, if a file is encountered and an</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.utils.Settings;</pre></td></tr> <tr> <td class="numLine"> 48</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Analyzer is associated with the file type then the file is turned into a</span></pre></td></tr> -<tr> <td class="numLine"> 49</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * dependency.</span></pre></td></tr> -<tr> <td class="numLine"> 50</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 51</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @author Jeremy Long (jeremy.long@owasp.org)</span></pre></td></tr> -<tr> <td class="numLine"> 52</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 53</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> Engine {</pre></td></tr> -<tr> <td class="numLine"> 54</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 49</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 50</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Scans files, directories, etc. for Dependencies. Analyzers are loaded and</span></pre></td></tr> +<tr> <td class="numLine"> 51</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * used to process the files found by the scan, if a file is encountered and an</span></pre></td></tr> +<tr> <td class="numLine"> 52</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Analyzer is associated with the file type then the file is turned into a</span></pre></td></tr> +<tr> <td class="numLine"> 53</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * dependency.</span></pre></td></tr> +<tr> <td class="numLine"> 54</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 55</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * @author Jeremy Long (jeremy.long@owasp.org)</span></pre></td></tr> <tr> <td class="numLine"> 56</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * The list of dependencies.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 57</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 58</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">final</span> List<Dependency> dependencies = <span class="keyword">new</span> ArrayList<Dependency>();</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> Engine {</pre></td></tr> +<tr> <td class="numLine"> 58</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 59</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 60</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * A Map of analyzers grouped by Analysis phase.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * The list of dependencies.</span></pre></td></tr> <tr> <td class="numLine"> 61</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 62</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">final</span> EnumMap<AnalysisPhase, List<Analyzer>> analyzers =</pre></td></tr> +<tr> <td class="numLineCover"> 62</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">final</span> List<Dependency> dependencies = <span class="keyword">new</span> ArrayList<Dependency>();</pre></td></tr> <tr> <td class="numLine"> 63</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">new</span> EnumMap<AnalysisPhase, List<Analyzer>>(AnalysisPhase.<span class="keyword">class</span>);</pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 64</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * A Map of analyzers grouped by Analysis phase.</span></pre></td></tr> <tr> <td class="numLine"> 65</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * A set of extensions supported by the analyzers.</span></pre></td></tr> -<tr> <td class="numLine"> 66</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 67</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">final</span> Set<String> extensions = <span class="keyword">new</span> HashSet<String>();</pre></td></tr> +<tr> <td class="numLineCover"> 66</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">final</span> EnumMap<AnalysisPhase, List<Analyzer>> analyzers =</pre></td></tr> +<tr> <td class="numLine"> 67</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">new</span> EnumMap<AnalysisPhase, List<Analyzer>>(AnalysisPhase.<span class="keyword">class</span>);</pre></td></tr> <tr> <td class="numLine"> 68</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 69</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * A set of extensions supported by the analyzers.</span></pre></td></tr> <tr> <td class="numLine"> 70</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Creates a new Engine.</span></pre></td></tr> -<tr> <td class="numLine"> 71</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 72</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  <span class="keyword">public</span> Engine() {</pre></td></tr> -<tr> <td class="numLineCover"> 73</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  <span class="keyword">boolean</span> autoUpdate = <span class="keyword">true</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 71</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">final</span> Set<String> extensions = <span class="keyword">new</span> HashSet<String>();</pre></td></tr> +<tr> <td class="numLine"> 72</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 73</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 74</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 75</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  autoUpdate = Settings.getBoolean(Settings.KEYS.AUTO_UPDATE);</pre></td></tr> -<tr> <td class="numLineCover"> 76</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (InvalidSettingException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 77</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Engine.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="string">"Invalid setting for auto-update; using true."</span>);</span></pre></td></tr> -<tr> <td class="numLineCover"> 78</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 79</td> <td class="nbHitsUncovered"><a title="Line 79: Conditional coverage 50% (1/2)."> 6</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 79: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (autoUpdate) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 80</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  doUpdates();</span></pre></td></tr> -<tr> <td class="numLine"> 81</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 82</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  loadAnalyzers();</pre></td></tr> -<tr> <td class="numLineCover"> 83</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 84</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 85</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 86</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Creates a new Engine.</span></pre></td></tr> -<tr> <td class="numLine"> 87</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 75</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLineCover"> 76</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  <span class="keyword">public</span> Engine() {</pre></td></tr> +<tr> <td class="numLineCover"> 77</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  <span class="keyword">boolean</span> autoUpdate = <span class="keyword">true</span>;</pre></td></tr> +<tr> <td class="numLine"> 78</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 79</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  autoUpdate = Settings.getBoolean(Settings.KEYS.AUTO_UPDATE);</pre></td></tr> +<tr> <td class="numLineCover"> 80</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (InvalidSettingException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 81</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Engine.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="string">"Invalid setting for auto-update; using true."</span>);</span></pre></td></tr> +<tr> <td class="numLineCover"> 82</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 83</td> <td class="nbHitsUncovered"><a title="Line 83: Conditional coverage 50% (1/2)."> 6</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 83: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (autoUpdate) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 84</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  doUpdates();</span></pre></td></tr> +<tr> <td class="numLine"> 85</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 86</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  loadAnalyzers();</pre></td></tr> +<tr> <td class="numLineCover"> 87</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 88</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param autoUpdate indicates whether or not data should be updated from</span></pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 89</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * the Internet</span></pre></td></tr> -<tr> <td class="numLine"> 90</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @deprecated This function should no longer be used; the autoupdate flag</span></pre></td></tr> -<tr> <td class="numLine"> 91</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * should be set using:</span></pre></td></tr> -<tr> <td class="numLine"> 92</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * <code>Settings.setBoolean(Settings.KEYS.AUTO_UPDATE, value);</code></span></pre></td></tr> -<tr> <td class="numLine"> 93</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 94</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  @Deprecated</pre></td></tr> -<tr> <td class="numLineCover"> 95</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">public</span> Engine(<span class="keyword">boolean</span> autoUpdate) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 96</td> <td class="nbHitsUncovered"><a title="Line 96: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 96: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (autoUpdate) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 97</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  doUpdates();</span></pre></td></tr> -<tr> <td class="numLine"> 98</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 99</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  loadAnalyzers();</span></pre></td></tr> -<tr> <td class="numLineCover"> 100</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLine"> 101</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 102</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 103</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Loads the analyzers specified in the configuration file (or system</span></pre></td></tr> -<tr> <td class="numLine"> 104</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * properties).</span></pre></td></tr> -<tr> <td class="numLine"> 105</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 90</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Creates a new Engine.</span></pre></td></tr> +<tr> <td class="numLine"> 91</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 92</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param autoUpdate indicates whether or not data should be updated from</span></pre></td></tr> +<tr> <td class="numLine"> 93</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * the Internet</span></pre></td></tr> +<tr> <td class="numLine"> 94</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @deprecated This function should no longer be used; the autoupdate flag</span></pre></td></tr> +<tr> <td class="numLine"> 95</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * should be set using:</span></pre></td></tr> +<tr> <td class="numLine"> 96</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * <code>Settings.setBoolean(Settings.KEYS.AUTO_UPDATE, value);</code></span></pre></td></tr> +<tr> <td class="numLine"> 97</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 106</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">void</span> loadAnalyzers() {</pre></td></tr> -<tr> <td class="numLine"> 107</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 108</td> <td class="nbHitsCovered"><a title="Line 108: Conditional coverage 100% (2/2)."> 60</a></td> <td class="src"><pre class="src"> <a title="Line 108: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (AnalysisPhase phase : AnalysisPhase.values()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 109</td> <td class="nbHitsCovered"> 54</td> <td class="src"><pre class="src">  analyzers.put(phase, <span class="keyword">new</span> ArrayList<Analyzer>());</pre></td></tr> -<tr> <td class="numLine"> 110</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 98</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  @Deprecated</pre></td></tr> +<tr> <td class="numLineCover"> 99</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">public</span> Engine(<span class="keyword">boolean</span> autoUpdate) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 100</td> <td class="nbHitsUncovered"><a title="Line 100: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 100: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (autoUpdate) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 101</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  doUpdates();</span></pre></td></tr> +<tr> <td class="numLine"> 102</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 103</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  loadAnalyzers();</span></pre></td></tr> +<tr> <td class="numLineCover"> 104</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLine"> 105</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 106</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 107</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Loads the analyzers specified in the configuration file (or system</span></pre></td></tr> +<tr> <td class="numLine"> 108</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * properties).</span></pre></td></tr> +<tr> <td class="numLine"> 109</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 110</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">void</span> loadAnalyzers() {</pre></td></tr> <tr> <td class="numLine"> 111</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 112</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  <span class="keyword">final</span> AnalyzerService service = AnalyzerService.getInstance();</pre></td></tr> -<tr> <td class="numLineCover"> 113</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  <span class="keyword">final</span> Iterator<Analyzer> iterator = service.getAnalyzers();</pre></td></tr> -<tr> <td class="numLineCover"> 114</td> <td class="nbHitsCovered"><a title="Line 114: Conditional coverage 100% (2/2)."> 54</a></td> <td class="src"><pre class="src"> <a title="Line 114: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (iterator.hasNext()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 115</td> <td class="nbHitsCovered"> 48</td> <td class="src"><pre class="src">  <span class="keyword">final</span> Analyzer a = iterator.next();</pre></td></tr> -<tr> <td class="numLineCover"> 116</td> <td class="nbHitsCovered"> 48</td> <td class="src"><pre class="src">  analyzers.get(a.getAnalysisPhase()).add(a);</pre></td></tr> -<tr> <td class="numLineCover"> 117</td> <td class="nbHitsCovered"><a title="Line 117: Conditional coverage 100% (2/2)."> 48</a></td> <td class="src"><pre class="src"> <a title="Line 117: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (a.getSupportedExtensions() != <span class="keyword">null</span>) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 118</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  extensions.addAll(a.getSupportedExtensions());</pre></td></tr> -<tr> <td class="numLine"> 119</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 120</td> <td class="nbHitsCovered"> 48</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 121</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 122</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 112</td> <td class="nbHitsCovered"><a title="Line 112: Conditional coverage 100% (2/2)."> 60</a></td> <td class="src"><pre class="src"> <a title="Line 112: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (AnalysisPhase phase : AnalysisPhase.values()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 113</td> <td class="nbHitsCovered"> 54</td> <td class="src"><pre class="src">  analyzers.put(phase, <span class="keyword">new</span> ArrayList<Analyzer>());</pre></td></tr> +<tr> <td class="numLine"> 114</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 115</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLineCover"> 116</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  <span class="keyword">final</span> AnalyzerService service = AnalyzerService.getInstance();</pre></td></tr> +<tr> <td class="numLineCover"> 117</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  <span class="keyword">final</span> Iterator<Analyzer> iterator = service.getAnalyzers();</pre></td></tr> +<tr> <td class="numLineCover"> 118</td> <td class="nbHitsCovered"><a title="Line 118: Conditional coverage 100% (2/2)."> 66</a></td> <td class="src"><pre class="src"> <a title="Line 118: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (iterator.hasNext()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 119</td> <td class="nbHitsCovered"> 60</td> <td class="src"><pre class="src">  <span class="keyword">final</span> Analyzer a = iterator.next();</pre></td></tr> +<tr> <td class="numLineCover"> 120</td> <td class="nbHitsCovered"> 60</td> <td class="src"><pre class="src">  analyzers.get(a.getAnalysisPhase()).add(a);</pre></td></tr> +<tr> <td class="numLineCover"> 121</td> <td class="nbHitsCovered"><a title="Line 121: Conditional coverage 100% (2/2)."> 60</a></td> <td class="src"><pre class="src"> <a title="Line 121: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (a.getSupportedExtensions() != <span class="keyword">null</span>) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 122</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  extensions.addAll(a.getSupportedExtensions());</pre></td></tr> <tr> <td class="numLine"> 123</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 124</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Get the List of the analyzers for a specific phase of analysis.</span></pre></td></tr> -<tr> <td class="numLine"> 125</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 124</td> <td class="nbHitsCovered"> 60</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 125</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 126</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param phase the phase to get the configured analyzers.</span></pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 127</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @return the analyzers loaded</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 128</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * Get the List of the analyzers for a specific phase of analysis.</span></pre></td></tr> <tr> <td class="numLine"> 129</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> List<Analyzer> getAnalyzers(AnalysisPhase phase) {</pre></td></tr> -<tr> <td class="numLineCover"> 130</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> analyzers.get(phase);</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 130</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param phase the phase to get the configured analyzers.</span></pre></td></tr> <tr> <td class="numLine"> 131</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * @return the analyzers loaded</span></pre></td></tr> <tr> <td class="numLine"> 132</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 133</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 134</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Get the dependencies identified.</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">public</span> List<Analyzer> getAnalyzers(AnalysisPhase phase) {</pre></td></tr> +<tr> <td class="numLineCover"> 134</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> analyzers.get(phase);</span></pre></td></tr> <tr> <td class="numLine"> 135</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 136</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @return the dependencies identified</span></pre></td></tr> -<tr> <td class="numLine"> 137</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 138</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> List<Dependency> getDependencies() {</pre></td></tr> -<tr> <td class="numLineCover"> 139</td> <td class="nbHitsCovered"> 38</td> <td class="src"><pre class="src">  <span class="keyword">return</span> dependencies;</pre></td></tr> -<tr> <td class="numLine"> 140</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 136</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 137</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 138</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Get the dependencies identified.</span></pre></td></tr> +<tr> <td class="numLine"> 139</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 140</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @return the dependencies identified</span></pre></td></tr> <tr> <td class="numLine"> 141</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 142</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 143</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Scans an array of files or directories. If a directory is specified, it</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">public</span> List<Dependency> getDependencies() {</pre></td></tr> +<tr> <td class="numLineCover"> 143</td> <td class="nbHitsCovered"> 38</td> <td class="src"><pre class="src">  <span class="keyword">return</span> dependencies;</pre></td></tr> <tr> <td class="numLine"> 144</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * will be scanned recursively. Any dependencies identified are added to the</span></pre></td></tr> + <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 145</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * dependency collection.</span></pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 146</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 147</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @since v0.3.2.5</span></pre></td></tr> -<tr> <td class="numLine"> 148</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 149</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param paths an array of paths to files or directories to be analyzed.</span></pre></td></tr> -<tr> <td class="numLine"> 150</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 151</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> scan(String[] paths) {</pre></td></tr> -<tr> <td class="numLineCover"> 152</td> <td class="nbHitsUncovered"><a title="Line 152: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 152: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (String path : paths) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 153</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> File file = <span class="keyword">new</span> File(path);</span></pre></td></tr> -<tr> <td class="numLineCover"> 154</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  scan(file);</span></pre></td></tr> -<tr> <td class="numLine"> 155</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 156</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLine"> 157</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 158</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 159</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Scans a given file or directory. If a directory is specified, it will be</span></pre></td></tr> -<tr> <td class="numLine"> 160</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * scanned recursively. Any dependencies identified are added to the</span></pre></td></tr> -<tr> <td class="numLine"> 161</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * dependency collection.</span></pre></td></tr> -<tr> <td class="numLine"> 162</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 163</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param path the path to a file or directory to be analyzed.</span></pre></td></tr> -<tr> <td class="numLine"> 164</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 165</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> scan(String path) {</pre></td></tr> -<tr> <td class="numLineCover"> 166</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> File file = <span class="keyword">new</span> File(path);</span></pre></td></tr> -<tr> <td class="numLineCover"> 167</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  scan(file);</span></pre></td></tr> -<tr> <td class="numLineCover"> 168</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLine"> 169</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 170</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 171</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Scans an array of files or directories. If a directory is specified, it</span></pre></td></tr> -<tr> <td class="numLine"> 172</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 148</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * will be scanned recursively. Any dependencies identified are added to the</span></pre></td></tr> -<tr> <td class="numLine"> 173</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 149</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * dependency collection.</span></pre></td></tr> -<tr> <td class="numLine"> 174</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 150</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 175</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 151</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @since v0.3.2.5</span></pre></td></tr> -<tr> <td class="numLine"> 176</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 152</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 177</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param files an array of paths to files or directories to be analyzed.</span></pre></td></tr> -<tr> <td class="numLine"> 178</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 153</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param paths an array of paths to files or directories to be analyzed.</span></pre></td></tr> +<tr> <td class="numLine"> 154</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 179</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> scan(File[] files) {</pre></td></tr> -<tr> <td class="numLineCover"> 180</td> <td class="nbHitsUncovered"><a title="Line 180: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 180: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (File file : files) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 181</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  scan(file);</span></pre></td></tr> -<tr> <td class="numLine"> 182</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 155</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> scan(String[] paths) {</pre></td></tr> +<tr> <td class="numLineCover"> 156</td> <td class="nbHitsUncovered"><a title="Line 156: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 156: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (String path : paths) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 157</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> File file = <span class="keyword">new</span> File(path);</span></pre></td></tr> +<tr> <td class="numLineCover"> 158</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  scan(file);</span></pre></td></tr> +<tr> <td class="numLine"> 159</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 183</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLine"> 184</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 160</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLine"> 161</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 185</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 162</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 186</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Scans a list of files or directories. If a directory is specified, it</span></pre></td></tr> -<tr> <td class="numLine"> 187</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * will be scanned recursively. Any dependencies identified are added to the</span></pre></td></tr> -<tr> <td class="numLine"> 188</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * dependency collection.</span></pre></td></tr> -<tr> <td class="numLine"> 189</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 190</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @since v0.3.2.5</span></pre></td></tr> -<tr> <td class="numLine"> 191</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 192</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param files a set of paths to files or directories to be analyzed.</span></pre></td></tr> -<tr> <td class="numLine"> 193</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 194</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> scan(Set<File> files) {</pre></td></tr> -<tr> <td class="numLineCover"> 195</td> <td class="nbHitsUncovered"><a title="Line 195: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 195: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (File file : files) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 196</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  scan(file);</span></pre></td></tr> -<tr> <td class="numLine"> 197</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 198</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLine"> 199</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 200</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 201</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Scans a list of files or directories. If a directory is specified, it</span></pre></td></tr> -<tr> <td class="numLine"> 202</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * will be scanned recursively. Any dependencies identified are added to the</span></pre></td></tr> -<tr> <td class="numLine"> 203</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * dependency collection.</span></pre></td></tr> -<tr> <td class="numLine"> 204</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 205</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @since v0.3.2.5</span></pre></td></tr> -<tr> <td class="numLine"> 206</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 207</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param files a set of paths to files or directories to be analyzed.</span></pre></td></tr> -<tr> <td class="numLine"> 208</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 209</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> scan(List<File> files) {</pre></td></tr> -<tr> <td class="numLineCover"> 210</td> <td class="nbHitsUncovered"><a title="Line 210: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 210: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (File file : files) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 211</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  scan(file);</span></pre></td></tr> -<tr> <td class="numLine"> 212</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 213</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLine"> 214</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 215</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 216</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 163</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Scans a given file or directory. If a directory is specified, it will be</span></pre></td></tr> -<tr> <td class="numLine"> 217</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 164</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * scanned recursively. Any dependencies identified are added to the</span></pre></td></tr> +<tr> <td class="numLine"> 165</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * dependency collection.</span></pre></td></tr> +<tr> <td class="numLine"> 166</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 167</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param path the path to a file or directory to be analyzed.</span></pre></td></tr> +<tr> <td class="numLine"> 168</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 169</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> scan(String path) {</pre></td></tr> +<tr> <td class="numLineCover"> 170</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> File file = <span class="keyword">new</span> File(path);</span></pre></td></tr> +<tr> <td class="numLineCover"> 171</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  scan(file);</span></pre></td></tr> +<tr> <td class="numLineCover"> 172</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLine"> 173</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 174</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 175</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Scans an array of files or directories. If a directory is specified, it</span></pre></td></tr> +<tr> <td class="numLine"> 176</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * will be scanned recursively. Any dependencies identified are added to the</span></pre></td></tr> +<tr> <td class="numLine"> 177</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * dependency collection.</span></pre></td></tr> +<tr> <td class="numLine"> 178</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 179</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @since v0.3.2.5</span></pre></td></tr> +<tr> <td class="numLine"> 180</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 181</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param files an array of paths to files or directories to be analyzed.</span></pre></td></tr> +<tr> <td class="numLine"> 182</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 183</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> scan(File[] files) {</pre></td></tr> +<tr> <td class="numLineCover"> 184</td> <td class="nbHitsUncovered"><a title="Line 184: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 184: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (File file : files) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 185</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  scan(file);</span></pre></td></tr> +<tr> <td class="numLine"> 186</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 187</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLine"> 188</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 189</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 190</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Scans a list of files or directories. If a directory is specified, it</span></pre></td></tr> +<tr> <td class="numLine"> 191</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * will be scanned recursively. Any dependencies identified are added to the</span></pre></td></tr> +<tr> <td class="numLine"> 192</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * dependency collection.</span></pre></td></tr> +<tr> <td class="numLine"> 193</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 194</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @since v0.3.2.5</span></pre></td></tr> +<tr> <td class="numLine"> 195</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 196</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param files a set of paths to files or directories to be analyzed.</span></pre></td></tr> +<tr> <td class="numLine"> 197</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 198</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> scan(Set<File> files) {</pre></td></tr> +<tr> <td class="numLineCover"> 199</td> <td class="nbHitsUncovered"><a title="Line 199: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 199: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (File file : files) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 200</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  scan(file);</span></pre></td></tr> +<tr> <td class="numLine"> 201</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 202</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLine"> 203</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 204</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 205</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Scans a list of files or directories. If a directory is specified, it</span></pre></td></tr> +<tr> <td class="numLine"> 206</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * will be scanned recursively. Any dependencies identified are added to the</span></pre></td></tr> +<tr> <td class="numLine"> 207</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * dependency collection.</span></pre></td></tr> +<tr> <td class="numLine"> 208</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 209</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @since v0.3.2.5</span></pre></td></tr> +<tr> <td class="numLine"> 210</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 211</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param files a set of paths to files or directories to be analyzed.</span></pre></td></tr> +<tr> <td class="numLine"> 212</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 213</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> scan(List<File> files) {</pre></td></tr> +<tr> <td class="numLineCover"> 214</td> <td class="nbHitsUncovered"><a title="Line 214: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 214: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (File file : files) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 215</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  scan(file);</span></pre></td></tr> +<tr> <td class="numLine"> 216</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 217</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> <tr> <td class="numLine"> 218</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * dependency collection.</span></pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 219</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 220</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @since v0.3.2.4</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * Scans a given file or directory. If a directory is specified, it will be</span></pre></td></tr> <tr> <td class="numLine"> 221</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * scanned recursively. Any dependencies identified are added to the</span></pre></td></tr> <tr> <td class="numLine"> 222</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param file the path to a file or directory to be analyzed.</span></pre></td></tr> -<tr> <td class="numLine"> 223</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 224</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> scan(File file) {</pre></td></tr> -<tr> <td class="numLineCover"> 225</td> <td class="nbHitsUncovered"><a title="Line 225: Conditional coverage 50% (1/2)."> 13</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 225: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (file.exists()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 226</td> <td class="nbHitsCovered"><a title="Line 226: Conditional coverage 100% (2/2)."> 13</a></td> <td class="src"><pre class="src"> <a title="Line 226: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (file.isDirectory()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 227</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src">  scanDirectory(file);</pre></td></tr> -<tr> <td class="numLine"> 228</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 229</td> <td class="nbHitsCovered"> 5</td> <td class="src"><pre class="src">  scanFile(file);</pre></td></tr> -<tr> <td class="numLine"> 230</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 231</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 232</td> <td class="nbHitsCovered"> 13</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 233</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 234</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 235</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Recursively scans files and directories. Any dependencies identified are</span></pre></td></tr> -<tr> <td class="numLine"> 236</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * added to the dependency collection.</span></pre></td></tr> -<tr> <td class="numLine"> 237</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 238</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param dir the directory to scan.</span></pre></td></tr> -<tr> <td class="numLine"> 239</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 240</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">protected</span> <span class="keyword">void</span> scanDirectory(File dir) {</pre></td></tr> -<tr> <td class="numLineCover"> 241</td> <td class="nbHitsCovered"> 33</td> <td class="src"><pre class="src">  <span class="keyword">final</span> File[] files = dir.listFiles();</pre></td></tr> -<tr> <td class="numLineCover"> 242</td> <td class="nbHitsUncovered"><a title="Line 242: Conditional coverage 50% (1/2)."> 33</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 242: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (files != <span class="keyword">null</span>) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 243</td> <td class="nbHitsCovered"><a title="Line 243: Conditional coverage 100% (2/2)."> 68</a></td> <td class="src"><pre class="src"> <a title="Line 243: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (File f : files) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 244</td> <td class="nbHitsCovered"><a title="Line 244: Conditional coverage 100% (2/2)."> 35</a></td> <td class="src"><pre class="src"> <a title="Line 244: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (f.isDirectory()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 245</td> <td class="nbHitsCovered"> 25</td> <td class="src"><pre class="src">  scanDirectory(f);</pre></td></tr> -<tr> <td class="numLine"> 246</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 247</td> <td class="nbHitsCovered"> 10</td> <td class="src"><pre class="src">  scanFile(f);</pre></td></tr> -<tr> <td class="numLine"> 248</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 249</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 250</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 251</td> <td class="nbHitsCovered"> 33</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 252</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 253</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 254</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Scans a specified file. If a dependency is identified it is added to the</span></pre></td></tr> -<tr> <td class="numLine"> 255</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * dependency collection.</span></pre></td></tr> -<tr> <td class="numLine"> 256</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 223</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 257</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param file The file to scan.</span></pre></td></tr> -<tr> <td class="numLine"> 258</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 224</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @since v0.3.2.4</span></pre></td></tr> +<tr> <td class="numLine"> 225</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 226</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param file the path to a file or directory to be analyzed.</span></pre></td></tr> +<tr> <td class="numLine"> 227</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 259</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">protected</span> <span class="keyword">void</span> scanFile(File file) {</pre></td></tr> -<tr> <td class="numLineCover"> 260</td> <td class="nbHitsUncovered"><a title="Line 260: Conditional coverage 50% (1/2)."> 15</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 260: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (!file.isFile()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 261</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = String.format(<span class="string">"Path passed to scanFile(File) is not a file: %s. Skipping the file."</span>, file.toString());</span></pre></td></tr> -<tr> <td class="numLineCover"> 262</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Engine.<span class="keyword">class</span>.getName()).log(Level.FINE, msg);</span></pre></td></tr> -<tr> <td class="numLineCover"> 263</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span>;</span></pre></td></tr> -<tr> <td class="numLine"> 264</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 265</td> <td class="nbHitsCovered"> 15</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String fileName = file.getName();</pre></td></tr> -<tr> <td class="numLineCover"> 266</td> <td class="nbHitsCovered"> 15</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String extension = FileUtils.getFileExtension(fileName);</pre></td></tr> -<tr> <td class="numLineCover"> 267</td> <td class="nbHitsUncovered"><a title="Line 267: Conditional coverage 50% (1/2)."> 15</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 267: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (extension != <span class="keyword">null</span>) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 268</td> <td class="nbHitsUncovered"><a title="Line 268: Conditional coverage 50% (1/2)."> 15</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 268: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (extensions.contains(extension)) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 269</td> <td class="nbHitsCovered"> 15</td> <td class="src"><pre class="src">  <span class="keyword">final</span> Dependency dependency = <span class="keyword">new</span> Dependency(file);</pre></td></tr> -<tr> <td class="numLineCover"> 270</td> <td class="nbHitsCovered"> 15</td> <td class="src"><pre class="src">  dependencies.add(dependency);</pre></td></tr> -<tr> <td class="numLineCover"> 271</td> <td class="nbHitsCovered"> 15</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 272</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 273</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = String.format(<span class="string">"No file extension found on file '%s'. The file was not analyzed."</span>,</span></pre></td></tr> -<tr> <td class="numLine"> 274</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  file.toString());</pre></td></tr> -<tr> <td class="numLineCover"> 275</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Engine.<span class="keyword">class</span>.getName()).log(Level.FINEST, msg);</span></pre></td></tr> -<tr> <td class="numLine"> 276</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 277</td> <td class="nbHitsCovered"> 15</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 278</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 279</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 280</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Runs the analyzers against all of the dependencies.</span></pre></td></tr> -<tr> <td class="numLine"> 281</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 282</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> analyzeDependencies() {</pre></td></tr> -<tr> <td class="numLine"> 283</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">//need to ensure that data exists</span></pre></td></tr> -<tr> <td class="numLine"> 284</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 285</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  ensureDataExists();</pre></td></tr> -<tr> <td class="numLineCover"> 286</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (NoDataException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 287</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = String.format(<span class="string">"%n%n%s%n%nUnable to continue dependency-check analysis."</span>, ex.getMessage());</span></pre></td></tr> -<tr> <td class="numLineCover"> 288</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Engine.<span class="keyword">class</span>.getName()).log(Level.SEVERE, msg);</span></pre></td></tr> -<tr> <td class="numLineCover"> 289</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Engine.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="keyword">null</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 290</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span>;</span></pre></td></tr> -<tr> <td class="numLineCover"> 291</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 292</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 293</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">//phase one initialize</span></pre></td></tr> -<tr> <td class="numLineCover"> 294</td> <td class="nbHitsCovered"><a title="Line 294: Conditional coverage 100% (2/2)."> 30</a></td> <td class="src"><pre class="src"> <a title="Line 294: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (AnalysisPhase phase : AnalysisPhase.values()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 295</td> <td class="nbHitsCovered"> 27</td> <td class="src"><pre class="src">  <span class="keyword">final</span> List<Analyzer> analyzerList = analyzers.get(phase);</pre></td></tr> -<tr> <td class="numLineCover"> 296</td> <td class="nbHitsCovered"><a title="Line 296: Conditional coverage 100% (2/2)."> 27</a></td> <td class="src"><pre class="src"> <a title="Line 296: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Analyzer a : analyzerList) {</a></pre></td></tr> -<tr> <td class="numLine"> 297</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 298</td> <td class="nbHitsCovered"> 24</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String msg = String.format(<span class="string">"Initializing %s"</span>, a.getName());</pre></td></tr> -<tr> <td class="numLineCover"> 299</td> <td class="nbHitsCovered"> 24</td> <td class="src"><pre class="src">  Logger.getLogger(Engine.<span class="keyword">class</span>.getName()).log(Level.FINE, msg);</pre></td></tr> -<tr> <td class="numLineCover"> 300</td> <td class="nbHitsCovered"> 24</td> <td class="src"><pre class="src">  a.initialize();</pre></td></tr> -<tr> <td class="numLineCover"> 301</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (Exception ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 302</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = String.format(<span class="string">"Exception occurred initializing %s."</span>, a.getName());</span></pre></td></tr> -<tr> <td class="numLineCover"> 303</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Engine.<span class="keyword">class</span>.getName()).log(Level.SEVERE, msg);</span></pre></td></tr> -<tr> <td class="numLineCover"> 304</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Engine.<span class="keyword">class</span>.getName()).log(Level.INFO, <span class="keyword">null</span>, ex);</span></pre></td></tr> -<tr> <td class="numLine"> 305</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 306</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  a.close();</span></pre></td></tr> -<tr> <td class="numLineCover"> 307</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (Exception ex1) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 308</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Engine.<span class="keyword">class</span>.getName()).log(Level.FINEST, <span class="keyword">null</span>, ex1);</span></pre></td></tr> -<tr> <td class="numLineCover"> 309</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLineCover"> 310</td> <td class="nbHitsCovered"> 48</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 311</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 228</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> scan(File file) {</pre></td></tr> +<tr> <td class="numLineCover"> 229</td> <td class="nbHitsUncovered"><a title="Line 229: Conditional coverage 50% (1/2)."> 13</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 229: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (file.exists()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 230</td> <td class="nbHitsCovered"><a title="Line 230: Conditional coverage 100% (2/2)."> 13</a></td> <td class="src"><pre class="src"> <a title="Line 230: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (file.isDirectory()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 231</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src">  scanDirectory(file);</pre></td></tr> +<tr> <td class="numLine"> 232</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 233</td> <td class="nbHitsCovered"> 5</td> <td class="src"><pre class="src">  scanFile(file);</pre></td></tr> +<tr> <td class="numLine"> 234</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 312</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 235</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 313</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 236</td> <td class="nbHitsCovered"> 13</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 237</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 314</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">// analysis phases</span></pre></td></tr> -<tr> <td class="numLineCover"> 315</td> <td class="nbHitsCovered"><a title="Line 315: Conditional coverage 100% (2/2)."> 30</a></td> <td class="src"><pre class="src"> <a title="Line 315: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (AnalysisPhase phase : AnalysisPhase.values()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 316</td> <td class="nbHitsCovered"> 27</td> <td class="src"><pre class="src">  <span class="keyword">final</span> List<Analyzer> analyzerList = analyzers.get(phase);</pre></td></tr> +<tr> <td class="numLine"> 238</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 239</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Recursively scans files and directories. Any dependencies identified are</span></pre></td></tr> +<tr> <td class="numLine"> 240</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * added to the dependency collection.</span></pre></td></tr> +<tr> <td class="numLine"> 241</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 242</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param dir the directory to scan.</span></pre></td></tr> +<tr> <td class="numLine"> 243</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 244</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">protected</span> <span class="keyword">void</span> scanDirectory(File dir) {</pre></td></tr> +<tr> <td class="numLineCover"> 245</td> <td class="nbHitsCovered"> 33</td> <td class="src"><pre class="src">  <span class="keyword">final</span> File[] files = dir.listFiles();</pre></td></tr> +<tr> <td class="numLineCover"> 246</td> <td class="nbHitsUncovered"><a title="Line 246: Conditional coverage 50% (1/2)."> 33</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 246: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (files != <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 247</td> <td class="nbHitsCovered"><a title="Line 247: Conditional coverage 100% (2/2)."> 68</a></td> <td class="src"><pre class="src"> <a title="Line 247: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (File f : files) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 248</td> <td class="nbHitsCovered"><a title="Line 248: Conditional coverage 100% (2/2)."> 35</a></td> <td class="src"><pre class="src"> <a title="Line 248: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (f.isDirectory()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 249</td> <td class="nbHitsCovered"> 25</td> <td class="src"><pre class="src">  scanDirectory(f);</pre></td></tr> +<tr> <td class="numLine"> 250</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 251</td> <td class="nbHitsCovered"> 10</td> <td class="src"><pre class="src">  scanFile(f);</pre></td></tr> +<tr> <td class="numLine"> 252</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 253</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 254</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 255</td> <td class="nbHitsCovered"> 33</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 256</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 257</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 258</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Scans a specified file. If a dependency is identified it is added to the</span></pre></td></tr> +<tr> <td class="numLine"> 259</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * dependency collection.</span></pre></td></tr> +<tr> <td class="numLine"> 260</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 261</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param file The file to scan.</span></pre></td></tr> +<tr> <td class="numLine"> 262</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 263</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">protected</span> <span class="keyword">void</span> scanFile(File file) {</pre></td></tr> +<tr> <td class="numLineCover"> 264</td> <td class="nbHitsUncovered"><a title="Line 264: Conditional coverage 50% (1/2)."> 15</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 264: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (!file.isFile()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 265</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = String.format(<span class="string">"Path passed to scanFile(File) is not a file: %s. Skipping the file."</span>, file.toString());</span></pre></td></tr> +<tr> <td class="numLineCover"> 266</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Engine.<span class="keyword">class</span>.getName()).log(Level.FINE, msg);</span></pre></td></tr> +<tr> <td class="numLineCover"> 267</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span>;</span></pre></td></tr> +<tr> <td class="numLine"> 268</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 269</td> <td class="nbHitsCovered"> 15</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String fileName = file.getName();</pre></td></tr> +<tr> <td class="numLineCover"> 270</td> <td class="nbHitsCovered"> 15</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String extension = FileUtils.getFileExtension(fileName);</pre></td></tr> +<tr> <td class="numLineCover"> 271</td> <td class="nbHitsUncovered"><a title="Line 271: Conditional coverage 50% (1/2)."> 15</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 271: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (extension != <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 272</td> <td class="nbHitsUncovered"><a title="Line 272: Conditional coverage 50% (1/2)."> 15</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 272: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (extensions.contains(extension)) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 273</td> <td class="nbHitsCovered"> 15</td> <td class="src"><pre class="src">  <span class="keyword">final</span> Dependency dependency = <span class="keyword">new</span> Dependency(file);</pre></td></tr> +<tr> <td class="numLineCover"> 274</td> <td class="nbHitsCovered"> 15</td> <td class="src"><pre class="src">  dependencies.add(dependency);</pre></td></tr> +<tr> <td class="numLineCover"> 275</td> <td class="nbHitsCovered"> 15</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 276</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 277</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = String.format(<span class="string">"No file extension found on file '%s'. The file was not analyzed."</span>,</span></pre></td></tr> +<tr> <td class="numLine"> 278</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  file.toString());</pre></td></tr> +<tr> <td class="numLineCover"> 279</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Engine.<span class="keyword">class</span>.getName()).log(Level.FINEST, msg);</span></pre></td></tr> +<tr> <td class="numLine"> 280</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 281</td> <td class="nbHitsCovered"> 15</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 282</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 283</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 284</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Runs the analyzers against all of the dependencies.</span></pre></td></tr> +<tr> <td class="numLine"> 285</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 286</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> analyzeDependencies() {</pre></td></tr> +<tr> <td class="numLine"> 287</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">//need to ensure that data exists</span></pre></td></tr> +<tr> <td class="numLine"> 288</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 289</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  ensureDataExists();</pre></td></tr> +<tr> <td class="numLineCover"> 290</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (NoDataException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 291</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = String.format(<span class="string">"%n%n%s%n%nUnable to continue dependency-check analysis."</span>, ex.getMessage());</span></pre></td></tr> +<tr> <td class="numLineCover"> 292</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Engine.<span class="keyword">class</span>.getName()).log(Level.SEVERE, msg);</span></pre></td></tr> +<tr> <td class="numLineCover"> 293</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Engine.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="keyword">null</span>, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 294</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span>;</span></pre></td></tr> +<tr> <td class="numLineCover"> 295</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 296</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 297</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">//phase one initialize</span></pre></td></tr> +<tr> <td class="numLineCover"> 298</td> <td class="nbHitsCovered"><a title="Line 298: Conditional coverage 100% (2/2)."> 30</a></td> <td class="src"><pre class="src"> <a title="Line 298: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (AnalysisPhase phase : AnalysisPhase.values()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 299</td> <td class="nbHitsCovered"> 27</td> <td class="src"><pre class="src">  <span class="keyword">final</span> List<Analyzer> analyzerList = analyzers.get(phase);</pre></td></tr> +<tr> <td class="numLineCover"> 300</td> <td class="nbHitsCovered"><a title="Line 300: Conditional coverage 100% (2/2)."> 27</a></td> <td class="src"><pre class="src"> <a title="Line 300: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Analyzer a : analyzerList) {</a></pre></td></tr> +<tr> <td class="numLine"> 301</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 302</td> <td class="nbHitsCovered"> 30</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String msg = String.format(<span class="string">"Initializing %s"</span>, a.getName());</pre></td></tr> +<tr> <td class="numLineCover"> 303</td> <td class="nbHitsCovered"> 30</td> <td class="src"><pre class="src">  Logger.getLogger(Engine.<span class="keyword">class</span>.getName()).log(Level.FINE, msg);</pre></td></tr> +<tr> <td class="numLineCover"> 304</td> <td class="nbHitsCovered"> 30</td> <td class="src"><pre class="src">  a.initialize();</pre></td></tr> +<tr> <td class="numLineCover"> 305</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (Exception ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 306</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = String.format(<span class="string">"Exception occurred initializing %s."</span>, a.getName());</span></pre></td></tr> +<tr> <td class="numLineCover"> 307</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Engine.<span class="keyword">class</span>.getName()).log(Level.SEVERE, msg);</span></pre></td></tr> +<tr> <td class="numLineCover"> 308</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Engine.<span class="keyword">class</span>.getName()).log(Level.INFO, <span class="keyword">null</span>, ex);</span></pre></td></tr> +<tr> <td class="numLine"> 309</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 310</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  a.close();</span></pre></td></tr> +<tr> <td class="numLineCover"> 311</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (Exception ex1) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 312</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Engine.<span class="keyword">class</span>.getName()).log(Level.FINEST, <span class="keyword">null</span>, ex1);</span></pre></td></tr> +<tr> <td class="numLineCover"> 313</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLineCover"> 314</td> <td class="nbHitsCovered"> 60</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 315</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 316</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 317</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 318</td> <td class="nbHitsCovered"><a title="Line 318: Conditional coverage 100% (2/2)."> 27</a></td> <td class="src"><pre class="src"> <a title="Line 318: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Analyzer a : analyzerList) {</a></pre></td></tr> -<tr> <td class="numLine"> 319</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/* need to create a copy of the collection because some of the</span></pre></td></tr> -<tr> <td class="numLine"> 320</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * analyzers may modify it. This prevents ConcurrentModificationExceptions.</span></pre></td></tr> +<tr> <td class="numLine"> 318</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">// analysis phases</span></pre></td></tr> +<tr> <td class="numLineCover"> 319</td> <td class="nbHitsCovered"><a title="Line 319: Conditional coverage 100% (2/2)."> 30</a></td> <td class="src"><pre class="src"> <a title="Line 319: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (AnalysisPhase phase : AnalysisPhase.values()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 320</td> <td class="nbHitsCovered"> 27</td> <td class="src"><pre class="src">  <span class="keyword">final</span> List<Analyzer> analyzerList = analyzers.get(phase);</pre></td></tr> <tr> <td class="numLine"> 321</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLineCover"> 322</td> <td class="nbHitsCovered"><a title="Line 322: Conditional coverage 100% (2/2)."> 27</a></td> <td class="src"><pre class="src"> <a title="Line 322: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Analyzer a : analyzerList) {</a></pre></td></tr> +<tr> <td class="numLine"> 323</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/* need to create a copy of the collection because some of the</span></pre></td></tr> +<tr> <td class="numLine"> 324</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * analyzers may modify it. This prevents ConcurrentModificationExceptions.</span></pre></td></tr> +<tr> <td class="numLine"> 325</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * This is okay for adds/deletes because it happens per analyzer.</span></pre></td></tr> -<tr> <td class="numLine"> 322</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 326</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 323</td> <td class="nbHitsCovered"> 24</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String msg = String.format(<span class="string">"Begin Analyzer '%s'"</span>, a.getName());</pre></td></tr> -<tr> <td class="numLineCover"> 324</td> <td class="nbHitsCovered"> 24</td> <td class="src"><pre class="src">  Logger.getLogger(Engine.<span class="keyword">class</span>.getName()).log(Level.FINE, msg);</pre></td></tr> -<tr> <td class="numLineCover"> 325</td> <td class="nbHitsCovered"> 24</td> <td class="src"><pre class="src">  <span class="keyword">final</span> Set<Dependency> dependencySet = <span class="keyword">new</span> HashSet<Dependency>();</pre></td></tr> -<tr> <td class="numLineCover"> 326</td> <td class="nbHitsCovered"> 24</td> <td class="src"><pre class="src">  dependencySet.addAll(dependencies);</pre></td></tr> -<tr> <td class="numLineCover"> 327</td> <td class="nbHitsCovered"><a title="Line 327: Conditional coverage 100% (2/2)."> 24</a></td> <td class="src"><pre class="src"> <a title="Line 327: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Dependency d : dependencySet) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 328</td> <td class="nbHitsCovered"> 68</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String msgFile = String.format(<span class="string">"Begin Analysis of '%s'"</span>, d.getActualFilePath());</pre></td></tr> -<tr> <td class="numLineCover"> 329</td> <td class="nbHitsCovered"> 68</td> <td class="src"><pre class="src">  Logger.getLogger(Engine.<span class="keyword">class</span>.getName()).log(Level.FINE, msgFile);</pre></td></tr> -<tr> <td class="numLineCover"> 330</td> <td class="nbHitsCovered"><a title="Line 330: Conditional coverage 100% (2/2)."> 68</a></td> <td class="src"><pre class="src"> <a title="Line 330: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (a.supportsExtension(d.getFileExtension())) {</a></pre></td></tr> -<tr> <td class="numLine"> 331</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 327</td> <td class="nbHitsCovered"> 30</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String msg = String.format(<span class="string">"Begin Analyzer '%s'"</span>, a.getName());</pre></td></tr> +<tr> <td class="numLineCover"> 328</td> <td class="nbHitsCovered"> 30</td> <td class="src"><pre class="src">  Logger.getLogger(Engine.<span class="keyword">class</span>.getName()).log(Level.FINE, msg);</pre></td></tr> +<tr> <td class="numLineCover"> 329</td> <td class="nbHitsCovered"> 30</td> <td class="src"><pre class="src">  <span class="keyword">final</span> Set<Dependency> dependencySet = <span class="keyword">new</span> HashSet<Dependency>();</pre></td></tr> +<tr> <td class="numLineCover"> 330</td> <td class="nbHitsCovered"> 30</td> <td class="src"><pre class="src">  dependencySet.addAll(dependencies);</pre></td></tr> +<tr> <td class="numLineCover"> 331</td> <td class="nbHitsCovered"><a title="Line 331: Conditional coverage 100% (2/2)."> 30</a></td> <td class="src"><pre class="src"> <a title="Line 331: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Dependency d : dependencySet) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 332</td> <td class="nbHitsCovered"> 86</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String msgFile = String.format(<span class="string">"Begin Analysis of '%s'"</span>, d.getActualFilePath());</pre></td></tr> +<tr> <td class="numLineCover"> 333</td> <td class="nbHitsCovered"> 86</td> <td class="src"><pre class="src">  Logger.getLogger(Engine.<span class="keyword">class</span>.getName()).log(Level.FINE, msgFile);</pre></td></tr> +<tr> <td class="numLineCover"> 334</td> <td class="nbHitsCovered"><a title="Line 334: Conditional coverage 100% (2/2)."> 86</a></td> <td class="src"><pre class="src"> <a title="Line 334: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (a.supportsExtension(d.getFileExtension())) {</a></pre></td></tr> +<tr> <td class="numLine"> 335</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 332</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  a.analyze(d, <span class="keyword">this</span>);</pre></td></tr> -<tr> <td class="numLineCover"> 333</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (AnalysisException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 334</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  d.addAnalysisException(ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 335</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 336</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 337</td> <td class="nbHitsCovered"> 68</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 338</td> <td class="nbHitsCovered"> 24</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 339</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 336</td> <td class="nbHitsCovered"> 79</td> <td class="src"><pre class="src">  a.analyze(d, <span class="keyword">this</span>);</pre></td></tr> +<tr> <td class="numLineCover"> 337</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (AnalysisException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 338</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  d.addAnalysisException(ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 339</td> <td class="nbHitsCovered"> 79</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 340</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 341</td> <td class="nbHitsCovered"> 86</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 342</td> <td class="nbHitsCovered"> 30</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 343</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 344</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 341</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 345</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">//close/cleanup</span></pre></td></tr> -<tr> <td class="numLineCover"> 342</td> <td class="nbHitsCovered"><a title="Line 342: Conditional coverage 100% (2/2)."> 30</a></td> <td class="src"><pre class="src"> <a title="Line 342: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (AnalysisPhase phase : AnalysisPhase.values()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 343</td> <td class="nbHitsCovered"> 27</td> <td class="src"><pre class="src">  <span class="keyword">final</span> List<Analyzer> analyzerList = analyzers.get(phase);</pre></td></tr> -<tr> <td class="numLineCover"> 344</td> <td class="nbHitsCovered"><a title="Line 344: Conditional coverage 100% (2/2)."> 27</a></td> <td class="src"><pre class="src"> <a title="Line 344: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Analyzer a : analyzerList) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 345</td> <td class="nbHitsCovered"> 24</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String msg = String.format(<span class="string">"Closing Analyzer '%s'"</span>, a.getName());</pre></td></tr> -<tr> <td class="numLineCover"> 346</td> <td class="nbHitsCovered"> 24</td> <td class="src"><pre class="src">  Logger.getLogger(Engine.<span class="keyword">class</span>.getName()).log(Level.FINE, msg);</pre></td></tr> -<tr> <td class="numLine"> 347</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 346</td> <td class="nbHitsCovered"><a title="Line 346: Conditional coverage 100% (2/2)."> 30</a></td> <td class="src"><pre class="src"> <a title="Line 346: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (AnalysisPhase phase : AnalysisPhase.values()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 347</td> <td class="nbHitsCovered"> 27</td> <td class="src"><pre class="src">  <span class="keyword">final</span> List<Analyzer> analyzerList = analyzers.get(phase);</pre></td></tr> +<tr> <td class="numLineCover"> 348</td> <td class="nbHitsCovered"><a title="Line 348: Conditional coverage 100% (2/2)."> 27</a></td> <td class="src"><pre class="src"> <a title="Line 348: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Analyzer a : analyzerList) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 349</td> <td class="nbHitsCovered"> 30</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String msg = String.format(<span class="string">"Closing Analyzer '%s'"</span>, a.getName());</pre></td></tr> +<tr> <td class="numLineCover"> 350</td> <td class="nbHitsCovered"> 30</td> <td class="src"><pre class="src">  Logger.getLogger(Engine.<span class="keyword">class</span>.getName()).log(Level.FINE, msg);</pre></td></tr> +<tr> <td class="numLine"> 351</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 348</td> <td class="nbHitsCovered"> 24</td> <td class="src"><pre class="src">  a.close();</pre></td></tr> -<tr> <td class="numLineCover"> 349</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (Exception ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 350</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Engine.<span class="keyword">class</span>.getName()).log(Level.FINEST, <span class="keyword">null</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 351</td> <td class="nbHitsCovered"> 24</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 352</td> <td class="nbHitsCovered"> 24</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 353</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 354</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 355</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 356</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLineCover"> 352</td> <td class="nbHitsCovered"> 30</td> <td class="src"><pre class="src">  a.close();</pre></td></tr> +<tr> <td class="numLineCover"> 353</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (Exception ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 354</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Engine.<span class="keyword">class</span>.getName()).log(Level.FINEST, <span class="keyword">null</span>, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 355</td> <td class="nbHitsCovered"> 30</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 356</td> <td class="nbHitsCovered"> 30</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 357</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Cycles through the cached web data sources and calls update on all of</span></pre></td></tr> -<tr> <td class="numLine"> 358</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * them.</span></pre></td></tr> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 358</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 359</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 360</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 361</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Cycles through the cached web data sources and calls update on all of</span></pre></td></tr> +<tr> <td class="numLine"> 362</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * them.</span></pre></td></tr> +<tr> <td class="numLine"> 363</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 364</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">void</span> doUpdates() {</pre></td></tr> -<tr> <td class="numLineCover"> 361</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> UpdateService service = UpdateService.getInstance();</span></pre></td></tr> -<tr> <td class="numLineCover"> 362</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> Iterator<CachedWebDataSource> iterator = service.getDataSources();</span></pre></td></tr> -<tr> <td class="numLineCover"> 363</td> <td class="nbHitsUncovered"><a title="Line 363: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 363: Conditional coverage 0% (0/2)."> <span class="keyword">while</span> (iterator.hasNext()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 364</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> CachedWebDataSource source = iterator.next();</span></pre></td></tr> -<tr> <td class="numLine"> 365</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 366</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  source.update();</span></pre></td></tr> -<tr> <td class="numLineCover"> 367</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (UpdateException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 368</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Engine.<span class="keyword">class</span>.getName()).log(Level.WARNING,</span></pre></td></tr> +<tr> <td class="numLineCover"> 365</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> UpdateService service = UpdateService.getInstance();</span></pre></td></tr> +<tr> <td class="numLineCover"> 366</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> Iterator<CachedWebDataSource> iterator = service.getDataSources();</span></pre></td></tr> +<tr> <td class="numLineCover"> 367</td> <td class="nbHitsUncovered"><a title="Line 367: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 367: Conditional coverage 0% (0/2)."> <span class="keyword">while</span> (iterator.hasNext()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 368</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> CachedWebDataSource source = iterator.next();</span></pre></td></tr> <tr> <td class="numLine"> 369</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 370</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  source.update();</span></pre></td></tr> +<tr> <td class="numLineCover"> 371</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (UpdateException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 372</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Engine.<span class="keyword">class</span>.getName()).log(Level.WARNING,</span></pre></td></tr> +<tr> <td class="numLine"> 373</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="string">"Unable to update Cached Web DataSource, using local data instead. Results may not include recent vulnerabilities."</span>);</pre></td></tr> -<tr> <td class="numLineCover"> 370</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Engine.<span class="keyword">class</span>.getName()).log(Level.FINE,</span></pre></td></tr> -<tr> <td class="numLine"> 371</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  String.format(<span class="string">"Unable to update details for %s"</span>, source.getClass().getName()), ex);</pre></td></tr> -<tr> <td class="numLineCover"> 372</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLineCover"> 373</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLineCover"> 374</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLineCover"> 374</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Engine.<span class="keyword">class</span>.getName()).log(Level.FINE,</span></pre></td></tr> <tr> <td class="numLine"> 375</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 376</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 377</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Returns a full list of all of the analyzers. This is useful for reporting</span></pre></td></tr> -<tr> <td class="numLine"> 378</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * which analyzers where used.</span></pre></td></tr> + <td class="src"><pre class="src">  String.format(<span class="string">"Unable to update details for %s"</span>, source.getClass().getName()), ex);</pre></td></tr> +<tr> <td class="numLineCover"> 376</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLineCover"> 377</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLineCover"> 378</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> <tr> <td class="numLine"> 379</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 380</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @return a list of Analyzers</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 381</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * Returns a full list of all of the analyzers. This is useful for reporting</span></pre></td></tr> <tr> <td class="numLine"> 382</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * which analyzers where used.</span></pre></td></tr> +<tr> <td class="numLine"> 383</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 384</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @return a list of Analyzers</span></pre></td></tr> +<tr> <td class="numLine"> 385</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 386</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> List<Analyzer> getAnalyzers() {</pre></td></tr> -<tr> <td class="numLineCover"> 383</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">final</span> List<Analyzer> ret = <span class="keyword">new</span> ArrayList<Analyzer>();</pre></td></tr> -<tr> <td class="numLineCover"> 384</td> <td class="nbHitsCovered"><a title="Line 384: Conditional coverage 100% (2/2)."> 10</a></td> <td class="src"><pre class="src"> <a title="Line 384: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (AnalysisPhase phase : AnalysisPhase.values()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 385</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src">  <span class="keyword">final</span> List<Analyzer> analyzerList = analyzers.get(phase);</pre></td></tr> -<tr> <td class="numLineCover"> 386</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src">  ret.addAll(analyzerList);</pre></td></tr> -<tr> <td class="numLine"> 387</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 388</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">return</span> ret;</pre></td></tr> -<tr> <td class="numLine"> 389</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 390</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLineCover"> 387</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">final</span> List<Analyzer> ret = <span class="keyword">new</span> ArrayList<Analyzer>();</pre></td></tr> +<tr> <td class="numLineCover"> 388</td> <td class="nbHitsCovered"><a title="Line 388: Conditional coverage 100% (2/2)."> 10</a></td> <td class="src"><pre class="src"> <a title="Line 388: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (AnalysisPhase phase : AnalysisPhase.values()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 389</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src">  <span class="keyword">final</span> List<Analyzer> analyzerList = analyzers.get(phase);</pre></td></tr> +<tr> <td class="numLineCover"> 390</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src">  ret.addAll(analyzerList);</pre></td></tr> <tr> <td class="numLine"> 391</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 392</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Checks all analyzers to see if an extension is supported.</span></pre></td></tr> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 392</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">return</span> ret;</pre></td></tr> <tr> <td class="numLine"> 393</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 394</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param ext a file extension</span></pre></td></tr> -<tr> <td class="numLine"> 395</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @return true or false depending on whether or not the file extension is</span></pre></td></tr> -<tr> <td class="numLine"> 396</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * supported</span></pre></td></tr> -<tr> <td class="numLine"> 397</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 398</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> supportsExtension(String ext) {</pre></td></tr> -<tr> <td class="numLineCover"> 399</td> <td class="nbHitsCovered"><a title="Line 399: Conditional coverage 100% (2/2)."> 143</a></td> <td class="src"><pre class="src"> <a title="Line 399: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (ext == <span class="keyword">null</span>) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 400</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">false</span>;</pre></td></tr> -<tr> <td class="numLine"> 401</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 402</td> <td class="nbHitsCovered"><a title="Line 402: Conditional coverage 100% (2/2)."> 1267</a></td> <td class="src"><pre class="src"> <a title="Line 402: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (AnalysisPhase phase : AnalysisPhase.values()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 403</td> <td class="nbHitsCovered"> 1142</td> <td class="src"><pre class="src">  <span class="keyword">final</span> List<Analyzer> analyzerList = analyzers.get(phase);</pre></td></tr> -<tr> <td class="numLineCover"> 404</td> <td class="nbHitsCovered"><a title="Line 404: Conditional coverage 100% (2/2)."> 1142</a></td> <td class="src"><pre class="src"> <a title="Line 404: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Analyzer a : analyzerList) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 405</td> <td class="nbHitsCovered"><a title="Line 405: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 1017</a></td> <td class="src"><pre class="src"> <a title="Line 405: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (a.getSupportedExtensions() != <span class="keyword">null</span> && a.supportsExtension(ext)) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 406</td> <td class="nbHitsCovered"> 10</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">true</span>;</pre></td></tr> -<tr> <td class="numLine"> 407</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 408</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 409</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 410</td> <td class="nbHitsCovered"> 125</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">false</span>;</pre></td></tr> -<tr> <td class="numLine"> 411</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 412</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 394</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 413</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 395</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 414</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Checks the CPE Index to ensure documents exists. If none exist a</span></pre></td></tr> -<tr> <td class="numLine"> 415</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * NoDataException is thrown.</span></pre></td></tr> -<tr> <td class="numLine"> 416</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 396</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Checks all analyzers to see if an extension is supported.</span></pre></td></tr> +<tr> <td class="numLine"> 397</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 417</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws NoDataException thrown if no data exists in the CPE Index</span></pre></td></tr> -<tr> <td class="numLine"> 418</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 398</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param ext a file extension</span></pre></td></tr> +<tr> <td class="numLine"> 399</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @return true or false depending on whether or not the file extension is</span></pre></td></tr> +<tr> <td class="numLine"> 400</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * supported</span></pre></td></tr> +<tr> <td class="numLine"> 401</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 419</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">void</span> ensureDataExists() <span class="keyword">throws</span> NoDataException {</pre></td></tr> -<tr> <td class="numLineCover"> 420</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  CpeIndexReader cpe = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 421</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  <span class="keyword">boolean</span> noDataExists = <span class="keyword">false</span>;</pre></td></tr> -<tr> <td class="numLine"> 422</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 423</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  cpe = <span class="keyword">new</span> CpeIndexReader();</pre></td></tr> -<tr> <td class="numLineCover"> 424</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  cpe.open();</pre></td></tr> -<tr> <td class="numLineCover"> 425</td> <td class="nbHitsUncovered"><a title="Line 425: Conditional coverage 50% (1/2)."> 3</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 425: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (cpe.numDocs() <= 0) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 426</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  noDataExists = <span class="keyword">true</span>;</span></pre></td></tr> -<tr> <td class="numLine"> 427</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 428</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 429</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  noDataExists = <span class="keyword">true</span>;</span></pre></td></tr> -<tr> <td class="numLineCover"> 430</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (NullPointerException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 431</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  noDataExists = <span class="keyword">true</span>;</span></pre></td></tr> -<tr> <td class="numLine"> 432</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  } <span class="keyword">finally</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 433</td> <td class="nbHitsUncovered"><a title="Line 433: Conditional coverage 50% (1/2)."> 3</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 433: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (cpe != <span class="keyword">null</span>) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 434</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  cpe.close();</pre></td></tr> -<tr> <td class="numLine"> 435</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 436</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 402</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> supportsExtension(String ext) {</pre></td></tr> +<tr> <td class="numLineCover"> 403</td> <td class="nbHitsCovered"><a title="Line 403: Conditional coverage 100% (2/2)."> 143</a></td> <td class="src"><pre class="src"> <a title="Line 403: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (ext == <span class="keyword">null</span>) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 404</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">false</span>;</pre></td></tr> +<tr> <td class="numLine"> 405</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 437</td> <td class="nbHitsUncovered"><a title="Line 437: Conditional coverage 50% (1/2)."> 3</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 437: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (noDataExists) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 438</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> NoDataException(<span class="string">"No data exists in the data store. Please check that you are able to connect "</span></span></pre></td></tr> -<tr> <td class="numLine"> 439</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  + <span class="string">"to the Internet and re-run dependency-check. If the problem persists determine whether you need "</span></pre></td></tr> -<tr> <td class="numLine"> 440</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  + <span class="string">"to set a proxy url and port.\\n\\nIf you are unable to solve this problem please contact the mailing "</span></pre></td></tr> -<tr> <td class="numLine"> 441</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  + <span class="string">"list for help: dependency-check@googlegroups.com"</span>);</pre></td></tr> -<tr> <td class="numLine"> 442</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 406</td> <td class="nbHitsCovered"><a title="Line 406: Conditional coverage 100% (2/2)."> 1267</a></td> <td class="src"><pre class="src"> <a title="Line 406: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (AnalysisPhase phase : AnalysisPhase.values()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 407</td> <td class="nbHitsCovered"> 1142</td> <td class="src"><pre class="src">  <span class="keyword">final</span> List<Analyzer> analyzerList = analyzers.get(phase);</pre></td></tr> +<tr> <td class="numLineCover"> 408</td> <td class="nbHitsCovered"><a title="Line 408: Conditional coverage 100% (2/2)."> 1142</a></td> <td class="src"><pre class="src"> <a title="Line 408: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Analyzer a : analyzerList) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 409</td> <td class="nbHitsCovered"><a title="Line 409: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 1274</a></td> <td class="src"><pre class="src"> <a title="Line 409: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (a.getSupportedExtensions() != <span class="keyword">null</span> && a.supportsExtension(ext)) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 410</td> <td class="nbHitsCovered"> 10</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">true</span>;</pre></td></tr> +<tr> <td class="numLine"> 411</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 412</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 413</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 414</td> <td class="nbHitsCovered"> 125</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">false</span>;</pre></td></tr> +<tr> <td class="numLine"> 415</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 416</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 443</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 417</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 418</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Checks the CPE Index to ensure documents exists. If none exist a</span></pre></td></tr> +<tr> <td class="numLine"> 419</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * NoDataException is thrown.</span></pre></td></tr> +<tr> <td class="numLine"> 420</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 421</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @throws NoDataException thrown if no data exists in the CPE Index</span></pre></td></tr> +<tr> <td class="numLine"> 422</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 423</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">void</span> ensureDataExists() <span class="keyword">throws</span> NoDataException {</pre></td></tr> +<tr> <td class="numLineCover"> 424</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  <span class="keyword">final</span> CpeMemoryIndex cpe = CpeMemoryIndex.getInstance();</pre></td></tr> +<tr> <td class="numLineCover"> 425</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  <span class="keyword">final</span> CveDB cve = <span class="keyword">new</span> CveDB();</pre></td></tr> +<tr> <td class="numLine"> 426</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 427</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 428</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  cve.open();</pre></td></tr> +<tr> <td class="numLineCover"> 429</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  cpe.open(cve);</pre></td></tr> +<tr> <td class="numLineCover"> 430</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (IndexException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 431</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> NoDataException(ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 432</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 433</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> NoDataException(ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 434</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 435</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> NoDataException(ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 436</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (DatabaseException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 437</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> NoDataException(ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 438</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (ClassNotFoundException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 439</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> NoDataException(ex);</span></pre></td></tr> +<tr> <td class="numLine"> 440</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  } <span class="keyword">finally</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 441</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  cve.close();</pre></td></tr> +<tr> <td class="numLineCover"> 442</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 443</td> <td class="nbHitsUncovered"><a title="Line 443: Conditional coverage 50% (1/2)."> 3</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 443: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (cpe.numDocs() <= 0) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 444</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  cpe.close();</span></pre></td></tr> +<tr> <td class="numLineCover"> 445</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> NoDataException();</span></pre></td></tr> +<tr> <td class="numLine"> 446</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 444</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 445</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 447</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 448</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.AbstractAnalyzer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.AbstractAnalyzer.html index 644bec385..d2e798a30 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.AbstractAnalyzer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.AbstractAnalyzer.html @@ -73,7 +73,7 @@ <td class="src"><pre class="src"> <span class="comment"> * @author Jeremy Long (jeremy.long@owasp.org)</span></pre></td></tr> <tr> <td class="numLine"> 28</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 29</td> <td class="nbHitsCovered"> 54</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">abstract</span> <span class="keyword">class</span> AbstractAnalyzer <span class="keyword">implements</span> Analyzer {</pre></td></tr> +<tr> <td class="numLineCover"> 29</td> <td class="nbHitsCovered"> 56</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">abstract</span> <span class="keyword">class</span> AbstractAnalyzer <span class="keyword">implements</span> Analyzer {</pre></td></tr> <tr> <td class="numLine"> 30</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 31</td> <td class="nbHits"> </td> @@ -125,7 +125,7 @@ <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> initialize() <span class="keyword">throws</span> Exception {</pre></td></tr> <tr> <td class="numLine"> 56</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">//do nothing</span></pre></td></tr> -<tr> <td class="numLineCover"> 57</td> <td class="nbHitsCovered"> 13</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 57</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 58</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 59</td> <td class="nbHits"> </td> @@ -144,11 +144,11 @@ <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> close() <span class="keyword">throws</span> Exception {</pre></td></tr> <tr> <td class="numLine"> 66</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">//do nothing</span></pre></td></tr> -<tr> <td class="numLineCover"> 67</td> <td class="nbHitsCovered"> 13</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 67</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 68</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.AnalysisException.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.AnalysisException.html index 4409e6e08..d590a1165 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.AnalysisException.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.AnalysisException.html @@ -128,7 +128,7 @@ <tr> <td class="numLine"> 58</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 59</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Creates a new DownloadFailedException.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * Creates a new AnalysisException.</span></pre></td></tr> <tr> <td class="numLine"> 60</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 61</td> <td class="nbHits"> </td> @@ -145,6 +145,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.AnalysisPhase.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.AnalysisPhase.html index 39edec91b..6a8fab6f0 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.AnalysisPhase.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.AnalysisPhase.html @@ -137,6 +137,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.Analyzer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.Analyzer.html index 3e8342809..c0a3f03e9 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.Analyzer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.Analyzer.html @@ -223,6 +223,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.AnalyzerService.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.AnalyzerService.html index 7a0893400..995e716ad 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.AnalyzerService.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.AnalyzerService.html @@ -144,6 +144,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.ArchiveAnalyzer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.ArchiveAnalyzer.html index 31bd347bc..30e36d56b 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.ArchiveAnalyzer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.ArchiveAnalyzer.html @@ -661,6 +661,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.ArchiveExtractionException.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.ArchiveExtractionException.html index 018156920..480bdae0a 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.ArchiveExtractionException.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.ArchiveExtractionException.html @@ -60,7 +60,7 @@ <tr> <td class="numLine"> 21</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 22</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * An exception thrown when the analysis of a dependency fails.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * An exception thrown when files in an archive cannot be extracted.</span></pre></td></tr> <tr> <td class="numLine"> 23</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 24</td> <td class="nbHits"> </td> @@ -84,7 +84,7 @@ <tr> <td class="numLine"> 33</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 34</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Creates a new AnalysisException.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * Creates a new ArchiveExtractionException.</span></pre></td></tr> <tr> <td class="numLine"> 35</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 36</td> <td class="nbHits"> </td> @@ -96,7 +96,7 @@ <tr> <td class="numLine"> 40</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 41</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Creates a new AnalysisException.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * Creates a new ArchiveExtractionException.</span></pre></td></tr> <tr> <td class="numLine"> 42</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 43</td> <td class="nbHits"> </td> @@ -112,7 +112,7 @@ <tr> <td class="numLine"> 49</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 50</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Creates a new AnalysisException.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * Creates a new ArchiveExtractionException.</span></pre></td></tr> <tr> <td class="numLine"> 51</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 52</td> <td class="nbHits"> </td> @@ -128,7 +128,7 @@ <tr> <td class="numLine"> 58</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 59</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Creates a new DownloadFailedException.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * Creates a new ArchiveExtractionException.</span></pre></td></tr> <tr> <td class="numLine"> 60</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 61</td> <td class="nbHits"> </td> @@ -145,6 +145,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.CPEAnalyzer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.CPEAnalyzer.html index 90f91ab92..e89da7f3a 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.CPEAnalyzer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.CPEAnalyzer.html @@ -12,9 +12,9 @@ <div class="separator"> </div> <table class="report"> <thead><tr> <td class="heading">Classes in this File</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead> - <tr><td><a href="org.owasp.dependencycheck.analyzer.CPEAnalyzer.html">CPEAnalyzer</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">89%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:89px"><span class="text">175/196</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">84%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:84px"><span class="text">108/128</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.0625;</span>4.062</td></tr> - <tr><td><a href="org.owasp.dependencycheck.analyzer.CPEAnalyzer.html">CPEAnalyzer$IdentifierConfidence</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">100%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">3/3</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.0625;</span>4.062</td></tr> - <tr><td><a href="org.owasp.dependencycheck.analyzer.CPEAnalyzer.html">CPEAnalyzer$IdentifierMatch</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">38%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:38px"><span class="text">15/39</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">16%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:16px"><span class="text">4/24</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.0625;</span>4.062</td></tr> + <tr><td><a href="org.owasp.dependencycheck.analyzer.CPEAnalyzer.html">CPEAnalyzer</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">88%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:88px"><span class="text">172/195</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">84%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:84px"><span class="text">103/122</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.266666666666667;</span>4.267</td></tr> + <tr><td><a href="org.owasp.dependencycheck.analyzer.CPEAnalyzer.html">CPEAnalyzer$IdentifierConfidence</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">100%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">3/3</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.266666666666667;</span>4.267</td></tr> + <tr><td><a href="org.owasp.dependencycheck.analyzer.CPEAnalyzer.html">CPEAnalyzer$IdentifierMatch</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">38%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:38px"><span class="text">15/39</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">16%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:16px"><span class="text">4/24</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.266666666666667;</span>4.267</td></tr> </table> <div class="separator"> </div> @@ -104,1292 +104,1261 @@ <tr> <td class="numLine"> 42</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.dependency.EvidenceCollection;</pre></td></tr> <tr> <td class="numLine"> 43</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.cpe.CpeIndexReader;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.cpe.CpeMemoryIndex;</pre></td></tr> <tr> <td class="numLine"> 44</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.cpe.Fields;</pre></td></tr> <tr> <td class="numLine"> 45</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.cpe.IndexEntry;</pre></td></tr> <tr> <td class="numLine"> 46</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.nvdcve.CveDB;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.cpe.IndexException;</pre></td></tr> <tr> <td class="numLine"> 47</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.nvdcve.DatabaseException;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.nvdcve.CveDB;</pre></td></tr> <tr> <td class="numLine"> 48</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.dependency.Identifier;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.nvdcve.DatabaseException;</pre></td></tr> <tr> <td class="numLine"> 49</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.dependency.VulnerableSoftware;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.dependency.Identifier;</pre></td></tr> <tr> <td class="numLine"> 50</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.utils.DependencyVersion;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.dependency.VulnerableSoftware;</pre></td></tr> <tr> <td class="numLine"> 51</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.utils.DependencyVersionUtil;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.utils.DependencyVersion;</pre></td></tr> <tr> <td class="numLine"> 52</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.utils.DependencyVersionUtil;</pre></td></tr> <tr> <td class="numLine"> 53</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 54</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * CPEAnalyzer is a utility class that takes a project dependency and attempts</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 55</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * to discern if there is an associated CPE. It uses the evidence contained</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * CPEAnalyzer is a utility class that takes a project dependency and attempts</span></pre></td></tr> <tr> <td class="numLine"> 56</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * within the dependency to search the Lucene index.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * to discern if there is an associated CPE. It uses the evidence contained</span></pre></td></tr> <tr> <td class="numLine"> 57</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * within the dependency to search the Lucene index.</span></pre></td></tr> <tr> <td class="numLine"> 58</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @author Jeremy Long (jeremy.long@owasp.org)</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 59</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @author Jeremy Long (jeremy.long@owasp.org)</span></pre></td></tr> +<tr> <td class="numLine"> 60</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 60</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> CPEAnalyzer <span class="keyword">implements</span> Analyzer {</pre></td></tr> -<tr> <td class="numLine"> 61</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLineCover"> 61</td> <td class="nbHitsCovered"> 10</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> CPEAnalyzer <span class="keyword">implements</span> Analyzer {</pre></td></tr> <tr> <td class="numLine"> 62</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 63</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * The maximum number of query results to return.</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 64</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * The maximum number of query results to return.</span></pre></td></tr> <tr> <td class="numLine"> 65</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">int</span> MAX_QUERY_RESULTS = 25;</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 66</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">int</span> MAX_QUERY_RESULTS = 25;</pre></td></tr> <tr> <td class="numLine"> 67</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * The weighting boost to give terms when constructing the Lucene query.</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 68</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * The weighting boost to give terms when constructing the Lucene query.</span></pre></td></tr> <tr> <td class="numLine"> 69</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">static</span> <span class="keyword">final</span> String WEIGHTING_BOOST = <span class="string">"^5"</span>;</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 70</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">static</span> <span class="keyword">final</span> String WEIGHTING_BOOST = <span class="string">"^5"</span>;</pre></td></tr> <tr> <td class="numLine"> 71</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * A string representation of a regular expression defining characters</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 72</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * utilized within the CPE Names.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * A string representation of a regular expression defining characters</span></pre></td></tr> <tr> <td class="numLine"> 73</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * utilized within the CPE Names.</span></pre></td></tr> <tr> <td class="numLine"> 74</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">static</span> <span class="keyword">final</span> String CLEANSE_CHARACTER_RX = <span class="string">"[^A-Za-z0-9 ._-]"</span>;</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 75</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">static</span> <span class="keyword">final</span> String CLEANSE_CHARACTER_RX = <span class="string">"[^A-Za-z0-9 ._-]"</span>;</pre></td></tr> <tr> <td class="numLine"> 76</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * A string representation of a regular expression used to remove all but</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 77</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * alpha characters.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * A string representation of a regular expression used to remove all but</span></pre></td></tr> <tr> <td class="numLine"> 78</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * alpha characters.</span></pre></td></tr> <tr> <td class="numLine"> 79</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">static</span> <span class="keyword">final</span> String CLEANSE_NONALPHA_RX = <span class="string">"[^A-Za-z]*"</span>;</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 80</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">static</span> <span class="keyword">final</span> String CLEANSE_NONALPHA_RX = <span class="string">"[^A-Za-z]*"</span>;</pre></td></tr> <tr> <td class="numLine"> 81</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * The additional size to add to a new StringBuilder to account for extra</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 82</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * data that will be written into the string.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * The additional size to add to a new StringBuilder to account for extra</span></pre></td></tr> <tr> <td class="numLine"> 83</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * data that will be written into the string.</span></pre></td></tr> <tr> <td class="numLine"> 84</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">int</span> STRING_BUILDER_BUFFER = 20;</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 85</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">int</span> STRING_BUILDER_BUFFER = 20;</pre></td></tr> <tr> <td class="numLine"> 86</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * The CPE Index Reader.</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 87</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * The CPE in memory index.</span></pre></td></tr> <tr> <td class="numLine"> 88</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">private</span> CpeIndexReader cpe;</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 89</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">private</span> CpeMemoryIndex cpe;</pre></td></tr> <tr> <td class="numLine"> 90</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * The CVE Database.</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 91</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * The CVE Database.</span></pre></td></tr> <tr> <td class="numLine"> 92</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">private</span> CveDB cve;</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 93</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">private</span> CveDB cve;</pre></td></tr> <tr> <td class="numLine"> 94</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 95</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Opens the data source.</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 96</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * Opens the data source.</span></pre></td></tr> <tr> <td class="numLine"> 97</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws IOException when the Lucene directory to be queried does not</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 98</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * exist or is corrupt.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * @throws IOException when the Lucene directory to be queried does not</span></pre></td></tr> <tr> <td class="numLine"> 99</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws DatabaseException when the database throws an exception. This</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * exist or is corrupt.</span></pre></td></tr> <tr> <td class="numLine"> 100</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * usually occurs when the database is in use by another process.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * @throws DatabaseException when the database throws an exception. This</span></pre></td></tr> <tr> <td class="numLine"> 101</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * usually occurs when the database is in use by another process.</span></pre></td></tr> <tr> <td class="numLine"> 102</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 103</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> open() <span class="keyword">throws</span> IOException, DatabaseException {</pre></td></tr> -<tr> <td class="numLineCover"> 103</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  cpe = <span class="keyword">new</span> CpeIndexReader();</pre></td></tr> -<tr> <td class="numLineCover"> 104</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  cpe.open();</pre></td></tr> -<tr> <td class="numLineCover"> 105</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  cve = <span class="keyword">new</span> CveDB();</pre></td></tr> -<tr> <td class="numLine"> 106</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 104</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src">  cve = <span class="keyword">new</span> CveDB();</pre></td></tr> +<tr> <td class="numLine"> 105</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 107</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  cve.open();</pre></td></tr> -<tr> <td class="numLineCover"> 108</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 109</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(CPEAnalyzer.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="keyword">null</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 110</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> DatabaseException(<span class="string">"Unable to open the cve db"</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 111</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (ClassNotFoundException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 112</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(CPEAnalyzer.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="keyword">null</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 113</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> DatabaseException(<span class="string">"Unable to open the cve db"</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 114</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 115</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 116</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 106</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src">  cve.open();</pre></td></tr> +<tr> <td class="numLineCover"> 107</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 108</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(CPEAnalyzer.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="keyword">null</span>, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 109</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> DatabaseException(<span class="string">"Unable to open the cve db"</span>, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 110</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (ClassNotFoundException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 111</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(CPEAnalyzer.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="keyword">null</span>, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 112</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> DatabaseException(<span class="string">"Unable to open the cve db"</span>, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 113</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 114</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src">  cpe = CpeMemoryIndex.getInstance();</pre></td></tr> +<tr> <td class="numLine"> 115</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 116</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src">  cpe.open(cve);</pre></td></tr> +<tr> <td class="numLineCover"> 117</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (IndexException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 118</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(CPEAnalyzer.<span class="keyword">class</span>.getName()).log(Level.SEVERE, <span class="keyword">null</span>, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 119</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> DatabaseException(ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 120</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 121</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 122</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 117</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 123</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 118</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Closes the data source.</span></pre></td></tr> -<tr> <td class="numLine"> 119</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 120</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  @Override</pre></td></tr> -<tr> <td class="numLine"> 121</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> close() {</pre></td></tr> -<tr> <td class="numLineCover"> 122</td> <td class="nbHitsUncovered"><a title="Line 122: Conditional coverage 50% (1/2)."> 12</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 122: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (cpe != <span class="keyword">null</span>) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 123</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  cpe.close();</pre></td></tr> <tr> <td class="numLine"> 124</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 125</td> <td class="nbHitsUncovered"><a title="Line 125: Conditional coverage 50% (1/2)."> 12</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 125: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (cve != <span class="keyword">null</span>) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 126</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  cve.close();</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * Closes the data sources.</span></pre></td></tr> +<tr> <td class="numLine"> 125</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 126</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  @Override</pre></td></tr> <tr> <td class="numLine"> 127</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 128</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 129</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> close() {</pre></td></tr> +<tr> <td class="numLineCover"> 128</td> <td class="nbHitsUncovered"><a title="Line 128: Conditional coverage 50% (1/2)."> 11</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 128: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (cpe != <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 129</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src">  cpe.close();</pre></td></tr> <tr> <td class="numLine"> 130</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 131</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Returns the status of the data source - is the index open.</span></pre></td></tr> -<tr> <td class="numLine"> 132</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 131</td> <td class="nbHitsUncovered"><a title="Line 131: Conditional coverage 50% (1/2)."> 11</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 131: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (cve != <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 132</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src">  cve.close();</pre></td></tr> <tr> <td class="numLine"> 133</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @return true or false.</span></pre></td></tr> -<tr> <td class="numLine"> 134</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 134</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 135</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> isOpen() {</pre></td></tr> -<tr> <td class="numLineCover"> 136</td> <td class="nbHitsCovered"><a title="Line 136: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 10</a></td> <td class="src"><pre class="src"> <a title="Line 136: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">return</span> (cpe != <span class="keyword">null</span>) && cpe.isOpen();</a></pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 136</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 137</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 138</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 139</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 140</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Ensures that the Lucene index is closed.</span></pre></td></tr> -<tr> <td class="numLine"> 141</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 142</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws Throwable when a throwable is thrown.</span></pre></td></tr> -<tr> <td class="numLine"> 143</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 144</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  @Override</pre></td></tr> -<tr> <td class="numLine"> 145</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">protected</span> <span class="keyword">void</span> finalize() <span class="keyword">throws</span> Throwable {</pre></td></tr> -<tr> <td class="numLineCover"> 146</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src">  <span class="keyword">super</span>.finalize();</pre></td></tr> -<tr> <td class="numLineCover"> 147</td> <td class="nbHitsUncovered"><a title="Line 147: Conditional coverage 50% (1/2)."> 7</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 147: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (isOpen()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 148</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  close();</span></pre></td></tr> -<tr> <td class="numLine"> 149</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 150</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 151</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 152</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 153</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Searches the data store of CPE entries, trying to identify the CPE for</span></pre></td></tr> -<tr> <td class="numLine"> 154</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 138</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * the given dependency based on the evidence contained within. The</span></pre></td></tr> -<tr> <td class="numLine"> 155</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 139</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * dependency passed in is updated with any identified CPE values.</span></pre></td></tr> -<tr> <td class="numLine"> 156</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 140</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 157</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 141</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param dependency the dependency to search for CPE entries on.</span></pre></td></tr> -<tr> <td class="numLine"> 158</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 142</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws CorruptIndexException is thrown when the Lucene index is corrupt.</span></pre></td></tr> -<tr> <td class="numLine"> 159</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 143</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws IOException is thrown when an IOException occurs.</span></pre></td></tr> -<tr> <td class="numLine"> 160</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 144</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws ParseException is thrown when the Lucene query cannot be parsed.</span></pre></td></tr> -<tr> <td class="numLine"> 161</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 145</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 162</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 146</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">protected</span> <span class="keyword">void</span> determineCPE(Dependency dependency) <span class="keyword">throws</span> CorruptIndexException, IOException, ParseException {</pre></td></tr> -<tr> <td class="numLineCover"> 163</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  Confidence vendorConf = Confidence.HIGHEST;</pre></td></tr> -<tr> <td class="numLineCover"> 164</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  Confidence productConf = Confidence.HIGHEST;</pre></td></tr> -<tr> <td class="numLine"> 165</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 147</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  Confidence vendorConf = Confidence.HIGHEST;</pre></td></tr> +<tr> <td class="numLineCover"> 148</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  Confidence productConf = Confidence.HIGHEST;</pre></td></tr> +<tr> <td class="numLine"> 149</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 166</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  String vendors = addEvidenceWithoutDuplicateTerms(<span class="string">""</span>, dependency.getVendorEvidence(), vendorConf);</pre></td></tr> -<tr> <td class="numLineCover"> 167</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  String products = addEvidenceWithoutDuplicateTerms(<span class="string">""</span>, dependency.getProductEvidence(), productConf);</pre></td></tr> -<tr> <td class="numLine"> 168</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 150</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  String vendors = addEvidenceWithoutDuplicateTerms(<span class="string">""</span>, dependency.getVendorEvidence(), vendorConf);</pre></td></tr> +<tr> <td class="numLineCover"> 151</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  String products = addEvidenceWithoutDuplicateTerms(<span class="string">""</span>, dependency.getProductEvidence(), productConf);</pre></td></tr> +<tr> <td class="numLine"> 152</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 169</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  <span class="keyword">int</span> ctr = 0;</pre></td></tr> -<tr> <td class="numLine"> 170</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 153</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  <span class="keyword">int</span> ctr = 0;</pre></td></tr> +<tr> <td class="numLine"> 154</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">do</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 171</td> <td class="nbHitsUncovered"><a title="Line 171: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> 76</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 171: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> <span class="keyword">if</span> (!vendors.isEmpty() && !products.isEmpty()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 172</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src">  <span class="keyword">final</span> List<IndexEntry> entries = searchCPE(vendors, products, dependency.getProductEvidence().getWeighting(),</pre></td></tr> -<tr> <td class="numLine"> 173</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 155</td> <td class="nbHitsUncovered"><a title="Line 155: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> 76</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 155: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> <span class="keyword">if</span> (!vendors.isEmpty() && !products.isEmpty()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 156</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src">  <span class="keyword">final</span> List<IndexEntry> entries = searchCPE(vendors, products, dependency.getProductEvidence().getWeighting(),</pre></td></tr> +<tr> <td class="numLine"> 157</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  dependency.getVendorEvidence().getWeighting());</pre></td></tr> +<tr> <td class="numLine"> 158</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLineCover"> 159</td> <td class="nbHitsCovered"><a title="Line 159: Conditional coverage 100% (2/2)."> 72</a></td> <td class="src"><pre class="src"> <a title="Line 159: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (IndexEntry e : entries) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 160</td> <td class="nbHitsCovered"><a title="Line 160: Conditional coverage 100% (2/2)."> 724</a></td> <td class="src"><pre class="src"> <a title="Line 160: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (verifyEntry(e, dependency)) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 161</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String vendor = e.getVendor();</pre></td></tr> +<tr> <td class="numLineCover"> 162</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String product = e.getProduct();</pre></td></tr> +<tr> <td class="numLineCover"> 163</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src">  determineIdentifiers(dependency, vendor, product);</pre></td></tr> +<tr> <td class="numLineCover"> 164</td> <td class="nbHitsCovered"> 724</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 165</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 166</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 167</td> <td class="nbHitsCovered"> 76</td> <td class="src"><pre class="src">  vendorConf = reduceConfidence(vendorConf);</pre></td></tr> +<tr> <td class="numLineCover"> 168</td> <td class="nbHitsCovered"><a title="Line 168: Conditional coverage 100% (2/2)."> 76</a></td> <td class="src"><pre class="src"> <a title="Line 168: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (dependency.getVendorEvidence().contains(vendorConf)) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 169</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  vendors = addEvidenceWithoutDuplicateTerms(vendors, dependency.getVendorEvidence(), vendorConf);</pre></td></tr> +<tr> <td class="numLine"> 170</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 171</td> <td class="nbHitsCovered"> 76</td> <td class="src"><pre class="src">  productConf = reduceConfidence(productConf);</pre></td></tr> +<tr> <td class="numLineCover"> 172</td> <td class="nbHitsCovered"><a title="Line 172: Conditional coverage 100% (2/2)."> 76</a></td> <td class="src"><pre class="src"> <a title="Line 172: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (dependency.getProductEvidence().contains(productConf)) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 173</td> <td class="nbHitsCovered"> 64</td> <td class="src"><pre class="src">  products = addEvidenceWithoutDuplicateTerms(products, dependency.getProductEvidence(), productConf);</pre></td></tr> <tr> <td class="numLine"> 174</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 175</td> <td class="nbHitsCovered"><a title="Line 175: Conditional coverage 100% (2/2)."> 76</a></td> <td class="src"><pre class="src"> <a title="Line 175: Conditional coverage 100% (2/2)."> } <span class="keyword">while</span> ((++ctr) < 4);</a></pre></td></tr> +<tr> <td class="numLineCover"> 176</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 177</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 175</td> <td class="nbHitsCovered"><a title="Line 175: Conditional coverage 100% (2/2)."> 72</a></td> <td class="src"><pre class="src"> <a title="Line 175: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (IndexEntry e : entries) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 176</td> <td class="nbHitsCovered"><a title="Line 176: Conditional coverage 100% (2/2)."> 722</a></td> <td class="src"><pre class="src"> <a title="Line 176: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (verifyEntry(e, dependency)) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 177</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String vendor = e.getVendor();</pre></td></tr> -<tr> <td class="numLineCover"> 178</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String product = e.getProduct();</pre></td></tr> -<tr> <td class="numLineCover"> 179</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src">  determineIdentifiers(dependency, vendor, product);</pre></td></tr> -<tr> <td class="numLineCover"> 180</td> <td class="nbHitsCovered"> 722</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 181</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 182</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 183</td> <td class="nbHitsCovered"> 76</td> <td class="src"><pre class="src">  vendorConf = reduceConfidence(vendorConf);</pre></td></tr> -<tr> <td class="numLineCover"> 184</td> <td class="nbHitsCovered"><a title="Line 184: Conditional coverage 100% (2/2)."> 76</a></td> <td class="src"><pre class="src"> <a title="Line 184: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (dependency.getVendorEvidence().contains(vendorConf)) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 185</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  vendors = addEvidenceWithoutDuplicateTerms(vendors, dependency.getVendorEvidence(), vendorConf);</pre></td></tr> -<tr> <td class="numLine"> 186</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 187</td> <td class="nbHitsCovered"> 76</td> <td class="src"><pre class="src">  productConf = reduceConfidence(productConf);</pre></td></tr> -<tr> <td class="numLineCover"> 188</td> <td class="nbHitsCovered"><a title="Line 188: Conditional coverage 100% (2/2)."> 76</a></td> <td class="src"><pre class="src"> <a title="Line 188: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (dependency.getProductEvidence().contains(productConf)) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 189</td> <td class="nbHitsCovered"> 64</td> <td class="src"><pre class="src">  products = addEvidenceWithoutDuplicateTerms(products, dependency.getProductEvidence(), productConf);</pre></td></tr> -<tr> <td class="numLine"> 190</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 191</td> <td class="nbHitsCovered"><a title="Line 191: Conditional coverage 100% (2/2)."> 76</a></td> <td class="src"><pre class="src"> <a title="Line 191: Conditional coverage 100% (2/2)."> } <span class="keyword">while</span> ((++ctr) < 4);</a></pre></td></tr> -<tr> <td class="numLineCover"> 192</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 193</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 194</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 178</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 195</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 179</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Returns the text created by concatenating the text and the values from</span></pre></td></tr> -<tr> <td class="numLine"> 196</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 180</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * the EvidenceCollection (filtered for a specific confidence). This</span></pre></td></tr> -<tr> <td class="numLine"> 197</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 181</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * attempts to prevent duplicate terms from being added.<br/<br/> Note, if</span></pre></td></tr> -<tr> <td class="numLine"> 198</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 182</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * the evidence is longer then 200 characters it will be truncated.</span></pre></td></tr> -<tr> <td class="numLine"> 199</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 183</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 200</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 184</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param text the base text.</span></pre></td></tr> -<tr> <td class="numLine"> 201</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 185</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param ec an EvidenceCollection</span></pre></td></tr> -<tr> <td class="numLine"> 202</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 186</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param confidenceFilter a Confidence level to filter the evidence by.</span></pre></td></tr> -<tr> <td class="numLine"> 203</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 187</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return the new evidence text</span></pre></td></tr> -<tr> <td class="numLine"> 204</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 188</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 205</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 189</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">private</span> String addEvidenceWithoutDuplicateTerms(<span class="keyword">final</span> String text, <span class="keyword">final</span> EvidenceCollection ec, Confidence confidenceFilter) {</pre></td></tr> -<tr> <td class="numLineCover"> 206</td> <td class="nbHitsUncovered"><a title="Line 206: Conditional coverage 50% (1/2)."> 163</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 206: Conditional coverage 50% (1/2)."> <span class="keyword">final</span> String txt = (text == <span class="keyword">null</span>) ? <span class="string">""</span> : text;</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 207</td> <td class="nbHitsCovered"> 163</td> <td class="src"><pre class="src">  <span class="keyword">final</span> StringBuilder sb = <span class="keyword">new</span> StringBuilder(txt.length() + (20 * ec.size()));</pre></td></tr> -<tr> <td class="numLineCover"> 208</td> <td class="nbHitsCovered"> 163</td> <td class="src"><pre class="src">  sb.append(<span class="string">' '</span>).append(txt).append(<span class="string">' '</span>);</pre></td></tr> -<tr> <td class="numLineCover"> 209</td> <td class="nbHitsCovered"><a title="Line 209: Conditional coverage 100% (2/2)."> 163</a></td> <td class="src"><pre class="src"> <a title="Line 209: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Evidence e : ec.iterator(confidenceFilter)) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 210</td> <td class="nbHitsCovered"> 355</td> <td class="src"><pre class="src">  String value = e.getValue();</pre></td></tr> -<tr> <td class="numLine"> 211</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 190</td> <td class="nbHitsUncovered"><a title="Line 190: Conditional coverage 50% (1/2)."> 163</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 190: Conditional coverage 50% (1/2)."> <span class="keyword">final</span> String txt = (text == <span class="keyword">null</span>) ? <span class="string">""</span> : text;</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 191</td> <td class="nbHitsCovered"> 163</td> <td class="src"><pre class="src">  <span class="keyword">final</span> StringBuilder sb = <span class="keyword">new</span> StringBuilder(txt.length() + (20 * ec.size()));</pre></td></tr> +<tr> <td class="numLineCover"> 192</td> <td class="nbHitsCovered"> 163</td> <td class="src"><pre class="src">  sb.append(<span class="string">' '</span>).append(txt).append(<span class="string">' '</span>);</pre></td></tr> +<tr> <td class="numLineCover"> 193</td> <td class="nbHitsCovered"><a title="Line 193: Conditional coverage 100% (2/2)."> 163</a></td> <td class="src"><pre class="src"> <a title="Line 193: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Evidence e : ec.iterator(confidenceFilter)) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 194</td> <td class="nbHitsCovered"> 355</td> <td class="src"><pre class="src">  String value = e.getValue();</pre></td></tr> +<tr> <td class="numLine"> 195</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 212</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 196</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">//hack to get around the fact that lucene does a really good job of recognizing domains and not</span></pre></td></tr> -<tr> <td class="numLine"> 213</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 197</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">// splitting them. TODO - put together a better lucene analyzer specific to the domain.</span></pre></td></tr> -<tr> <td class="numLineCover"> 214</td> <td class="nbHitsCovered"><a title="Line 214: Conditional coverage 100% (2/2)."> 355</a></td> <td class="src"><pre class="src"> <a title="Line 214: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (value.startsWith(<span class="string">"http://"</span>)) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 215</td> <td class="nbHitsCovered"> 32</td> <td class="src"><pre class="src">  value = value.substring(7).replaceAll(<span class="string">"\\."</span>, <span class="string">" "</span>);</pre></td></tr> -<tr> <td class="numLine"> 216</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 198</td> <td class="nbHitsCovered"><a title="Line 198: Conditional coverage 100% (2/2)."> 355</a></td> <td class="src"><pre class="src"> <a title="Line 198: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (value.startsWith(<span class="string">"http://"</span>)) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 199</td> <td class="nbHitsCovered"> 32</td> <td class="src"><pre class="src">  value = value.substring(7).replaceAll(<span class="string">"\\."</span>, <span class="string">" "</span>);</pre></td></tr> +<tr> <td class="numLine"> 200</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 217</td> <td class="nbHitsUncovered"><a title="Line 217: Conditional coverage 50% (1/2)."> 355</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 217: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (value.startsWith(<span class="string">"https://"</span>)) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 218</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  value = value.substring(8).replaceAll(<span class="string">"\\."</span>, <span class="string">" "</span>);</span></pre></td></tr> -<tr> <td class="numLine"> 219</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 201</td> <td class="nbHitsUncovered"><a title="Line 201: Conditional coverage 50% (1/2)."> 355</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 201: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (value.startsWith(<span class="string">"https://"</span>)) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 202</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  value = value.substring(8).replaceAll(<span class="string">"\\."</span>, <span class="string">" "</span>);</span></pre></td></tr> +<tr> <td class="numLine"> 203</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 220</td> <td class="nbHitsCovered"><a title="Line 220: Conditional coverage 100% (2/2)."> 355</a></td> <td class="src"><pre class="src"> <a title="Line 220: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (sb.indexOf(<span class="string">" "</span> + value + <span class="string">" "</span>) < 0) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 221</td> <td class="nbHitsCovered"> 222</td> <td class="src"><pre class="src">  sb.append(value).append(<span class="string">' '</span>);</pre></td></tr> -<tr> <td class="numLine"> 222</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 204</td> <td class="nbHitsCovered"><a title="Line 204: Conditional coverage 100% (2/2)."> 355</a></td> <td class="src"><pre class="src"> <a title="Line 204: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (sb.indexOf(<span class="string">" "</span> + value + <span class="string">" "</span>) < 0) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 205</td> <td class="nbHitsCovered"> 222</td> <td class="src"><pre class="src">  sb.append(value).append(<span class="string">' '</span>);</pre></td></tr> +<tr> <td class="numLine"> 206</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 223</td> <td class="nbHitsCovered"> 355</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 224</td> <td class="nbHitsCovered"> 163</td> <td class="src"><pre class="src">  <span class="keyword">return</span> sb.toString().trim();</pre></td></tr> -<tr> <td class="numLine"> 225</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 207</td> <td class="nbHitsCovered"> 355</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 208</td> <td class="nbHitsCovered"> 163</td> <td class="src"><pre class="src">  <span class="keyword">return</span> sb.toString().trim();</pre></td></tr> +<tr> <td class="numLine"> 209</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 226</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 210</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 227</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 211</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 228</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 212</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Reduces the given confidence by one level. This returns LOW if the</span></pre></td></tr> -<tr> <td class="numLine"> 229</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 213</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * confidence passed in is not HIGH.</span></pre></td></tr> -<tr> <td class="numLine"> 230</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 214</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 231</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 215</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param c the confidence to reduce.</span></pre></td></tr> -<tr> <td class="numLine"> 232</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 216</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return One less then the confidence passed in.</span></pre></td></tr> -<tr> <td class="numLine"> 233</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 217</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 234</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 218</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">private</span> Confidence reduceConfidence(<span class="keyword">final</span> Confidence c) {</pre></td></tr> -<tr> <td class="numLineCover"> 235</td> <td class="nbHitsCovered"><a title="Line 235: Conditional coverage 100% (2/2)."> 152</a></td> <td class="src"><pre class="src"> <a title="Line 235: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (c == Confidence.HIGHEST) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 236</td> <td class="nbHitsCovered"> 38</td> <td class="src"><pre class="src">  <span class="keyword">return</span> Confidence.HIGH;</pre></td></tr> -<tr> <td class="numLineCover"> 237</td> <td class="nbHitsCovered"><a title="Line 237: Conditional coverage 100% (2/2)."> 114</a></td> <td class="src"><pre class="src"> <a title="Line 237: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (c == Confidence.HIGH) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 238</td> <td class="nbHitsCovered"> 38</td> <td class="src"><pre class="src">  <span class="keyword">return</span> Confidence.MEDIUM;</pre></td></tr> -<tr> <td class="numLine"> 239</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 219</td> <td class="nbHitsCovered"><a title="Line 219: Conditional coverage 100% (2/2)."> 152</a></td> <td class="src"><pre class="src"> <a title="Line 219: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (c == Confidence.HIGHEST) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 220</td> <td class="nbHitsCovered"> 38</td> <td class="src"><pre class="src">  <span class="keyword">return</span> Confidence.HIGH;</pre></td></tr> +<tr> <td class="numLineCover"> 221</td> <td class="nbHitsCovered"><a title="Line 221: Conditional coverage 100% (2/2)."> 114</a></td> <td class="src"><pre class="src"> <a title="Line 221: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (c == Confidence.HIGH) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 222</td> <td class="nbHitsCovered"> 38</td> <td class="src"><pre class="src">  <span class="keyword">return</span> Confidence.MEDIUM;</pre></td></tr> +<tr> <td class="numLine"> 223</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 240</td> <td class="nbHitsCovered"> 76</td> <td class="src"><pre class="src">  <span class="keyword">return</span> Confidence.LOW;</pre></td></tr> -<tr> <td class="numLine"> 241</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 224</td> <td class="nbHitsCovered"> 76</td> <td class="src"><pre class="src">  <span class="keyword">return</span> Confidence.LOW;</pre></td></tr> +<tr> <td class="numLine"> 225</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 242</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 226</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 243</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 227</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 244</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 228</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 245</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 229</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * <p>Searches the Lucene CPE index to identify possible CPE entries</span></pre></td></tr> -<tr> <td class="numLine"> 246</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 230</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * associated with the supplied vendor, product, and version.</p></span></pre></td></tr> -<tr> <td class="numLine"> 247</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 231</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 248</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 232</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * <p>If either the vendorWeightings or productWeightings lists have been</span></pre></td></tr> -<tr> <td class="numLine"> 249</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 233</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * populated this data is used to add weighting factors to the search.</p></span></pre></td></tr> -<tr> <td class="numLine"> 250</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 234</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 251</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 235</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param vendor the text used to search the vendor field</span></pre></td></tr> -<tr> <td class="numLine"> 252</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 236</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param product the text used to search the product field</span></pre></td></tr> -<tr> <td class="numLine"> 253</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 237</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param vendorWeightings a list of strings to use to add weighting factors</span></pre></td></tr> -<tr> <td class="numLine"> 254</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 238</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * to the vendor field</span></pre></td></tr> -<tr> <td class="numLine"> 255</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 239</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param productWeightings Adds a list of strings that will be used to add</span></pre></td></tr> -<tr> <td class="numLine"> 256</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 240</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * weighting factors to the product search</span></pre></td></tr> -<tr> <td class="numLine"> 257</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 241</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return a list of possible CPE values</span></pre></td></tr> -<tr> <td class="numLine"> 258</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 242</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws CorruptIndexException when the Lucene index is corrupt</span></pre></td></tr> -<tr> <td class="numLine"> 259</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 243</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws IOException when the Lucene index is not found</span></pre></td></tr> -<tr> <td class="numLine"> 260</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 244</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws ParseException when the generated query is not valid</span></pre></td></tr> -<tr> <td class="numLine"> 261</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 245</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 262</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 246</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">protected</span> List<IndexEntry> searchCPE(String vendor, String product,</pre></td></tr> -<tr> <td class="numLine"> 263</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 247</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  Set<String> vendorWeightings, Set<String> productWeightings)</pre></td></tr> -<tr> <td class="numLine"> 264</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 248</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">throws</span> CorruptIndexException, IOException, ParseException {</pre></td></tr> -<tr> <td class="numLineCover"> 265</td> <td class="nbHitsCovered"> 73</td> <td class="src"><pre class="src">  <span class="keyword">final</span> ArrayList<IndexEntry> ret = <span class="keyword">new</span> ArrayList<IndexEntry>(MAX_QUERY_RESULTS);</pre></td></tr> -<tr> <td class="numLine"> 266</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 249</td> <td class="nbHitsCovered"> 73</td> <td class="src"><pre class="src">  <span class="keyword">final</span> ArrayList<IndexEntry> ret = <span class="keyword">new</span> ArrayList<IndexEntry>(MAX_QUERY_RESULTS);</pre></td></tr> +<tr> <td class="numLine"> 250</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 267</td> <td class="nbHitsCovered"> 73</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String searchString = buildSearch(vendor, product, vendorWeightings, productWeightings);</pre></td></tr> -<tr> <td class="numLineCover"> 268</td> <td class="nbHitsUncovered"><a title="Line 268: Conditional coverage 50% (1/2)."> 73</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 268: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (searchString == <span class="keyword">null</span>) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 269</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> ret;</span></pre></td></tr> -<tr> <td class="numLine"> 270</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 251</td> <td class="nbHitsCovered"> 73</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String searchString = buildSearch(vendor, product, vendorWeightings, productWeightings);</pre></td></tr> +<tr> <td class="numLineCover"> 252</td> <td class="nbHitsUncovered"><a title="Line 252: Conditional coverage 50% (1/2)."> 73</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 252: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (searchString == <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 253</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> ret;</span></pre></td></tr> +<tr> <td class="numLine"> 254</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 271</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 255</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 272</td> <td class="nbHitsCovered"> 73</td> <td class="src"><pre class="src">  <span class="keyword">final</span> TopDocs docs = cpe.search(searchString, MAX_QUERY_RESULTS);</pre></td></tr> -<tr> <td class="numLineCover"> 273</td> <td class="nbHitsCovered"><a title="Line 273: Conditional coverage 100% (2/2)."> 1212</a></td> <td class="src"><pre class="src"> <a title="Line 273: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (ScoreDoc d : docs.scoreDocs) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 274</td> <td class="nbHitsCovered"><a title="Line 274: Conditional coverage 100% (2/2)."> 1139</a></td> <td class="src"><pre class="src"> <a title="Line 274: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (d.score >= 0.08) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 275</td> <td class="nbHitsCovered"> 741</td> <td class="src"><pre class="src">  <span class="keyword">final</span> Document doc = cpe.getDocument(d.doc);</pre></td></tr> -<tr> <td class="numLineCover"> 276</td> <td class="nbHitsCovered"> 741</td> <td class="src"><pre class="src">  <span class="keyword">final</span> IndexEntry entry = <span class="keyword">new</span> IndexEntry();</pre></td></tr> -<tr> <td class="numLineCover"> 277</td> <td class="nbHitsCovered"> 741</td> <td class="src"><pre class="src">  entry.setVendor(doc.get(Fields.VENDOR));</pre></td></tr> -<tr> <td class="numLineCover"> 278</td> <td class="nbHitsCovered"> 741</td> <td class="src"><pre class="src">  entry.setProduct(doc.get(Fields.PRODUCT));</pre></td></tr> -<tr> <td class="numLine"> 279</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 256</td> <td class="nbHitsCovered"> 73</td> <td class="src"><pre class="src">  <span class="keyword">final</span> TopDocs docs = cpe.search(searchString, MAX_QUERY_RESULTS);</pre></td></tr> +<tr> <td class="numLineCover"> 257</td> <td class="nbHitsCovered"><a title="Line 257: Conditional coverage 100% (2/2)."> 1214</a></td> <td class="src"><pre class="src"> <a title="Line 257: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (ScoreDoc d : docs.scoreDocs) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 258</td> <td class="nbHitsCovered"><a title="Line 258: Conditional coverage 100% (2/2)."> 1141</a></td> <td class="src"><pre class="src"> <a title="Line 258: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (d.score >= 0.08) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 259</td> <td class="nbHitsCovered"> 745</td> <td class="src"><pre class="src">  <span class="keyword">final</span> Document doc = cpe.getDocument(d.doc);</pre></td></tr> +<tr> <td class="numLineCover"> 260</td> <td class="nbHitsCovered"> 745</td> <td class="src"><pre class="src">  <span class="keyword">final</span> IndexEntry entry = <span class="keyword">new</span> IndexEntry();</pre></td></tr> +<tr> <td class="numLineCover"> 261</td> <td class="nbHitsCovered"> 745</td> <td class="src"><pre class="src">  entry.setVendor(doc.get(Fields.VENDOR));</pre></td></tr> +<tr> <td class="numLineCover"> 262</td> <td class="nbHitsCovered"> 745</td> <td class="src"><pre class="src">  entry.setProduct(doc.get(Fields.PRODUCT));</pre></td></tr> +<tr> <td class="numLine"> 263</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">// if (d.score < 0.08) {</span></pre></td></tr> -<tr> <td class="numLine"> 280</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 264</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">// System.out.print(entry.getVendor());</span></pre></td></tr> -<tr> <td class="numLine"> 281</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 265</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">// System.out.print(":");</span></pre></td></tr> -<tr> <td class="numLine"> 282</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 266</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">// System.out.print(entry.getProduct());</span></pre></td></tr> -<tr> <td class="numLine"> 283</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 267</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">// System.out.print(":");</span></pre></td></tr> -<tr> <td class="numLine"> 284</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 268</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">// System.out.println(d.score);</span></pre></td></tr> -<tr> <td class="numLine"> 285</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 269</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">// }</span></pre></td></tr> -<tr> <td class="numLineCover"> 286</td> <td class="nbHitsCovered"> 741</td> <td class="src"><pre class="src">  entry.setSearchScore(d.score);</pre></td></tr> -<tr> <td class="numLineCover"> 287</td> <td class="nbHitsUncovered"><a title="Line 287: Conditional coverage 50% (1/2)."> 741</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 287: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (!ret.contains(entry)) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 288</td> <td class="nbHitsCovered"> 741</td> <td class="src"><pre class="src">  ret.add(entry);</pre></td></tr> -<tr> <td class="numLine"> 289</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 270</td> <td class="nbHitsCovered"> 745</td> <td class="src"><pre class="src">  entry.setSearchScore(d.score);</pre></td></tr> +<tr> <td class="numLineCover"> 271</td> <td class="nbHitsUncovered"><a title="Line 271: Conditional coverage 50% (1/2)."> 745</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 271: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (!ret.contains(entry)) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 272</td> <td class="nbHitsCovered"> 745</td> <td class="src"><pre class="src">  ret.add(entry);</pre></td></tr> +<tr> <td class="numLine"> 273</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 290</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 274</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 291</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 275</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 292</td> <td class="nbHitsCovered"> 73</td> <td class="src"><pre class="src">  <span class="keyword">return</span> ret;</pre></td></tr> -<tr> <td class="numLine"> 293</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 276</td> <td class="nbHitsCovered"> 73</td> <td class="src"><pre class="src">  <span class="keyword">return</span> ret;</pre></td></tr> +<tr> <td class="numLine"> 277</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 294</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 278</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 295</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 279</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 296</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 280</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * <p>Builds a Lucene search string by properly escaping data and</span></pre></td></tr> -<tr> <td class="numLine"> 297</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 281</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * constructing a valid search query.</p></span></pre></td></tr> -<tr> <td class="numLine"> 298</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 282</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 299</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 283</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * <p>If either the possibleVendor or possibleProducts lists have been</span></pre></td></tr> -<tr> <td class="numLine"> 300</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 284</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * populated this data is used to add weighting factors to the search string</span></pre></td></tr> -<tr> <td class="numLine"> 301</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 285</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * generated.</p></span></pre></td></tr> -<tr> <td class="numLine"> 302</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 286</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 303</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 287</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param vendor text to search the vendor field</span></pre></td></tr> -<tr> <td class="numLine"> 304</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 288</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param product text to search the product field</span></pre></td></tr> -<tr> <td class="numLine"> 305</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 289</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param vendorWeighting a list of strings to apply to the vendor to boost</span></pre></td></tr> -<tr> <td class="numLine"> 306</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 290</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * the terms weight</span></pre></td></tr> -<tr> <td class="numLine"> 307</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 291</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param productWeightings a list of strings to apply to the product to</span></pre></td></tr> -<tr> <td class="numLine"> 308</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 292</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * boost the terms weight</span></pre></td></tr> -<tr> <td class="numLine"> 309</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 293</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return the Lucene query</span></pre></td></tr> -<tr> <td class="numLine"> 310</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 294</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 311</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 295</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">protected</span> String buildSearch(String vendor, String product,</pre></td></tr> -<tr> <td class="numLine"> 312</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 296</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  Set<String> vendorWeighting, Set<String> productWeightings) {</pre></td></tr> -<tr> <td class="numLineCover"> 313</td> <td class="nbHitsCovered"> 77</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String v = vendor; <span class="comment">//.replaceAll("[^\\w\\d]", " ");</span></pre></td></tr> -<tr> <td class="numLineCover"> 314</td> <td class="nbHitsCovered"> 77</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String p = product; <span class="comment">//.replaceAll("[^\\w\\d]", " ");</span></pre></td></tr> -<tr> <td class="numLineCover"> 315</td> <td class="nbHitsCovered"> 77</td> <td class="src"><pre class="src">  <span class="keyword">final</span> StringBuilder sb = <span class="keyword">new</span> StringBuilder(v.length() + p.length()</pre></td></tr> -<tr> <td class="numLine"> 316</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 297</td> <td class="nbHitsCovered"> 77</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String v = vendor; <span class="comment">//.replaceAll("[^\\w\\d]", " ");</span></pre></td></tr> +<tr> <td class="numLineCover"> 298</td> <td class="nbHitsCovered"> 77</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String p = product; <span class="comment">//.replaceAll("[^\\w\\d]", " ");</span></pre></td></tr> +<tr> <td class="numLineCover"> 299</td> <td class="nbHitsCovered"> 77</td> <td class="src"><pre class="src">  <span class="keyword">final</span> StringBuilder sb = <span class="keyword">new</span> StringBuilder(v.length() + p.length()</pre></td></tr> +<tr> <td class="numLine"> 300</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  + Fields.PRODUCT.length() + Fields.VENDOR.length() + STRING_BUILDER_BUFFER);</pre></td></tr> -<tr> <td class="numLine"> 317</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 301</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 318</td> <td class="nbHitsUncovered"><a title="Line 318: Conditional coverage 50% (1/2)."> 77</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 318: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (!appendWeightedSearch(sb, Fields.PRODUCT, p, productWeightings)) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 319</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">null</span>;</span></pre></td></tr> -<tr> <td class="numLine"> 320</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 302</td> <td class="nbHitsUncovered"><a title="Line 302: Conditional coverage 50% (1/2)."> 77</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 302: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (!appendWeightedSearch(sb, Fields.PRODUCT, p, productWeightings)) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 303</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">null</span>;</span></pre></td></tr> +<tr> <td class="numLine"> 304</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 321</td> <td class="nbHitsCovered"> 77</td> <td class="src"><pre class="src">  sb.append(<span class="string">" AND "</span>);</pre></td></tr> -<tr> <td class="numLineCover"> 322</td> <td class="nbHitsUncovered"><a title="Line 322: Conditional coverage 50% (1/2)."> 77</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 322: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (!appendWeightedSearch(sb, Fields.VENDOR, v, vendorWeighting)) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 323</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">null</span>;</span></pre></td></tr> -<tr> <td class="numLine"> 324</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 305</td> <td class="nbHitsCovered"> 77</td> <td class="src"><pre class="src">  sb.append(<span class="string">" AND "</span>);</pre></td></tr> +<tr> <td class="numLineCover"> 306</td> <td class="nbHitsUncovered"><a title="Line 306: Conditional coverage 50% (1/2)."> 77</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 306: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (!appendWeightedSearch(sb, Fields.VENDOR, v, vendorWeighting)) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 307</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">null</span>;</span></pre></td></tr> +<tr> <td class="numLine"> 308</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 325</td> <td class="nbHitsCovered"> 77</td> <td class="src"><pre class="src">  <span class="keyword">return</span> sb.toString();</pre></td></tr> -<tr> <td class="numLine"> 326</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 309</td> <td class="nbHitsCovered"> 77</td> <td class="src"><pre class="src">  <span class="keyword">return</span> sb.toString();</pre></td></tr> +<tr> <td class="numLine"> 310</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 327</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 311</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 328</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 312</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 329</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 313</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * This method constructs a Lucene query for a given field. The searchText</span></pre></td></tr> -<tr> <td class="numLine"> 330</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 314</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * is split into separate words and if the word is within the list of</span></pre></td></tr> -<tr> <td class="numLine"> 331</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 315</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * weighted words then an additional weighting is applied to the term as it</span></pre></td></tr> -<tr> <td class="numLine"> 332</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 316</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * is appended into the query.</span></pre></td></tr> -<tr> <td class="numLine"> 333</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 317</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 334</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 318</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param sb a StringBuilder that the query text will be appended to.</span></pre></td></tr> -<tr> <td class="numLine"> 335</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 319</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param field the field within the Lucene index that the query is</span></pre></td></tr> -<tr> <td class="numLine"> 336</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 320</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * searching.</span></pre></td></tr> -<tr> <td class="numLine"> 337</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 321</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param searchText text used to construct the query.</span></pre></td></tr> -<tr> <td class="numLine"> 338</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 322</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param weightedText a list of terms that will be considered higher</span></pre></td></tr> -<tr> <td class="numLine"> 339</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 323</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * importance when searching.</span></pre></td></tr> -<tr> <td class="numLine"> 340</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 324</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return if the append was successful.</span></pre></td></tr> -<tr> <td class="numLine"> 341</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 325</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 342</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 326</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">boolean</span> appendWeightedSearch(StringBuilder sb, String field, String searchText, Set<String> weightedText) {</pre></td></tr> -<tr> <td class="numLineCover"> 343</td> <td class="nbHitsCovered"> 154</td> <td class="src"><pre class="src">  sb.append(<span class="string">" "</span>).append(field).append(<span class="string">":( "</span>);</pre></td></tr> -<tr> <td class="numLine"> 344</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 327</td> <td class="nbHitsCovered"> 154</td> <td class="src"><pre class="src">  sb.append(<span class="string">" "</span>).append(field).append(<span class="string">":( "</span>);</pre></td></tr> +<tr> <td class="numLine"> 328</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 345</td> <td class="nbHitsCovered"> 154</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String cleanText = cleanseText(searchText);</pre></td></tr> -<tr> <td class="numLine"> 346</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 329</td> <td class="nbHitsCovered"> 154</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String cleanText = cleanseText(searchText);</pre></td></tr> +<tr> <td class="numLine"> 330</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 347</td> <td class="nbHitsUncovered"><a title="Line 347: Conditional coverage 50% (1/2)."> 154</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 347: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (<span class="string">""</span>.equals(cleanText)) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 348</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr> -<tr> <td class="numLine"> 349</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 331</td> <td class="nbHitsUncovered"><a title="Line 331: Conditional coverage 50% (1/2)."> 154</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 331: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (<span class="string">""</span>.equals(cleanText)) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 332</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr> +<tr> <td class="numLine"> 333</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 350</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 334</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 351</td> <td class="nbHitsCovered"><a title="Line 351: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 154</a></td> <td class="src"><pre class="src"> <a title="Line 351: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (weightedText == <span class="keyword">null</span> || weightedText.isEmpty()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 352</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src">  LuceneUtils.appendEscapedLuceneQuery(sb, cleanText);</pre></td></tr> -<tr> <td class="numLine"> 353</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 335</td> <td class="nbHitsCovered"><a title="Line 335: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 154</a></td> <td class="src"><pre class="src"> <a title="Line 335: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (weightedText == <span class="keyword">null</span> || weightedText.isEmpty()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 336</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src">  LuceneUtils.appendEscapedLuceneQuery(sb, cleanText);</pre></td></tr> +<tr> <td class="numLine"> 337</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 354</td> <td class="nbHitsCovered"> 114</td> <td class="src"><pre class="src">  <span class="keyword">final</span> StringTokenizer tokens = <span class="keyword">new</span> StringTokenizer(cleanText);</pre></td></tr> -<tr> <td class="numLineCover"> 355</td> <td class="nbHitsCovered"><a title="Line 355: Conditional coverage 100% (2/2)."> 1211</a></td> <td class="src"><pre class="src"> <a title="Line 355: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (tokens.hasMoreElements()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 356</td> <td class="nbHitsCovered"> 1097</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String word = tokens.nextToken();</pre></td></tr> -<tr> <td class="numLineCover"> 357</td> <td class="nbHitsCovered"> 1097</td> <td class="src"><pre class="src">  String temp = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 358</td> <td class="nbHitsCovered"><a title="Line 358: Conditional coverage 100% (2/2)."> 1097</a></td> <td class="src"><pre class="src"> <a title="Line 358: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (String weighted : weightedText) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 359</td> <td class="nbHitsCovered"> 2202</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String weightedStr = cleanseText(weighted);</pre></td></tr> -<tr> <td class="numLineCover"> 360</td> <td class="nbHitsCovered"><a title="Line 360: Conditional coverage 100% (2/2)."> 2202</a></td> <td class="src"><pre class="src"> <a title="Line 360: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (equalsIgnoreCaseAndNonAlpha(word, weightedStr)) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 361</td> <td class="nbHitsCovered"> 251</td> <td class="src"><pre class="src">  temp = LuceneUtils.escapeLuceneQuery(word) + WEIGHTING_BOOST;</pre></td></tr> -<tr> <td class="numLineCover"> 362</td> <td class="nbHitsCovered"><a title="Line 362: Conditional coverage 100% (2/2)."> 251</a></td> <td class="src"><pre class="src"> <a title="Line 362: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!word.equalsIgnoreCase(weightedStr)) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 363</td> <td class="nbHitsCovered"> 18</td> <td class="src"><pre class="src">  temp += <span class="string">" "</span> + LuceneUtils.escapeLuceneQuery(weightedStr) + WEIGHTING_BOOST;</pre></td></tr> -<tr> <td class="numLine"> 364</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 338</td> <td class="nbHitsCovered"> 114</td> <td class="src"><pre class="src">  <span class="keyword">final</span> StringTokenizer tokens = <span class="keyword">new</span> StringTokenizer(cleanText);</pre></td></tr> +<tr> <td class="numLineCover"> 339</td> <td class="nbHitsCovered"><a title="Line 339: Conditional coverage 100% (2/2)."> 1211</a></td> <td class="src"><pre class="src"> <a title="Line 339: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (tokens.hasMoreElements()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 340</td> <td class="nbHitsCovered"> 1097</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String word = tokens.nextToken();</pre></td></tr> +<tr> <td class="numLineCover"> 341</td> <td class="nbHitsCovered"> 1097</td> <td class="src"><pre class="src">  String temp = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 342</td> <td class="nbHitsCovered"><a title="Line 342: Conditional coverage 100% (2/2)."> 1097</a></td> <td class="src"><pre class="src"> <a title="Line 342: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (String weighted : weightedText) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 343</td> <td class="nbHitsCovered"> 2202</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String weightedStr = cleanseText(weighted);</pre></td></tr> +<tr> <td class="numLineCover"> 344</td> <td class="nbHitsCovered"><a title="Line 344: Conditional coverage 100% (2/2)."> 2202</a></td> <td class="src"><pre class="src"> <a title="Line 344: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (equalsIgnoreCaseAndNonAlpha(word, weightedStr)) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 345</td> <td class="nbHitsCovered"> 251</td> <td class="src"><pre class="src">  temp = LuceneUtils.escapeLuceneQuery(word) + WEIGHTING_BOOST;</pre></td></tr> +<tr> <td class="numLineCover"> 346</td> <td class="nbHitsCovered"><a title="Line 346: Conditional coverage 100% (2/2)."> 251</a></td> <td class="src"><pre class="src"> <a title="Line 346: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!word.equalsIgnoreCase(weightedStr)) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 347</td> <td class="nbHitsCovered"> 18</td> <td class="src"><pre class="src">  temp += <span class="string">" "</span> + LuceneUtils.escapeLuceneQuery(weightedStr) + WEIGHTING_BOOST;</pre></td></tr> +<tr> <td class="numLine"> 348</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 365</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 349</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 366</td> <td class="nbHitsCovered"> 2202</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 367</td> <td class="nbHitsCovered"><a title="Line 367: Conditional coverage 100% (2/2)."> 1097</a></td> <td class="src"><pre class="src"> <a title="Line 367: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (temp == <span class="keyword">null</span>) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 368</td> <td class="nbHitsCovered"> 846</td> <td class="src"><pre class="src">  temp = LuceneUtils.escapeLuceneQuery(word);</pre></td></tr> -<tr> <td class="numLine"> 369</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 350</td> <td class="nbHitsCovered"> 2202</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 351</td> <td class="nbHitsCovered"><a title="Line 351: Conditional coverage 100% (2/2)."> 1097</a></td> <td class="src"><pre class="src"> <a title="Line 351: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (temp == <span class="keyword">null</span>) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 352</td> <td class="nbHitsCovered"> 846</td> <td class="src"><pre class="src">  temp = LuceneUtils.escapeLuceneQuery(word);</pre></td></tr> +<tr> <td class="numLine"> 353</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 370</td> <td class="nbHitsCovered"> 1097</td> <td class="src"><pre class="src">  sb.append(<span class="string">" "</span>).append(temp);</pre></td></tr> -<tr> <td class="numLineCover"> 371</td> <td class="nbHitsCovered"> 1097</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 372</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 354</td> <td class="nbHitsCovered"> 1097</td> <td class="src"><pre class="src">  sb.append(<span class="string">" "</span>).append(temp);</pre></td></tr> +<tr> <td class="numLineCover"> 355</td> <td class="nbHitsCovered"> 1097</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 356</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 373</td> <td class="nbHitsCovered"> 154</td> <td class="src"><pre class="src">  sb.append(<span class="string">" ) "</span>);</pre></td></tr> -<tr> <td class="numLineCover"> 374</td> <td class="nbHitsCovered"> 154</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">true</span>;</pre></td></tr> -<tr> <td class="numLine"> 375</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 357</td> <td class="nbHitsCovered"> 154</td> <td class="src"><pre class="src">  sb.append(<span class="string">" ) "</span>);</pre></td></tr> +<tr> <td class="numLineCover"> 358</td> <td class="nbHitsCovered"> 154</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">true</span>;</pre></td></tr> +<tr> <td class="numLine"> 359</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 376</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 360</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 377</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 361</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 378</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 362</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Removes characters from the input text that are not used within the CPE</span></pre></td></tr> -<tr> <td class="numLine"> 379</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 363</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * index.</span></pre></td></tr> -<tr> <td class="numLine"> 380</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 364</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 381</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 365</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param text is the text to remove the characters from.</span></pre></td></tr> -<tr> <td class="numLine"> 382</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 366</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return the text having removed some characters.</span></pre></td></tr> -<tr> <td class="numLine"> 383</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 367</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 384</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 368</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">private</span> String cleanseText(String text) {</pre></td></tr> -<tr> <td class="numLineCover"> 385</td> <td class="nbHitsCovered"> 2356</td> <td class="src"><pre class="src">  <span class="keyword">return</span> text.replaceAll(CLEANSE_CHARACTER_RX, <span class="string">" "</span>);</pre></td></tr> -<tr> <td class="numLine"> 386</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 369</td> <td class="nbHitsCovered"> 2356</td> <td class="src"><pre class="src">  <span class="keyword">return</span> text.replaceAll(CLEANSE_CHARACTER_RX, <span class="string">" "</span>);</pre></td></tr> +<tr> <td class="numLine"> 370</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 387</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 371</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 388</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 372</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 389</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 373</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Compares two strings after lower casing them and removing the non-alpha</span></pre></td></tr> -<tr> <td class="numLine"> 390</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 374</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * characters.</span></pre></td></tr> -<tr> <td class="numLine"> 391</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 375</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 392</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 376</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param l string one to compare.</span></pre></td></tr> -<tr> <td class="numLine"> 393</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 377</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param r string two to compare.</span></pre></td></tr> -<tr> <td class="numLine"> 394</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 378</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return whether or not the two strings are similar.</span></pre></td></tr> -<tr> <td class="numLine"> 395</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 379</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 396</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 380</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">boolean</span> equalsIgnoreCaseAndNonAlpha(String l, String r) {</pre></td></tr> -<tr> <td class="numLineCover"> 397</td> <td class="nbHitsUncovered"><a title="Line 397: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> 2202</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 397: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> <span class="keyword">if</span> (l == <span class="keyword">null</span> || r == <span class="keyword">null</span>) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 398</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr> -<tr> <td class="numLine"> 399</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 381</td> <td class="nbHitsUncovered"><a title="Line 381: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> 2202</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 381: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> <span class="keyword">if</span> (l == <span class="keyword">null</span> || r == <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 382</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr> +<tr> <td class="numLine"> 383</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 400</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 384</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 401</td> <td class="nbHitsCovered"> 2202</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String left = l.replaceAll(CLEANSE_NONALPHA_RX, <span class="string">""</span>);</pre></td></tr> -<tr> <td class="numLineCover"> 402</td> <td class="nbHitsCovered"> 2202</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String right = r.replaceAll(CLEANSE_NONALPHA_RX, <span class="string">""</span>);</pre></td></tr> -<tr> <td class="numLineCover"> 403</td> <td class="nbHitsCovered"> 2202</td> <td class="src"><pre class="src">  <span class="keyword">return</span> left.equalsIgnoreCase(right);</pre></td></tr> -<tr> <td class="numLine"> 404</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 385</td> <td class="nbHitsCovered"> 2202</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String left = l.replaceAll(CLEANSE_NONALPHA_RX, <span class="string">""</span>);</pre></td></tr> +<tr> <td class="numLineCover"> 386</td> <td class="nbHitsCovered"> 2202</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String right = r.replaceAll(CLEANSE_NONALPHA_RX, <span class="string">""</span>);</pre></td></tr> +<tr> <td class="numLineCover"> 387</td> <td class="nbHitsCovered"> 2202</td> <td class="src"><pre class="src">  <span class="keyword">return</span> left.equalsIgnoreCase(right);</pre></td></tr> +<tr> <td class="numLine"> 388</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 405</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 389</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 406</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 390</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 407</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 391</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Ensures that the CPE Identified matches the dependency. This validates</span></pre></td></tr> -<tr> <td class="numLine"> 408</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 392</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * that the product, vendor, and version information for the CPE are</span></pre></td></tr> -<tr> <td class="numLine"> 409</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 393</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * contained within the dependencies evidence.</span></pre></td></tr> -<tr> <td class="numLine"> 410</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 394</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 411</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 395</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param entry a CPE entry.</span></pre></td></tr> -<tr> <td class="numLine"> 412</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 396</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param dependency the dependency that the CPE entries could be for.</span></pre></td></tr> -<tr> <td class="numLine"> 413</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 397</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return whether or not the entry is valid.</span></pre></td></tr> -<tr> <td class="numLine"> 414</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 398</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 415</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 399</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">boolean</span> verifyEntry(<span class="keyword">final</span> IndexEntry entry, <span class="keyword">final</span> Dependency dependency) {</pre></td></tr> -<tr> <td class="numLineCover"> 416</td> <td class="nbHitsCovered"> 722</td> <td class="src"><pre class="src">  <span class="keyword">boolean</span> isValid = <span class="keyword">false</span>;</pre></td></tr> -<tr> <td class="numLine"> 417</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 400</td> <td class="nbHitsCovered"> 724</td> <td class="src"><pre class="src">  <span class="keyword">boolean</span> isValid = <span class="keyword">false</span>;</pre></td></tr> +<tr> <td class="numLine"> 401</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 418</td> <td class="nbHitsCovered"><a title="Line 418: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 722</a></td> <td class="src"><pre class="src"> <a title="Line 418: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (collectionContainsString(dependency.getProductEvidence(), entry.getProduct())</a></pre></td></tr> -<tr> <td class="numLine"> 419</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 402</td> <td class="nbHitsCovered"><a title="Line 402: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 724</a></td> <td class="src"><pre class="src"> <a title="Line 402: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (collectionContainsString(dependency.getProductEvidence(), entry.getProduct())</a></pre></td></tr> +<tr> <td class="numLine"> 403</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  && collectionContainsString(dependency.getVendorEvidence(), entry.getVendor())) {</pre></td></tr> -<tr> <td class="numLine"> 420</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 404</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">//&& collectionContainsVersion(dependency.getVersionEvidence(), entry.getVersion())</span></pre></td></tr> -<tr> <td class="numLineCover"> 421</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src">  isValid = <span class="keyword">true</span>;</pre></td></tr> -<tr> <td class="numLine"> 422</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 405</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src">  isValid = <span class="keyword">true</span>;</pre></td></tr> +<tr> <td class="numLine"> 406</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 423</td> <td class="nbHitsCovered"> 722</td> <td class="src"><pre class="src">  <span class="keyword">return</span> isValid;</pre></td></tr> -<tr> <td class="numLine"> 424</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 407</td> <td class="nbHitsCovered"> 724</td> <td class="src"><pre class="src">  <span class="keyword">return</span> isValid;</pre></td></tr> +<tr> <td class="numLine"> 408</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 425</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 409</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 426</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 410</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 427</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 411</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Used to determine if the EvidenceCollection contains a specific string.</span></pre></td></tr> -<tr> <td class="numLine"> 428</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 412</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 429</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 413</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param ec an EvidenceCollection</span></pre></td></tr> -<tr> <td class="numLine"> 430</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 414</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param text the text to search for</span></pre></td></tr> -<tr> <td class="numLine"> 431</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 415</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return whether or not the EvidenceCollection contains the string</span></pre></td></tr> -<tr> <td class="numLine"> 432</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 416</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 433</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 417</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">boolean</span> collectionContainsString(EvidenceCollection ec, String text) {</pre></td></tr> -<tr> <td class="numLine"> 434</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 418</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 435</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 419</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">//<editor-fold defaultstate="collapsed" desc="This code fold contains an old version of the code, delete once more testing is done"></span></pre></td></tr> -<tr> <td class="numLine"> 436</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 420</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">// String[] splitText = text.split("[\\s_-]");</span></pre></td></tr> -<tr> <td class="numLine"> 437</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 421</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">//</span></pre></td></tr> -<tr> <td class="numLine"> 438</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 422</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">// for (String search : splitText) {</span></pre></td></tr> -<tr> <td class="numLine"> 439</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 423</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">// //final String search = text.replaceAll("[\\s_-]", "").toLowerCase();</span></pre></td></tr> -<tr> <td class="numLine"> 440</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 424</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">// if (ec.containsUsedString(search)) {</span></pre></td></tr> -<tr> <td class="numLine"> 441</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 425</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">// return true;</span></pre></td></tr> -<tr> <td class="numLine"> 442</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 426</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">// }</span></pre></td></tr> -<tr> <td class="numLine"> 443</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 427</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">// }</span></pre></td></tr> -<tr> <td class="numLine"> 444</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 428</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">//</editor-fold></span></pre></td></tr> -<tr> <td class="numLine"> 445</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 429</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 446</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 430</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">//TODO - likely need to change the split... not sure if this will work for CPE with special chars</span></pre></td></tr> -<tr> <td class="numLineCover"> 447</td> <td class="nbHitsUncovered"><a title="Line 447: Conditional coverage 50% (1/2)."> 799</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 447: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (text == <span class="keyword">null</span>) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 448</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr> -<tr> <td class="numLine"> 449</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 431</td> <td class="nbHitsUncovered"><a title="Line 431: Conditional coverage 50% (1/2)."> 801</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 431: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (text == <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 432</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr> +<tr> <td class="numLine"> 433</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 450</td> <td class="nbHitsCovered"> 799</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String[] words = text.split(<span class="string">"[\\s_-]"</span>);</pre></td></tr> -<tr> <td class="numLineCover"> 451</td> <td class="nbHitsCovered"> 799</td> <td class="src"><pre class="src">  <span class="keyword">final</span> List<String> list = <span class="keyword">new</span> ArrayList<String>();</pre></td></tr> -<tr> <td class="numLineCover"> 452</td> <td class="nbHitsCovered"> 799</td> <td class="src"><pre class="src">  String tempWord = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 453</td> <td class="nbHitsCovered"><a title="Line 453: Conditional coverage 100% (2/2)."> 2254</a></td> <td class="src"><pre class="src"> <a title="Line 453: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (String word : words) {</a></pre></td></tr> -<tr> <td class="numLine"> 454</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 434</td> <td class="nbHitsCovered"> 801</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String[] words = text.split(<span class="string">"[\\s_-]"</span>);</pre></td></tr> +<tr> <td class="numLineCover"> 435</td> <td class="nbHitsCovered"> 801</td> <td class="src"><pre class="src">  <span class="keyword">final</span> List<String> list = <span class="keyword">new</span> ArrayList<String>();</pre></td></tr> +<tr> <td class="numLineCover"> 436</td> <td class="nbHitsCovered"> 801</td> <td class="src"><pre class="src">  String tempWord = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 437</td> <td class="nbHitsCovered"><a title="Line 437: Conditional coverage 100% (2/2)."> 2255</a></td> <td class="src"><pre class="src"> <a title="Line 437: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (String word : words) {</a></pre></td></tr> +<tr> <td class="numLine"> 438</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">//single letter words should be concatonated with the next word.</span></pre></td></tr> -<tr> <td class="numLine"> 455</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 439</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">// so { "m", "core", "sample" } -> { "mcore", "sample" }</span></pre></td></tr> -<tr> <td class="numLineCover"> 456</td> <td class="nbHitsCovered"><a title="Line 456: Conditional coverage 100% (2/2)."> 1455</a></td> <td class="src"><pre class="src"> <a title="Line 456: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (tempWord != <span class="keyword">null</span>) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 457</td> <td class="nbHitsCovered"> 17</td> <td class="src"><pre class="src">  list.add(tempWord + word);</pre></td></tr> -<tr> <td class="numLineCover"> 458</td> <td class="nbHitsCovered"> 17</td> <td class="src"><pre class="src">  tempWord = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 459</td> <td class="nbHitsCovered"><a title="Line 459: Conditional coverage 100% (2/2)."> 1438</a></td> <td class="src"><pre class="src"> <a title="Line 459: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (word.length() <= 2) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 460</td> <td class="nbHitsCovered"> 41</td> <td class="src"><pre class="src">  tempWord = word;</pre></td></tr> -<tr> <td class="numLine"> 461</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 440</td> <td class="nbHitsCovered"><a title="Line 440: Conditional coverage 100% (2/2)."> 1454</a></td> <td class="src"><pre class="src"> <a title="Line 440: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (tempWord != <span class="keyword">null</span>) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 441</td> <td class="nbHitsCovered"> 17</td> <td class="src"><pre class="src">  list.add(tempWord + word);</pre></td></tr> +<tr> <td class="numLineCover"> 442</td> <td class="nbHitsCovered"> 17</td> <td class="src"><pre class="src">  tempWord = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 443</td> <td class="nbHitsCovered"><a title="Line 443: Conditional coverage 100% (2/2)."> 1437</a></td> <td class="src"><pre class="src"> <a title="Line 443: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (word.length() <= 2) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 444</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src">  tempWord = word;</pre></td></tr> +<tr> <td class="numLine"> 445</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 462</td> <td class="nbHitsCovered"> 1397</td> <td class="src"><pre class="src">  list.add(word);</pre></td></tr> -<tr> <td class="numLine"> 463</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 446</td> <td class="nbHitsCovered"> 1397</td> <td class="src"><pre class="src">  list.add(word);</pre></td></tr> +<tr> <td class="numLine"> 447</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 464</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 448</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 465</td> <td class="nbHitsCovered"><a title="Line 465: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 799</a></td> <td class="src"><pre class="src"> <a title="Line 465: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (tempWord != <span class="keyword">null</span> && !list.isEmpty()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 466</td> <td class="nbHitsCovered"> 20</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String tmp = list.get(list.size() - 1) + tempWord;</pre></td></tr> -<tr> <td class="numLineCover"> 467</td> <td class="nbHitsCovered"> 20</td> <td class="src"><pre class="src">  list.add(tmp);</pre></td></tr> -<tr> <td class="numLine"> 468</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 449</td> <td class="nbHitsCovered"><a title="Line 449: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 801</a></td> <td class="src"><pre class="src"> <a title="Line 449: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (tempWord != <span class="keyword">null</span> && !list.isEmpty()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 450</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String tmp = list.get(list.size() - 1) + tempWord;</pre></td></tr> +<tr> <td class="numLineCover"> 451</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  list.add(tmp);</pre></td></tr> +<tr> <td class="numLine"> 452</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 469</td> <td class="nbHitsCovered"> 799</td> <td class="src"><pre class="src">  <span class="keyword">boolean</span> contains = <span class="keyword">true</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 470</td> <td class="nbHitsCovered"><a title="Line 470: Conditional coverage 100% (2/2)."> 799</a></td> <td class="src"><pre class="src"> <a title="Line 470: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (String word : list) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 471</td> <td class="nbHitsCovered"> 1434</td> <td class="src"><pre class="src">  contains &= ec.containsUsedString(word);</pre></td></tr> -<tr> <td class="numLine"> 472</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 453</td> <td class="nbHitsCovered"> 801</td> <td class="src"><pre class="src">  <span class="keyword">boolean</span> contains = <span class="keyword">true</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 454</td> <td class="nbHitsCovered"><a title="Line 454: Conditional coverage 100% (2/2)."> 801</a></td> <td class="src"><pre class="src"> <a title="Line 454: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (String word : list) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 455</td> <td class="nbHitsCovered"> 1433</td> <td class="src"><pre class="src">  contains &= ec.containsUsedString(word);</pre></td></tr> +<tr> <td class="numLine"> 456</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 473</td> <td class="nbHitsCovered"> 799</td> <td class="src"><pre class="src">  <span class="keyword">return</span> contains;</pre></td></tr> -<tr> <td class="numLine"> 474</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 457</td> <td class="nbHitsCovered"> 801</td> <td class="src"><pre class="src">  <span class="keyword">return</span> contains;</pre></td></tr> +<tr> <td class="numLine"> 458</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 475</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 459</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 476</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 460</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 477</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 461</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Analyzes a dependency and attempts to determine if there are any CPE</span></pre></td></tr> -<tr> <td class="numLine"> 478</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 462</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * identifiers for this dependency.</span></pre></td></tr> -<tr> <td class="numLine"> 479</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 463</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 480</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 464</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param dependency The Dependency to analyze.</span></pre></td></tr> -<tr> <td class="numLine"> 481</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 465</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param engine The analysis engine</span></pre></td></tr> -<tr> <td class="numLine"> 482</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 466</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws AnalysisException is thrown if there is an issue analyzing the</span></pre></td></tr> -<tr> <td class="numLine"> 483</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 467</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * dependency.</span></pre></td></tr> -<tr> <td class="numLine"> 484</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 468</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 485</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 469</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  @Override</pre></td></tr> -<tr> <td class="numLine"> 486</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 470</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> analyze(Dependency dependency, Engine engine) <span class="keyword">throws</span> AnalysisException {</pre></td></tr> -<tr> <td class="numLine"> 487</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 471</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 488</td> <td class="nbHitsCovered"> 15</td> <td class="src"><pre class="src">  determineCPE(dependency);</pre></td></tr> -<tr> <td class="numLineCover"> 489</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (CorruptIndexException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 490</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> AnalysisException(<span class="string">"CPE Index is corrupt."</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 491</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 492</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> AnalysisException(<span class="string">"Failure opening the CPE Index."</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 493</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (ParseException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 494</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> AnalysisException(<span class="string">"Unable to parse the generated Lucene query for this dependency."</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 495</td> <td class="nbHitsCovered"> 15</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 496</td> <td class="nbHitsCovered"> 15</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 497</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 472</td> <td class="nbHitsCovered"> 15</td> <td class="src"><pre class="src">  determineCPE(dependency);</pre></td></tr> +<tr> <td class="numLineCover"> 473</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (CorruptIndexException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 474</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> AnalysisException(<span class="string">"CPE Index is corrupt."</span>, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 475</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 476</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> AnalysisException(<span class="string">"Failure opening the CPE Index."</span>, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 477</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (ParseException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 478</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> AnalysisException(<span class="string">"Unable to parse the generated Lucene query for this dependency."</span>, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 479</td> <td class="nbHitsCovered"> 15</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 480</td> <td class="nbHitsCovered"> 15</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 481</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 498</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 482</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 499</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 483</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Returns true because this analyzer supports all dependency types.</span></pre></td></tr> -<tr> <td class="numLine"> 500</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 484</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 501</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 485</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return true.</span></pre></td></tr> -<tr> <td class="numLine"> 502</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 486</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 503</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 487</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  @Override</pre></td></tr> -<tr> <td class="numLine"> 504</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 488</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> Set<String> getSupportedExtensions() {</pre></td></tr> -<tr> <td class="numLineCover"> 505</td> <td class="nbHitsCovered"> 132</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLine"> 506</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 489</td> <td class="nbHitsCovered"> 132</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLine"> 490</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 507</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 491</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 508</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 492</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 509</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 493</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Returns the name of this analyzer.</span></pre></td></tr> -<tr> <td class="numLine"> 510</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 494</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 511</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 495</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return the name of this analyzer.</span></pre></td></tr> -<tr> <td class="numLine"> 512</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 496</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 513</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 497</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  @Override</pre></td></tr> -<tr> <td class="numLine"> 514</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 498</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> String getName() {</pre></td></tr> -<tr> <td class="numLineCover"> 515</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="string">"CPE Analyzer"</span>;</pre></td></tr> -<tr> <td class="numLine"> 516</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 499</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="string">"CPE Analyzer"</span>;</pre></td></tr> +<tr> <td class="numLine"> 500</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 517</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 501</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 518</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 502</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 519</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 503</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Returns true because this analyzer supports all dependency types.</span></pre></td></tr> -<tr> <td class="numLine"> 520</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 504</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 521</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 505</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param extension the file extension of the dependency being analyzed.</span></pre></td></tr> -<tr> <td class="numLine"> 522</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 506</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return true.</span></pre></td></tr> -<tr> <td class="numLine"> 523</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 507</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 524</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 508</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  @Override</pre></td></tr> -<tr> <td class="numLine"> 525</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 509</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> supportsExtension(String extension) {</pre></td></tr> -<tr> <td class="numLineCover"> 526</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">true</span>;</pre></td></tr> -<tr> <td class="numLine"> 527</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 510</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">true</span>;</pre></td></tr> +<tr> <td class="numLine"> 511</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 528</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 512</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 529</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 513</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 530</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 514</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Returns the analysis phase that this analyzer should run in.</span></pre></td></tr> -<tr> <td class="numLine"> 531</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 515</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 532</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 516</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return the analysis phase that this analyzer should run in.</span></pre></td></tr> -<tr> <td class="numLine"> 533</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 517</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 534</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 518</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  @Override</pre></td></tr> -<tr> <td class="numLine"> 535</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 519</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> AnalysisPhase getAnalysisPhase() {</pre></td></tr> -<tr> <td class="numLineCover"> 536</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  <span class="keyword">return</span> AnalysisPhase.IDENTIFIER_ANALYSIS;</pre></td></tr> -<tr> <td class="numLine"> 537</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 520</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  <span class="keyword">return</span> AnalysisPhase.IDENTIFIER_ANALYSIS;</pre></td></tr> +<tr> <td class="numLine"> 521</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 538</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 522</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 539</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 523</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 540</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 524</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Opens the CPE Lucene Index.</span></pre></td></tr> -<tr> <td class="numLine"> 541</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 525</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 542</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 526</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws Exception is thrown if there is an issue opening the index.</span></pre></td></tr> -<tr> <td class="numLine"> 543</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 527</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 544</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 528</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  @Override</pre></td></tr> -<tr> <td class="numLine"> 545</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 529</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> initialize() <span class="keyword">throws</span> Exception {</pre></td></tr> -<tr> <td class="numLineCover"> 546</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.open();</pre></td></tr> -<tr> <td class="numLineCover"> 547</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 548</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 530</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.open();</pre></td></tr> +<tr> <td class="numLineCover"> 531</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 532</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 549</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 533</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 550</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 534</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Retrieves a list of CPE values from the CveDB based on the vendor and</span></pre></td></tr> -<tr> <td class="numLine"> 551</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 535</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * product passed in. The list is then validated to find only CPEs that are</span></pre></td></tr> -<tr> <td class="numLine"> 552</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 536</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * valid for the given dependency. It is possible that the CPE identified is</span></pre></td></tr> -<tr> <td class="numLine"> 553</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 537</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * a best effort "guess" based on the vendor, product, and version</span></pre></td></tr> -<tr> <td class="numLine"> 554</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 538</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * information.</span></pre></td></tr> -<tr> <td class="numLine"> 555</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 539</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 556</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 540</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param dependency the Dependency being analyzed</span></pre></td></tr> -<tr> <td class="numLine"> 557</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 541</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param vendor the vendor for the CPE being analyzed</span></pre></td></tr> -<tr> <td class="numLine"> 558</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 542</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param product the product for the CPE being analyzed</span></pre></td></tr> -<tr> <td class="numLine"> 559</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 543</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws UnsupportedEncodingException is thrown if UTF-8 is not supported</span></pre></td></tr> -<tr> <td class="numLine"> 560</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 544</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 561</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 545</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">void</span> determineIdentifiers(Dependency dependency, String vendor, String product) <span class="keyword">throws</span> UnsupportedEncodingException {</pre></td></tr> -<tr> <td class="numLineCover"> 562</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src">  <span class="keyword">final</span> Set<VulnerableSoftware> cpes = cve.getCPEs(vendor, product);</pre></td></tr> -<tr> <td class="numLineCover"> 563</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src">  DependencyVersion bestGuess = <span class="keyword">new</span> DependencyVersion(<span class="string">"-"</span>);</pre></td></tr> -<tr> <td class="numLineCover"> 564</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src">  Confidence bestGuessConf = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 565</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src">  <span class="keyword">final</span> List<IdentifierMatch> collected = <span class="keyword">new</span> ArrayList<IdentifierMatch>();</pre></td></tr> -<tr> <td class="numLineCover"> 566</td> <td class="nbHitsCovered"><a title="Line 566: Conditional coverage 100% (2/2)."> 355</a></td> <td class="src"><pre class="src"> <a title="Line 566: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Confidence conf : Confidence.values()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 567</td> <td class="nbHitsCovered"><a title="Line 567: Conditional coverage 100% (2/2)."> 284</a></td> <td class="src"><pre class="src"> <a title="Line 567: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Evidence evidence : dependency.getVersionEvidence().iterator(conf)) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 568</td> <td class="nbHitsCovered"> 160</td> <td class="src"><pre class="src">  <span class="keyword">final</span> DependencyVersion evVer = DependencyVersionUtil.parseVersion(evidence.getValue());</pre></td></tr> -<tr> <td class="numLineCover"> 569</td> <td class="nbHitsUncovered"><a title="Line 569: Conditional coverage 50% (1/2)."> 160</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 569: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (evVer == <span class="keyword">null</span>) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 570</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">continue</span>;</span></pre></td></tr> -<tr> <td class="numLine"> 571</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 546</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src">  <span class="keyword">final</span> Set<VulnerableSoftware> cpes = cve.getCPEs(vendor, product);</pre></td></tr> +<tr> <td class="numLineCover"> 547</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src">  DependencyVersion bestGuess = <span class="keyword">new</span> DependencyVersion(<span class="string">"-"</span>);</pre></td></tr> +<tr> <td class="numLineCover"> 548</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src">  Confidence bestGuessConf = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 549</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src">  <span class="keyword">final</span> List<IdentifierMatch> collected = <span class="keyword">new</span> ArrayList<IdentifierMatch>();</pre></td></tr> +<tr> <td class="numLineCover"> 550</td> <td class="nbHitsCovered"><a title="Line 550: Conditional coverage 100% (2/2)."> 355</a></td> <td class="src"><pre class="src"> <a title="Line 550: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Confidence conf : Confidence.values()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 551</td> <td class="nbHitsCovered"><a title="Line 551: Conditional coverage 100% (2/2)."> 284</a></td> <td class="src"><pre class="src"> <a title="Line 551: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Evidence evidence : dependency.getVersionEvidence().iterator(conf)) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 552</td> <td class="nbHitsCovered"> 160</td> <td class="src"><pre class="src">  <span class="keyword">final</span> DependencyVersion evVer = DependencyVersionUtil.parseVersion(evidence.getValue());</pre></td></tr> +<tr> <td class="numLineCover"> 553</td> <td class="nbHitsUncovered"><a title="Line 553: Conditional coverage 50% (1/2)."> 160</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 553: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (evVer == <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 554</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">continue</span>;</span></pre></td></tr> +<tr> <td class="numLine"> 555</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 572</td> <td class="nbHitsCovered"><a title="Line 572: Conditional coverage 100% (2/2)."> 160</a></td> <td class="src"><pre class="src"> <a title="Line 572: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (VulnerableSoftware vs : cpes) {</a></pre></td></tr> -<tr> <td class="numLine"> 573</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 556</td> <td class="nbHitsCovered"><a title="Line 556: Conditional coverage 100% (2/2)."> 160</a></td> <td class="src"><pre class="src"> <a title="Line 556: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (VulnerableSoftware vs : cpes) {</a></pre></td></tr> +<tr> <td class="numLine"> 557</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  DependencyVersion dbVer;</pre></td></tr> -<tr> <td class="numLineCover"> 574</td> <td class="nbHitsUncovered"><a title="Line 574: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> 9080</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 574: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> <span class="keyword">if</span> (vs.getRevision() != <span class="keyword">null</span> && !vs.getRevision().isEmpty()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 575</td> <td class="nbHitsCovered"> 2855</td> <td class="src"><pre class="src">  dbVer = DependencyVersionUtil.parseVersion(vs.getVersion() + <span class="string">"."</span> + vs.getRevision());</pre></td></tr> -<tr> <td class="numLine"> 576</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 558</td> <td class="nbHitsUncovered"><a title="Line 558: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> 9104</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 558: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> <span class="keyword">if</span> (vs.getRevision() != <span class="keyword">null</span> && !vs.getRevision().isEmpty()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 559</td> <td class="nbHitsCovered"> 2855</td> <td class="src"><pre class="src">  dbVer = DependencyVersionUtil.parseVersion(vs.getVersion() + <span class="string">"."</span> + vs.getRevision());</pre></td></tr> +<tr> <td class="numLine"> 560</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 577</td> <td class="nbHitsCovered"> 6225</td> <td class="src"><pre class="src">  dbVer = DependencyVersionUtil.parseVersion(vs.getVersion());</pre></td></tr> -<tr> <td class="numLine"> 578</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 561</td> <td class="nbHitsCovered"> 6249</td> <td class="src"><pre class="src">  dbVer = DependencyVersionUtil.parseVersion(vs.getVersion());</pre></td></tr> +<tr> <td class="numLine"> 562</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 579</td> <td class="nbHitsCovered"><a title="Line 579: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 9080</a></td> <td class="src"><pre class="src"> <a title="Line 579: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (dbVer == <span class="keyword">null</span> <span class="comment">//special case, no version specified - everything is vulnerable</span></a></pre></td></tr> -<tr> <td class="numLine"> 580</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 563</td> <td class="nbHitsCovered"><a title="Line 563: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 9104</a></td> <td class="src"><pre class="src"> <a title="Line 563: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (dbVer == <span class="keyword">null</span> <span class="comment">//special case, no version specified - everything is vulnerable</span></a></pre></td></tr> +<tr> <td class="numLine"> 564</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  || evVer.equals(dbVer)) { <span class="comment">//woot exect match</span></pre></td></tr> -<tr> <td class="numLineCover"> 581</td> <td class="nbHitsCovered"> 169</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String url = String.format(<span class="string">"http://web.nvd.nist.gov/view/vuln/search?cpe=%s"</span>, URLEncoder.encode(vs.getName(), <span class="string">"UTF-8"</span>));</pre></td></tr> -<tr> <td class="numLineCover"> 582</td> <td class="nbHitsCovered"> 169</td> <td class="src"><pre class="src">  <span class="keyword">final</span> IdentifierMatch match = <span class="keyword">new</span> IdentifierMatch(<span class="string">"cpe"</span>, vs.getName(), url, IdentifierConfidence.EXACT_MATCH, conf);</pre></td></tr> -<tr> <td class="numLineCover"> 583</td> <td class="nbHitsCovered"> 169</td> <td class="src"><pre class="src">  collected.add(match);</pre></td></tr> -<tr> <td class="numLineCover"> 584</td> <td class="nbHitsCovered"> 169</td> <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLine"> 585</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 565</td> <td class="nbHitsCovered"> 169</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String url = String.format(<span class="string">"http://web.nvd.nist.gov/view/vuln/search?cpe=%s"</span>, URLEncoder.encode(vs.getName(), <span class="string">"UTF-8"</span>));</pre></td></tr> +<tr> <td class="numLineCover"> 566</td> <td class="nbHitsCovered"> 169</td> <td class="src"><pre class="src">  <span class="keyword">final</span> IdentifierMatch match = <span class="keyword">new</span> IdentifierMatch(<span class="string">"cpe"</span>, vs.getName(), url, IdentifierConfidence.EXACT_MATCH, conf);</pre></td></tr> +<tr> <td class="numLineCover"> 567</td> <td class="nbHitsCovered"> 169</td> <td class="src"><pre class="src">  collected.add(match);</pre></td></tr> +<tr> <td class="numLineCover"> 568</td> <td class="nbHitsCovered"> 169</td> <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> +<tr> <td class="numLine"> 569</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">//TODO the following isn't quite right is it? need to think about this guessing game a bit more.</span></pre></td></tr> -<tr> <td class="numLineCover"> 586</td> <td class="nbHitsCovered"><a title="Line 586: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 8911</a></td> <td class="src"><pre class="src"> <a title="Line 586: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (evVer.getVersionParts().size() <= dbVer.getVersionParts().size()</a></pre></td></tr> -<tr> <td class="numLine"> 587</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 570</td> <td class="nbHitsCovered"><a title="Line 570: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 8935</a></td> <td class="src"><pre class="src"> <a title="Line 570: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (evVer.getVersionParts().size() <= dbVer.getVersionParts().size()</a></pre></td></tr> +<tr> <td class="numLine"> 571</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  && evVer.matchesAtLeastThreeLevels(dbVer)) {</pre></td></tr> -<tr> <td class="numLineCover"> 588</td> <td class="nbHitsUncovered"><a title="Line 588: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> 412</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 588: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> <span class="keyword">if</span> (bestGuessConf == <span class="keyword">null</span> || bestGuessConf.compareTo(conf) > 0) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 589</td> <td class="nbHitsUncovered"><a title="Line 589: Conditional coverage 50% (1/2)."> 10</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 589: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (bestGuess.getVersionParts().size() < dbVer.getVersionParts().size()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 590</td> <td class="nbHitsCovered"> 10</td> <td class="src"><pre class="src">  bestGuess = dbVer;</pre></td></tr> -<tr> <td class="numLineCover"> 591</td> <td class="nbHitsCovered"> 10</td> <td class="src"><pre class="src">  bestGuessConf = conf;</pre></td></tr> -<tr> <td class="numLine"> 592</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 572</td> <td class="nbHitsUncovered"><a title="Line 572: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> 412</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 572: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> <span class="keyword">if</span> (bestGuessConf == <span class="keyword">null</span> || bestGuessConf.compareTo(conf) > 0) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 573</td> <td class="nbHitsUncovered"><a title="Line 573: Conditional coverage 50% (1/2)."> 10</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 573: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (bestGuess.getVersionParts().size() < dbVer.getVersionParts().size()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 574</td> <td class="nbHitsCovered"> 10</td> <td class="src"><pre class="src">  bestGuess = dbVer;</pre></td></tr> +<tr> <td class="numLineCover"> 575</td> <td class="nbHitsCovered"> 10</td> <td class="src"><pre class="src">  bestGuessConf = conf;</pre></td></tr> +<tr> <td class="numLine"> 576</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 593</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 577</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 594</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 578</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 595</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 579</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 596</td> <td class="nbHitsCovered"> 9080</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 597</td> <td class="nbHitsUncovered"><a title="Line 597: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> 160</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 597: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> <span class="keyword">if</span> (bestGuessConf == <span class="keyword">null</span> || bestGuessConf.compareTo(conf) > 0) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 598</td> <td class="nbHitsUncovered"><a title="Line 598: Conditional coverage 50% (1/2)."> 49</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 598: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (bestGuess.getVersionParts().size() < evVer.getVersionParts().size()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 599</td> <td class="nbHitsCovered"> 49</td> <td class="src"><pre class="src">  bestGuess = evVer;</pre></td></tr> -<tr> <td class="numLineCover"> 600</td> <td class="nbHitsCovered"> 49</td> <td class="src"><pre class="src">  bestGuessConf = conf;</pre></td></tr> -<tr> <td class="numLine"> 601</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 580</td> <td class="nbHitsCovered"> 9104</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 581</td> <td class="nbHitsUncovered"><a title="Line 581: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> 160</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 581: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> <span class="keyword">if</span> (bestGuessConf == <span class="keyword">null</span> || bestGuessConf.compareTo(conf) > 0) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 582</td> <td class="nbHitsUncovered"><a title="Line 582: Conditional coverage 50% (1/2)."> 49</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 582: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (bestGuess.getVersionParts().size() < evVer.getVersionParts().size()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 583</td> <td class="nbHitsCovered"> 49</td> <td class="src"><pre class="src">  bestGuess = evVer;</pre></td></tr> +<tr> <td class="numLineCover"> 584</td> <td class="nbHitsCovered"> 49</td> <td class="src"><pre class="src">  bestGuessConf = conf;</pre></td></tr> +<tr> <td class="numLine"> 585</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 602</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 586</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 603</td> <td class="nbHitsCovered"> 160</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 587</td> <td class="nbHitsCovered"> 160</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 588</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 589</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String cpeName = String.format(<span class="string">"cpe:/a:%s:%s:%s"</span>, vendor, product, bestGuess.toString());</pre></td></tr> +<tr> <td class="numLineCover"> 590</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String url = <span class="keyword">null</span>; <span class="comment">//String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(cpeName, "UTF-8"));</span></pre></td></tr> +<tr> <td class="numLineCover"> 591</td> <td class="nbHitsCovered"><a title="Line 591: Conditional coverage 100% (2/2)."> 71</a></td> <td class="src"><pre class="src"> <a title="Line 591: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (bestGuessConf == <span class="keyword">null</span>) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 592</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  bestGuessConf = Confidence.LOW;</pre></td></tr> +<tr> <td class="numLine"> 593</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 594</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src">  <span class="keyword">final</span> IdentifierMatch match = <span class="keyword">new</span> IdentifierMatch(<span class="string">"cpe"</span>, cpeName, url, IdentifierConfidence.BEST_GUESS, bestGuessConf);</pre></td></tr> +<tr> <td class="numLineCover"> 595</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src">  collected.add(match);</pre></td></tr> +<tr> <td class="numLine"> 596</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLineCover"> 597</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src">  Collections.sort(collected);</pre></td></tr> +<tr> <td class="numLineCover"> 598</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src">  <span class="keyword">final</span> IdentifierConfidence bestIdentifierQuality = collected.get(0).getConfidence();</pre></td></tr> +<tr> <td class="numLineCover"> 599</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src">  <span class="keyword">final</span> Confidence bestEvidenceQuality = collected.get(0).getEvidenceConfidence();</pre></td></tr> +<tr> <td class="numLineCover"> 600</td> <td class="nbHitsCovered"><a title="Line 600: Conditional coverage 100% (2/2)."> 71</a></td> <td class="src"><pre class="src"> <a title="Line 600: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (IdentifierMatch m : collected) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 601</td> <td class="nbHitsCovered"><a title="Line 601: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 240</a></td> <td class="src"><pre class="src"> <a title="Line 601: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (bestIdentifierQuality.equals(m.getConfidence())</a></pre></td></tr> +<tr> <td class="numLine"> 602</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  && bestEvidenceQuality.equals(m.getEvidenceConfidence())) {</pre></td></tr> +<tr> <td class="numLineCover"> 603</td> <td class="nbHitsCovered"> 88</td> <td class="src"><pre class="src">  dependency.addIdentifier(m.getIdentifier());</pre></td></tr> <tr> <td class="numLine"> 604</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 605</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 605</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String cpeName = String.format(<span class="string">"cpe:/a:%s:%s:%s"</span>, vendor, product, bestGuess.toString());</pre></td></tr> -<tr> <td class="numLineCover"> 606</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String url = <span class="keyword">null</span>; <span class="comment">//String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(cpeName, "UTF-8"));</span></pre></td></tr> -<tr> <td class="numLineCover"> 607</td> <td class="nbHitsCovered"><a title="Line 607: Conditional coverage 100% (2/2)."> 71</a></td> <td class="src"><pre class="src"> <a title="Line 607: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (bestGuessConf == <span class="keyword">null</span>) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 608</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  bestGuessConf = Confidence.LOW;</pre></td></tr> +<tr> <td class="numLineCover"> 606</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 607</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 608</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 609</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 610</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src">  <span class="keyword">final</span> IdentifierMatch match = <span class="keyword">new</span> IdentifierMatch(<span class="string">"cpe"</span>, cpeName, url, IdentifierConfidence.BEST_GUESS, bestGuessConf);</pre></td></tr> -<tr> <td class="numLineCover"> 611</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src">  collected.add(match);</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * The confidence whether the identifier is an exact match, or a best guess.</span></pre></td></tr> +<tr> <td class="numLine"> 610</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLineCover"> 611</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  <span class="keyword">private</span> enum IdentifierConfidence {</pre></td></tr> <tr> <td class="numLine"> 612</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 613</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src">  Collections.sort(collected);</pre></td></tr> -<tr> <td class="numLineCover"> 614</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src">  <span class="keyword">final</span> IdentifierConfidence bestIdentifierQuality = collected.get(0).getConfidence();</pre></td></tr> -<tr> <td class="numLineCover"> 615</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src">  <span class="keyword">final</span> Confidence bestEvidenceQuality = collected.get(0).getEvidenceConfidence();</pre></td></tr> -<tr> <td class="numLineCover"> 616</td> <td class="nbHitsCovered"><a title="Line 616: Conditional coverage 100% (2/2)."> 71</a></td> <td class="src"><pre class="src"> <a title="Line 616: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (IdentifierMatch m : collected) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 617</td> <td class="nbHitsCovered"><a title="Line 617: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 240</a></td> <td class="src"><pre class="src"> <a title="Line 617: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (bestIdentifierQuality.equals(m.getConfidence())</a></pre></td></tr> +<tr> <td class="numLine"> 613</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 614</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * An exact match for the CPE.</span></pre></td></tr> +<tr> <td class="numLine"> 615</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLineCover"> 616</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  EXACT_MATCH,</pre></td></tr> +<tr> <td class="numLine"> 617</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 618</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  && bestEvidenceQuality.equals(m.getEvidenceConfidence())) {</pre></td></tr> -<tr> <td class="numLineCover"> 619</td> <td class="nbHitsCovered"> 88</td> <td class="src"><pre class="src">  dependency.addIdentifier(m.getIdentifier());</pre></td></tr> -<tr> <td class="numLine"> 620</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * A best guess for the CPE.</span></pre></td></tr> +<tr> <td class="numLine"> 619</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLineCover"> 620</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  BEST_GUESS</pre></td></tr> <tr> <td class="numLine"> 621</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 622</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 623</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 622</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 624</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 623</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 624</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * A simple object to hold an identifier and carry information about the</span></pre></td></tr> <tr> <td class="numLine"> 625</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * The confidence whether the identifier is an exact match, or a best guess.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * confidence in the identifier.</span></pre></td></tr> <tr> <td class="numLine"> 626</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 627</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  <span class="keyword">private</span> enum IdentifierConfidence {</pre></td></tr> +<tr> <td class="numLineCover"> 627</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">class</span> IdentifierMatch <span class="keyword">implements</span> Comparable<IdentifierMatch> {</pre></td></tr> <tr> <td class="numLine"> 628</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 629</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 630</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * An exact match for the CPE.</span></pre></td></tr> -<tr> <td class="numLine"> 631</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 632</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  EXACT_MATCH,</pre></td></tr> -<tr> <td class="numLine"> 633</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 634</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * A best guess for the CPE.</span></pre></td></tr> -<tr> <td class="numLine"> 635</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 636</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  BEST_GUESS</pre></td></tr> -<tr> <td class="numLine"> 637</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 638</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 639</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 640</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * A simple object to hold an identifier and carry information about the</span></pre></td></tr> -<tr> <td class="numLine"> 641</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * confidence in the identifier.</span></pre></td></tr> -<tr> <td class="numLine"> 642</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 643</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">class</span> IdentifierMatch <span class="keyword">implements</span> Comparable<IdentifierMatch> {</pre></td></tr> -<tr> <td class="numLine"> 644</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 645</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 646</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Constructs an IdentiferMatch.</span></pre></td></tr> -<tr> <td class="numLine"> 647</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 631</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 648</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 632</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param type the type of identifier (such as CPE)</span></pre></td></tr> -<tr> <td class="numLine"> 649</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 633</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param value the value of the identifier</span></pre></td></tr> -<tr> <td class="numLine"> 650</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 634</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param url the URL of the identifier</span></pre></td></tr> -<tr> <td class="numLine"> 651</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 635</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param identifierConfidence the confidence in the identifier: best</span></pre></td></tr> -<tr> <td class="numLine"> 652</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 636</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * guess or exact match</span></pre></td></tr> -<tr> <td class="numLine"> 653</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 637</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param evidenceConfidence the confidence of the evidence used to find</span></pre></td></tr> -<tr> <td class="numLine"> 654</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 638</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * the identifier</span></pre></td></tr> +<tr> <td class="numLine"> 639</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLineCover"> 640</td> <td class="nbHitsCovered"> 240</td> <td class="src"><pre class="src">  IdentifierMatch(String type, String value, String url, IdentifierConfidence identifierConfidence, Confidence evidenceConfidence) {</pre></td></tr> +<tr> <td class="numLineCover"> 641</td> <td class="nbHitsCovered"> 240</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.identifier = <span class="keyword">new</span> Identifier(type, value, url);</pre></td></tr> +<tr> <td class="numLineCover"> 642</td> <td class="nbHitsCovered"> 240</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.confidence = identifierConfidence;</pre></td></tr> +<tr> <td class="numLineCover"> 643</td> <td class="nbHitsCovered"> 240</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.evidenceConfidence = evidenceConfidence;</pre></td></tr> +<tr> <td class="numLineCover"> 644</td> <td class="nbHitsCovered"> 240</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 645</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">//<editor-fold defaultstate="collapsed" desc="Property implementations: evidenceConfidence, confidence, identifier"></span></pre></td></tr> +<tr> <td class="numLine"> 646</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 647</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * The confidence in the evidence used to identify this match.</span></pre></td></tr> +<tr> <td class="numLine"> 648</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 649</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">private</span> Confidence evidenceConfidence;</pre></td></tr> +<tr> <td class="numLine"> 650</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 651</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 652</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Get the value of evidenceConfidence</span></pre></td></tr> +<tr> <td class="numLine"> 653</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 654</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @return the value of evidenceConfidence</span></pre></td></tr> <tr> <td class="numLine"> 655</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 656</td> <td class="nbHitsCovered"> 240</td> <td class="src"><pre class="src">  IdentifierMatch(String type, String value, String url, IdentifierConfidence identifierConfidence, Confidence evidenceConfidence) {</pre></td></tr> -<tr> <td class="numLineCover"> 657</td> <td class="nbHitsCovered"> 240</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.identifier = <span class="keyword">new</span> Identifier(type, value, url);</pre></td></tr> -<tr> <td class="numLineCover"> 658</td> <td class="nbHitsCovered"> 240</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.confidence = identifierConfidence;</pre></td></tr> -<tr> <td class="numLineCover"> 659</td> <td class="nbHitsCovered"> 240</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.evidenceConfidence = evidenceConfidence;</pre></td></tr> -<tr> <td class="numLineCover"> 660</td> <td class="nbHitsCovered"> 240</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 661</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">//<editor-fold defaultstate="collapsed" desc="Property implementations: evidenceConfidence, confidence, identifier"></span></pre></td></tr> -<tr> <td class="numLine"> 662</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 656</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> Confidence getEvidenceConfidence() {</pre></td></tr> +<tr> <td class="numLineCover"> 657</td> <td class="nbHitsCovered"> 263</td> <td class="src"><pre class="src">  <span class="keyword">return</span> evidenceConfidence;</pre></td></tr> +<tr> <td class="numLine"> 658</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 659</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 660</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 661</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Set the value of evidenceConfidence</span></pre></td></tr> +<tr> <td class="numLine"> 662</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 663</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * The confidence in the evidence used to identify this match.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * @param evidenceConfidence new value of evidenceConfidence</span></pre></td></tr> <tr> <td class="numLine"> 664</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 665</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">private</span> Confidence evidenceConfidence;</pre></td></tr> -<tr> <td class="numLine"> 666</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 667</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 668</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Get the value of evidenceConfidence</span></pre></td></tr> -<tr> <td class="numLine"> 669</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 670</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @return the value of evidenceConfidence</span></pre></td></tr> -<tr> <td class="numLine"> 671</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 672</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> Confidence getEvidenceConfidence() {</pre></td></tr> -<tr> <td class="numLineCover"> 673</td> <td class="nbHitsCovered"> 263</td> <td class="src"><pre class="src">  <span class="keyword">return</span> evidenceConfidence;</pre></td></tr> -<tr> <td class="numLine"> 674</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 675</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 676</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 677</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Set the value of evidenceConfidence</span></pre></td></tr> -<tr> <td class="numLine"> 678</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 679</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param evidenceConfidence new value of evidenceConfidence</span></pre></td></tr> -<tr> <td class="numLine"> 680</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 681</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> setEvidenceConfidence(Confidence evidenceConfidence) {</pre></td></tr> -<tr> <td class="numLineCover"> 682</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">this</span>.evidenceConfidence = evidenceConfidence;</span></pre></td></tr> -<tr> <td class="numLineCover"> 683</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLine"> 684</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 666</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">this</span>.evidenceConfidence = evidenceConfidence;</span></pre></td></tr> +<tr> <td class="numLineCover"> 667</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLine"> 668</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 685</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 669</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * The confidence whether this is an exact match, or a best guess.</span></pre></td></tr> +<tr> <td class="numLine"> 670</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 671</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">private</span> IdentifierConfidence confidence;</pre></td></tr> +<tr> <td class="numLine"> 672</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 673</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 674</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Get the value of confidence.</span></pre></td></tr> +<tr> <td class="numLine"> 675</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 676</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @return the value of confidence</span></pre></td></tr> +<tr> <td class="numLine"> 677</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 678</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> IdentifierConfidence getConfidence() {</pre></td></tr> +<tr> <td class="numLineCover"> 679</td> <td class="nbHitsCovered"> 311</td> <td class="src"><pre class="src">  <span class="keyword">return</span> confidence;</pre></td></tr> +<tr> <td class="numLine"> 680</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 681</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 682</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 683</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Set the value of confidence.</span></pre></td></tr> +<tr> <td class="numLine"> 684</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 685</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param confidence new value of confidence</span></pre></td></tr> <tr> <td class="numLine"> 686</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 687</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">private</span> IdentifierConfidence confidence;</pre></td></tr> -<tr> <td class="numLine"> 688</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 689</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 690</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Get the value of confidence.</span></pre></td></tr> -<tr> <td class="numLine"> 691</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 692</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @return the value of confidence</span></pre></td></tr> -<tr> <td class="numLine"> 693</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 694</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> IdentifierConfidence getConfidence() {</pre></td></tr> -<tr> <td class="numLineCover"> 695</td> <td class="nbHitsCovered"> 311</td> <td class="src"><pre class="src">  <span class="keyword">return</span> confidence;</pre></td></tr> -<tr> <td class="numLine"> 696</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 697</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 698</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 699</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Set the value of confidence.</span></pre></td></tr> -<tr> <td class="numLine"> 700</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 701</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param confidence new value of confidence</span></pre></td></tr> -<tr> <td class="numLine"> 702</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 703</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> setConfidence(IdentifierConfidence confidence) {</pre></td></tr> -<tr> <td class="numLineCover"> 704</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">this</span>.confidence = confidence;</span></pre></td></tr> -<tr> <td class="numLineCover"> 705</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLine"> 706</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 688</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">this</span>.confidence = confidence;</span></pre></td></tr> +<tr> <td class="numLineCover"> 689</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLine"> 690</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 707</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 691</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * The CPE identifier.</span></pre></td></tr> +<tr> <td class="numLine"> 692</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 693</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">private</span> Identifier identifier;</pre></td></tr> +<tr> <td class="numLine"> 694</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 695</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 696</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Get the value of identifier.</span></pre></td></tr> +<tr> <td class="numLine"> 697</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 698</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @return the value of identifier</span></pre></td></tr> +<tr> <td class="numLine"> 699</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 700</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> Identifier getIdentifier() {</pre></td></tr> +<tr> <td class="numLineCover"> 701</td> <td class="nbHitsCovered"> 88</td> <td class="src"><pre class="src">  <span class="keyword">return</span> identifier;</pre></td></tr> +<tr> <td class="numLine"> 702</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 703</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 704</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 705</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Set the value of identifier.</span></pre></td></tr> +<tr> <td class="numLine"> 706</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 707</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param identifier new value of identifier</span></pre></td></tr> <tr> <td class="numLine"> 708</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 709</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">private</span> Identifier identifier;</pre></td></tr> -<tr> <td class="numLine"> 710</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 711</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 712</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Get the value of identifier.</span></pre></td></tr> -<tr> <td class="numLine"> 713</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 714</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @return the value of identifier</span></pre></td></tr> -<tr> <td class="numLine"> 715</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 716</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> Identifier getIdentifier() {</pre></td></tr> -<tr> <td class="numLineCover"> 717</td> <td class="nbHitsCovered"> 88</td> <td class="src"><pre class="src">  <span class="keyword">return</span> identifier;</pre></td></tr> -<tr> <td class="numLine"> 718</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 719</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 720</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 721</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Set the value of identifier.</span></pre></td></tr> -<tr> <td class="numLine"> 722</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 723</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param identifier new value of identifier</span></pre></td></tr> -<tr> <td class="numLine"> 724</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 725</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> setIdentifier(Identifier identifier) {</pre></td></tr> -<tr> <td class="numLineCover"> 726</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">this</span>.identifier = identifier;</span></pre></td></tr> -<tr> <td class="numLineCover"> 727</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLine"> 728</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 710</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">this</span>.identifier = identifier;</span></pre></td></tr> +<tr> <td class="numLineCover"> 711</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLine"> 712</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">//</editor-fold></span></pre></td></tr> -<tr> <td class="numLine"> 729</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 713</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">//<editor-fold defaultstate="collapsed" desc="Standard implementations of toString, hashCode, and equals"></span></pre></td></tr> -<tr> <td class="numLine"> 730</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 714</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 731</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 715</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 732</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 716</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Standard toString() implementation.</span></pre></td></tr> -<tr> <td class="numLine"> 733</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 717</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 734</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 718</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return the string representation of the object</span></pre></td></tr> -<tr> <td class="numLine"> 735</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 719</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 736</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 720</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  @Override</pre></td></tr> -<tr> <td class="numLine"> 737</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 721</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> String toString() {</pre></td></tr> -<tr> <td class="numLineCover"> 738</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="string">"IdentifierMatch{"</span> + <span class="string">"evidenceConfidence="</span> + evidenceConfidence</span></pre></td></tr> -<tr> <td class="numLine"> 739</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 722</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="string">"IdentifierMatch{"</span> + <span class="string">"evidenceConfidence="</span> + evidenceConfidence</span></pre></td></tr> +<tr> <td class="numLine"> 723</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  + <span class="string">", confidence="</span> + confidence + <span class="string">", identifier="</span> + identifier + <span class="string">'}'</span>;</pre></td></tr> -<tr> <td class="numLine"> 740</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 724</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 741</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 725</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 742</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 726</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 743</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 727</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Standard hashCode() implementation.</span></pre></td></tr> -<tr> <td class="numLine"> 744</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 728</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 745</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 729</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return the hashCode</span></pre></td></tr> -<tr> <td class="numLine"> 746</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 730</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 747</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 731</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  @Override</pre></td></tr> -<tr> <td class="numLine"> 748</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 732</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">int</span> hashCode() {</pre></td></tr> -<tr> <td class="numLineCover"> 749</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">int</span> hash = 5;</span></pre></td></tr> -<tr> <td class="numLineCover"> 750</td> <td class="nbHitsUncovered"><a title="Line 750: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 750: Conditional coverage 0% (0/2)."> hash = 97 * hash + (<span class="keyword">this</span>.evidenceConfidence != <span class="keyword">null</span> ? <span class="keyword">this</span>.evidenceConfidence.hashCode() : 0);</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 751</td> <td class="nbHitsUncovered"><a title="Line 751: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 751: Conditional coverage 0% (0/2)."> hash = 97 * hash + (<span class="keyword">this</span>.confidence != <span class="keyword">null</span> ? <span class="keyword">this</span>.confidence.hashCode() : 0);</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 752</td> <td class="nbHitsUncovered"><a title="Line 752: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 752: Conditional coverage 0% (0/2)."> hash = 97 * hash + (<span class="keyword">this</span>.identifier != <span class="keyword">null</span> ? <span class="keyword">this</span>.identifier.hashCode() : 0);</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 753</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> hash;</span></pre></td></tr> -<tr> <td class="numLine"> 754</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 733</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">int</span> hash = 5;</span></pre></td></tr> +<tr> <td class="numLineCover"> 734</td> <td class="nbHitsUncovered"><a title="Line 734: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 734: Conditional coverage 0% (0/2)."> hash = 97 * hash + (<span class="keyword">this</span>.evidenceConfidence != <span class="keyword">null</span> ? <span class="keyword">this</span>.evidenceConfidence.hashCode() : 0);</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 735</td> <td class="nbHitsUncovered"><a title="Line 735: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 735: Conditional coverage 0% (0/2)."> hash = 97 * hash + (<span class="keyword">this</span>.confidence != <span class="keyword">null</span> ? <span class="keyword">this</span>.confidence.hashCode() : 0);</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 736</td> <td class="nbHitsUncovered"><a title="Line 736: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 736: Conditional coverage 0% (0/2)."> hash = 97 * hash + (<span class="keyword">this</span>.identifier != <span class="keyword">null</span> ? <span class="keyword">this</span>.identifier.hashCode() : 0);</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 737</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> hash;</span></pre></td></tr> +<tr> <td class="numLine"> 738</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 755</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 739</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 756</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 740</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 757</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 741</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Standard equals implementation.</span></pre></td></tr> -<tr> <td class="numLine"> 758</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 742</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 759</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 743</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param obj the object to compare</span></pre></td></tr> -<tr> <td class="numLine"> 760</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 744</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return true if the objects are equal, otherwise false</span></pre></td></tr> -<tr> <td class="numLine"> 761</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 745</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 762</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 746</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  @Override</pre></td></tr> -<tr> <td class="numLine"> 763</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 747</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> equals(Object obj) {</pre></td></tr> -<tr> <td class="numLineCover"> 764</td> <td class="nbHitsUncovered"><a title="Line 764: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 764: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (obj == <span class="keyword">null</span>) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 765</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr> +<tr> <td class="numLineCover"> 748</td> <td class="nbHitsUncovered"><a title="Line 748: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 748: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (obj == <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 749</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr> +<tr> <td class="numLine"> 750</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 751</td> <td class="nbHitsUncovered"><a title="Line 751: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 751: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (getClass() != obj.getClass()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 752</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr> +<tr> <td class="numLine"> 753</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 754</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> IdentifierMatch other = (IdentifierMatch) obj;</span></pre></td></tr> +<tr> <td class="numLineCover"> 755</td> <td class="nbHitsUncovered"><a title="Line 755: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 755: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (<span class="keyword">this</span>.evidenceConfidence != other.evidenceConfidence) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 756</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr> +<tr> <td class="numLine"> 757</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 758</td> <td class="nbHitsUncovered"><a title="Line 758: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 758: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (<span class="keyword">this</span>.confidence != other.confidence) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 759</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr> +<tr> <td class="numLine"> 760</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 761</td> <td class="nbHitsUncovered"><a title="Line 761: Conditional coverage 0% (0/6) [each condition: 0%, 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 761: Conditional coverage 0% (0/6) [each condition: 0%, 0%, 0%]."> <span class="keyword">if</span> (<span class="keyword">this</span>.identifier != other.identifier && (<span class="keyword">this</span>.identifier == <span class="keyword">null</span> || !<span class="keyword">this</span>.identifier.equals(other.identifier))) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 762</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr> +<tr> <td class="numLine"> 763</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 764</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">true</span>;</span></pre></td></tr> +<tr> <td class="numLine"> 765</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 766</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 767</td> <td class="nbHitsUncovered"><a title="Line 767: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 767: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (getClass() != obj.getClass()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 768</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr> -<tr> <td class="numLine"> 769</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 770</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> IdentifierMatch other = (IdentifierMatch) obj;</span></pre></td></tr> -<tr> <td class="numLineCover"> 771</td> <td class="nbHitsUncovered"><a title="Line 771: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 771: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (<span class="keyword">this</span>.evidenceConfidence != other.evidenceConfidence) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 772</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr> -<tr> <td class="numLine"> 773</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 774</td> <td class="nbHitsUncovered"><a title="Line 774: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 774: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (<span class="keyword">this</span>.confidence != other.confidence) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 775</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr> -<tr> <td class="numLine"> 776</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 777</td> <td class="nbHitsUncovered"><a title="Line 777: Conditional coverage 0% (0/6) [each condition: 0%, 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 777: Conditional coverage 0% (0/6) [each condition: 0%, 0%, 0%]."> <span class="keyword">if</span> (<span class="keyword">this</span>.identifier != other.identifier && (<span class="keyword">this</span>.identifier == <span class="keyword">null</span> || !<span class="keyword">this</span>.identifier.equals(other.identifier))) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 778</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr> -<tr> <td class="numLine"> 779</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 780</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">true</span>;</span></pre></td></tr> -<tr> <td class="numLine"> 781</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 782</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">//</editor-fold></span></pre></td></tr> -<tr> <td class="numLine"> 783</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 767</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 784</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 768</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 785</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 769</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Standard implementation of compareTo that compares identifier</span></pre></td></tr> -<tr> <td class="numLine"> 786</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 770</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * confidence, evidence confidence, and then the identifier.</span></pre></td></tr> -<tr> <td class="numLine"> 787</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 771</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 788</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 772</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param o the IdentifierMatch to compare to</span></pre></td></tr> -<tr> <td class="numLine"> 789</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 773</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return the natural ordering of IdentifierMatch</span></pre></td></tr> -<tr> <td class="numLine"> 790</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 774</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 791</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 775</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  @Override</pre></td></tr> -<tr> <td class="numLine"> 792</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 776</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">int</span> compareTo(IdentifierMatch o) {</pre></td></tr> -<tr> <td class="numLineCover"> 793</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src">  <span class="keyword">int</span> conf = <span class="keyword">this</span>.confidence.compareTo(o.confidence);</pre></td></tr> -<tr> <td class="numLineCover"> 794</td> <td class="nbHitsCovered"><a title="Line 794: Conditional coverage 100% (2/2)."> 225</a></td> <td class="src"><pre class="src"> <a title="Line 794: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (conf == 0) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 795</td> <td class="nbHitsCovered"> 177</td> <td class="src"><pre class="src">  conf = <span class="keyword">this</span>.evidenceConfidence.compareTo(o.evidenceConfidence);</pre></td></tr> -<tr> <td class="numLineCover"> 796</td> <td class="nbHitsCovered"><a title="Line 796: Conditional coverage 100% (2/2)."> 177</a></td> <td class="src"><pre class="src"> <a title="Line 796: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (conf == 0) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 797</td> <td class="nbHitsCovered"> 83</td> <td class="src"><pre class="src">  conf = identifier.compareTo(o.identifier);</pre></td></tr> -<tr> <td class="numLine"> 798</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 777</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src">  <span class="keyword">int</span> conf = <span class="keyword">this</span>.confidence.compareTo(o.confidence);</pre></td></tr> +<tr> <td class="numLineCover"> 778</td> <td class="nbHitsCovered"><a title="Line 778: Conditional coverage 100% (2/2)."> 225</a></td> <td class="src"><pre class="src"> <a title="Line 778: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (conf == 0) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 779</td> <td class="nbHitsCovered"> 177</td> <td class="src"><pre class="src">  conf = <span class="keyword">this</span>.evidenceConfidence.compareTo(o.evidenceConfidence);</pre></td></tr> +<tr> <td class="numLineCover"> 780</td> <td class="nbHitsCovered"><a title="Line 780: Conditional coverage 100% (2/2)."> 177</a></td> <td class="src"><pre class="src"> <a title="Line 780: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (conf == 0) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 781</td> <td class="nbHitsCovered"> 83</td> <td class="src"><pre class="src">  conf = identifier.compareTo(o.identifier);</pre></td></tr> +<tr> <td class="numLine"> 782</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 799</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 783</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 800</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src">  <span class="keyword">return</span> conf;</pre></td></tr> -<tr> <td class="numLine"> 801</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 784</td> <td class="nbHitsCovered"> 225</td> <td class="src"><pre class="src">  <span class="keyword">return</span> conf;</pre></td></tr> +<tr> <td class="numLine"> 785</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 802</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 786</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 803</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 787</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzer.html index 3b7691e1a..de0aed19b 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.DependencyBundlingAnalyzer.html @@ -593,6 +593,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer.html index 04cbe9da4..1095a1097 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer.html @@ -646,6 +646,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.FileNameAnalyzer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.FileNameAnalyzer.html index 00eb69c9a..ad75025cc 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.FileNameAnalyzer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.FileNameAnalyzer.html @@ -126,7 +126,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 56</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> Set<String> getSupportedExtensions() {</pre></td></tr> -<tr> <td class="numLineCover"> 57</td> <td class="nbHitsCovered"> 133</td> <td class="src"><pre class="src">  <span class="keyword">return</span> EXTENSIONS;</pre></td></tr> +<tr> <td class="numLineCover"> 57</td> <td class="nbHitsCovered"> 140</td> <td class="src"><pre class="src">  <span class="keyword">return</span> EXTENSIONS;</pre></td></tr> <tr> <td class="numLine"> 58</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 59</td> <td class="nbHits"> </td> @@ -263,6 +263,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.HintAnalyzer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.HintAnalyzer.html index c422e7337..ecc7e5bef 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.HintAnalyzer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.HintAnalyzer.html @@ -274,6 +274,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.JarAnalyzer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.JarAnalyzer.html index 5270fe24b..e3e1d166a 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.JarAnalyzer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.JarAnalyzer.html @@ -1838,6 +1838,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.JavaScriptAnalyzer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.JavaScriptAnalyzer.html index 899261f98..11949dc45 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.JavaScriptAnalyzer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.JavaScriptAnalyzer.html @@ -252,6 +252,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.NvdCveAnalyzer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.NvdCveAnalyzer.html index b01db72b7..ee866cbe1 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.NvdCveAnalyzer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.analyzer.NvdCveAnalyzer.html @@ -436,6 +436,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.concurrency.DirectoryLockException.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.concurrency.DirectoryLockException.html index 1cbb05da9..1378ddedb 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.concurrency.DirectoryLockException.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.concurrency.DirectoryLockException.html @@ -145,6 +145,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.concurrency.DirectorySpinLock.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.concurrency.DirectorySpinLock.html index ab29f9fea..ccb2e4a2f 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.concurrency.DirectorySpinLock.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.concurrency.DirectorySpinLock.html @@ -475,6 +475,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.concurrency.InvalidDirectoryException.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.concurrency.InvalidDirectoryException.html index 7adcbd8ff..6407e0b40 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.concurrency.InvalidDirectoryException.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.concurrency.InvalidDirectoryException.html @@ -145,6 +145,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.CachedWebDataSource.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.CachedWebDataSource.html index ac51400af..e51f2a848 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.CachedWebDataSource.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.CachedWebDataSource.html @@ -95,6 +95,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.NoDataException.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.NoDataException.html index 7370f19b9..3e35ef938 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.NoDataException.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.NoDataException.html @@ -149,6 +149,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.UpdateException.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.UpdateException.html index d6c8850c1..9b4131aef 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.UpdateException.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.UpdateException.html @@ -149,6 +149,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.UpdateService.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.UpdateService.html index 58ffa12ff..353e031d2 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.UpdateService.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.UpdateService.html @@ -146,6 +146,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.Fields.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.Fields.html index c5b148cc1..f9494d62f 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.Fields.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.Fields.html @@ -106,6 +106,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.IndexEntry.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.IndexEntry.html index c6999a60d..72c1826ba 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.IndexEntry.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cpe.IndexEntry.html @@ -75,7 +75,7 @@ <td class="src"><pre class="src"> <span class="comment"> * @author Jeremy Long (jeremy.long@owasp.org)</span></pre></td></tr> <tr> <td class="numLine"> 29</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 30</td> <td class="nbHitsCovered"> 11893</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> IndexEntry <span class="keyword">implements</span> Serializable {</pre></td></tr> +<tr> <td class="numLineCover"> 30</td> <td class="nbHitsCovered"> 12032</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> IndexEntry <span class="keyword">implements</span> Serializable {</pre></td></tr> <tr> <td class="numLine"> 31</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 32</td> <td class="nbHits"> </td> @@ -153,7 +153,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 71</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> String getVendor() {</pre></td></tr> -<tr> <td class="numLineCover"> 72</td> <td class="nbHitsCovered"> 3674</td> <td class="src"><pre class="src">  <span class="keyword">return</span> vendor;</pre></td></tr> +<tr> <td class="numLineCover"> 72</td> <td class="nbHitsCovered"> 3711</td> <td class="src"><pre class="src">  <span class="keyword">return</span> vendor;</pre></td></tr> <tr> <td class="numLine"> 73</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 74</td> <td class="nbHits"> </td> @@ -170,8 +170,8 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 80</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> setVendor(String vendor) {</pre></td></tr> -<tr> <td class="numLineCover"> 81</td> <td class="nbHitsCovered"> 11892</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.vendor = vendor;</pre></td></tr> -<tr> <td class="numLineCover"> 82</td> <td class="nbHitsCovered"> 11892</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 81</td> <td class="nbHitsCovered"> 12031</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.vendor = vendor;</pre></td></tr> +<tr> <td class="numLineCover"> 82</td> <td class="nbHitsCovered"> 12031</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 83</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 84</td> <td class="nbHits"> </td> @@ -194,7 +194,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 93</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> String getProduct() {</pre></td></tr> -<tr> <td class="numLineCover"> 94</td> <td class="nbHitsCovered"> 4303</td> <td class="src"><pre class="src">  <span class="keyword">return</span> product;</pre></td></tr> +<tr> <td class="numLineCover"> 94</td> <td class="nbHitsCovered"> 4342</td> <td class="src"><pre class="src">  <span class="keyword">return</span> product;</pre></td></tr> <tr> <td class="numLine"> 95</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 96</td> <td class="nbHits"> </td> @@ -211,8 +211,8 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 102</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> setProduct(String product) {</pre></td></tr> -<tr> <td class="numLineCover"> 103</td> <td class="nbHitsCovered"> 11892</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.product = product;</pre></td></tr> -<tr> <td class="numLineCover"> 104</td> <td class="nbHitsCovered"> 11892</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 103</td> <td class="nbHitsCovered"> 12031</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.product = product;</pre></td></tr> +<tr> <td class="numLineCover"> 104</td> <td class="nbHitsCovered"> 12031</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 105</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 106</td> <td class="nbHits"> </td> @@ -252,8 +252,8 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 124</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> setSearchScore(<span class="keyword">float</span> searchScore) {</pre></td></tr> -<tr> <td class="numLineCover"> 125</td> <td class="nbHitsCovered"> 741</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.searchScore = searchScore;</pre></td></tr> -<tr> <td class="numLineCover"> 126</td> <td class="nbHitsCovered"> 741</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 125</td> <td class="nbHitsCovered"> 745</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.searchScore = searchScore;</pre></td></tr> +<tr> <td class="numLineCover"> 126</td> <td class="nbHitsCovered"> 745</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 127</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 128</td> <td class="nbHits"> </td> @@ -318,21 +318,21 @@ <td class="src"><pre class="src">  @Override</pre></td></tr> <tr> <td class="numLine"> 163</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> equals(Object obj) {</pre></td></tr> -<tr> <td class="numLineCover"> 164</td> <td class="nbHitsUncovered"><a title="Line 164: Conditional coverage 50% (1/2)."> 6273</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 164: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (obj == <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 164</td> <td class="nbHitsUncovered"><a title="Line 164: Conditional coverage 50% (1/2)."> 6354</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 164: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (obj == <span class="keyword">null</span>) {</a></span></pre></td></tr> <tr> <td class="numLineCover"> 165</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr> <tr> <td class="numLine"> 166</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 167</td> <td class="nbHitsUncovered"><a title="Line 167: Conditional coverage 50% (1/2)."> 6273</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 167: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (getClass() != obj.getClass()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 167</td> <td class="nbHitsUncovered"><a title="Line 167: Conditional coverage 50% (1/2)."> 6354</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 167: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (getClass() != obj.getClass()) {</a></span></pre></td></tr> <tr> <td class="numLineCover"> 168</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr> <tr> <td class="numLine"> 169</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 170</td> <td class="nbHitsCovered"> 6273</td> <td class="src"><pre class="src">  <span class="keyword">final</span> IndexEntry other = (IndexEntry) obj;</pre></td></tr> -<tr> <td class="numLineCover"> 171</td> <td class="nbHitsUncovered"><a title="Line 171: Conditional coverage 50% (3/6) [each condition: 50%, 0%, 100%]."> 6273</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 171: Conditional coverage 50% (3/6) [each condition: 50%, 0%, 100%]."> <span class="keyword">if</span> ((<span class="keyword">this</span>.vendor == <span class="keyword">null</span>) ? (other.vendor != <span class="keyword">null</span>) : !<span class="keyword">this</span>.vendor.equals(other.vendor)) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 172</td> <td class="nbHitsCovered"> 5038</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">false</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 170</td> <td class="nbHitsCovered"> 6354</td> <td class="src"><pre class="src">  <span class="keyword">final</span> IndexEntry other = (IndexEntry) obj;</pre></td></tr> +<tr> <td class="numLineCover"> 171</td> <td class="nbHitsUncovered"><a title="Line 171: Conditional coverage 50% (3/6) [each condition: 50%, 0%, 100%]."> 6354</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 171: Conditional coverage 50% (3/6) [each condition: 50%, 0%, 100%]."> <span class="keyword">if</span> ((<span class="keyword">this</span>.vendor == <span class="keyword">null</span>) ? (other.vendor != <span class="keyword">null</span>) : !<span class="keyword">this</span>.vendor.equals(other.vendor)) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 172</td> <td class="nbHitsCovered"> 5139</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">false</span>;</pre></td></tr> <tr> <td class="numLine"> 173</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 174</td> <td class="nbHitsUncovered"><a title="Line 174: Conditional coverage 33% (2/6) [each condition: 50%, 0%, 50%]."> 1235</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 174: Conditional coverage 33% (2/6) [each condition: 50%, 0%, 50%]."> <span class="keyword">if</span> ((<span class="keyword">this</span>.product == <span class="keyword">null</span>) ? (other.product != <span class="keyword">null</span>) : !<span class="keyword">this</span>.product.equals(other.product)) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 175</td> <td class="nbHitsCovered"> 1235</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">false</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 174</td> <td class="nbHitsUncovered"><a title="Line 174: Conditional coverage 33% (2/6) [each condition: 50%, 0%, 50%]."> 1215</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 174: Conditional coverage 33% (2/6) [each condition: 50%, 0%, 50%]."> <span class="keyword">if</span> ((<span class="keyword">this</span>.product == <span class="keyword">null</span>) ? (other.product != <span class="keyword">null</span>) : !<span class="keyword">this</span>.product.equals(other.product)) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 175</td> <td class="nbHitsCovered"> 1215</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">false</span>;</pre></td></tr> <tr> <td class="numLine"> 176</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLineCover"> 177</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">true</span>;</span></pre></td></tr> @@ -361,6 +361,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cwe.CweDB.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cwe.CweDB.html index 9a011b064..09e94cb70 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cwe.CweDB.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cwe.CweDB.html @@ -159,8 +159,8 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 81</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> String getCweName(String cweId) {</pre></td></tr> -<tr> <td class="numLineCover"> 82</td> <td class="nbHitsUncovered"><a title="Line 82: Conditional coverage 50% (1/2)."> 49</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 82: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (cweId != <span class="keyword">null</span>) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 83</td> <td class="nbHitsCovered"> 49</td> <td class="src"><pre class="src">  <span class="keyword">return</span> CWE.get(cweId);</pre></td></tr> +<tr> <td class="numLineCover"> 82</td> <td class="nbHitsUncovered"><a title="Line 82: Conditional coverage 50% (1/2)."> 51</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 82: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (cweId != <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 83</td> <td class="nbHitsCovered"> 51</td> <td class="src"><pre class="src">  <span class="keyword">return</span> CWE.get(cweId);</pre></td></tr> <tr> <td class="numLine"> 84</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLineCover"> 85</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">null</span>;</span></pre></td></tr> @@ -170,6 +170,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cwe.CweHandler.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cwe.CweHandler.html index 98ad854af..7c10ef2e7 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cwe.CweHandler.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.cwe.CweHandler.html @@ -123,6 +123,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.AbstractTokenizingFilter.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.AbstractTokenizingFilter.html index 62b88cc44..1e3fc0e74 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.AbstractTokenizingFilter.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.AbstractTokenizingFilter.html @@ -89,7 +89,7 @@ <td class="src"><pre class="src"> <span class="comment"> * The char term attribute.</span></pre></td></tr> <tr> <td class="numLine"> 36</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 37</td> <td class="nbHitsCovered"> 30</td> <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">final</span> CharTermAttribute termAtt = addAttribute(CharTermAttribute.<span class="keyword">class</span>);</pre></td></tr> +<tr> <td class="numLineCover"> 37</td> <td class="nbHitsCovered"> 29</td> <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">final</span> CharTermAttribute termAtt = addAttribute(CharTermAttribute.<span class="keyword">class</span>);</pre></td></tr> <tr> <td class="numLine"> 38</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 39</td> <td class="nbHits"> </td> @@ -104,7 +104,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 44</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">protected</span> CharTermAttribute getTermAtt() {</pre></td></tr> -<tr> <td class="numLineCover"> 45</td> <td class="nbHitsCovered"> 33027</td> <td class="src"><pre class="src">  <span class="keyword">return</span> termAtt;</pre></td></tr> +<tr> <td class="numLineCover"> 45</td> <td class="nbHitsCovered"> 26500</td> <td class="src"><pre class="src">  <span class="keyword">return</span> termAtt;</pre></td></tr> <tr> <td class="numLine"> 46</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 47</td> <td class="nbHits"> </td> @@ -129,7 +129,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 57</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">protected</span> LinkedList<String> getTokens() {</pre></td></tr> -<tr> <td class="numLineCover"> 58</td> <td class="nbHitsCovered"> 33027</td> <td class="src"><pre class="src">  <span class="keyword">return</span> tokens;</pre></td></tr> +<tr> <td class="numLineCover"> 58</td> <td class="nbHitsCovered"> 26500</td> <td class="src"><pre class="src">  <span class="keyword">return</span> tokens;</pre></td></tr> <tr> <td class="numLine"> 59</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 60</td> <td class="nbHits"> </td> @@ -146,9 +146,9 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 66</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> AbstractTokenizingFilter(TokenStream stream) {</pre></td></tr> -<tr> <td class="numLineCover"> 67</td> <td class="nbHitsCovered"> 30</td> <td class="src"><pre class="src">  <span class="keyword">super</span>(stream);</pre></td></tr> -<tr> <td class="numLineCover"> 68</td> <td class="nbHitsCovered"> 30</td> <td class="src"><pre class="src">  tokens = <span class="keyword">new</span> LinkedList<String>();</pre></td></tr> -<tr> <td class="numLineCover"> 69</td> <td class="nbHitsCovered"> 30</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 67</td> <td class="nbHitsCovered"> 29</td> <td class="src"><pre class="src">  <span class="keyword">super</span>(stream);</pre></td></tr> +<tr> <td class="numLineCover"> 68</td> <td class="nbHitsCovered"> 29</td> <td class="src"><pre class="src">  tokens = <span class="keyword">new</span> LinkedList<String>();</pre></td></tr> +<tr> <td class="numLineCover"> 69</td> <td class="nbHitsCovered"> 29</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 70</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 71</td> <td class="nbHits"> </td> @@ -163,20 +163,20 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 76</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">protected</span> <span class="keyword">boolean</span> addTerm() {</pre></td></tr> -<tr> <td class="numLineCover"> 77</td> <td class="nbHitsCovered"><a title="Line 77: Conditional coverage 100% (2/2)."> 32955</a></td> <td class="src"><pre class="src"> <a title="Line 77: Conditional coverage 100% (2/2)."> <span class="keyword">final</span> <span class="keyword">boolean</span> termAdded = tokens.size() > 0;</a></pre></td></tr> -<tr> <td class="numLineCover"> 78</td> <td class="nbHitsCovered"><a title="Line 78: Conditional coverage 100% (2/2)."> 32955</a></td> <td class="src"><pre class="src"> <a title="Line 78: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (termAdded) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 79</td> <td class="nbHitsCovered"> 19516</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String term = tokens.pop();</pre></td></tr> -<tr> <td class="numLineCover"> 80</td> <td class="nbHitsCovered"> 19516</td> <td class="src"><pre class="src">  clearAttributes();</pre></td></tr> -<tr> <td class="numLineCover"> 81</td> <td class="nbHitsCovered"> 19516</td> <td class="src"><pre class="src">  termAtt.append(term);</pre></td></tr> +<tr> <td class="numLineCover"> 77</td> <td class="nbHitsCovered"><a title="Line 77: Conditional coverage 100% (2/2)."> 26452</a></td> <td class="src"><pre class="src"> <a title="Line 77: Conditional coverage 100% (2/2)."> <span class="keyword">final</span> <span class="keyword">boolean</span> termAdded = tokens.size() > 0;</a></pre></td></tr> +<tr> <td class="numLineCover"> 78</td> <td class="nbHitsCovered"><a title="Line 78: Conditional coverage 100% (2/2)."> 26452</a></td> <td class="src"><pre class="src"> <a title="Line 78: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (termAdded) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 79</td> <td class="nbHitsCovered"> 15013</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String term = tokens.pop();</pre></td></tr> +<tr> <td class="numLineCover"> 80</td> <td class="nbHitsCovered"> 15013</td> <td class="src"><pre class="src">  clearAttributes();</pre></td></tr> +<tr> <td class="numLineCover"> 81</td> <td class="nbHitsCovered"> 15013</td> <td class="src"><pre class="src">  termAtt.append(term);</pre></td></tr> <tr> <td class="numLine"> 82</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 83</td> <td class="nbHitsCovered"> 32955</td> <td class="src"><pre class="src">  <span class="keyword">return</span> termAdded;</pre></td></tr> +<tr> <td class="numLineCover"> 83</td> <td class="nbHitsCovered"> 26452</td> <td class="src"><pre class="src">  <span class="keyword">return</span> termAdded;</pre></td></tr> <tr> <td class="numLine"> 84</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 85</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.AlphaNumericTokenizer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.AlphaNumericTokenizer.html index 96916211a..897839dfb 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.AlphaNumericTokenizer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.AlphaNumericTokenizer.html @@ -95,8 +95,8 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 39</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> AlphaNumericTokenizer(Version matchVersion, Reader in) {</pre></td></tr> -<tr> <td class="numLineCover"> 40</td> <td class="nbHitsCovered"> 25</td> <td class="src"><pre class="src">  <span class="keyword">super</span>(matchVersion, in);</pre></td></tr> -<tr> <td class="numLineCover"> 41</td> <td class="nbHitsCovered"> 25</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 40</td> <td class="nbHitsCovered"> 47</td> <td class="src"><pre class="src">  <span class="keyword">super</span>(matchVersion, in);</pre></td></tr> +<tr> <td class="numLineCover"> 41</td> <td class="nbHitsCovered"> 47</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 42</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 43</td> <td class="nbHits"> </td> @@ -135,13 +135,13 @@ <td class="src"><pre class="src">  @Override</pre></td></tr> <tr> <td class="numLine"> 61</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">protected</span> <span class="keyword">boolean</span> isTokenChar(<span class="keyword">int</span> c) {</pre></td></tr> -<tr> <td class="numLineCover"> 62</td> <td class="nbHitsCovered"><a title="Line 62: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 10073</a></td> <td class="src"><pre class="src"> <a title="Line 62: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">return</span> Character.isLetter(c) || Character.isDigit(c);</a></pre></td></tr> +<tr> <td class="numLineCover"> 62</td> <td class="nbHitsCovered"><a title="Line 62: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 5451773</a></td> <td class="src"><pre class="src"> <a title="Line 62: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">return</span> Character.isLetter(c) || Character.isDigit(c);</a></pre></td></tr> <tr> <td class="numLine"> 63</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 64</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.DependencySimilarity.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.DependencySimilarity.html index b5e688b60..d8004d95b 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.DependencySimilarity.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.DependencySimilarity.html @@ -117,6 +117,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.FieldAnalyzer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.FieldAnalyzer.html index dd418bb7e..29049de9f 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.FieldAnalyzer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.FieldAnalyzer.html @@ -115,9 +115,9 @@ <td class="src"><pre class="src"> <span class="comment"> * @param version the Lucene version</span></pre></td></tr> <tr> <td class="numLine"> 49</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 50</td> <td class="nbHitsCovered"> 17</td> <td class="src"><pre class="src">  <span class="keyword">public</span> FieldAnalyzer(Version version) {</pre></td></tr> -<tr> <td class="numLineCover"> 51</td> <td class="nbHitsCovered"> 17</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.version = version;</pre></td></tr> -<tr> <td class="numLineCover"> 52</td> <td class="nbHitsCovered"> 17</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 50</td> <td class="nbHitsCovered"> 23</td> <td class="src"><pre class="src">  <span class="keyword">public</span> FieldAnalyzer(Version version) {</pre></td></tr> +<tr> <td class="numLineCover"> 51</td> <td class="nbHitsCovered"> 23</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.version = version;</pre></td></tr> +<tr> <td class="numLineCover"> 52</td> <td class="nbHitsCovered"> 23</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 53</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 54</td> <td class="nbHits"> </td> @@ -138,13 +138,13 @@ <td class="src"><pre class="src">  @Override</pre></td></tr> <tr> <td class="numLine"> 62</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">protected</span> TokenStreamComponents createComponents(String fieldName, Reader reader) {</pre></td></tr> -<tr> <td class="numLineCover"> 63</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">final</span> Tokenizer source = <span class="keyword">new</span> AlphaNumericTokenizer(version, reader);</pre></td></tr> +<tr> <td class="numLineCover"> 63</td> <td class="nbHitsCovered"> 23</td> <td class="src"><pre class="src">  <span class="keyword">final</span> Tokenizer source = <span class="keyword">new</span> AlphaNumericTokenizer(version, reader);</pre></td></tr> <tr> <td class="numLine"> 64</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 65</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  TokenStream stream = source;</pre></td></tr> +<tr> <td class="numLineCover"> 65</td> <td class="nbHitsCovered"> 23</td> <td class="src"><pre class="src">  TokenStream stream = source;</pre></td></tr> <tr> <td class="numLine"> 66</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 67</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  stream = <span class="keyword">new</span> WordDelimiterFilter(stream,</pre></td></tr> +<tr> <td class="numLineCover"> 67</td> <td class="nbHitsCovered"> 23</td> <td class="src"><pre class="src">  stream = <span class="keyword">new</span> WordDelimiterFilter(stream,</pre></td></tr> <tr> <td class="numLine"> 68</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  WordDelimiterFilter.CATENATE_WORDS</pre></td></tr> <tr> <td class="numLine"> 69</td> <td class="nbHits"> </td> @@ -161,17 +161,17 @@ <td class="src"><pre class="src">  | WordDelimiterFilter.STEM_ENGLISH_POSSESSIVE, <span class="keyword">null</span>);</pre></td></tr> <tr> <td class="numLine"> 75</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 76</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  stream = <span class="keyword">new</span> LowerCaseFilter(version, stream);</pre></td></tr> -<tr> <td class="numLineCover"> 77</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  stream = <span class="keyword">new</span> StopFilter(version, stream, StopAnalyzer.ENGLISH_STOP_WORDS_SET);</pre></td></tr> +<tr> <td class="numLineCover"> 76</td> <td class="nbHitsCovered"> 23</td> <td class="src"><pre class="src">  stream = <span class="keyword">new</span> LowerCaseFilter(version, stream);</pre></td></tr> +<tr> <td class="numLineCover"> 77</td> <td class="nbHitsCovered"> 23</td> <td class="src"><pre class="src">  stream = <span class="keyword">new</span> StopFilter(version, stream, StopAnalyzer.ENGLISH_STOP_WORDS_SET);</pre></td></tr> <tr> <td class="numLine"> 78</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 79</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">new</span> TokenStreamComponents(source, stream);</pre></td></tr> +<tr> <td class="numLineCover"> 79</td> <td class="nbHitsCovered"> 23</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">new</span> TokenStreamComponents(source, stream);</pre></td></tr> <tr> <td class="numLine"> 80</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 81</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.LuceneUtils.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.LuceneUtils.html index b14fd1124..20b3876fe 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.LuceneUtils.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.LuceneUtils.html @@ -12,7 +12,7 @@ <div class="separator"> </div> <table class="report"> <thead><tr> <td class="heading">Classes in this File</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead> - <tr><td><a href="org.owasp.dependencycheck.data.lucene.LuceneUtils.html">LuceneUtils</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">88%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:88px"><span class="text">15/17</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">33%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:33px"><span class="text">9/27</span></div></div></td></tr></table></td><td class="value"><span class="hidden">9.0;</span>9</td></tr> + <tr><td><a href="org.owasp.dependencycheck.data.lucene.LuceneUtils.html">LuceneUtils</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">88%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:88px"><span class="text">16/18</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">33%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:33px"><span class="text">9/27</span></div></div></td></tr></table></td><td class="value"><span class="hidden">9.0;</span>9</td></tr> </table> <div class="separator"> </div> @@ -58,156 +58,171 @@ <tr> <td class="numLine"> 20</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 21</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.lucene.util.Version;</pre></td></tr> <tr> <td class="numLine"> 22</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * <p>Lucene utils is a set of utilize written to make constructing Lucene</span></pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 23</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * queries simpler.</p></span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 24</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * <p>Lucene utils is a set of utilize written to make constructing Lucene</span></pre></td></tr> <tr> <td class="numLine"> 25</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @author Jeremy Long (jeremy.long@owasp.org)</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * queries simpler.</p></span></pre></td></tr> <tr> <td class="numLine"> 26</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 27</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">class</span> LuceneUtils {</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * @author Jeremy Long (jeremy.long@owasp.org)</span></pre></td></tr> <tr> <td class="numLine"> 28</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 29</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">class</span> LuceneUtils {</pre></td></tr> <tr> <td class="numLine"> 30</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Private constructor as this is a utility class.</span></pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 31</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 32</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">private</span> LuceneUtils() {</span></pre></td></tr> -<tr> <td class="numLineCover"> 33</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 32</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * The current version of Lucene being used. Declaring this one place so an</span></pre></td></tr> +<tr> <td class="numLine"> 33</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * upgrade doesn't require hunting through the code base.</span></pre></td></tr> <tr> <td class="numLine"> 34</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 35</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLineCover"> 35</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> Version CURRENT_VERSION = Version.LUCENE_45;</pre></td></tr> <tr> <td class="numLine"> 36</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Appends the text to the supplied StringBuilder escaping Lucene control</span></pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 37</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * characters in the process.</span></pre></td></tr> -<tr> <td class="numLine"> 38</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 39</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param buf a StringBuilder to append the escaped text to</span></pre></td></tr> -<tr> <td class="numLine"> 40</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param text the data to be escaped</span></pre></td></tr> -<tr> <td class="numLine"> 41</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 42</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  @SuppressWarnings(<span class="string">"fallthrough"</span>)</pre></td></tr> -<tr> <td class="numLine"> 43</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  @edu.umd.cs.findbugs.annotations.SuppressWarnings(</pre></td></tr> -<tr> <td class="numLine"> 44</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  value = <span class="string">"SF_SWITCH_NO_DEFAULT"</span>,</pre></td></tr> -<tr> <td class="numLine"> 45</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  justification = <span class="string">"The switch below does have a default."</span>)</pre></td></tr> -<tr> <td class="numLine"> 46</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> appendEscapedLuceneQuery(StringBuilder buf,</pre></td></tr> -<tr> <td class="numLine"> 47</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">final</span> CharSequence text) {</pre></td></tr> -<tr> <td class="numLine"> 48</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 49</td> <td class="nbHitsUncovered"><a title="Line 49: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> 1158</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 49: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> <span class="keyword">if</span> (text == <span class="keyword">null</span> || buf == <span class="keyword">null</span>) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 50</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">return</span>;</pre></td></tr> -<tr> <td class="numLine"> 51</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 52</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 53</td> <td class="nbHitsCovered"><a title="Line 53: Conditional coverage 100% (2/2)."> 11488</a></td> <td class="src"><pre class="src"> <a title="Line 53: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i < text.length(); i++) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 54</td> <td class="nbHitsCovered"> 10331</td> <td class="src"><pre class="src">  <span class="keyword">final</span> <span class="keyword">char</span> c = text.charAt(i);</pre></td></tr> -<tr> <td class="numLineCover"> 55</td> <td class="nbHitsUncovered"><a title="Line 55: Conditional coverage 10% (2/19)."> 10331</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 55: Conditional coverage 10% (2/19)."> <span class="keyword">switch</span> (c) {</a></span></pre></td></tr> -<tr> <td class="numLine"> 56</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">'+'</span>:</pre></td></tr> -<tr> <td class="numLine"> 57</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">'-'</span>:</pre></td></tr> -<tr> <td class="numLine"> 58</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">'&'</span>:</pre></td></tr> -<tr> <td class="numLine"> 59</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">'|'</span>:</pre></td></tr> -<tr> <td class="numLine"> 60</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">'!'</span>:</pre></td></tr> -<tr> <td class="numLine"> 61</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">'('</span>:</pre></td></tr> -<tr> <td class="numLine"> 62</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">')'</span>:</pre></td></tr> -<tr> <td class="numLine"> 63</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">'{'</span>:</pre></td></tr> -<tr> <td class="numLine"> 64</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">'}'</span>:</pre></td></tr> -<tr> <td class="numLine"> 65</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">'['</span>:</pre></td></tr> -<tr> <td class="numLine"> 66</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">']'</span>:</pre></td></tr> -<tr> <td class="numLine"> 67</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">'^'</span>:</pre></td></tr> -<tr> <td class="numLine"> 68</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">'"'</span>:</pre></td></tr> -<tr> <td class="numLine"> 69</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">'~'</span>:</pre></td></tr> -<tr> <td class="numLine"> 70</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">'*'</span>:</pre></td></tr> -<tr> <td class="numLine"> 71</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">'?'</span>:</pre></td></tr> -<tr> <td class="numLine"> 72</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">':'</span>:</pre></td></tr> -<tr> <td class="numLine"> 73</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">'\\'</span>: <span class="comment">//it is supposed to fall through here</span></pre></td></tr> -<tr> <td class="numLineCover"> 74</td> <td class="nbHitsCovered"> 226</td> <td class="src"><pre class="src">  buf.append(<span class="string">'\\'</span>);</pre></td></tr> -<tr> <td class="numLine"> 75</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">default</span>:</pre></td></tr> -<tr> <td class="numLineCover"> 76</td> <td class="nbHitsCovered"> 10331</td> <td class="src"><pre class="src">  buf.append(c);</pre></td></tr> -<tr> <td class="numLine"> 77</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">break</span>;</pre></td></tr> -<tr> <td class="numLine"> 78</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 79</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 80</td> <td class="nbHitsCovered"> 1157</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 81</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 82</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 83</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Escapes the text passed in so that it is treated as data instead of</span></pre></td></tr> -<tr> <td class="numLine"> 84</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * control characters.</span></pre></td></tr> -<tr> <td class="numLine"> 85</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 86</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param text data to be escaped</span></pre></td></tr> -<tr> <td class="numLine"> 87</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @return the escaped text.</span></pre></td></tr> -<tr> <td class="numLine"> 88</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 38</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Private constructor as this is a utility class.</span></pre></td></tr> +<tr> <td class="numLine"> 39</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 89</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> String escapeLuceneQuery(<span class="keyword">final</span> CharSequence text) {</pre></td></tr> -<tr> <td class="numLine"> 90</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 40</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">private</span> LuceneUtils() {</span></pre></td></tr> +<tr> <td class="numLineCover"> 41</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLine"> 42</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 91</td> <td class="nbHitsCovered"><a title="Line 91: Conditional coverage 100% (2/2)."> 1117</a></td> <td class="src"><pre class="src"> <a title="Line 91: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (text == <span class="keyword">null</span>) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 92</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLine"> 93</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 43</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 44</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Appends the text to the supplied StringBuilder escaping Lucene control</span></pre></td></tr> +<tr> <td class="numLine"> 45</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * characters in the process.</span></pre></td></tr> +<tr> <td class="numLine"> 46</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 47</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param buf a StringBuilder to append the escaped text to</span></pre></td></tr> +<tr> <td class="numLine"> 48</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param text the data to be escaped</span></pre></td></tr> +<tr> <td class="numLine"> 49</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 50</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  @SuppressWarnings(<span class="string">"fallthrough"</span>)</pre></td></tr> +<tr> <td class="numLine"> 51</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  @edu.umd.cs.findbugs.annotations.SuppressWarnings(</pre></td></tr> +<tr> <td class="numLine"> 52</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  value = <span class="string">"SF_SWITCH_NO_DEFAULT"</span>,</pre></td></tr> +<tr> <td class="numLine"> 53</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  justification = <span class="string">"The switch below does have a default."</span>)</pre></td></tr> +<tr> <td class="numLine"> 54</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> appendEscapedLuceneQuery(StringBuilder buf,</pre></td></tr> +<tr> <td class="numLine"> 55</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">final</span> CharSequence text) {</pre></td></tr> +<tr> <td class="numLine"> 56</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLineCover"> 57</td> <td class="nbHitsUncovered"><a title="Line 57: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> 1158</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 57: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> <span class="keyword">if</span> (text == <span class="keyword">null</span> || buf == <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 58</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">return</span>;</pre></td></tr> +<tr> <td class="numLine"> 59</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 94</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 60</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 95</td> <td class="nbHitsCovered"> 1116</td> <td class="src"><pre class="src">  <span class="keyword">int</span> size = text.length();</pre></td></tr> -<tr> <td class="numLineCover"> 96</td> <td class="nbHitsCovered"> 1116</td> <td class="src"><pre class="src">  size = size >> 1;</pre></td></tr> -<tr> <td class="numLineCover"> 97</td> <td class="nbHitsCovered"> 1116</td> <td class="src"><pre class="src">  <span class="keyword">final</span> StringBuilder buf = <span class="keyword">new</span> StringBuilder(size);</pre></td></tr> +<tr> <td class="numLineCover"> 61</td> <td class="nbHitsCovered"><a title="Line 61: Conditional coverage 100% (2/2)."> 11488</a></td> <td class="src"><pre class="src"> <a title="Line 61: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i < text.length(); i++) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 62</td> <td class="nbHitsCovered"> 10331</td> <td class="src"><pre class="src">  <span class="keyword">final</span> <span class="keyword">char</span> c = text.charAt(i);</pre></td></tr> +<tr> <td class="numLineCover"> 63</td> <td class="nbHitsUncovered"><a title="Line 63: Conditional coverage 10% (2/19)."> 10331</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 63: Conditional coverage 10% (2/19)."> <span class="keyword">switch</span> (c) {</a></span></pre></td></tr> +<tr> <td class="numLine"> 64</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">'+'</span>:</pre></td></tr> +<tr> <td class="numLine"> 65</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">'-'</span>:</pre></td></tr> +<tr> <td class="numLine"> 66</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">'&'</span>:</pre></td></tr> +<tr> <td class="numLine"> 67</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">'|'</span>:</pre></td></tr> +<tr> <td class="numLine"> 68</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">'!'</span>:</pre></td></tr> +<tr> <td class="numLine"> 69</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">'('</span>:</pre></td></tr> +<tr> <td class="numLine"> 70</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">')'</span>:</pre></td></tr> +<tr> <td class="numLine"> 71</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">'{'</span>:</pre></td></tr> +<tr> <td class="numLine"> 72</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">'}'</span>:</pre></td></tr> +<tr> <td class="numLine"> 73</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">'['</span>:</pre></td></tr> +<tr> <td class="numLine"> 74</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">']'</span>:</pre></td></tr> +<tr> <td class="numLine"> 75</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">'^'</span>:</pre></td></tr> +<tr> <td class="numLine"> 76</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">'"'</span>:</pre></td></tr> +<tr> <td class="numLine"> 77</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">'~'</span>:</pre></td></tr> +<tr> <td class="numLine"> 78</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">'*'</span>:</pre></td></tr> +<tr> <td class="numLine"> 79</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">'?'</span>:</pre></td></tr> +<tr> <td class="numLine"> 80</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">':'</span>:</pre></td></tr> +<tr> <td class="numLine"> 81</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">case</span> <span class="string">'\\'</span>: <span class="comment">//it is supposed to fall through here</span></pre></td></tr> +<tr> <td class="numLineCover"> 82</td> <td class="nbHitsCovered"> 226</td> <td class="src"><pre class="src">  buf.append(<span class="string">'\\'</span>);</pre></td></tr> +<tr> <td class="numLine"> 83</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">default</span>:</pre></td></tr> +<tr> <td class="numLineCover"> 84</td> <td class="nbHitsCovered"> 10331</td> <td class="src"><pre class="src">  buf.append(c);</pre></td></tr> +<tr> <td class="numLine"> 85</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">break</span>;</pre></td></tr> +<tr> <td class="numLine"> 86</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 87</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 88</td> <td class="nbHitsCovered"> 1157</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 89</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 90</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 91</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Escapes the text passed in so that it is treated as data instead of</span></pre></td></tr> +<tr> <td class="numLine"> 92</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * control characters.</span></pre></td></tr> +<tr> <td class="numLine"> 93</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 94</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param text data to be escaped</span></pre></td></tr> +<tr> <td class="numLine"> 95</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @return the escaped text.</span></pre></td></tr> +<tr> <td class="numLine"> 96</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 97</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> String escapeLuceneQuery(<span class="keyword">final</span> CharSequence text) {</pre></td></tr> <tr> <td class="numLine"> 98</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 99</td> <td class="nbHitsCovered"> 1116</td> <td class="src"><pre class="src">  appendEscapedLuceneQuery(buf, text);</pre></td></tr> -<tr> <td class="numLine"> 100</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 101</td> <td class="nbHitsCovered"> 1116</td> <td class="src"><pre class="src">  <span class="keyword">return</span> buf.toString();</pre></td></tr> +<tr> <td class="numLineCover"> 99</td> <td class="nbHitsCovered"><a title="Line 99: Conditional coverage 100% (2/2)."> 1117</a></td> <td class="src"><pre class="src"> <a title="Line 99: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (text == <span class="keyword">null</span>) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 100</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLine"> 101</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 102</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLineCover"> 103</td> <td class="nbHitsCovered"> 1116</td> <td class="src"><pre class="src">  <span class="keyword">int</span> size = text.length();</pre></td></tr> +<tr> <td class="numLineCover"> 104</td> <td class="nbHitsCovered"> 1116</td> <td class="src"><pre class="src">  size = size >> 1;</pre></td></tr> +<tr> <td class="numLineCover"> 105</td> <td class="nbHitsCovered"> 1116</td> <td class="src"><pre class="src">  <span class="keyword">final</span> StringBuilder buf = <span class="keyword">new</span> StringBuilder(size);</pre></td></tr> +<tr> <td class="numLine"> 106</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLineCover"> 107</td> <td class="nbHitsCovered"> 1116</td> <td class="src"><pre class="src">  appendEscapedLuceneQuery(buf, text);</pre></td></tr> +<tr> <td class="numLine"> 108</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLineCover"> 109</td> <td class="nbHitsCovered"> 1116</td> <td class="src"><pre class="src">  <span class="keyword">return</span> buf.toString();</pre></td></tr> +<tr> <td class="numLine"> 110</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 103</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 111</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.SearchFieldAnalyzer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.SearchFieldAnalyzer.html index 74622507f..b9c36151f 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.SearchFieldAnalyzer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.SearchFieldAnalyzer.html @@ -121,9 +121,9 @@ <td class="src"><pre class="src"> <span class="comment"> * @param version the Lucene version</span></pre></td></tr> <tr> <td class="numLine"> 52</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 53</td> <td class="nbHitsCovered"> 32</td> <td class="src"><pre class="src">  <span class="keyword">public</span> SearchFieldAnalyzer(Version version) {</pre></td></tr> -<tr> <td class="numLineCover"> 54</td> <td class="nbHitsCovered"> 32</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.version = version;</pre></td></tr> -<tr> <td class="numLineCover"> 55</td> <td class="nbHitsCovered"> 32</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 53</td> <td class="nbHitsCovered"> 24</td> <td class="src"><pre class="src">  <span class="keyword">public</span> SearchFieldAnalyzer(Version version) {</pre></td></tr> +<tr> <td class="numLineCover"> 54</td> <td class="nbHitsCovered"> 24</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.version = version;</pre></td></tr> +<tr> <td class="numLineCover"> 55</td> <td class="nbHitsCovered"> 24</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 56</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 57</td> <td class="nbHits"> </td> @@ -200,6 +200,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.SearchVersionAnalyzer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.SearchVersionAnalyzer.html index b762be1dd..5e4af8a01 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.SearchVersionAnalyzer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.SearchVersionAnalyzer.html @@ -159,6 +159,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.TokenPairConcatenatingFilter.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.TokenPairConcatenatingFilter.html index f4ecace92..cfa8b1124 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.TokenPairConcatenatingFilter.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.TokenPairConcatenatingFilter.html @@ -243,6 +243,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.UrlTokenizingFilter.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.UrlTokenizingFilter.html index e82cb5e12..a8eeba4a6 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.UrlTokenizingFilter.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.UrlTokenizingFilter.html @@ -109,8 +109,8 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 46</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> UrlTokenizingFilter(TokenStream stream) {</pre></td></tr> -<tr> <td class="numLineCover"> 47</td> <td class="nbHitsCovered"> 30</td> <td class="src"><pre class="src">  <span class="keyword">super</span>(stream);</pre></td></tr> -<tr> <td class="numLineCover"> 48</td> <td class="nbHitsCovered"> 30</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 47</td> <td class="nbHitsCovered"> 29</td> <td class="src"><pre class="src">  <span class="keyword">super</span>(stream);</pre></td></tr> +<tr> <td class="numLineCover"> 48</td> <td class="nbHitsCovered"> 29</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 49</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 50</td> <td class="nbHits"> </td> @@ -133,11 +133,11 @@ <td class="src"><pre class="src">  @Override</pre></td></tr> <tr> <td class="numLine"> 59</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> incrementToken() <span class="keyword">throws</span> IOException {</pre></td></tr> -<tr> <td class="numLineCover"> 60</td> <td class="nbHitsCovered"> 33027</td> <td class="src"><pre class="src">  <span class="keyword">final</span> LinkedList<String> tokens = getTokens();</pre></td></tr> -<tr> <td class="numLineCover"> 61</td> <td class="nbHitsCovered"> 33027</td> <td class="src"><pre class="src">  <span class="keyword">final</span> CharTermAttribute termAtt = getTermAtt();</pre></td></tr> -<tr> <td class="numLineCover"> 62</td> <td class="nbHitsCovered"><a title="Line 62: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 33027</a></td> <td class="src"><pre class="src"> <a title="Line 62: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (tokens.size() == 0 && input.incrementToken()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 63</td> <td class="nbHitsCovered"> 19515</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String text = <span class="keyword">new</span> String(termAtt.buffer(), 0, termAtt.length());</pre></td></tr> -<tr> <td class="numLineCover"> 64</td> <td class="nbHitsCovered"><a title="Line 64: Conditional coverage 100% (2/2)."> 19515</a></td> <td class="src"><pre class="src"> <a title="Line 64: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (UrlStringUtils.containsUrl(text)) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 60</td> <td class="nbHitsCovered"> 26500</td> <td class="src"><pre class="src">  <span class="keyword">final</span> LinkedList<String> tokens = getTokens();</pre></td></tr> +<tr> <td class="numLineCover"> 61</td> <td class="nbHitsCovered"> 26500</td> <td class="src"><pre class="src">  <span class="keyword">final</span> CharTermAttribute termAtt = getTermAtt();</pre></td></tr> +<tr> <td class="numLineCover"> 62</td> <td class="nbHitsCovered"><a title="Line 62: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 26500</a></td> <td class="src"><pre class="src"> <a title="Line 62: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (tokens.size() == 0 && input.incrementToken()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 63</td> <td class="nbHitsCovered"> 15012</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String text = <span class="keyword">new</span> String(termAtt.buffer(), 0, termAtt.length());</pre></td></tr> +<tr> <td class="numLineCover"> 64</td> <td class="nbHitsCovered"><a title="Line 64: Conditional coverage 100% (2/2)."> 15012</a></td> <td class="src"><pre class="src"> <a title="Line 64: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (UrlStringUtils.containsUrl(text)) {</a></pre></td></tr> <tr> <td class="numLineCover"> 65</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String[] parts = text.split(<span class="string">"\\s"</span>);</pre></td></tr> <tr> <td class="numLineCover"> 66</td> <td class="nbHitsCovered"><a title="Line 66: Conditional coverage 100% (2/2)."> 4</a></td> <td class="src"><pre class="src"> <a title="Line 66: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (String part : parts) {</a></pre></td></tr> <tr> <td class="numLineCover"> 67</td> <td class="nbHitsUncovered"><a title="Line 67: Conditional coverage 50% (1/2)."> 2</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 67: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (UrlStringUtils.isUrl(part)) {</a></span></pre></td></tr> @@ -157,18 +157,18 @@ <tr> <td class="numLine"> 78</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLineCover"> 79</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 80</td> <td class="nbHitsCovered"> 19513</td> <td class="src"><pre class="src">  tokens.add(text);</pre></td></tr> +<tr> <td class="numLineCover"> 80</td> <td class="nbHitsCovered"> 15010</td> <td class="src"><pre class="src">  tokens.add(text);</pre></td></tr> <tr> <td class="numLine"> 81</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 82</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 83</td> <td class="nbHitsCovered"> 32955</td> <td class="src"><pre class="src">  <span class="keyword">return</span> addTerm();</pre></td></tr> +<tr> <td class="numLineCover"> 83</td> <td class="nbHitsCovered"> 26452</td> <td class="src"><pre class="src">  <span class="keyword">return</span> addTerm();</pre></td></tr> <tr> <td class="numLine"> 84</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 85</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.VersionAnalyzer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.VersionAnalyzer.html index eba45afa4..eb51b067e 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.VersionAnalyzer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.VersionAnalyzer.html @@ -156,6 +156,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.VersionTokenizingFilter.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.VersionTokenizingFilter.html index db76e4f00..0427c0b71 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.VersionTokenizingFilter.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.lucene.VersionTokenizingFilter.html @@ -197,6 +197,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.CorruptDatabaseException.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.CorruptDatabaseException.html index 0f8295b36..4db2946eb 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.CorruptDatabaseException.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.CorruptDatabaseException.html @@ -119,6 +119,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.CveDB.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.CveDB.html index f5fd2d3c6..e75b2efed 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.CveDB.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.CveDB.html @@ -12,7 +12,7 @@ <div class="separator"> </div> <table class="report"> <thead><tr> <td class="heading">Classes in this File</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead> - <tr><td><a href="org.owasp.dependencycheck.data.nvdcve.CveDB.html">CveDB</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">47%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:47px"><span class="text">151/319</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">62%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:62px"><span class="text">59/94</span></div></div></td></tr></table></td><td class="value"><span class="hidden">5.0;</span>5</td></tr> + <tr><td><a href="org.owasp.dependencycheck.data.nvdcve.CveDB.html">CveDB</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">47%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:47px"><span class="text">124/260</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">64%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:64px"><span class="text">49/76</span></div></div></td></tr></table></td><td class="value"><span class="hidden">6.777777777777778;</span>6.778</td></tr> </table> <div class="separator"> </div> @@ -58,1088 +58,807 @@ <tr> <td class="numLine"> 20</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 21</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> java.io.BufferedReader;</pre></td></tr> -<tr> <td class="numLine"> 22</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> java.io.File;</pre></td></tr> -<tr> <td class="numLine"> 23</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> java.io.IOException;</pre></td></tr> -<tr> <td class="numLine"> 24</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> java.io.InputStream;</pre></td></tr> -<tr> <td class="numLine"> 25</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> java.io.InputStreamReader;</pre></td></tr> -<tr> <td class="numLine"> 26</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> java.io.UnsupportedEncodingException;</pre></td></tr> -<tr> <td class="numLine"> 27</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> java.sql.Connection;</pre></td></tr> -<tr> <td class="numLine"> 28</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> java.sql.DriverManager;</pre></td></tr> -<tr> <td class="numLine"> 29</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 22</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> java.sql.PreparedStatement;</pre></td></tr> -<tr> <td class="numLine"> 30</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 23</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> java.sql.ResultSet;</pre></td></tr> -<tr> <td class="numLine"> 31</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 24</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> java.sql.SQLException;</pre></td></tr> -<tr> <td class="numLine"> 32</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 25</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> java.sql.Statement;</pre></td></tr> -<tr> <td class="numLine"> 33</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 26</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.ArrayList;</pre></td></tr> -<tr> <td class="numLine"> 34</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 27</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.HashSet;</pre></td></tr> -<tr> <td class="numLine"> 35</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 28</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.List;</pre></td></tr> -<tr> <td class="numLine"> 36</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 29</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.Set;</pre></td></tr> -<tr> <td class="numLine"> 37</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 30</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.logging.Level;</pre></td></tr> -<tr> <td class="numLine"> 38</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 31</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.logging.Logger;</pre></td></tr> -<tr> <td class="numLine"> 39</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 32</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.BaseDB;</pre></td></tr> +<tr> <td class="numLine"> 33</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.cwe.CweDB;</pre></td></tr> -<tr> <td class="numLine"> 40</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 34</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.dependency.Reference;</pre></td></tr> -<tr> <td class="numLine"> 41</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 35</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.dependency.Vulnerability;</pre></td></tr> -<tr> <td class="numLine"> 42</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 36</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.dependency.VulnerableSoftware;</pre></td></tr> -<tr> <td class="numLine"> 43</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 37</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.utils.DependencyVersion;</pre></td></tr> -<tr> <td class="numLine"> 44</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 38</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.utils.DependencyVersionUtil;</pre></td></tr> -<tr> <td class="numLine"> 45</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.utils.Settings;</pre></td></tr> +<tr> <td class="numLine"> 39</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 40</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 41</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * The database holding information about the NVD CVE data.</span></pre></td></tr> +<tr> <td class="numLine"> 42</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 43</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @author Jeremy Long (jeremy.long@owasp.org)</span></pre></td></tr> +<tr> <td class="numLine"> 44</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLineCover"> 45</td> <td class="nbHitsCovered"> 21</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> CveDB <span class="keyword">extends</span> BaseDB {</pre></td></tr> <tr> <td class="numLine"> 46</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 47</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">//<editor-fold defaultstate="collapsed" desc="Constants to create, maintain, and retrieve data from the CVE Database"></span></pre></td></tr> <tr> <td class="numLine"> 48</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * The database holding information about the NVD CVE data.</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 49</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * SQL Statement to delete references by vulnerability ID.</span></pre></td></tr> <tr> <td class="numLine"> 50</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @author Jeremy Long (jeremy.long@owasp.org)</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 51</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 52</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> CveDB {</pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> String DELETE_REFERENCE = <span class="string">"DELETE FROM reference WHERE cveid = ?"</span>;</pre></td></tr> +<tr> <td class="numLine"> 52</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 53</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * SQL Statement to delete software by vulnerability ID.</span></pre></td></tr> <tr> <td class="numLine"> 54</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 55</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Resource location for SQL file used to create the database schema.</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> String DELETE_SOFTWARE = <span class="string">"DELETE FROM software WHERE cveid = ?"</span>;</pre></td></tr> <tr> <td class="numLine"> 56</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 57</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String DB_STRUCTURE_RESOURCE = <span class="string">"data/initialize.sql"</span>;</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * SQL Statement to delete a vulnerability by CVE.</span></pre></td></tr> <tr> <td class="numLine"> 58</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 59</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * The version of the current DB Schema.</span></pre></td></tr> -<tr> <td class="numLine"> 60</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 61</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String DB_SCHEMA_VERSION = <span class="string">"2.6"</span>;</pre></td></tr> -<tr> <td class="numLine"> 62</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 59</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> String DELETE_VULNERABILITY = <span class="string">"DELETE FROM vulnerability WHERE id = ?"</span>;</pre></td></tr> +<tr> <td class="numLine"> 60</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 61</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * SQL Statement to cleanup orphan entries. Yes, the db schema could be a</span></pre></td></tr> +<tr> <td class="numLine"> 62</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * little tighter, but what we have works well to keep the data file size</span></pre></td></tr> <tr> <td class="numLine"> 63</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Database connection</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * down a bit.</span></pre></td></tr> <tr> <td class="numLine"> 64</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 65</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">private</span> Connection conn;</pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> String CLEANUP_ORPHANS = <span class="string">"DELETE FROM CpeEntry WHERE id not in (SELECT CPEEntryId FROM Software); "</span>;</pre></td></tr> <tr> <td class="numLine"> 66</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">//<editor-fold defaultstate="collapsed" desc="Constants to create, maintain, and retrieve data from the CVE Database"></span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 67</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 68</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * SQL Statement to delete references by vulnerability ID.</span></pre></td></tr> -<tr> <td class="numLine"> 69</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 70</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String DELETE_REFERENCE = <span class="string">"DELETE FROM reference WHERE cveid = ?"</span>;</pre></td></tr> -<tr> <td class="numLine"> 71</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 72</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * SQL Statement to delete software by vulnerability ID.</span></pre></td></tr> -<tr> <td class="numLine"> 73</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 74</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String DELETE_SOFTWARE = <span class="string">"DELETE FROM software WHERE cveid = ?"</span>;</pre></td></tr> -<tr> <td class="numLine"> 75</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 76</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * SQL Statement to delete a vulnerability by CVE.</span></pre></td></tr> -<tr> <td class="numLine"> 77</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 78</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String DELETE_VULNERABILITY = <span class="string">"DELETE FROM vulnerability WHERE cve = ?"</span>;</pre></td></tr> -<tr> <td class="numLine"> 79</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 80</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * SQL Statement to cleanup orphan entries. Yes, the db schema could be a</span></pre></td></tr> -<tr> <td class="numLine"> 81</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * little tighter, but what we have works well to keep the data file size</span></pre></td></tr> -<tr> <td class="numLine"> 82</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * down a bit.</span></pre></td></tr> -<tr> <td class="numLine"> 83</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 84</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String CLEANUP_ORPHANS = <span class="string">"DELETE FROM CpeEntry WHERE id not in (SELECT CPEEntryId FROM Software); "</span>;</pre></td></tr> -<tr> <td class="numLine"> 85</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 86</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * SQL Statement to insert a new reference.</span></pre></td></tr> -<tr> <td class="numLine"> 87</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 68</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 88</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String INSERT_REFERENCE = <span class="string">"INSERT INTO reference (cveid, name, url, source) VALUES (?, ?, ?, ?)"</span>;</pre></td></tr> -<tr> <td class="numLine"> 89</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 69</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> String INSERT_REFERENCE = <span class="string">"INSERT INTO reference (cveid, name, url, source) VALUES (?, ?, ?, ?)"</span>;</pre></td></tr> +<tr> <td class="numLine"> 70</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 90</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 71</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * SQL Statement to insert a new software.</span></pre></td></tr> -<tr> <td class="numLine"> 91</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 72</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 92</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String INSERT_SOFTWARE = <span class="string">"INSERT INTO software (cveid, cpeEntryId, previousVersion) VALUES (?, ?, ?)"</span>;</pre></td></tr> -<tr> <td class="numLine"> 93</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 73</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> String INSERT_SOFTWARE = <span class="string">"INSERT INTO software (cveid, cpeEntryId, previousVersion) VALUES (?, ?, ?)"</span>;</pre></td></tr> +<tr> <td class="numLine"> 74</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 94</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 75</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * SQL Statement to insert a new cpe.</span></pre></td></tr> -<tr> <td class="numLine"> 95</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 76</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 96</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String INSERT_CPE = <span class="string">"INSERT INTO cpeEntry (cpe, vendor, product) VALUES (?, ?, ?)"</span>;</pre></td></tr> -<tr> <td class="numLine"> 97</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 77</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> String INSERT_CPE = <span class="string">"INSERT INTO cpeEntry (cpe, vendor, product) VALUES (?, ?, ?)"</span>;</pre></td></tr> +<tr> <td class="numLine"> 78</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 98</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 79</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * SQL Statement to get a CPEProductID.</span></pre></td></tr> -<tr> <td class="numLine"> 99</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 80</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 100</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String SELECT_CPE_ID = <span class="string">"SELECT id FROM cpeEntry WHERE cpe = ?"</span>;</pre></td></tr> -<tr> <td class="numLine"> 101</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 81</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> String SELECT_CPE_ID = <span class="string">"SELECT id FROM cpeEntry WHERE cpe = ?"</span>;</pre></td></tr> +<tr> <td class="numLine"> 82</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 102</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 83</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * SQL Statement to insert a new vulnerability.</span></pre></td></tr> -<tr> <td class="numLine"> 103</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 84</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 104</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String INSERT_VULNERABILITY = <span class="string">"INSERT INTO vulnerability (cve, description, cwe, cvssScore, cvssAccessVector, "</span></pre></td></tr> -<tr> <td class="numLine"> 105</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 85</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> String INSERT_VULNERABILITY = <span class="string">"INSERT INTO vulnerability (cve, description, cwe, cvssScore, cvssAccessVector, "</span></pre></td></tr> +<tr> <td class="numLine"> 86</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  + <span class="string">"cvssAccessComplexity, cvssAuthentication, cvssConfidentialityImpact, cvssIntegrityImpact, cvssAvailabilityImpact) "</span></pre></td></tr> -<tr> <td class="numLine"> 106</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 87</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  + <span class="string">"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"</span>;</pre></td></tr> -<tr> <td class="numLine"> 107</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 88</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 108</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 89</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * SQL Statement to update a vulnerability.</span></pre></td></tr> -<tr> <td class="numLine"> 109</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 90</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 110</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String UPDATE_VULNERABILITY = <span class="string">"UPDATE vulnerability SET description=?, cwe=?, cvssScore=?, cvssAccessVector=?, "</span></pre></td></tr> -<tr> <td class="numLine"> 111</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 91</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> String UPDATE_VULNERABILITY = <span class="string">"UPDATE vulnerability SET description=?, cwe=?, cvssScore=?, cvssAccessVector=?, "</span></pre></td></tr> +<tr> <td class="numLine"> 92</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  + <span class="string">"cvssAccessComplexity=?, cvssAuthentication=?, cvssConfidentialityImpact=?, cvssIntegrityImpact=?, cvssAvailabilityImpact=? "</span></pre></td></tr> -<tr> <td class="numLine"> 112</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 93</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  + <span class="string">"WHERE id=?"</span>;</pre></td></tr> -<tr> <td class="numLine"> 113</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 94</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 114</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 95</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * SQL Statement to find CVE entries based on CPE data.</span></pre></td></tr> -<tr> <td class="numLine"> 115</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 96</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 116</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String SELECT_CVE_FROM_SOFTWARE = <span class="string">"SELECT cve, cpe, previousVersion "</span></pre></td></tr> -<tr> <td class="numLine"> 117</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 97</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> String SELECT_CVE_FROM_SOFTWARE = <span class="string">"SELECT cve, cpe, previousVersion "</span></pre></td></tr> +<tr> <td class="numLine"> 98</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  + <span class="string">"FROM software INNER JOIN vulnerability ON vulnerability.id = software.cveId "</span></pre></td></tr> -<tr> <td class="numLine"> 118</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 99</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  + <span class="string">"INNER JOIN cpeEntry ON cpeEntry.id = software.cpeEntryId "</span></pre></td></tr> -<tr> <td class="numLine"> 119</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 100</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  + <span class="string">"WHERE vendor = ? AND product = ?"</span>;</pre></td></tr> -<tr> <td class="numLine"> 120</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 101</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">//unfortunately, the version info is too complicated to do in a select. Need to filter this afterwards</span></pre></td></tr> -<tr> <td class="numLine"> 121</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 102</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">// + " AND (version = '-' OR previousVersion IS NOT NULL OR version=?)";</span></pre></td></tr> -<tr> <td class="numLine"> 122</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 103</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">//</span></pre></td></tr> -<tr> <td class="numLine"> 123</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 104</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 124</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 105</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * SQL Statement to find the CPE entry based on the vendor and product.</span></pre></td></tr> -<tr> <td class="numLine"> 125</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 106</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 126</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String SELECT_CPE_ENTRIES = <span class="string">"SELECT cpe FROM cpeEntry WHERE vendor = ? AND product = ?"</span>;</pre></td></tr> -<tr> <td class="numLine"> 127</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 107</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> String SELECT_CPE_ENTRIES = <span class="string">"SELECT cpe FROM cpeEntry WHERE vendor = ? AND product = ?"</span>;</pre></td></tr> +<tr> <td class="numLine"> 108</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 128</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 109</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * SQL Statement to select references by CVEID.</span></pre></td></tr> -<tr> <td class="numLine"> 129</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 110</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 130</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String SELECT_REFERENCE = <span class="string">"SELECT source, name, url FROM reference WHERE cveid = ?"</span>;</pre></td></tr> -<tr> <td class="numLine"> 131</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 111</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> String SELECT_REFERENCE = <span class="string">"SELECT source, name, url FROM reference WHERE cveid = ?"</span>;</pre></td></tr> +<tr> <td class="numLine"> 112</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 132</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 113</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * SQL Statement to select vendor and product for lucene index.</span></pre></td></tr> +<tr> <td class="numLine"> 114</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 115</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> String SELECT_VENDOR_PRODUCT_LIST = <span class="string">"SELECT vendor, product FROM cpeEntry GROUP BY vendor, product"</span>;</pre></td></tr> +<tr> <td class="numLine"> 116</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 117</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * SQL Statement to select software by CVEID.</span></pre></td></tr> -<tr> <td class="numLine"> 133</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 118</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 134</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String SELECT_SOFTWARE = <span class="string">"SELECT cpe, previousVersion "</span></pre></td></tr> -<tr> <td class="numLine"> 135</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 119</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> String SELECT_SOFTWARE = <span class="string">"SELECT cpe, previousVersion "</span></pre></td></tr> +<tr> <td class="numLine"> 120</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  + <span class="string">"FROM software INNER JOIN cpeEntry ON software.cpeEntryId = cpeEntry.id WHERE cveid = ?"</span>;</pre></td></tr> -<tr> <td class="numLine"> 136</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 121</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">// public static final String SELECT_SOFTWARE = "SELECT part, vendor, product, version, revision, previousVersion "</span></pre></td></tr> -<tr> <td class="numLine"> 137</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 122</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">// + "FROM software INNER JOIN cpeProduct ON cpeProduct.id = software.cpeProductId LEFT JOIN cpeVersion ON "</span></pre></td></tr> -<tr> <td class="numLine"> 138</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 123</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">// + "software.cpeVersionId = cpeVersion.id LEFT JOIN Version ON cpeVersion.versionId = version.id WHERE cveid = ?";</span></pre></td></tr> -<tr> <td class="numLine"> 139</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 124</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 140</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 125</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * SQL Statement to select a vulnerability by CVEID.</span></pre></td></tr> -<tr> <td class="numLine"> 141</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 126</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 142</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String SELECT_VULNERABILITY = <span class="string">"SELECT id, description, cwe, cvssScore, cvssAccessVector, cvssAccessComplexity, "</span></pre></td></tr> -<tr> <td class="numLine"> 143</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 127</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> String SELECT_VULNERABILITY = <span class="string">"SELECT id, description, cwe, cvssScore, cvssAccessVector, cvssAccessComplexity, "</span></pre></td></tr> +<tr> <td class="numLine"> 128</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  + <span class="string">"cvssAuthentication, cvssConfidentialityImpact, cvssIntegrityImpact, cvssAvailabilityImpact FROM vulnerability WHERE cve = ?"</span>;</pre></td></tr> -<tr> <td class="numLine"> 144</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 129</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 145</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 130</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * SQL Statement to select a vulnerability's primary key.</span></pre></td></tr> -<tr> <td class="numLine"> 146</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 131</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 147</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String SELECT_VULNERABILITY_ID = <span class="string">"SELECT id FROM vulnerability WHERE cve = ?"</span>;</pre></td></tr> -<tr> <td class="numLine"> 148</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 132</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> String SELECT_VULNERABILITY_ID = <span class="string">"SELECT id FROM vulnerability WHERE cve = ?"</span>;</pre></td></tr> +<tr> <td class="numLine"> 133</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">//</editor-fold></span></pre></td></tr> -<tr> <td class="numLine"> 149</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 134</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 150</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 135</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 151</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Opens the database connection. If the database does not exist, it will</span></pre></td></tr> -<tr> <td class="numLine"> 152</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * create a new one.</span></pre></td></tr> -<tr> <td class="numLine"> 153</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 154</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws IOException thrown if there is an IO Exception</span></pre></td></tr> -<tr> <td class="numLine"> 155</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws SQLException thrown if there is a SQL Exception</span></pre></td></tr> -<tr> <td class="numLine"> 156</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws DatabaseException thrown if there is an error initializing a new</span></pre></td></tr> -<tr> <td class="numLine"> 157</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * database</span></pre></td></tr> -<tr> <td class="numLine"> 158</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws ClassNotFoundException thrown if the h2 database driver cannot be</span></pre></td></tr> -<tr> <td class="numLine"> 159</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * loaded</span></pre></td></tr> -<tr> <td class="numLine"> 160</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 161</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  @edu.umd.cs.findbugs.annotations.SuppressWarnings(</pre></td></tr> -<tr> <td class="numLine"> 162</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  value = <span class="string">"DMI_EMPTY_DB_PASSWORD"</span>,</pre></td></tr> -<tr> <td class="numLine"> 163</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  justification = <span class="string">"Yes, I know... Blank password."</span>)</pre></td></tr> -<tr> <td class="numLine"> 164</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> open() <span class="keyword">throws</span> IOException, SQLException, DatabaseException, ClassNotFoundException {</pre></td></tr> -<tr> <td class="numLineCover"> 165</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String fileName = CveDB.getDataDirectory().getCanonicalPath();</pre></td></tr> -<tr> <td class="numLineCover"> 166</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  <span class="keyword">final</span> File f = <span class="keyword">new</span> File(fileName, <span class="string">"cve."</span> + DB_SCHEMA_VERSION);</pre></td></tr> -<tr> <td class="numLineCover"> 167</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  <span class="keyword">final</span> File check = <span class="keyword">new</span> File(f.getAbsolutePath() + <span class="string">".h2.db"</span>);</pre></td></tr> -<tr> <td class="numLineCover"> 168</td> <td class="nbHitsUncovered"><a title="Line 168: Conditional coverage 50% (1/2)."> 19</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 168: Conditional coverage 50% (1/2)."> <span class="keyword">final</span> <span class="keyword">boolean</span> createTables = !check.exists();</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 169</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String connStr = String.format(<span class="string">"jdbc:h2:file:%s;AUTO_SERVER=TRUE"</span>, f.getAbsolutePath());</pre></td></tr> -<tr> <td class="numLineCover"> 170</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  Class.forName(<span class="string">"org.h2.Driver"</span>);</pre></td></tr> -<tr> <td class="numLineCover"> 171</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  conn = DriverManager.getConnection(connStr, <span class="string">"sa"</span>, <span class="string">""</span>);</pre></td></tr> -<tr> <td class="numLineCover"> 172</td> <td class="nbHitsUncovered"><a title="Line 172: Conditional coverage 50% (1/2)."> 19</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 172: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (createTables) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 173</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  createTables();</span></pre></td></tr> -<tr> <td class="numLine"> 174</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 175</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 176</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 177</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 178</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Commits all completed transactions.</span></pre></td></tr> -<tr> <td class="numLine"> 179</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 180</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws SQLException thrown if a SQL Exception occurs</span></pre></td></tr> -<tr> <td class="numLine"> 181</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 182</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> commit() <span class="keyword">throws</span> SQLException {</pre></td></tr> -<tr> <td class="numLineCover"> 183</td> <td class="nbHitsUncovered"><a title="Line 183: Conditional coverage 50% (1/2)."> 1</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 183: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (conn != <span class="keyword">null</span>) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 184</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  conn.commit();</pre></td></tr> -<tr> <td class="numLine"> 185</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 186</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 187</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 188</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 189</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Cleans up the object and ensures that "close" has been called.</span></pre></td></tr> -<tr> <td class="numLine"> 190</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 191</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws Throwable thrown if there is a problem</span></pre></td></tr> -<tr> <td class="numLine"> 192</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 193</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  @Override</pre></td></tr> -<tr> <td class="numLine"> 194</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">protected</span> <span class="keyword">void</span> finalize() <span class="keyword">throws</span> Throwable {</pre></td></tr> -<tr> <td class="numLineCover"> 195</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  close();</pre></td></tr> -<tr> <td class="numLineCover"> 196</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  <span class="keyword">super</span>.finalize(); <span class="comment">//not necessary if extending Object.</span></pre></td></tr> -<tr> <td class="numLineCover"> 197</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 198</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 199</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 200</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Closes the DB4O database. Close should be called on this object when it</span></pre></td></tr> -<tr> <td class="numLine"> 201</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * is done being used.</span></pre></td></tr> -<tr> <td class="numLine"> 202</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 203</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> close() {</pre></td></tr> -<tr> <td class="numLineCover"> 204</td> <td class="nbHitsCovered"><a title="Line 204: Conditional coverage 100% (2/2)."> 31</a></td> <td class="src"><pre class="src"> <a title="Line 204: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (conn != <span class="keyword">null</span>) {</a></pre></td></tr> -<tr> <td class="numLine"> 205</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 206</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  conn.close();</pre></td></tr> -<tr> <td class="numLineCover"> 207</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 208</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <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"> 209</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(CveDB.<span class="keyword">class</span>.getName()).log(Level.SEVERE, msg, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 210</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  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"> 211</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 212</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  conn = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLine"> 213</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 214</td> <td class="nbHitsCovered"> 31</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 215</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 216</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 217</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 136</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Searches the CPE entries in the database and retrieves all entries for a</span></pre></td></tr> -<tr> <td class="numLine"> 218</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 137</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * given vendor and product combination. The returned list will include all</span></pre></td></tr> -<tr> <td class="numLine"> 219</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 138</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * versions of the product that are registered in the NVD CVE data.</span></pre></td></tr> -<tr> <td class="numLine"> 220</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 139</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 221</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 140</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param vendor the identified vendor name of the dependency being analyzed</span></pre></td></tr> -<tr> <td class="numLine"> 222</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 141</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param product the identified name of the product of the dependency being</span></pre></td></tr> -<tr> <td class="numLine"> 223</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 142</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * analyzed</span></pre></td></tr> -<tr> <td class="numLine"> 224</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 143</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return a set of vulnerable software</span></pre></td></tr> -<tr> <td class="numLine"> 225</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 144</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 226</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 145</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> Set<VulnerableSoftware> getCPEs(String vendor, String product) {</pre></td></tr> -<tr> <td class="numLineCover"> 227</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src">  <span class="keyword">final</span> Set<VulnerableSoftware> cpe = <span class="keyword">new</span> HashSet<VulnerableSoftware>();</pre></td></tr> -<tr> <td class="numLineCover"> 228</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src">  ResultSet rs = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 229</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src">  PreparedStatement ps = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLine"> 230</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 146</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src">  <span class="keyword">final</span> Set<VulnerableSoftware> cpe = <span class="keyword">new</span> HashSet<VulnerableSoftware>();</pre></td></tr> +<tr> <td class="numLineCover"> 147</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src">  ResultSet rs = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 148</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src">  PreparedStatement ps = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLine"> 149</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 231</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src">  ps = conn.prepareStatement(SELECT_CPE_ENTRIES);</pre></td></tr> -<tr> <td class="numLineCover"> 232</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src">  ps.setString(1, vendor);</pre></td></tr> -<tr> <td class="numLineCover"> 233</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src">  ps.setString(2, product);</pre></td></tr> -<tr> <td class="numLineCover"> 234</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src">  rs = ps.executeQuery();</pre></td></tr> -<tr> <td class="numLine"> 235</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 150</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src">  ps = getConnection().prepareStatement(SELECT_CPE_ENTRIES);</pre></td></tr> +<tr> <td class="numLineCover"> 151</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src">  ps.setString(1, vendor);</pre></td></tr> +<tr> <td class="numLineCover"> 152</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src">  ps.setString(2, product);</pre></td></tr> +<tr> <td class="numLineCover"> 153</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src">  rs = ps.executeQuery();</pre></td></tr> +<tr> <td class="numLine"> 154</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 236</td> <td class="nbHitsCovered"><a title="Line 236: Conditional coverage 100% (2/2)."> 4454</a></td> <td class="src"><pre class="src"> <a title="Line 236: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rs.next()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 237</td> <td class="nbHitsCovered"> 4382</td> <td class="src"><pre class="src">  <span class="keyword">final</span> VulnerableSoftware vs = <span class="keyword">new</span> VulnerableSoftware();</pre></td></tr> -<tr> <td class="numLineCover"> 238</td> <td class="nbHitsCovered"> 4382</td> <td class="src"><pre class="src">  vs.setCpe(rs.getString(1));</pre></td></tr> -<tr> <td class="numLineCover"> 239</td> <td class="nbHitsCovered"> 4382</td> <td class="src"><pre class="src">  cpe.add(vs);</pre></td></tr> -<tr> <td class="numLineCover"> 240</td> <td class="nbHitsCovered"> 4382</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 241</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 242</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(CveDB.<span class="keyword">class</span>.getName()).log(Level.SEVERE, <span class="keyword">null</span>, ex);</span></pre></td></tr> -<tr> <td class="numLine"> 243</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 155</td> <td class="nbHitsCovered"><a title="Line 155: Conditional coverage 100% (2/2)."> 4462</a></td> <td class="src"><pre class="src"> <a title="Line 155: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rs.next()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 156</td> <td class="nbHitsCovered"> 4390</td> <td class="src"><pre class="src">  <span class="keyword">final</span> VulnerableSoftware vs = <span class="keyword">new</span> VulnerableSoftware();</pre></td></tr> +<tr> <td class="numLineCover"> 157</td> <td class="nbHitsCovered"> 4390</td> <td class="src"><pre class="src">  vs.setCpe(rs.getString(1));</pre></td></tr> +<tr> <td class="numLineCover"> 158</td> <td class="nbHitsCovered"> 4390</td> <td class="src"><pre class="src">  cpe.add(vs);</pre></td></tr> +<tr> <td class="numLineCover"> 159</td> <td class="nbHitsCovered"> 4390</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 160</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 161</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(CveDB.<span class="keyword">class</span>.getName()).log(Level.SEVERE, <span class="keyword">null</span>, ex);</span></pre></td></tr> +<tr> <td class="numLine"> 162</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  } <span class="keyword">finally</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 244</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src">  closeResultSet(rs);</pre></td></tr> -<tr> <td class="numLineCover"> 245</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src">  closeStatement(ps);</pre></td></tr> -<tr> <td class="numLineCover"> 246</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 247</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src">  <span class="keyword">return</span> cpe;</pre></td></tr> -<tr> <td class="numLine"> 248</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 163</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src">  closeResultSet(rs);</pre></td></tr> +<tr> <td class="numLineCover"> 164</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src">  closeStatement(ps);</pre></td></tr> +<tr> <td class="numLineCover"> 165</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 166</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src">  <span class="keyword">return</span> cpe;</pre></td></tr> +<tr> <td class="numLine"> 167</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 249</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 168</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 250</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 169</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 251</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 170</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Returns the entire list of vendor/product combinations.</span></pre></td></tr> +<tr> <td class="numLine"> 171</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 172</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @return the entire list of vendor/product combinations.</span></pre></td></tr> +<tr> <td class="numLine"> 173</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 174</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> ResultSet getVendorProductList() {</pre></td></tr> +<tr> <td class="numLineCover"> 175</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src">  ResultSet rs = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLine"> 176</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 177</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src">  <span class="keyword">final</span> PreparedStatement ps = getConnection().prepareStatement(SELECT_VENDOR_PRODUCT_LIST);</pre></td></tr> +<tr> <td class="numLineCover"> 178</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src">  rs = ps.executeQuery();</pre></td></tr> +<tr> <td class="numLineCover"> 179</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 180</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(CveDB.<span class="keyword">class</span>.getName()).log(Level.SEVERE, <span class="keyword">null</span>, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 181</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src">  } <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"> 182</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src">  <span class="keyword">return</span> rs;</pre></td></tr> +<tr> <td class="numLine"> 183</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 184</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 185</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 186</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Retrieves the vulnerabilities associated with the specified CPE.</span></pre></td></tr> -<tr> <td class="numLine"> 252</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 187</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 253</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 188</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param cpeStr the CPE name</span></pre></td></tr> -<tr> <td class="numLine"> 254</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 189</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return a list of Vulnerabilities</span></pre></td></tr> -<tr> <td class="numLine"> 255</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 190</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws DatabaseException thrown if there is an exception retrieving data</span></pre></td></tr> -<tr> <td class="numLine"> 256</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 191</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 257</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 192</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> List<Vulnerability> getVulnerabilities(String cpeStr) <span class="keyword">throws</span> DatabaseException {</pre></td></tr> -<tr> <td class="numLineCover"> 258</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  ResultSet rs = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 259</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  <span class="keyword">final</span> VulnerableSoftware cpe = <span class="keyword">new</span> VulnerableSoftware();</pre></td></tr> -<tr> <td class="numLine"> 260</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 193</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  ResultSet rs = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 194</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  <span class="keyword">final</span> VulnerableSoftware cpe = <span class="keyword">new</span> VulnerableSoftware();</pre></td></tr> +<tr> <td class="numLine"> 195</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 261</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  cpe.parseName(cpeStr);</pre></td></tr> -<tr> <td class="numLineCover"> 262</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (UnsupportedEncodingException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 263</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  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"> 264</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 265</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  <span class="keyword">final</span> DependencyVersion detectedVersion = parseDependencyVersion(cpe);</pre></td></tr> -<tr> <td class="numLineCover"> 266</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  <span class="keyword">final</span> List<Vulnerability> vulnerabilities = <span class="keyword">new</span> ArrayList<Vulnerability>();</pre></td></tr> -<tr> <td class="numLine"> 267</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 196</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  cpe.parseName(cpeStr);</pre></td></tr> +<tr> <td class="numLineCover"> 197</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (UnsupportedEncodingException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 198</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.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"> 199</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 200</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  <span class="keyword">final</span> DependencyVersion detectedVersion = parseDependencyVersion(cpe);</pre></td></tr> +<tr> <td class="numLineCover"> 201</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  <span class="keyword">final</span> List<Vulnerability> vulnerabilities = <span class="keyword">new</span> ArrayList<Vulnerability>();</pre></td></tr> +<tr> <td class="numLine"> 202</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 268</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 203</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  PreparedStatement ps;</pre></td></tr> -<tr> <td class="numLineCover"> 269</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  <span class="keyword">final</span> HashSet<String> cveEntries = <span class="keyword">new</span> HashSet<String>();</pre></td></tr> -<tr> <td class="numLine"> 270</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 204</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  <span class="keyword">final</span> HashSet<String> cveEntries = <span class="keyword">new</span> HashSet<String>();</pre></td></tr> +<tr> <td class="numLine"> 205</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 271</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  ps = conn.prepareStatement(SELECT_CVE_FROM_SOFTWARE);</pre></td></tr> -<tr> <td class="numLineCover"> 272</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  ps.setString(1, cpe.getVendor());</pre></td></tr> -<tr> <td class="numLineCover"> 273</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  ps.setString(2, cpe.getProduct());</pre></td></tr> -<tr> <td class="numLineCover"> 274</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  rs = ps.executeQuery();</pre></td></tr> -<tr> <td class="numLineCover"> 275</td> <td class="nbHitsCovered"><a title="Line 275: Conditional coverage 100% (2/2)."> 4500</a></td> <td class="src"><pre class="src"> <a title="Line 275: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rs.next()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 276</td> <td class="nbHitsCovered"> 4488</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String cveId = rs.getString(1);</pre></td></tr> -<tr> <td class="numLineCover"> 277</td> <td class="nbHitsCovered"> 4488</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String cpeId = rs.getString(2);</pre></td></tr> -<tr> <td class="numLineCover"> 278</td> <td class="nbHitsCovered"> 4488</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String previous = rs.getString(3);</pre></td></tr> -<tr> <td class="numLineCover"> 279</td> <td class="nbHitsCovered"><a title="Line 279: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 4488</a></td> <td class="src"><pre class="src"> <a title="Line 279: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (!cveEntries.contains(cveId) && isAffected(cpe.getVendor(), cpe.getProduct(), detectedVersion, cpeId, previous)) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 280</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  cveEntries.add(cveId);</pre></td></tr> -<tr> <td class="numLine"> 281</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 206</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  ps = getConnection().prepareStatement(SELECT_CVE_FROM_SOFTWARE);</pre></td></tr> +<tr> <td class="numLineCover"> 207</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  ps.setString(1, cpe.getVendor());</pre></td></tr> +<tr> <td class="numLineCover"> 208</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  ps.setString(2, cpe.getProduct());</pre></td></tr> +<tr> <td class="numLineCover"> 209</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  rs = ps.executeQuery();</pre></td></tr> +<tr> <td class="numLineCover"> 210</td> <td class="nbHitsCovered"><a title="Line 210: Conditional coverage 100% (2/2)."> 4591</a></td> <td class="src"><pre class="src"> <a title="Line 210: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rs.next()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 211</td> <td class="nbHitsCovered"> 4579</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String cveId = rs.getString(1);</pre></td></tr> +<tr> <td class="numLineCover"> 212</td> <td class="nbHitsCovered"> 4579</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String cpeId = rs.getString(2);</pre></td></tr> +<tr> <td class="numLineCover"> 213</td> <td class="nbHitsCovered"> 4579</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String previous = rs.getString(3);</pre></td></tr> +<tr> <td class="numLineCover"> 214</td> <td class="nbHitsCovered"><a title="Line 214: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 4579</a></td> <td class="src"><pre class="src"> <a title="Line 214: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (!cveEntries.contains(cveId) && isAffected(cpe.getVendor(), cpe.getProduct(), detectedVersion, cpeId, previous)) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 215</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  cveEntries.add(cveId);</pre></td></tr> +<tr> <td class="numLine"> 216</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 282</td> <td class="nbHitsCovered"> 4488</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 283</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  closeResultSet(rs);</pre></td></tr> -<tr> <td class="numLineCover"> 284</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  closeStatement(ps);</pre></td></tr> -<tr> <td class="numLineCover"> 285</td> <td class="nbHitsCovered"><a title="Line 285: Conditional coverage 100% (2/2)."> 12</a></td> <td class="src"><pre class="src"> <a title="Line 285: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (String cve : cveEntries) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 286</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  <span class="keyword">final</span> Vulnerability v = getVulnerability(cve);</pre></td></tr> -<tr> <td class="numLineCover"> 287</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  vulnerabilities.add(v);</pre></td></tr> -<tr> <td class="numLineCover"> 288</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 289</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 217</td> <td class="nbHitsCovered"> 4579</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 218</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  closeResultSet(rs);</pre></td></tr> +<tr> <td class="numLineCover"> 219</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  closeStatement(ps);</pre></td></tr> +<tr> <td class="numLineCover"> 220</td> <td class="nbHitsCovered"><a title="Line 220: Conditional coverage 100% (2/2)."> 12</a></td> <td class="src"><pre class="src"> <a title="Line 220: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (String cve : cveEntries) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 221</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  <span class="keyword">final</span> Vulnerability v = getVulnerability(cve);</pre></td></tr> +<tr> <td class="numLineCover"> 222</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  vulnerabilities.add(v);</pre></td></tr> +<tr> <td class="numLineCover"> 223</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 224</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 290</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 291</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> DatabaseException(<span class="string">"Exception retrieving vulnerability for "</span> + cpeStr, ex);</span></pre></td></tr> -<tr> <td class="numLine"> 292</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 225</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 226</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> DatabaseException(<span class="string">"Exception retrieving vulnerability for "</span> + cpeStr, ex);</span></pre></td></tr> +<tr> <td class="numLine"> 227</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  } <span class="keyword">finally</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 293</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  closeResultSet(rs);</pre></td></tr> -<tr> <td class="numLineCover"> 294</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 295</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  <span class="keyword">return</span> vulnerabilities;</pre></td></tr> -<tr> <td class="numLine"> 296</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 228</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  closeResultSet(rs);</pre></td></tr> +<tr> <td class="numLineCover"> 229</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 230</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  <span class="keyword">return</span> vulnerabilities;</pre></td></tr> +<tr> <td class="numLine"> 231</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 297</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 232</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 298</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 233</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 299</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 234</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Gets a vulnerability for the provided CVE.</span></pre></td></tr> -<tr> <td class="numLine"> 300</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 235</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 301</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 236</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param cve the CVE to lookup</span></pre></td></tr> -<tr> <td class="numLine"> 302</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 237</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return a vulnerability object</span></pre></td></tr> -<tr> <td class="numLine"> 303</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 238</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws DatabaseException if an exception occurs</span></pre></td></tr> -<tr> <td class="numLine"> 304</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 239</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 305</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 240</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">private</span> Vulnerability getVulnerability(String cve) <span class="keyword">throws</span> DatabaseException {</pre></td></tr> -<tr> <td class="numLineCover"> 306</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  PreparedStatement psV = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 307</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  PreparedStatement psR = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 308</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  PreparedStatement psS = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 309</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  ResultSet rsV = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 310</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  ResultSet rsR = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 311</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  ResultSet rsS = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 312</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  Vulnerability vuln = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLine"> 313</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 241</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  PreparedStatement psV = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 242</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  PreparedStatement psR = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 243</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  PreparedStatement psS = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 244</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  ResultSet rsV = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 245</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  ResultSet rsR = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 246</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  ResultSet rsS = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 247</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  Vulnerability vuln = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLine"> 248</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 314</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  psV = conn.prepareStatement(SELECT_VULNERABILITY);</pre></td></tr> -<tr> <td class="numLineCover"> 315</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  psV.setString(1, cve);</pre></td></tr> -<tr> <td class="numLineCover"> 316</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  rsV = psV.executeQuery();</pre></td></tr> -<tr> <td class="numLineCover"> 317</td> <td class="nbHitsUncovered"><a title="Line 317: Conditional coverage 50% (1/2)."> 59</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 317: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (rsV.next()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 318</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  vuln = <span class="keyword">new</span> Vulnerability();</pre></td></tr> -<tr> <td class="numLineCover"> 319</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  vuln.setName(cve);</pre></td></tr> -<tr> <td class="numLineCover"> 320</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  vuln.setDescription(rsV.getString(2));</pre></td></tr> -<tr> <td class="numLineCover"> 321</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  String cwe = rsV.getString(3);</pre></td></tr> -<tr> <td class="numLineCover"> 322</td> <td class="nbHitsCovered"><a title="Line 322: Conditional coverage 100% (2/2)."> 59</a></td> <td class="src"><pre class="src"> <a title="Line 322: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (cwe != <span class="keyword">null</span>) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 323</td> <td class="nbHitsCovered"> 48</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String name = CweDB.getCweName(cwe);</pre></td></tr> -<tr> <td class="numLineCover"> 324</td> <td class="nbHitsCovered"><a title="Line 324: Conditional coverage 100% (2/2)."> 48</a></td> <td class="src"><pre class="src"> <a title="Line 324: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (name != <span class="keyword">null</span>) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 325</td> <td class="nbHitsCovered"> 46</td> <td class="src"><pre class="src">  cwe += <span class="string">" "</span> + name;</pre></td></tr> -<tr> <td class="numLine"> 326</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 249</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  psV = getConnection().prepareStatement(SELECT_VULNERABILITY);</pre></td></tr> +<tr> <td class="numLineCover"> 250</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  psV.setString(1, cve);</pre></td></tr> +<tr> <td class="numLineCover"> 251</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  rsV = psV.executeQuery();</pre></td></tr> +<tr> <td class="numLineCover"> 252</td> <td class="nbHitsUncovered"><a title="Line 252: Conditional coverage 50% (1/2)."> 61</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 252: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (rsV.next()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 253</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  vuln = <span class="keyword">new</span> Vulnerability();</pre></td></tr> +<tr> <td class="numLineCover"> 254</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  vuln.setName(cve);</pre></td></tr> +<tr> <td class="numLineCover"> 255</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  vuln.setDescription(rsV.getString(2));</pre></td></tr> +<tr> <td class="numLineCover"> 256</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  String cwe = rsV.getString(3);</pre></td></tr> +<tr> <td class="numLineCover"> 257</td> <td class="nbHitsCovered"><a title="Line 257: Conditional coverage 100% (2/2)."> 61</a></td> <td class="src"><pre class="src"> <a title="Line 257: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (cwe != <span class="keyword">null</span>) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 258</td> <td class="nbHitsCovered"> 50</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String name = CweDB.getCweName(cwe);</pre></td></tr> +<tr> <td class="numLineCover"> 259</td> <td class="nbHitsCovered"><a title="Line 259: Conditional coverage 100% (2/2)."> 50</a></td> <td class="src"><pre class="src"> <a title="Line 259: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (name != <span class="keyword">null</span>) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 260</td> <td class="nbHitsCovered"> 48</td> <td class="src"><pre class="src">  cwe += <span class="string">" "</span> + name;</pre></td></tr> +<tr> <td class="numLine"> 261</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 327</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 262</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 328</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  <span class="keyword">final</span> <span class="keyword">int</span> cveId = rsV.getInt(1);</pre></td></tr> -<tr> <td class="numLineCover"> 329</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  vuln.setCwe(cwe);</pre></td></tr> -<tr> <td class="numLineCover"> 330</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  vuln.setCvssScore(rsV.getFloat(4));</pre></td></tr> -<tr> <td class="numLineCover"> 331</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  vuln.setCvssAccessVector(rsV.getString(5));</pre></td></tr> -<tr> <td class="numLineCover"> 332</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  vuln.setCvssAccessComplexity(rsV.getString(6));</pre></td></tr> -<tr> <td class="numLineCover"> 333</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  vuln.setCvssAuthentication(rsV.getString(7));</pre></td></tr> -<tr> <td class="numLineCover"> 334</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  vuln.setCvssConfidentialityImpact(rsV.getString(8));</pre></td></tr> -<tr> <td class="numLineCover"> 335</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  vuln.setCvssIntegrityImpact(rsV.getString(9));</pre></td></tr> -<tr> <td class="numLineCover"> 336</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  vuln.setCvssAvailabilityImpact(rsV.getString(10));</pre></td></tr> -<tr> <td class="numLine"> 337</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 263</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  <span class="keyword">final</span> <span class="keyword">int</span> cveId = rsV.getInt(1);</pre></td></tr> +<tr> <td class="numLineCover"> 264</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  vuln.setCwe(cwe);</pre></td></tr> +<tr> <td class="numLineCover"> 265</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  vuln.setCvssScore(rsV.getFloat(4));</pre></td></tr> +<tr> <td class="numLineCover"> 266</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  vuln.setCvssAccessVector(rsV.getString(5));</pre></td></tr> +<tr> <td class="numLineCover"> 267</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  vuln.setCvssAccessComplexity(rsV.getString(6));</pre></td></tr> +<tr> <td class="numLineCover"> 268</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  vuln.setCvssAuthentication(rsV.getString(7));</pre></td></tr> +<tr> <td class="numLineCover"> 269</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  vuln.setCvssConfidentialityImpact(rsV.getString(8));</pre></td></tr> +<tr> <td class="numLineCover"> 270</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  vuln.setCvssIntegrityImpact(rsV.getString(9));</pre></td></tr> +<tr> <td class="numLineCover"> 271</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  vuln.setCvssAvailabilityImpact(rsV.getString(10));</pre></td></tr> +<tr> <td class="numLine"> 272</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 338</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  psR = conn.prepareStatement(SELECT_REFERENCE);</pre></td></tr> -<tr> <td class="numLineCover"> 339</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  psR.setInt(1, cveId);</pre></td></tr> -<tr> <td class="numLineCover"> 340</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  rsR = psR.executeQuery();</pre></td></tr> -<tr> <td class="numLineCover"> 341</td> <td class="nbHitsCovered"><a title="Line 341: Conditional coverage 100% (2/2)."> 460</a></td> <td class="src"><pre class="src"> <a title="Line 341: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rsR.next()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 342</td> <td class="nbHitsCovered"> 401</td> <td class="src"><pre class="src">  vuln.addReference(rsR.getString(1), rsR.getString(2), rsR.getString(3));</pre></td></tr> -<tr> <td class="numLine"> 343</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 273</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  psR = getConnection().prepareStatement(SELECT_REFERENCE);</pre></td></tr> +<tr> <td class="numLineCover"> 274</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  psR.setInt(1, cveId);</pre></td></tr> +<tr> <td class="numLineCover"> 275</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  rsR = psR.executeQuery();</pre></td></tr> +<tr> <td class="numLineCover"> 276</td> <td class="nbHitsCovered"><a title="Line 276: Conditional coverage 100% (2/2)."> 477</a></td> <td class="src"><pre class="src"> <a title="Line 276: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rsR.next()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 277</td> <td class="nbHitsCovered"> 416</td> <td class="src"><pre class="src">  vuln.addReference(rsR.getString(1), rsR.getString(2), rsR.getString(3));</pre></td></tr> +<tr> <td class="numLine"> 278</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 344</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  psS = conn.prepareStatement(SELECT_SOFTWARE);</pre></td></tr> -<tr> <td class="numLineCover"> 345</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  psS.setInt(1, cveId);</pre></td></tr> -<tr> <td class="numLineCover"> 346</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  rsS = psS.executeQuery();</pre></td></tr> -<tr> <td class="numLineCover"> 347</td> <td class="nbHitsCovered"><a title="Line 347: Conditional coverage 100% (2/2)."> 2673</a></td> <td class="src"><pre class="src"> <a title="Line 347: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rsS.next()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 348</td> <td class="nbHitsCovered"> 2614</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String cpe = rsS.getString(1);</pre></td></tr> -<tr> <td class="numLineCover"> 349</td> <td class="nbHitsCovered"> 2614</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String prevVersion = rsS.getString(2);</pre></td></tr> -<tr> <td class="numLineCover"> 350</td> <td class="nbHitsCovered"><a title="Line 350: Conditional coverage 100% (2/2)."> 2614</a></td> <td class="src"><pre class="src"> <a title="Line 350: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (prevVersion == <span class="keyword">null</span>) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 351</td> <td class="nbHitsCovered"> 2572</td> <td class="src"><pre class="src">  vuln.addVulnerableSoftware(cpe);</pre></td></tr> -<tr> <td class="numLine"> 352</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 279</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  psS = getConnection().prepareStatement(SELECT_SOFTWARE);</pre></td></tr> +<tr> <td class="numLineCover"> 280</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  psS.setInt(1, cveId);</pre></td></tr> +<tr> <td class="numLineCover"> 281</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  rsS = psS.executeQuery();</pre></td></tr> +<tr> <td class="numLineCover"> 282</td> <td class="nbHitsCovered"><a title="Line 282: Conditional coverage 100% (2/2)."> 2765</a></td> <td class="src"><pre class="src"> <a title="Line 282: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (rsS.next()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 283</td> <td class="nbHitsCovered"> 2704</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String cpe = rsS.getString(1);</pre></td></tr> +<tr> <td class="numLineCover"> 284</td> <td class="nbHitsCovered"> 2704</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String prevVersion = rsS.getString(2);</pre></td></tr> +<tr> <td class="numLineCover"> 285</td> <td class="nbHitsCovered"><a title="Line 285: Conditional coverage 100% (2/2)."> 2704</a></td> <td class="src"><pre class="src"> <a title="Line 285: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (prevVersion == <span class="keyword">null</span>) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 286</td> <td class="nbHitsCovered"> 2662</td> <td class="src"><pre class="src">  vuln.addVulnerableSoftware(cpe);</pre></td></tr> +<tr> <td class="numLine"> 287</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 353</td> <td class="nbHitsCovered"> 42</td> <td class="src"><pre class="src">  vuln.addVulnerableSoftware(cpe, prevVersion);</pre></td></tr> -<tr> <td class="numLine"> 354</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 288</td> <td class="nbHitsCovered"> 42</td> <td class="src"><pre class="src">  vuln.addVulnerableSoftware(cpe, prevVersion);</pre></td></tr> +<tr> <td class="numLine"> 289</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 355</td> <td class="nbHitsCovered"> 2614</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 356</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 290</td> <td class="nbHitsCovered"> 2704</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 291</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 357</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 358</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> DatabaseException(<span class="string">"Error retrieving "</span> + cve, ex);</span></pre></td></tr> -<tr> <td class="numLine"> 359</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 292</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 293</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> DatabaseException(<span class="string">"Error retrieving "</span> + cve, ex);</span></pre></td></tr> +<tr> <td class="numLine"> 294</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  } <span class="keyword">finally</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 360</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  closeResultSet(rsV);</pre></td></tr> -<tr> <td class="numLineCover"> 361</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  closeResultSet(rsR);</pre></td></tr> -<tr> <td class="numLineCover"> 362</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  closeResultSet(rsS);</pre></td></tr> -<tr> <td class="numLineCover"> 363</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  closeStatement(psV);</pre></td></tr> -<tr> <td class="numLineCover"> 364</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  closeStatement(psR);</pre></td></tr> -<tr> <td class="numLineCover"> 365</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  closeStatement(psS);</pre></td></tr> -<tr> <td class="numLineCover"> 366</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 367</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  <span class="keyword">return</span> vuln;</pre></td></tr> -<tr> <td class="numLine"> 368</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 295</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  closeResultSet(rsV);</pre></td></tr> +<tr> <td class="numLineCover"> 296</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  closeResultSet(rsR);</pre></td></tr> +<tr> <td class="numLineCover"> 297</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  closeResultSet(rsS);</pre></td></tr> +<tr> <td class="numLineCover"> 298</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  closeStatement(psV);</pre></td></tr> +<tr> <td class="numLineCover"> 299</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  closeStatement(psR);</pre></td></tr> +<tr> <td class="numLineCover"> 300</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  closeStatement(psS);</pre></td></tr> +<tr> <td class="numLineCover"> 301</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 302</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src">  <span class="keyword">return</span> vuln;</pre></td></tr> +<tr> <td class="numLine"> 303</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 369</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 304</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 370</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 305</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 371</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 306</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Updates the vulnerability within the database. If the vulnerability does</span></pre></td></tr> -<tr> <td class="numLine"> 372</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 307</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * not exist it will be added.</span></pre></td></tr> -<tr> <td class="numLine"> 373</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 308</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 374</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 309</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param vuln the vulnerability to add to the database</span></pre></td></tr> -<tr> <td class="numLine"> 375</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 310</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws DatabaseException is thrown if the database</span></pre></td></tr> -<tr> <td class="numLine"> 376</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 311</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 377</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 312</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> updateVulnerability(Vulnerability vuln) <span class="keyword">throws</span> DatabaseException {</pre></td></tr> -<tr> <td class="numLineCover"> 378</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  PreparedStatement selectVulnerabilityId = <span class="keyword">null</span>;</span></pre></td></tr> -<tr> <td class="numLineCover"> 379</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  PreparedStatement deleteReferences = <span class="keyword">null</span>;</span></pre></td></tr> -<tr> <td class="numLineCover"> 380</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  PreparedStatement deleteSoftware = <span class="keyword">null</span>;</span></pre></td></tr> -<tr> <td class="numLineCover"> 381</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  PreparedStatement updateVulnerability = <span class="keyword">null</span>;</span></pre></td></tr> -<tr> <td class="numLineCover"> 382</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  PreparedStatement insertVulnerability = <span class="keyword">null</span>;</span></pre></td></tr> -<tr> <td class="numLineCover"> 383</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  PreparedStatement insertReference = <span class="keyword">null</span>;</span></pre></td></tr> -<tr> <td class="numLineCover"> 384</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  PreparedStatement selectCpeId = <span class="keyword">null</span>;</span></pre></td></tr> -<tr> <td class="numLineCover"> 385</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  PreparedStatement insertCpe = <span class="keyword">null</span>;</span></pre></td></tr> -<tr> <td class="numLineCover"> 386</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  PreparedStatement insertSoftware = <span class="keyword">null</span>;</span></pre></td></tr> -<tr> <td class="numLine"> 387</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 313</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  PreparedStatement selectVulnerabilityId = <span class="keyword">null</span>;</span></pre></td></tr> +<tr> <td class="numLineCover"> 314</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  PreparedStatement deleteVulnerability = <span class="keyword">null</span>;</span></pre></td></tr> +<tr> <td class="numLineCover"> 315</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  PreparedStatement deleteReferences = <span class="keyword">null</span>;</span></pre></td></tr> +<tr> <td class="numLineCover"> 316</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  PreparedStatement deleteSoftware = <span class="keyword">null</span>;</span></pre></td></tr> +<tr> <td class="numLineCover"> 317</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  PreparedStatement updateVulnerability = <span class="keyword">null</span>;</span></pre></td></tr> +<tr> <td class="numLineCover"> 318</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  PreparedStatement insertVulnerability = <span class="keyword">null</span>;</span></pre></td></tr> +<tr> <td class="numLineCover"> 319</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  PreparedStatement insertReference = <span class="keyword">null</span>;</span></pre></td></tr> +<tr> <td class="numLineCover"> 320</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  PreparedStatement selectCpeId = <span class="keyword">null</span>;</span></pre></td></tr> +<tr> <td class="numLineCover"> 321</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  PreparedStatement insertCpe = <span class="keyword">null</span>;</span></pre></td></tr> +<tr> <td class="numLineCover"> 322</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  PreparedStatement insertSoftware = <span class="keyword">null</span>;</span></pre></td></tr> +<tr> <td class="numLine"> 323</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 388</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 324</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 389</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  selectVulnerabilityId = conn.prepareStatement(SELECT_VULNERABILITY_ID);</span></pre></td></tr> -<tr> <td class="numLineCover"> 390</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  deleteReferences = conn.prepareStatement(DELETE_REFERENCE);</span></pre></td></tr> -<tr> <td class="numLineCover"> 391</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  deleteSoftware = conn.prepareStatement(DELETE_SOFTWARE);</span></pre></td></tr> -<tr> <td class="numLineCover"> 392</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updateVulnerability = conn.prepareStatement(UPDATE_VULNERABILITY);</span></pre></td></tr> -<tr> <td class="numLineCover"> 393</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertVulnerability = conn.prepareStatement(INSERT_VULNERABILITY, Statement.RETURN_GENERATED_KEYS);</span></pre></td></tr> -<tr> <td class="numLineCover"> 394</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertReference = conn.prepareStatement(INSERT_REFERENCE);</span></pre></td></tr> -<tr> <td class="numLineCover"> 395</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  selectCpeId = conn.prepareStatement(SELECT_CPE_ID);</span></pre></td></tr> -<tr> <td class="numLineCover"> 396</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertCpe = conn.prepareStatement(INSERT_CPE, Statement.RETURN_GENERATED_KEYS);</span></pre></td></tr> -<tr> <td class="numLineCover"> 397</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertSoftware = conn.prepareStatement(INSERT_SOFTWARE);</span></pre></td></tr> -<tr> <td class="numLineCover"> 398</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">int</span> vulnerabilityId = 0;</span></pre></td></tr> -<tr> <td class="numLineCover"> 399</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  selectVulnerabilityId.setString(1, vuln.getName());</span></pre></td></tr> -<tr> <td class="numLineCover"> 400</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  ResultSet rs = selectVulnerabilityId.executeQuery();</span></pre></td></tr> -<tr> <td class="numLineCover"> 401</td> <td class="nbHitsUncovered"><a title="Line 401: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 401: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (rs.next()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 402</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  vulnerabilityId = rs.getInt(1);</span></pre></td></tr> -<tr> <td class="numLine"> 403</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 325</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  selectVulnerabilityId = getConnection().prepareStatement(SELECT_VULNERABILITY_ID);</span></pre></td></tr> +<tr> <td class="numLineCover"> 326</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  deleteVulnerability = getConnection().prepareStatement(DELETE_VULNERABILITY);</span></pre></td></tr> +<tr> <td class="numLineCover"> 327</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  deleteReferences = getConnection().prepareStatement(DELETE_REFERENCE);</span></pre></td></tr> +<tr> <td class="numLineCover"> 328</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  deleteSoftware = getConnection().prepareStatement(DELETE_SOFTWARE);</span></pre></td></tr> +<tr> <td class="numLineCover"> 329</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updateVulnerability = getConnection().prepareStatement(UPDATE_VULNERABILITY);</span></pre></td></tr> +<tr> <td class="numLineCover"> 330</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertVulnerability = getConnection().prepareStatement(INSERT_VULNERABILITY, Statement.RETURN_GENERATED_KEYS);</span></pre></td></tr> +<tr> <td class="numLineCover"> 331</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertReference = getConnection().prepareStatement(INSERT_REFERENCE);</span></pre></td></tr> +<tr> <td class="numLineCover"> 332</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  selectCpeId = getConnection().prepareStatement(SELECT_CPE_ID);</span></pre></td></tr> +<tr> <td class="numLineCover"> 333</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertCpe = getConnection().prepareStatement(INSERT_CPE, Statement.RETURN_GENERATED_KEYS);</span></pre></td></tr> +<tr> <td class="numLineCover"> 334</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertSoftware = getConnection().prepareStatement(INSERT_SOFTWARE);</span></pre></td></tr> +<tr> <td class="numLineCover"> 335</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">int</span> vulnerabilityId = 0;</span></pre></td></tr> +<tr> <td class="numLineCover"> 336</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  selectVulnerabilityId.setString(1, vuln.getName());</span></pre></td></tr> +<tr> <td class="numLineCover"> 337</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  ResultSet rs = selectVulnerabilityId.executeQuery();</span></pre></td></tr> +<tr> <td class="numLineCover"> 338</td> <td class="nbHitsUncovered"><a title="Line 338: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 338: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (rs.next()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 339</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  vulnerabilityId = rs.getInt(1);</span></pre></td></tr> +<tr> <td class="numLine"> 340</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">// first delete any existing vulnerability info. We don't know what was updated. yes, slower but atm easier.</span></pre></td></tr> -<tr> <td class="numLineCover"> 404</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  deleteReferences.setInt(1, vulnerabilityId);</span></pre></td></tr> -<tr> <td class="numLineCover"> 405</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  deleteReferences.execute();</span></pre></td></tr> -<tr> <td class="numLineCover"> 406</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  deleteSoftware.setInt(1, vulnerabilityId);</span></pre></td></tr> -<tr> <td class="numLineCover"> 407</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  deleteSoftware.execute();</span></pre></td></tr> -<tr> <td class="numLine"> 408</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 341</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  deleteReferences.setInt(1, vulnerabilityId);</span></pre></td></tr> +<tr> <td class="numLineCover"> 342</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  deleteReferences.execute();</span></pre></td></tr> +<tr> <td class="numLineCover"> 343</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  deleteSoftware.setInt(1, vulnerabilityId);</span></pre></td></tr> +<tr> <td class="numLineCover"> 344</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  deleteSoftware.execute();</span></pre></td></tr> +<tr> <td class="numLine"> 345</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 409</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeResultSet(rs);</span></pre></td></tr> -<tr> <td class="numLineCover"> 410</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  rs = <span class="keyword">null</span>;</span></pre></td></tr> -<tr> <td class="numLineCover"> 411</td> <td class="nbHitsUncovered"><a title="Line 411: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 411: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (vulnerabilityId != 0) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 412</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updateVulnerability.setString(1, vuln.getDescription());</span></pre></td></tr> -<tr> <td class="numLineCover"> 413</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updateVulnerability.setString(2, vuln.getCwe());</span></pre></td></tr> -<tr> <td class="numLineCover"> 414</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updateVulnerability.setFloat(3, vuln.getCvssScore());</span></pre></td></tr> -<tr> <td class="numLineCover"> 415</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updateVulnerability.setString(4, vuln.getCvssAccessVector());</span></pre></td></tr> -<tr> <td class="numLineCover"> 416</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updateVulnerability.setString(5, vuln.getCvssAccessComplexity());</span></pre></td></tr> -<tr> <td class="numLineCover"> 417</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updateVulnerability.setString(6, vuln.getCvssAuthentication());</span></pre></td></tr> -<tr> <td class="numLineCover"> 418</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updateVulnerability.setString(7, vuln.getCvssConfidentialityImpact());</span></pre></td></tr> -<tr> <td class="numLineCover"> 419</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updateVulnerability.setString(8, vuln.getCvssIntegrityImpact());</span></pre></td></tr> -<tr> <td class="numLineCover"> 420</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updateVulnerability.setString(9, vuln.getCvssAvailabilityImpact());</span></pre></td></tr> -<tr> <td class="numLineCover"> 421</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updateVulnerability.setInt(10, vulnerabilityId);</span></pre></td></tr> -<tr> <td class="numLineCover"> 422</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updateVulnerability.executeUpdate();</span></pre></td></tr> -<tr> <td class="numLine"> 423</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 346</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeResultSet(rs);</span></pre></td></tr> +<tr> <td class="numLineCover"> 347</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  rs = <span class="keyword">null</span>;</span></pre></td></tr> +<tr> <td class="numLineCover"> 348</td> <td class="nbHitsUncovered"><a title="Line 348: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 348: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (vulnerabilityId != 0) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 349</td> <td class="nbHitsUncovered"><a title="Line 349: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 349: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (vuln.getDescription().contains(<span class="string">"** REJECT **"</span>)) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 350</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  deleteVulnerability.setInt(1, vulnerabilityId);</span></pre></td></tr> +<tr> <td class="numLineCover"> 351</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  deleteVulnerability.executeUpdate();</span></pre></td></tr> +<tr> <td class="numLine"> 352</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 353</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updateVulnerability.setString(1, vuln.getDescription());</span></pre></td></tr> +<tr> <td class="numLineCover"> 354</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updateVulnerability.setString(2, vuln.getCwe());</span></pre></td></tr> +<tr> <td class="numLineCover"> 355</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updateVulnerability.setFloat(3, vuln.getCvssScore());</span></pre></td></tr> +<tr> <td class="numLineCover"> 356</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updateVulnerability.setString(4, vuln.getCvssAccessVector());</span></pre></td></tr> +<tr> <td class="numLineCover"> 357</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updateVulnerability.setString(5, vuln.getCvssAccessComplexity());</span></pre></td></tr> +<tr> <td class="numLineCover"> 358</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updateVulnerability.setString(6, vuln.getCvssAuthentication());</span></pre></td></tr> +<tr> <td class="numLineCover"> 359</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updateVulnerability.setString(7, vuln.getCvssConfidentialityImpact());</span></pre></td></tr> +<tr> <td class="numLineCover"> 360</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updateVulnerability.setString(8, vuln.getCvssIntegrityImpact());</span></pre></td></tr> +<tr> <td class="numLineCover"> 361</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updateVulnerability.setString(9, vuln.getCvssAvailabilityImpact());</span></pre></td></tr> +<tr> <td class="numLineCover"> 362</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updateVulnerability.setInt(10, vulnerabilityId);</span></pre></td></tr> +<tr> <td class="numLineCover"> 363</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updateVulnerability.executeUpdate();</span></pre></td></tr> +<tr> <td class="numLine"> 364</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 365</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 424</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertVulnerability.setString(1, vuln.getName());</span></pre></td></tr> -<tr> <td class="numLineCover"> 425</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertVulnerability.setString(2, vuln.getDescription());</span></pre></td></tr> -<tr> <td class="numLineCover"> 426</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertVulnerability.setString(3, vuln.getCwe());</span></pre></td></tr> -<tr> <td class="numLineCover"> 427</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertVulnerability.setFloat(4, vuln.getCvssScore());</span></pre></td></tr> -<tr> <td class="numLineCover"> 428</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertVulnerability.setString(5, vuln.getCvssAccessVector());</span></pre></td></tr> -<tr> <td class="numLineCover"> 429</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertVulnerability.setString(6, vuln.getCvssAccessComplexity());</span></pre></td></tr> -<tr> <td class="numLineCover"> 430</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertVulnerability.setString(7, vuln.getCvssAuthentication());</span></pre></td></tr> -<tr> <td class="numLineCover"> 431</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertVulnerability.setString(8, vuln.getCvssConfidentialityImpact());</span></pre></td></tr> -<tr> <td class="numLineCover"> 432</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertVulnerability.setString(9, vuln.getCvssIntegrityImpact());</span></pre></td></tr> -<tr> <td class="numLineCover"> 433</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertVulnerability.setString(10, vuln.getCvssAvailabilityImpact());</span></pre></td></tr> -<tr> <td class="numLineCover"> 434</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertVulnerability.execute();</span></pre></td></tr> -<tr> <td class="numLine"> 435</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 366</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertVulnerability.setString(1, vuln.getName());</span></pre></td></tr> +<tr> <td class="numLineCover"> 367</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertVulnerability.setString(2, vuln.getDescription());</span></pre></td></tr> +<tr> <td class="numLineCover"> 368</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertVulnerability.setString(3, vuln.getCwe());</span></pre></td></tr> +<tr> <td class="numLineCover"> 369</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertVulnerability.setFloat(4, vuln.getCvssScore());</span></pre></td></tr> +<tr> <td class="numLineCover"> 370</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertVulnerability.setString(5, vuln.getCvssAccessVector());</span></pre></td></tr> +<tr> <td class="numLineCover"> 371</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertVulnerability.setString(6, vuln.getCvssAccessComplexity());</span></pre></td></tr> +<tr> <td class="numLineCover"> 372</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertVulnerability.setString(7, vuln.getCvssAuthentication());</span></pre></td></tr> +<tr> <td class="numLineCover"> 373</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertVulnerability.setString(8, vuln.getCvssConfidentialityImpact());</span></pre></td></tr> +<tr> <td class="numLineCover"> 374</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertVulnerability.setString(9, vuln.getCvssIntegrityImpact());</span></pre></td></tr> +<tr> <td class="numLineCover"> 375</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertVulnerability.setString(10, vuln.getCvssAvailabilityImpact());</span></pre></td></tr> +<tr> <td class="numLineCover"> 376</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertVulnerability.execute();</span></pre></td></tr> +<tr> <td class="numLine"> 377</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 436</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  rs = insertVulnerability.getGeneratedKeys();</span></pre></td></tr> -<tr> <td class="numLineCover"> 437</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  rs.next();</span></pre></td></tr> -<tr> <td class="numLineCover"> 438</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  vulnerabilityId = rs.getInt(1);</span></pre></td></tr> -<tr> <td class="numLineCover"> 439</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 440</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = String.format(<span class="string">"Unable to retrieve id for new vulnerability for '%s'"</span>, vuln.getName());</span></pre></td></tr> -<tr> <td class="numLineCover"> 441</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> DatabaseException(msg, ex);</span></pre></td></tr> -<tr> <td class="numLine"> 442</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 378</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  rs = insertVulnerability.getGeneratedKeys();</span></pre></td></tr> +<tr> <td class="numLineCover"> 379</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  rs.next();</span></pre></td></tr> +<tr> <td class="numLineCover"> 380</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  vulnerabilityId = rs.getInt(1);</span></pre></td></tr> +<tr> <td class="numLineCover"> 381</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 382</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = String.format(<span class="string">"Unable to retrieve id for new vulnerability for '%s'"</span>, vuln.getName());</span></pre></td></tr> +<tr> <td class="numLineCover"> 383</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> DatabaseException(msg, ex);</span></pre></td></tr> +<tr> <td class="numLine"> 384</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  } <span class="keyword">finally</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 443</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeResultSet(rs);</span></pre></td></tr> -<tr> <td class="numLineCover"> 444</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  rs = <span class="keyword">null</span>;</span></pre></td></tr> -<tr> <td class="numLineCover"> 445</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLine"> 446</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 385</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeResultSet(rs);</span></pre></td></tr> +<tr> <td class="numLineCover"> 386</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  rs = <span class="keyword">null</span>;</span></pre></td></tr> +<tr> <td class="numLineCover"> 387</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLine"> 388</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 447</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertReference.setInt(1, vulnerabilityId);</span></pre></td></tr> -<tr> <td class="numLineCover"> 448</td> <td class="nbHitsUncovered"><a title="Line 448: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 448: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (Reference r : vuln.getReferences()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 449</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertReference.setString(2, r.getName());</span></pre></td></tr> -<tr> <td class="numLineCover"> 450</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertReference.setString(3, r.getUrl());</span></pre></td></tr> -<tr> <td class="numLineCover"> 451</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertReference.setString(4, r.getSource());</span></pre></td></tr> -<tr> <td class="numLineCover"> 452</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertReference.execute();</span></pre></td></tr> -<tr> <td class="numLine"> 453</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 389</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertReference.setInt(1, vulnerabilityId);</span></pre></td></tr> +<tr> <td class="numLineCover"> 390</td> <td class="nbHitsUncovered"><a title="Line 390: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 390: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (Reference r : vuln.getReferences()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 391</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertReference.setString(2, r.getName());</span></pre></td></tr> +<tr> <td class="numLineCover"> 392</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertReference.setString(3, r.getUrl());</span></pre></td></tr> +<tr> <td class="numLineCover"> 393</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertReference.setString(4, r.getSource());</span></pre></td></tr> +<tr> <td class="numLineCover"> 394</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertReference.execute();</span></pre></td></tr> +<tr> <td class="numLine"> 395</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 454</td> <td class="nbHitsUncovered"><a title="Line 454: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 454: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (VulnerableSoftware s : vuln.getVulnerableSoftware()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 455</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">int</span> cpeProductId = 0;</span></pre></td></tr> -<tr> <td class="numLineCover"> 456</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  selectCpeId.setString(1, s.getName());</span></pre></td></tr> -<tr> <td class="numLine"> 457</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 396</td> <td class="nbHitsUncovered"><a title="Line 396: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 396: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (VulnerableSoftware s : vuln.getVulnerableSoftware()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 397</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">int</span> cpeProductId = 0;</span></pre></td></tr> +<tr> <td class="numLineCover"> 398</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  selectCpeId.setString(1, s.getName());</span></pre></td></tr> +<tr> <td class="numLine"> 399</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 458</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  rs = selectCpeId.executeQuery();</span></pre></td></tr> -<tr> <td class="numLineCover"> 459</td> <td class="nbHitsUncovered"><a title="Line 459: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 459: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (rs.next()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 460</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  cpeProductId = rs.getInt(1);</span></pre></td></tr> -<tr> <td class="numLine"> 461</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 400</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  rs = selectCpeId.executeQuery();</span></pre></td></tr> +<tr> <td class="numLineCover"> 401</td> <td class="nbHitsUncovered"><a title="Line 401: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 401: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (rs.next()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 402</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  cpeProductId = rs.getInt(1);</span></pre></td></tr> +<tr> <td class="numLine"> 403</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 462</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 463</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> DatabaseException(<span class="string">"Unable to get primary key for new cpe: "</span> + s.getName(), ex);</span></pre></td></tr> -<tr> <td class="numLine"> 464</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 404</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 405</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> DatabaseException(<span class="string">"Unable to get primary key for new cpe: "</span> + s.getName(), ex);</span></pre></td></tr> +<tr> <td class="numLine"> 406</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  } <span class="keyword">finally</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 465</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeResultSet(rs);</span></pre></td></tr> -<tr> <td class="numLineCover"> 466</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  rs = <span class="keyword">null</span>;</span></pre></td></tr> -<tr> <td class="numLineCover"> 467</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLineCover"> 407</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeResultSet(rs);</span></pre></td></tr> +<tr> <td class="numLineCover"> 408</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  rs = <span class="keyword">null</span>;</span></pre></td></tr> +<tr> <td class="numLineCover"> 409</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLine"> 410</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLineCover"> 411</td> <td class="nbHitsUncovered"><a title="Line 411: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 411: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (cpeProductId == 0) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 412</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertCpe.setString(1, s.getName());</span></pre></td></tr> +<tr> <td class="numLineCover"> 413</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertCpe.setString(2, s.getVendor());</span></pre></td></tr> +<tr> <td class="numLineCover"> 414</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertCpe.setString(3, s.getProduct());</span></pre></td></tr> +<tr> <td class="numLineCover"> 415</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertCpe.executeUpdate();</span></pre></td></tr> +<tr> <td class="numLineCover"> 416</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  cpeProductId = getGeneratedKey(insertCpe);</span></pre></td></tr> +<tr> <td class="numLine"> 417</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 418</td> <td class="nbHitsUncovered"><a title="Line 418: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 418: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (cpeProductId == 0) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 419</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> DatabaseException(<span class="string">"Unable to retrieve cpeProductId - no data returned"</span>);</span></pre></td></tr> +<tr> <td class="numLine"> 420</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 421</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLineCover"> 422</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertSoftware.setInt(1, vulnerabilityId);</span></pre></td></tr> +<tr> <td class="numLineCover"> 423</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertSoftware.setInt(2, cpeProductId);</span></pre></td></tr> +<tr> <td class="numLineCover"> 424</td> <td class="nbHitsUncovered"><a title="Line 424: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 424: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (s.getPreviousVersion() == <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 425</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertSoftware.setNull(3, java.sql.Types.VARCHAR);</span></pre></td></tr> +<tr> <td class="numLine"> 426</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 427</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertSoftware.setString(3, s.getPreviousVersion());</span></pre></td></tr> +<tr> <td class="numLine"> 428</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 429</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertSoftware.execute();</span></pre></td></tr> +<tr> <td class="numLineCover"> 430</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLine"> 431</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLineCover"> 432</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 433</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = String.format(<span class="string">"Error updating '%s'"</span>, vuln.getName());</span></pre></td></tr> +<tr> <td class="numLineCover"> 434</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  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"> 435</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> DatabaseException(msg, ex);</span></pre></td></tr> +<tr> <td class="numLine"> 436</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  } <span class="keyword">finally</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 437</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeStatement(selectVulnerabilityId);</span></pre></td></tr> +<tr> <td class="numLineCover"> 438</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeStatement(deleteReferences);</span></pre></td></tr> +<tr> <td class="numLineCover"> 439</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeStatement(deleteSoftware);</span></pre></td></tr> +<tr> <td class="numLineCover"> 440</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeStatement(updateVulnerability);</span></pre></td></tr> +<tr> <td class="numLineCover"> 441</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeStatement(deleteVulnerability);</span></pre></td></tr> +<tr> <td class="numLineCover"> 442</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeStatement(insertVulnerability);</span></pre></td></tr> +<tr> <td class="numLineCover"> 443</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeStatement(insertReference);</span></pre></td></tr> +<tr> <td class="numLineCover"> 444</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeStatement(selectCpeId);</span></pre></td></tr> +<tr> <td class="numLineCover"> 445</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeStatement(insertCpe);</span></pre></td></tr> +<tr> <td class="numLineCover"> 446</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeStatement(insertSoftware);</span></pre></td></tr> +<tr> <td class="numLineCover"> 447</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLineCover"> 448</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLine"> 449</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 450</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 451</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * It is possible that orphaned rows may be generated during database</span></pre></td></tr> +<tr> <td class="numLine"> 452</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * updates. This should be called after all updates have been completed to</span></pre></td></tr> +<tr> <td class="numLine"> 453</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * ensure orphan entries are removed.</span></pre></td></tr> +<tr> <td class="numLine"> 454</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 455</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> cleanupDatabase() {</pre></td></tr> +<tr> <td class="numLineCover"> 456</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  PreparedStatement ps = <span class="keyword">null</span>;</span></pre></td></tr> +<tr> <td class="numLine"> 457</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 458</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  ps = getConnection().prepareStatement(CLEANUP_ORPHANS);</span></pre></td></tr> +<tr> <td class="numLineCover"> 459</td> <td class="nbHitsUncovered"><a title="Line 459: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 459: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (ps != <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 460</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  ps.executeUpdate();</span></pre></td></tr> +<tr> <td class="numLine"> 461</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 462</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 463</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(CveDB.<span class="keyword">class</span>.getName()).log(Level.SEVERE, <span class="keyword">null</span>, ex);</span></pre></td></tr> +<tr> <td class="numLine"> 464</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  } <span class="keyword">finally</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 465</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeStatement(ps);</span></pre></td></tr> +<tr> <td class="numLineCover"> 466</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLineCover"> 467</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> <tr> <td class="numLine"> 468</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 469</td> <td class="nbHitsUncovered"><a title="Line 469: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 469: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (cpeProductId == 0) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 470</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertCpe.setString(1, s.getName());</span></pre></td></tr> -<tr> <td class="numLineCover"> 471</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertCpe.setString(2, s.getVendor());</span></pre></td></tr> -<tr> <td class="numLineCover"> 472</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertCpe.setString(3, s.getProduct());</span></pre></td></tr> -<tr> <td class="numLineCover"> 473</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertCpe.executeUpdate();</span></pre></td></tr> -<tr> <td class="numLineCover"> 474</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  cpeProductId = getGeneratedKey(insertCpe);</span></pre></td></tr> -<tr> <td class="numLine"> 475</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 476</td> <td class="nbHitsUncovered"><a title="Line 476: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 476: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (cpeProductId == 0) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 477</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> DatabaseException(<span class="string">"Unable to retrieve cpeProductId - no data returned"</span>);</span></pre></td></tr> -<tr> <td class="numLine"> 478</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 479</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 480</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertSoftware.setInt(1, vulnerabilityId);</span></pre></td></tr> -<tr> <td class="numLineCover"> 481</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertSoftware.setInt(2, cpeProductId);</span></pre></td></tr> -<tr> <td class="numLineCover"> 482</td> <td class="nbHitsUncovered"><a title="Line 482: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 482: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (s.getPreviousVersion() == <span class="keyword">null</span>) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 483</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertSoftware.setNull(3, java.sql.Types.VARCHAR);</span></pre></td></tr> -<tr> <td class="numLine"> 484</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 485</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertSoftware.setString(3, s.getPreviousVersion());</span></pre></td></tr> -<tr> <td class="numLine"> 486</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 487</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  insertSoftware.execute();</span></pre></td></tr> -<tr> <td class="numLineCover"> 488</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLine"> 489</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 490</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 491</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = String.format(<span class="string">"Error updating '%s'"</span>, vuln.getName());</span></pre></td></tr> -<tr> <td class="numLineCover"> 492</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  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"> 493</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> DatabaseException(msg, ex);</span></pre></td></tr> -<tr> <td class="numLine"> 494</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  } <span class="keyword">finally</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 495</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeStatement(selectVulnerabilityId);</span></pre></td></tr> -<tr> <td class="numLineCover"> 496</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeStatement(deleteReferences);</span></pre></td></tr> -<tr> <td class="numLineCover"> 497</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeStatement(deleteSoftware);</span></pre></td></tr> -<tr> <td class="numLineCover"> 498</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeStatement(updateVulnerability);</span></pre></td></tr> -<tr> <td class="numLineCover"> 499</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeStatement(insertVulnerability);</span></pre></td></tr> -<tr> <td class="numLineCover"> 500</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeStatement(insertReference);</span></pre></td></tr> -<tr> <td class="numLineCover"> 501</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeStatement(selectCpeId);</span></pre></td></tr> -<tr> <td class="numLineCover"> 502</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeStatement(insertCpe);</span></pre></td></tr> -<tr> <td class="numLineCover"> 503</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeStatement(insertSoftware);</span></pre></td></tr> -<tr> <td class="numLineCover"> 504</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLineCover"> 505</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLine"> 506</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 507</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 469</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 508</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Retrieves the directory that the JAR file exists in so that we can ensure</span></pre></td></tr> -<tr> <td class="numLine"> 509</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * we always use a common data directory.</span></pre></td></tr> -<tr> <td class="numLine"> 510</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 511</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @return the data directory for this index.</span></pre></td></tr> -<tr> <td class="numLine"> 512</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws IOException is thrown if an IOException occurs of course...</span></pre></td></tr> -<tr> <td class="numLine"> 513</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 514</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> File getDataDirectory() <span class="keyword">throws</span> IOException {</pre></td></tr> -<tr> <td class="numLineCover"> 515</td> <td class="nbHitsCovered"> 20</td> <td class="src"><pre class="src">  <span class="keyword">final</span> File path = Settings.getFile(Settings.KEYS.CVE_DATA_DIRECTORY);</pre></td></tr> -<tr> <td class="numLineCover"> 516</td> <td class="nbHitsCovered"><a title="Line 516: Conditional coverage 100% (2/2)."> 20</a></td> <td class="src"><pre class="src"> <a title="Line 516: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!path.exists()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 517</td> <td class="nbHitsUncovered"><a title="Line 517: Conditional coverage 50% (1/2)."> 1</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 517: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (!path.mkdirs()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 518</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> IOException(<span class="string">"Unable to create NVD CVE Data directory"</span>);</span></pre></td></tr> -<tr> <td class="numLine"> 519</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 520</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 521</td> <td class="nbHitsCovered"> 20</td> <td class="src"><pre class="src">  <span class="keyword">return</span> path;</pre></td></tr> -<tr> <td class="numLine"> 522</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 523</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 524</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 525</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * It is possible that orphaned rows may be generated during database</span></pre></td></tr> -<tr> <td class="numLine"> 526</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * updates. This should be called after all updates have been completed to</span></pre></td></tr> -<tr> <td class="numLine"> 527</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * ensure orphan entries are removed.</span></pre></td></tr> -<tr> <td class="numLine"> 528</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 529</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> cleanupDatabase() {</pre></td></tr> -<tr> <td class="numLineCover"> 530</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  PreparedStatement ps = <span class="keyword">null</span>;</span></pre></td></tr> -<tr> <td class="numLine"> 531</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 532</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  ps = conn.prepareStatement(CLEANUP_ORPHANS);</span></pre></td></tr> -<tr> <td class="numLineCover"> 533</td> <td class="nbHitsUncovered"><a title="Line 533: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 533: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (ps != <span class="keyword">null</span>) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 534</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  ps.executeUpdate();</span></pre></td></tr> -<tr> <td class="numLine"> 535</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 536</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 537</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(CveDB.<span class="keyword">class</span>.getName()).log(Level.SEVERE, <span class="keyword">null</span>, ex);</span></pre></td></tr> -<tr> <td class="numLine"> 538</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  } <span class="keyword">finally</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 539</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeStatement(ps);</span></pre></td></tr> -<tr> <td class="numLineCover"> 540</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLineCover"> 541</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLine"> 542</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 543</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 544</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Creates the database structure (tables and indexes) to store the CVE data</span></pre></td></tr> -<tr> <td class="numLine"> 545</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 546</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws SQLException thrown if there is a sql exception</span></pre></td></tr> -<tr> <td class="numLine"> 547</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws DatabaseException thrown if there is a database exception</span></pre></td></tr> -<tr> <td class="numLine"> 548</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 549</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">protected</span> <span class="keyword">void</span> createTables() <span class="keyword">throws</span> SQLException, DatabaseException {</pre></td></tr> -<tr> <td class="numLine"> 550</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  InputStream is;</pre></td></tr> -<tr> <td class="numLine"> 551</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  InputStreamReader reader;</pre></td></tr> -<tr> <td class="numLineCover"> 552</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  BufferedReader in = <span class="keyword">null</span>;</span></pre></td></tr> -<tr> <td class="numLine"> 553</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 554</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  is = <span class="keyword">this</span>.getClass().getClassLoader().getResourceAsStream(DB_STRUCTURE_RESOURCE);</span></pre></td></tr> -<tr> <td class="numLineCover"> 555</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  reader = <span class="keyword">new</span> InputStreamReader(is, <span class="string">"UTF-8"</span>);</span></pre></td></tr> -<tr> <td class="numLineCover"> 556</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  in = <span class="keyword">new</span> BufferedReader(reader);</span></pre></td></tr> -<tr> <td class="numLineCover"> 557</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> StringBuilder sb = <span class="keyword">new</span> StringBuilder(2110);</span></pre></td></tr> -<tr> <td class="numLine"> 558</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  String tmp;</pre></td></tr> -<tr> <td class="numLineCover"> 559</td> <td class="nbHitsUncovered"><a title="Line 559: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 559: Conditional coverage 0% (0/2)."> <span class="keyword">while</span> ((tmp = in.readLine()) != <span class="keyword">null</span>) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 560</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  sb.append(tmp);</span></pre></td></tr> -<tr> <td class="numLine"> 561</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 562</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Statement statement = <span class="keyword">null</span>;</span></pre></td></tr> -<tr> <td class="numLine"> 563</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 564</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  statement = conn.createStatement();</span></pre></td></tr> -<tr> <td class="numLineCover"> 565</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  statement.execute(sb.toString());</span></pre></td></tr> -<tr> <td class="numLine"> 566</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  } <span class="keyword">finally</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 567</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeStatement(statement);</span></pre></td></tr> -<tr> <td class="numLineCover"> 568</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLineCover"> 569</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 570</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> DatabaseException(<span class="string">"Unable to create database schema"</span>, ex);</span></pre></td></tr> -<tr> <td class="numLine"> 571</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  } <span class="keyword">finally</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 572</td> <td class="nbHitsUncovered"><a title="Line 572: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 572: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (in != <span class="keyword">null</span>) {</a></span></pre></td></tr> -<tr> <td class="numLine"> 573</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 574</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  in.close();</span></pre></td></tr> -<tr> <td class="numLineCover"> 575</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 576</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(CveDB.<span class="keyword">class</span></span></pre></td></tr> -<tr> <td class="numLine"> 577</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  .getName()).log(Level.FINEST, <span class="keyword">null</span>, ex);</pre></td></tr> -<tr> <td class="numLineCover"> 578</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLine"> 579</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 580</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 581</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLine"> 582</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 583</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 584</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Closes the given statement object ignoring any exceptions that occur.</span></pre></td></tr> -<tr> <td class="numLine"> 585</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 586</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param statement a Statement object</span></pre></td></tr> -<tr> <td class="numLine"> 587</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 588</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">void</span> closeStatement(Statement statement) {</pre></td></tr> -<tr> <td class="numLineCover"> 589</td> <td class="nbHitsUncovered"><a title="Line 589: Conditional coverage 50% (1/2)."> 261</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 589: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (statement != <span class="keyword">null</span>) {</a></span></pre></td></tr> -<tr> <td class="numLine"> 590</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 591</td> <td class="nbHitsCovered"> 261</td> <td class="src"><pre class="src">  statement.close();</pre></td></tr> -<tr> <td class="numLineCover"> 592</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 593</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(CveDB.<span class="keyword">class</span></span></pre></td></tr> -<tr> <td class="numLine"> 594</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  .getName()).log(Level.FINEST, statement.toString(), ex);</pre></td></tr> -<tr> <td class="numLineCover"> 595</td> <td class="nbHitsCovered"> 261</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 596</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 597</td> <td class="nbHitsCovered"> 261</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 598</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 599</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 600</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Closes the result set capturing and ignoring any SQLExceptions that</span></pre></td></tr> -<tr> <td class="numLine"> 601</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * occur.</span></pre></td></tr> -<tr> <td class="numLine"> 602</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 603</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param rs a ResultSet to close</span></pre></td></tr> -<tr> <td class="numLine"> 604</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 605</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">void</span> closeResultSet(ResultSet rs) {</pre></td></tr> -<tr> <td class="numLineCover"> 606</td> <td class="nbHitsUncovered"><a title="Line 606: Conditional coverage 50% (1/2)."> 273</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 606: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (rs != <span class="keyword">null</span>) {</a></span></pre></td></tr> -<tr> <td class="numLine"> 607</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 608</td> <td class="nbHitsCovered"> 273</td> <td class="src"><pre class="src">  rs.close();</pre></td></tr> -<tr> <td class="numLineCover"> 609</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 610</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(CveDB.<span class="keyword">class</span></span></pre></td></tr> -<tr> <td class="numLine"> 611</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  .getName()).log(Level.FINEST, rs.toString(), ex);</pre></td></tr> -<tr> <td class="numLineCover"> 612</td> <td class="nbHitsCovered"> 273</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 613</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 614</td> <td class="nbHitsCovered"> 273</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 615</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 616</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 617</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Returns the generated integer primary key for a newly inserted row.</span></pre></td></tr> -<tr> <td class="numLine"> 618</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 619</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param statement a prepared statement that just executed an insert</span></pre></td></tr> -<tr> <td class="numLine"> 620</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @return a primary key</span></pre></td></tr> -<tr> <td class="numLine"> 621</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws DatabaseException thrown if there is an exception obtaining the</span></pre></td></tr> -<tr> <td class="numLine"> 622</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * key</span></pre></td></tr> -<tr> <td class="numLine"> 623</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 624</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">int</span> getGeneratedKey(PreparedStatement statement) <span class="keyword">throws</span> DatabaseException {</pre></td></tr> -<tr> <td class="numLineCover"> 625</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  ResultSet rs = <span class="keyword">null</span>;</span></pre></td></tr> -<tr> <td class="numLineCover"> 626</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">int</span> id = 0;</span></pre></td></tr> -<tr> <td class="numLine"> 627</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 628</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  rs = statement.getGeneratedKeys();</span></pre></td></tr> -<tr> <td class="numLineCover"> 629</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  rs.next();</span></pre></td></tr> -<tr> <td class="numLineCover"> 630</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  id = rs.getInt(1);</span></pre></td></tr> -<tr> <td class="numLineCover"> 631</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 632</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> DatabaseException(<span class="string">"Unable to get primary key for inserted row"</span>);</span></pre></td></tr> -<tr> <td class="numLine"> 633</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  } <span class="keyword">finally</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 634</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeResultSet(rs);</span></pre></td></tr> -<tr> <td class="numLineCover"> 635</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLineCover"> 636</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> id;</span></pre></td></tr> -<tr> <td class="numLine"> 637</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 638</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 639</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 640</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 470</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Determines if the given identifiedVersion is affected by the given cpeId</span></pre></td></tr> -<tr> <td class="numLine"> 641</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 471</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * and previous version flag. A non-null, non-empty string passed to the</span></pre></td></tr> -<tr> <td class="numLine"> 642</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 472</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * previous version argument indicates that all previous versions are</span></pre></td></tr> -<tr> <td class="numLine"> 643</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 473</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * affected.</span></pre></td></tr> -<tr> <td class="numLine"> 644</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 474</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 645</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 475</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param vendor the vendor of the dependency being analyzed</span></pre></td></tr> -<tr> <td class="numLine"> 646</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 476</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param product the product name of the dependency being analyzed</span></pre></td></tr> -<tr> <td class="numLine"> 647</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 477</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param identifiedVersion the identified version of the dependency being</span></pre></td></tr> -<tr> <td class="numLine"> 648</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 478</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * analyzed</span></pre></td></tr> -<tr> <td class="numLine"> 649</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 479</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param cpeId the cpe identifier of software that has a known</span></pre></td></tr> -<tr> <td class="numLine"> 650</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 480</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * vulnerability</span></pre></td></tr> -<tr> <td class="numLine"> 651</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 481</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param previous a flag indicating if previous versions of the product are</span></pre></td></tr> -<tr> <td class="numLine"> 652</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 482</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * vulnerable</span></pre></td></tr> -<tr> <td class="numLine"> 653</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 483</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return true if the identified version is affected, otherwise false</span></pre></td></tr> -<tr> <td class="numLine"> 654</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 484</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 655</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 485</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <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"> 656</td> <td class="nbHitsCovered"> 3491</td> <td class="src"><pre class="src">  <span class="keyword">boolean</span> affected = <span class="keyword">false</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 657</td> <td class="nbHitsCovered"><a title="Line 657: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 3491</a></td> <td class="src"><pre class="src"> <a title="Line 657: 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) && <span class="string">"struts"</span>.equals(product);</a></pre></td></tr> -<tr> <td class="numLineCover"> 658</td> <td class="nbHitsCovered"> 3491</td> <td class="src"><pre class="src">  <span class="keyword">final</span> DependencyVersion v = parseDependencyVersion(cpeId);</pre></td></tr> -<tr> <td class="numLineCover"> 659</td> <td class="nbHitsUncovered"><a title="Line 659: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> 3491</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 659: 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> ? <span class="keyword">false</span> : !previous.isEmpty();</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 660</td> <td class="nbHitsUncovered"><a title="Line 660: Conditional coverage 75% (3/4) [each condition: 50%, 100%]."> 3491</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 660: 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"> 661</td> <td class="nbHitsUncovered"><a title="Line 661: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> 96</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 661: 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"> 662</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  affected = <span class="keyword">true</span>;</span></pre></td></tr> -<tr> <td class="numLine"> 663</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 486</td> <td class="nbHitsCovered"> 3528</td> <td class="src"><pre class="src">  <span class="keyword">boolean</span> affected = <span class="keyword">false</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 487</td> <td class="nbHitsCovered"><a title="Line 487: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 3528</a></td> <td class="src"><pre class="src"> <a title="Line 487: 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) && <span class="string">"struts"</span>.equals(product);</a></pre></td></tr> +<tr> <td class="numLineCover"> 488</td> <td class="nbHitsCovered"> 3528</td> <td class="src"><pre class="src">  <span class="keyword">final</span> DependencyVersion v = parseDependencyVersion(cpeId);</pre></td></tr> +<tr> <td class="numLineCover"> 489</td> <td class="nbHitsUncovered"><a title="Line 489: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> 3528</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 489: 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> ? <span class="keyword">false</span> : !previous.isEmpty();</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 490</td> <td class="nbHitsUncovered"><a title="Line 490: Conditional coverage 75% (3/4) [each condition: 50%, 100%]."> 3528</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 490: 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"> 491</td> <td class="nbHitsUncovered"><a title="Line 491: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> 96</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 491: 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"> 492</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  affected = <span class="keyword">true</span>;</span></pre></td></tr> +<tr> <td class="numLine"> 493</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 664</td> <td class="nbHitsCovered"><a title="Line 664: Conditional coverage 100% (6/6) [each condition: 100%, 100%, 100%]."> 3395</a></td> <td class="src"><pre class="src"> <a title="Line 664: Conditional coverage 100% (6/6) [each condition: 100%, 100%, 100%]."> } <span class="keyword">else</span> <span class="keyword">if</span> (identifiedVersion.equals(v) || (prevAffected && identifiedVersion.compareTo(v) < 0)) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 665</td> <td class="nbHitsCovered"><a title="Line 665: Conditional coverage 100% (2/2)."> 81</a></td> <td class="src"><pre class="src"> <a title="Line 665: 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"> 666</td> <td class="nbHitsCovered"><a title="Line 666: Conditional coverage 100% (2/2)."> 70</a></td> <td class="src"><pre class="src"> <a title="Line 666: 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"> 667</td> <td class="nbHitsCovered"> 48</td> <td class="src"><pre class="src">  affected = <span class="keyword">true</span>;</pre></td></tr> -<tr> <td class="numLine"> 668</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 494</td> <td class="nbHitsCovered"><a title="Line 494: Conditional coverage 100% (6/6) [each condition: 100%, 100%, 100%]."> 3432</a></td> <td class="src"><pre class="src"> <a title="Line 494: Conditional coverage 100% (6/6) [each condition: 100%, 100%, 100%]."> } <span class="keyword">else</span> <span class="keyword">if</span> (identifiedVersion.equals(v) || (prevAffected && identifiedVersion.compareTo(v) < 0)) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 495</td> <td class="nbHitsCovered"><a title="Line 495: Conditional coverage 100% (2/2)."> 83</a></td> <td class="src"><pre class="src"> <a title="Line 495: 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"> 496</td> <td class="nbHitsCovered"><a title="Line 496: Conditional coverage 100% (2/2)."> 72</a></td> <td class="src"><pre class="src"> <a title="Line 496: 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"> 497</td> <td class="nbHitsCovered"> 50</td> <td class="src"><pre class="src">  affected = <span class="keyword">true</span>;</pre></td></tr> +<tr> <td class="numLine"> 498</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 669</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 499</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 670</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src">  affected = <span class="keyword">true</span>;</pre></td></tr> -<tr> <td class="numLine"> 671</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 500</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src">  affected = <span class="keyword">true</span>;</pre></td></tr> +<tr> <td class="numLine"> 501</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 672</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 502</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 673</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 503</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/*</span></pre></td></tr> -<tr> <td class="numLine"> 674</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 504</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * TODO consider utilizing the matchThreeVersion method to get additional results. However, this</span></pre></td></tr> -<tr> <td class="numLine"> 675</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 505</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * might also introduce false positives.</span></pre></td></tr> -<tr> <td class="numLine"> 676</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 506</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 677</td> <td class="nbHitsCovered"> 3491</td> <td class="src"><pre class="src">  <span class="keyword">return</span> affected;</pre></td></tr> -<tr> <td class="numLine"> 678</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 507</td> <td class="nbHitsCovered"> 3528</td> <td class="src"><pre class="src">  <span class="keyword">return</span> affected;</pre></td></tr> +<tr> <td class="numLine"> 508</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 679</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 509</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 680</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 510</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 681</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 511</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Parses the version (including revision) from a CPE identifier. If no</span></pre></td></tr> -<tr> <td class="numLine"> 682</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 512</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * version is identified then a '-' is returned.</span></pre></td></tr> -<tr> <td class="numLine"> 683</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 513</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 684</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 514</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param cpeStr a cpe identifier</span></pre></td></tr> -<tr> <td class="numLine"> 685</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 515</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return a dependency version</span></pre></td></tr> -<tr> <td class="numLine"> 686</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 516</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 687</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 517</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">private</span> DependencyVersion parseDependencyVersion(String cpeStr) {</pre></td></tr> -<tr> <td class="numLineCover"> 688</td> <td class="nbHitsCovered"> 3491</td> <td class="src"><pre class="src">  <span class="keyword">final</span> VulnerableSoftware cpe = <span class="keyword">new</span> VulnerableSoftware();</pre></td></tr> -<tr> <td class="numLine"> 689</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 518</td> <td class="nbHitsCovered"> 3528</td> <td class="src"><pre class="src">  <span class="keyword">final</span> VulnerableSoftware cpe = <span class="keyword">new</span> VulnerableSoftware();</pre></td></tr> +<tr> <td class="numLine"> 519</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 690</td> <td class="nbHitsCovered"> 3491</td> <td class="src"><pre class="src">  cpe.parseName(cpeStr);</pre></td></tr> -<tr> <td class="numLineCover"> 691</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (UnsupportedEncodingException ex) {</span></pre></td></tr> -<tr> <td class="numLine"> 692</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 520</td> <td class="nbHitsCovered"> 3528</td> <td class="src"><pre class="src">  cpe.parseName(cpeStr);</pre></td></tr> +<tr> <td class="numLineCover"> 521</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (UnsupportedEncodingException ex) {</span></pre></td></tr> +<tr> <td class="numLine"> 522</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">//never going to happen.</span></pre></td></tr> -<tr> <td class="numLineCover"> 693</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  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"> 694</td> <td class="nbHitsCovered"> 3491</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 695</td> <td class="nbHitsCovered"> 3491</td> <td class="src"><pre class="src">  <span class="keyword">return</span> parseDependencyVersion(cpe);</pre></td></tr> -<tr> <td class="numLine"> 696</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 523</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  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"> 524</td> <td class="nbHitsCovered"> 3528</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 525</td> <td class="nbHitsCovered"> 3528</td> <td class="src"><pre class="src">  <span class="keyword">return</span> parseDependencyVersion(cpe);</pre></td></tr> +<tr> <td class="numLine"> 526</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 697</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 527</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 698</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 528</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 699</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 529</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Takes a CPE and parses out the version number. If no version is</span></pre></td></tr> -<tr> <td class="numLine"> 700</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 530</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * identified then a '-' is returned.</span></pre></td></tr> -<tr> <td class="numLine"> 701</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 531</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 702</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 532</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param cpe a cpe object</span></pre></td></tr> -<tr> <td class="numLine"> 703</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 533</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return a dependency version</span></pre></td></tr> -<tr> <td class="numLine"> 704</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 534</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 705</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 535</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">private</span> DependencyVersion parseDependencyVersion(VulnerableSoftware cpe) {</pre></td></tr> -<tr> <td class="numLine"> 706</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 536</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  DependencyVersion cpeVersion;</pre></td></tr> -<tr> <td class="numLineCover"> 707</td> <td class="nbHitsUncovered"><a title="Line 707: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> 3503</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 707: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> <span class="keyword">if</span> (cpe.getVersion() != <span class="keyword">null</span> && cpe.getVersion().length() > 0) {</a></span></pre></td></tr> -<tr> <td class="numLine"> 708</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 537</td> <td class="nbHitsUncovered"><a title="Line 537: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> 3540</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 537: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> <span class="keyword">if</span> (cpe.getVersion() != <span class="keyword">null</span> && cpe.getVersion().length() > 0) {</a></span></pre></td></tr> +<tr> <td class="numLine"> 538</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  String versionText;</pre></td></tr> -<tr> <td class="numLineCover"> 709</td> <td class="nbHitsUncovered"><a title="Line 709: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> 3499</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 709: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> <span class="keyword">if</span> (cpe.getRevision() != <span class="keyword">null</span> && cpe.getRevision().length() > 0) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 710</td> <td class="nbHitsCovered"> 441</td> <td class="src"><pre class="src">  versionText = String.format(<span class="string">"%s.%s"</span>, cpe.getVersion(), cpe.getRevision());</pre></td></tr> -<tr> <td class="numLine"> 711</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 539</td> <td class="nbHitsUncovered"><a title="Line 539: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> 3536</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 539: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> <span class="keyword">if</span> (cpe.getRevision() != <span class="keyword">null</span> && cpe.getRevision().length() > 0) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 540</td> <td class="nbHitsCovered"> 441</td> <td class="src"><pre class="src">  versionText = String.format(<span class="string">"%s.%s"</span>, cpe.getVersion(), cpe.getRevision());</pre></td></tr> +<tr> <td class="numLine"> 541</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 712</td> <td class="nbHitsCovered"> 3058</td> <td class="src"><pre class="src">  versionText = cpe.getVersion();</pre></td></tr> -<tr> <td class="numLine"> 713</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 542</td> <td class="nbHitsCovered"> 3095</td> <td class="src"><pre class="src">  versionText = cpe.getVersion();</pre></td></tr> +<tr> <td class="numLine"> 543</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 714</td> <td class="nbHitsCovered"> 3499</td> <td class="src"><pre class="src">  cpeVersion = DependencyVersionUtil.parseVersion(versionText);</pre></td></tr> -<tr> <td class="numLineCover"> 715</td> <td class="nbHitsCovered"> 3499</td> <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 716</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src">  cpeVersion = <span class="keyword">new</span> DependencyVersion(<span class="string">"-"</span>);</pre></td></tr> -<tr> <td class="numLine"> 717</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 544</td> <td class="nbHitsCovered"> 3536</td> <td class="src"><pre class="src">  cpeVersion = DependencyVersionUtil.parseVersion(versionText);</pre></td></tr> +<tr> <td class="numLineCover"> 545</td> <td class="nbHitsCovered"> 3536</td> <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 546</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src">  cpeVersion = <span class="keyword">new</span> DependencyVersion(<span class="string">"-"</span>);</pre></td></tr> +<tr> <td class="numLine"> 547</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 718</td> <td class="nbHitsCovered"> 3503</td> <td class="src"><pre class="src">  <span class="keyword">return</span> cpeVersion;</pre></td></tr> -<tr> <td class="numLine"> 719</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 548</td> <td class="nbHitsCovered"> 3540</td> <td class="src"><pre class="src">  <span class="keyword">return</span> cpeVersion;</pre></td></tr> +<tr> <td class="numLine"> 549</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 720</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 550</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.DatabaseException.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.DatabaseException.html index 871bcf407..425c8b08e 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.DatabaseException.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.DatabaseException.html @@ -12,7 +12,7 @@ <div class="separator"> </div> <table class="report"> <thead><tr> <td class="heading">Classes in this File</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead> - <tr><td><a href="org.owasp.dependencycheck.data.nvdcve.DatabaseException.html">DatabaseException</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/4</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.0;</span>1</td></tr> + <tr><td><a href="org.owasp.dependencycheck.data.nvdcve.DatabaseException.html">DatabaseException</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/6</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.0;</span>1</td></tr> </table> <div class="separator"> </div> @@ -104,19 +104,35 @@ <tr> <td class="numLine"> 44</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 45</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param msg the exception message</span></pre></td></tr> -<tr> <td class="numLine"> 46</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param ex the cause of the exception</span></pre></td></tr> -<tr> <td class="numLine"> 47</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 46</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 48</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> DatabaseException(String msg, Exception ex) {</pre></td></tr> -<tr> <td class="numLineCover"> 49</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">super</span>(msg, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 50</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLine"> 47</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> DatabaseException(Throwable ex) {</pre></td></tr> +<tr> <td class="numLineCover"> 48</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">super</span>(ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 49</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLine"> 50</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 51</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 52</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Creates an DatabaseException.</span></pre></td></tr> +<tr> <td class="numLine"> 53</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 54</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param msg the exception message</span></pre></td></tr> +<tr> <td class="numLine"> 55</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param ex the cause of the exception</span></pre></td></tr> +<tr> <td class="numLine"> 56</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 57</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> DatabaseException(String msg, Throwable ex) {</pre></td></tr> +<tr> <td class="numLineCover"> 58</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">super</span>(msg, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 59</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLine"> 60</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.InvalidDataException.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.InvalidDataException.html index 54ec610f6..e5cc7327b 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.InvalidDataException.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.InvalidDataException.html @@ -119,6 +119,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler.html index d497681c9..198360298 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler.html @@ -457,6 +457,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.html index 94734de4d..369171d52 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.html @@ -12,8 +12,8 @@ <div class="separator"> </div> <table class="report"> <thead><tr> <td class="heading">Classes in this File</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead> - <tr><td><a href="org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.html">NvdCve20Handler</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">76%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:76px"><span class="text">97/126</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">84%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:84px"><span class="text">73/86</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.0;</span>3</td></tr> - <tr><td><a href="org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.html">NvdCve20Handler$Element</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">94%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:94px"><span class="text">18/19</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.0;</span>3</td></tr> + <tr><td><a href="org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.html">NvdCve20Handler</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">80%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:80px"><span class="text">99/123</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">89%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:89px"><span class="text">75/84</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.04;</span>3.04</td></tr> + <tr><td><a href="org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler.html">NvdCve20Handler$Element</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">94%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:94px"><span class="text">18/19</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.04;</span>3.04</td></tr> </table> <div class="separator"> </div> @@ -71,407 +71,410 @@ <tr> <td class="numLine"> 26</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.lucene.index.CorruptIndexException;</pre></td></tr> <tr> <td class="numLine"> 27</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.cpe.CpeIndexWriter;</pre></td></tr> -<tr> <td class="numLine"> 28</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.dependency.Reference;</pre></td></tr> -<tr> <td class="numLine"> 29</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 28</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.dependency.Vulnerability;</pre></td></tr> -<tr> <td class="numLine"> 30</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 29</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.dependency.VulnerableSoftware;</pre></td></tr> -<tr> <td class="numLine"> 31</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 30</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> org.xml.sax.Attributes;</pre></td></tr> -<tr> <td class="numLine"> 32</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 31</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> org.xml.sax.SAXException;</pre></td></tr> -<tr> <td class="numLine"> 33</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 32</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> org.xml.sax.SAXNotSupportedException;</pre></td></tr> -<tr> <td class="numLine"> 34</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 33</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> org.xml.sax.helpers.DefaultHandler;</pre></td></tr> +<tr> <td class="numLine"> 34</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 35</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 36</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 37</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 36</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * A SAX Handler that will parse the NVD CVE XML (schema version 2.0).</span></pre></td></tr> -<tr> <td class="numLine"> 38</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 37</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 39</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 38</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @author Jeremy Long (jeremy.long@owasp.org)</span></pre></td></tr> -<tr> <td class="numLine"> 40</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 39</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 41</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> NvdCve20Handler <span class="keyword">extends</span> DefaultHandler {</pre></td></tr> +<tr> <td class="numLineCover"> 40</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> NvdCve20Handler <span class="keyword">extends</span> DefaultHandler {</pre></td></tr> +<tr> <td class="numLine"> 41</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 42</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 43</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 44</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * the current supported schema version.</span></pre></td></tr> +<tr> <td class="numLine"> 44</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 45</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 46</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> String CURRENT_SCHEMA_VERSION = <span class="string">"2.0"</span>;</pre></td></tr> +<tr> <td class="numLine"> 46</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 47</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 48</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * the current element.</span></pre></td></tr> -<tr> <td class="numLine"> 49</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 48</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 50</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">final</span> Element current = <span class="keyword">new</span> Element();</pre></td></tr> +<tr> <td class="numLineCover"> 49</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">final</span> Element current = <span class="keyword">new</span> Element();</pre></td></tr> +<tr> <td class="numLine"> 50</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 51</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 52</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * the text of the node.</span></pre></td></tr> +<tr> <td class="numLine"> 52</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 53</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 54</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">private</span> StringBuilder nodeText;</pre></td></tr> +<tr> <td class="numLine"> 54</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 55</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 56</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * the vulnerability.</span></pre></td></tr> +<tr> <td class="numLine"> 56</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 57</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 58</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">private</span> Vulnerability vulnerability;</pre></td></tr> +<tr> <td class="numLine"> 58</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 59</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 60</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * a reference for the cve.</span></pre></td></tr> +<tr> <td class="numLine"> 60</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 61</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 62</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">private</span> Reference reference;</pre></td></tr> +<tr> <td class="numLine"> 62</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 63</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 64</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * flag indicating whether the application has a cpe.</span></pre></td></tr> -<tr> <td class="numLine"> 65</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 64</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 66</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">boolean</span> hasApplicationCpe = <span class="keyword">false</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 65</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">boolean</span> hasApplicationCpe = <span class="keyword">false</span>;</pre></td></tr> +<tr> <td class="numLine"> 66</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 67</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 68</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * The total number of entries parsed.</span></pre></td></tr> +<tr> <td class="numLine"> 68</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 69</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 70</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">int</span> totalNumberOfEntries;</pre></td></tr> +<tr> <td class="numLine"> 70</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 71</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 72</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 73</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Get the value of totalNumberOfEntries.</span></pre></td></tr> +<tr> <td class="numLine"> 73</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 74</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 75</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return the value of totalNumberOfEntries</span></pre></td></tr> +<tr> <td class="numLine"> 75</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 76</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 77</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">int</span> getTotalNumberOfEntries() {</pre></td></tr> -<tr> <td class="numLineCover"> 78</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> totalNumberOfEntries;</span></pre></td></tr> +<tr> <td class="numLineCover"> 77</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> totalNumberOfEntries;</span></pre></td></tr> +<tr> <td class="numLine"> 78</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 79</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 80</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 81</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * The total number of application entries parsed.</span></pre></td></tr> +<tr> <td class="numLine"> 81</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 82</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 83</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">int</span> totalNumberOfApplicationEntries;</pre></td></tr> +<tr> <td class="numLine"> 83</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 84</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 85</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 86</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Get the value of totalNumberOfApplicationEntries.</span></pre></td></tr> +<tr> <td class="numLine"> 86</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 87</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 88</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return the value of totalNumberOfApplicationEntries</span></pre></td></tr> +<tr> <td class="numLine"> 88</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 89</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 90</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">int</span> getTotalNumberOfApplicationEntries() {</pre></td></tr> -<tr> <td class="numLineCover"> 91</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> totalNumberOfApplicationEntries;</span></pre></td></tr> -<tr> <td class="numLine"> 92</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 90</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> totalNumberOfApplicationEntries;</span></pre></td></tr> +<tr> <td class="numLine"> 91</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 92</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 93</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src">  @Override</pre></td></tr> <tr> <td class="numLine"> 94</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  @Override</pre></td></tr> -<tr> <td class="numLine"> 95</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> startElement(String uri, String localName, String qName, Attributes attributes) <span class="keyword">throws</span> SAXException {</pre></td></tr> -<tr> <td class="numLineCover"> 96</td> <td class="nbHitsCovered"> 2412</td> <td class="src"><pre class="src">  current.setNode(qName);</pre></td></tr> -<tr> <td class="numLineCover"> 97</td> <td class="nbHitsCovered"><a title="Line 97: Conditional coverage 100% (2/2)."> 2412</a></td> <td class="src"><pre class="src"> <a title="Line 97: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (current.isEntryNode()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 98</td> <td class="nbHitsCovered"> 27</td> <td class="src"><pre class="src">  hasApplicationCpe = <span class="keyword">false</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 99</td> <td class="nbHitsCovered"> 27</td> <td class="src"><pre class="src">  vulnerability = <span class="keyword">new</span> Vulnerability();</pre></td></tr> -<tr> <td class="numLineCover"> 100</td> <td class="nbHitsCovered"> 27</td> <td class="src"><pre class="src">  vulnerability.setName(attributes.getValue(<span class="string">"id"</span>));</pre></td></tr> -<tr> <td class="numLineCover"> 101</td> <td class="nbHitsCovered"><a title="Line 101: Conditional coverage 100% (2/2)."> 2385</a></td> <td class="src"><pre class="src"> <a title="Line 101: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isVulnProductNode()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 102</td> <td class="nbHitsCovered"> 727</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">new</span> StringBuilder(100);</pre></td></tr> -<tr> <td class="numLineCover"> 103</td> <td class="nbHitsCovered"><a title="Line 103: Conditional coverage 100% (2/2)."> 1658</a></td> <td class="src"><pre class="src"> <a title="Line 103: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isVulnReferencesNode()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 104</td> <td class="nbHitsCovered"> 90</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String lang = attributes.getValue(<span class="string">"xml:lang"</span>);</pre></td></tr> -<tr> <td class="numLineCover"> 105</td> <td class="nbHitsUncovered"><a title="Line 105: Conditional coverage 50% (1/2)."> 90</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 105: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (<span class="string">"en"</span>.equals(lang)) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 106</td> <td class="nbHitsCovered"> 90</td> <td class="src"><pre class="src">  reference = <span class="keyword">new</span> Reference();</pre></td></tr> -<tr> <td class="numLine"> 107</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 95</td> <td class="nbHitsCovered"> 2412</td> <td class="src"><pre class="src">  current.setNode(qName);</pre></td></tr> +<tr> <td class="numLineCover"> 96</td> <td class="nbHitsCovered"><a title="Line 96: Conditional coverage 100% (2/2)."> 2412</a></td> <td class="src"><pre class="src"> <a title="Line 96: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (current.isEntryNode()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 97</td> <td class="nbHitsCovered"> 27</td> <td class="src"><pre class="src">  hasApplicationCpe = <span class="keyword">false</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 98</td> <td class="nbHitsCovered"> 27</td> <td class="src"><pre class="src">  vulnerability = <span class="keyword">new</span> Vulnerability();</pre></td></tr> +<tr> <td class="numLineCover"> 99</td> <td class="nbHitsCovered"> 27</td> <td class="src"><pre class="src">  vulnerability.setName(attributes.getValue(<span class="string">"id"</span>));</pre></td></tr> +<tr> <td class="numLineCover"> 100</td> <td class="nbHitsCovered"><a title="Line 100: Conditional coverage 100% (2/2)."> 2385</a></td> <td class="src"><pre class="src"> <a title="Line 100: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isVulnProductNode()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 101</td> <td class="nbHitsCovered"> 727</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">new</span> StringBuilder(100);</pre></td></tr> +<tr> <td class="numLineCover"> 102</td> <td class="nbHitsCovered"><a title="Line 102: Conditional coverage 100% (2/2)."> 1658</a></td> <td class="src"><pre class="src"> <a title="Line 102: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isVulnReferencesNode()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 103</td> <td class="nbHitsCovered"> 90</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String lang = attributes.getValue(<span class="string">"xml:lang"</span>);</pre></td></tr> +<tr> <td class="numLineCover"> 104</td> <td class="nbHitsUncovered"><a title="Line 104: Conditional coverage 50% (1/2)."> 90</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 104: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (<span class="string">"en"</span>.equals(lang)) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 105</td> <td class="nbHitsCovered"> 90</td> <td class="src"><pre class="src">  reference = <span class="keyword">new</span> Reference();</pre></td></tr> +<tr> <td class="numLine"> 106</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 108</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  reference = <span class="keyword">null</span>;</span></pre></td></tr> -<tr> <td class="numLine"> 109</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 107</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  reference = <span class="keyword">null</span>;</span></pre></td></tr> +<tr> <td class="numLine"> 108</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 110</td> <td class="nbHitsCovered"><a title="Line 110: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 90</a></td> <td class="src"><pre class="src"> <a title="Line 110: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> } <span class="keyword">else</span> <span class="keyword">if</span> (reference != <span class="keyword">null</span> && current.isVulnReferenceNode()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 111</td> <td class="nbHitsCovered"> 90</td> <td class="src"><pre class="src">  reference.setUrl(attributes.getValue(<span class="string">"href"</span>));</pre></td></tr> -<tr> <td class="numLineCover"> 112</td> <td class="nbHitsCovered"> 90</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">new</span> StringBuilder(130);</pre></td></tr> -<tr> <td class="numLineCover"> 113</td> <td class="nbHitsUncovered"><a title="Line 113: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> 1478</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 113: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> } <span class="keyword">else</span> <span class="keyword">if</span> (reference != <span class="keyword">null</span> && current.isVulnSourceNode()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 114</td> <td class="nbHitsCovered"> 90</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">new</span> StringBuilder(30);</pre></td></tr> -<tr> <td class="numLineCover"> 115</td> <td class="nbHitsCovered"><a title="Line 115: Conditional coverage 100% (2/2)."> 1388</a></td> <td class="src"><pre class="src"> <a title="Line 115: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isVulnSummaryNode()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 116</td> <td class="nbHitsCovered"> 27</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">new</span> StringBuilder(500);</pre></td></tr> -<tr> <td class="numLineCover"> 117</td> <td class="nbHitsCovered"><a title="Line 117: Conditional coverage 100% (2/2)."> 1361</a></td> <td class="src"><pre class="src"> <a title="Line 117: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isNVDNode()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 118</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String nvdVer = attributes.getValue(<span class="string">"nvd_xml_version"</span>);</pre></td></tr> -<tr> <td class="numLineCover"> 119</td> <td class="nbHitsUncovered"><a title="Line 119: Conditional coverage 50% (1/2)."> 1</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 119: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (!CURRENT_SCHEMA_VERSION.equals(nvdVer)) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 120</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> SAXNotSupportedException(<span class="string">"Schema version "</span> + nvdVer + <span class="string">" is not supported"</span>);</span></pre></td></tr> -<tr> <td class="numLine"> 121</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 109</td> <td class="nbHitsCovered"><a title="Line 109: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 90</a></td> <td class="src"><pre class="src"> <a title="Line 109: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> } <span class="keyword">else</span> <span class="keyword">if</span> (reference != <span class="keyword">null</span> && current.isVulnReferenceNode()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 110</td> <td class="nbHitsCovered"> 90</td> <td class="src"><pre class="src">  reference.setUrl(attributes.getValue(<span class="string">"href"</span>));</pre></td></tr> +<tr> <td class="numLineCover"> 111</td> <td class="nbHitsCovered"> 90</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">new</span> StringBuilder(130);</pre></td></tr> +<tr> <td class="numLineCover"> 112</td> <td class="nbHitsUncovered"><a title="Line 112: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> 1478</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 112: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> } <span class="keyword">else</span> <span class="keyword">if</span> (reference != <span class="keyword">null</span> && current.isVulnSourceNode()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 113</td> <td class="nbHitsCovered"> 90</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">new</span> StringBuilder(30);</pre></td></tr> +<tr> <td class="numLineCover"> 114</td> <td class="nbHitsCovered"><a title="Line 114: Conditional coverage 100% (2/2)."> 1388</a></td> <td class="src"><pre class="src"> <a title="Line 114: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isVulnSummaryNode()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 115</td> <td class="nbHitsCovered"> 27</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">new</span> StringBuilder(500);</pre></td></tr> +<tr> <td class="numLineCover"> 116</td> <td class="nbHitsCovered"><a title="Line 116: Conditional coverage 100% (2/2)."> 1361</a></td> <td class="src"><pre class="src"> <a title="Line 116: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isNVDNode()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 117</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String nvdVer = attributes.getValue(<span class="string">"nvd_xml_version"</span>);</pre></td></tr> +<tr> <td class="numLineCover"> 118</td> <td class="nbHitsUncovered"><a title="Line 118: Conditional coverage 50% (1/2)."> 1</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 118: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (!CURRENT_SCHEMA_VERSION.equals(nvdVer)) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 119</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> SAXNotSupportedException(<span class="string">"Schema version "</span> + nvdVer + <span class="string">" is not supported"</span>);</span></pre></td></tr> +<tr> <td class="numLine"> 120</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 122</td> <td class="nbHitsCovered"><a title="Line 122: Conditional coverage 100% (2/2)."> 1</a></td> <td class="src"><pre class="src"> <a title="Line 122: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isVulnCWENode()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 123</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  vulnerability.setCwe(attributes.getValue(<span class="string">"id"</span>));</pre></td></tr> -<tr> <td class="numLineCover"> 124</td> <td class="nbHitsCovered"><a title="Line 124: Conditional coverage 100% (2/2)."> 1341</a></td> <td class="src"><pre class="src"> <a title="Line 124: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isCVSSScoreNode()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 125</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">new</span> StringBuilder(5);</pre></td></tr> -<tr> <td class="numLineCover"> 126</td> <td class="nbHitsCovered"><a title="Line 126: Conditional coverage 100% (2/2)."> 1315</a></td> <td class="src"><pre class="src"> <a title="Line 126: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isCVSSAccessVectorNode()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 127</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">new</span> StringBuilder(20);</pre></td></tr> -<tr> <td class="numLineCover"> 128</td> <td class="nbHitsCovered"><a title="Line 128: Conditional coverage 100% (2/2)."> 1289</a></td> <td class="src"><pre class="src"> <a title="Line 128: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isCVSSAccessComplexityNode()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 129</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">new</span> StringBuilder(20);</pre></td></tr> -<tr> <td class="numLineCover"> 130</td> <td class="nbHitsCovered"><a title="Line 130: Conditional coverage 100% (2/2)."> 1263</a></td> <td class="src"><pre class="src"> <a title="Line 130: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isCVSSAuthenticationNode()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 131</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">new</span> StringBuilder(20);</pre></td></tr> -<tr> <td class="numLineCover"> 132</td> <td class="nbHitsCovered"><a title="Line 132: Conditional coverage 100% (2/2)."> 1237</a></td> <td class="src"><pre class="src"> <a title="Line 132: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isCVSSAvailabilityImpactNode()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 133</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">new</span> StringBuilder(20);</pre></td></tr> -<tr> <td class="numLineCover"> 134</td> <td class="nbHitsCovered"><a title="Line 134: Conditional coverage 100% (2/2)."> 1211</a></td> <td class="src"><pre class="src"> <a title="Line 134: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isCVSSConfidentialityImpactNode()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 135</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">new</span> StringBuilder(20);</pre></td></tr> -<tr> <td class="numLineCover"> 136</td> <td class="nbHitsCovered"><a title="Line 136: Conditional coverage 100% (2/2)."> 1185</a></td> <td class="src"><pre class="src"> <a title="Line 136: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isCVSSIntegrityImpactNode()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 137</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">new</span> StringBuilder(20);</pre></td></tr> -<tr> <td class="numLine"> 138</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 121</td> <td class="nbHitsCovered"><a title="Line 121: Conditional coverage 100% (2/2)."> 1</a></td> <td class="src"><pre class="src"> <a title="Line 121: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isVulnCWENode()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 122</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  vulnerability.setCwe(attributes.getValue(<span class="string">"id"</span>));</pre></td></tr> +<tr> <td class="numLineCover"> 123</td> <td class="nbHitsCovered"><a title="Line 123: Conditional coverage 100% (2/2)."> 1341</a></td> <td class="src"><pre class="src"> <a title="Line 123: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isCVSSScoreNode()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 124</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">new</span> StringBuilder(5);</pre></td></tr> +<tr> <td class="numLineCover"> 125</td> <td class="nbHitsCovered"><a title="Line 125: Conditional coverage 100% (2/2)."> 1315</a></td> <td class="src"><pre class="src"> <a title="Line 125: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isCVSSAccessVectorNode()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 126</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">new</span> StringBuilder(20);</pre></td></tr> +<tr> <td class="numLineCover"> 127</td> <td class="nbHitsCovered"><a title="Line 127: Conditional coverage 100% (2/2)."> 1289</a></td> <td class="src"><pre class="src"> <a title="Line 127: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isCVSSAccessComplexityNode()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 128</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">new</span> StringBuilder(20);</pre></td></tr> +<tr> <td class="numLineCover"> 129</td> <td class="nbHitsCovered"><a title="Line 129: Conditional coverage 100% (2/2)."> 1263</a></td> <td class="src"><pre class="src"> <a title="Line 129: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isCVSSAuthenticationNode()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 130</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">new</span> StringBuilder(20);</pre></td></tr> +<tr> <td class="numLineCover"> 131</td> <td class="nbHitsCovered"><a title="Line 131: Conditional coverage 100% (2/2)."> 1237</a></td> <td class="src"><pre class="src"> <a title="Line 131: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isCVSSAvailabilityImpactNode()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 132</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">new</span> StringBuilder(20);</pre></td></tr> +<tr> <td class="numLineCover"> 133</td> <td class="nbHitsCovered"><a title="Line 133: Conditional coverage 100% (2/2)."> 1211</a></td> <td class="src"><pre class="src"> <a title="Line 133: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isCVSSConfidentialityImpactNode()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 134</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">new</span> StringBuilder(20);</pre></td></tr> +<tr> <td class="numLineCover"> 135</td> <td class="nbHitsCovered"><a title="Line 135: Conditional coverage 100% (2/2)."> 1185</a></td> <td class="src"><pre class="src"> <a title="Line 135: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isCVSSIntegrityImpactNode()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 136</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">new</span> StringBuilder(20);</pre></td></tr> +<tr> <td class="numLine"> 137</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 139</td> <td class="nbHitsCovered"> 2412</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 138</td> <td class="nbHitsCovered"> 2412</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 139</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 140</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src">  @Override</pre></td></tr> <tr> <td class="numLine"> 141</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  @Override</pre></td></tr> -<tr> <td class="numLine"> 142</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> characters(<span class="keyword">char</span>[] ch, <span class="keyword">int</span> start, <span class="keyword">int</span> length) <span class="keyword">throws</span> SAXException {</pre></td></tr> -<tr> <td class="numLineCover"> 143</td> <td class="nbHitsCovered"><a title="Line 143: Conditional coverage 100% (2/2)."> 3987</a></td> <td class="src"><pre class="src"> <a title="Line 143: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (nodeText != <span class="keyword">null</span>) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 144</td> <td class="nbHitsCovered"> 1142</td> <td class="src"><pre class="src">  nodeText.append(ch, start, length);</pre></td></tr> -<tr> <td class="numLine"> 145</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 142</td> <td class="nbHitsCovered"><a title="Line 142: Conditional coverage 100% (2/2)."> 3987</a></td> <td class="src"><pre class="src"> <a title="Line 142: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (nodeText != <span class="keyword">null</span>) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 143</td> <td class="nbHitsCovered"> 1142</td> <td class="src"><pre class="src">  nodeText.append(ch, start, length);</pre></td></tr> +<tr> <td class="numLine"> 144</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 146</td> <td class="nbHitsCovered"> 3987</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 145</td> <td class="nbHitsCovered"> 3987</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 146</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 147</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 148</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  @Override</pre></td></tr> -<tr> <td class="numLine"> 149</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 148</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> endElement(String uri, String localName, String qName) <span class="keyword">throws</span> SAXException {</pre></td></tr> -<tr> <td class="numLineCover"> 150</td> <td class="nbHitsCovered"> 2412</td> <td class="src"><pre class="src">  current.setNode(qName);</pre></td></tr> -<tr> <td class="numLineCover"> 151</td> <td class="nbHitsCovered"><a title="Line 151: Conditional coverage 100% (2/2)."> 2412</a></td> <td class="src"><pre class="src"> <a title="Line 151: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (current.isEntryNode()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 152</td> <td class="nbHitsCovered"> 27</td> <td class="src"><pre class="src">  totalNumberOfEntries += 1;</pre></td></tr> -<tr> <td class="numLineCover"> 153</td> <td class="nbHitsCovered"><a title="Line 153: Conditional coverage 100% (2/2)."> 27</a></td> <td class="src"><pre class="src"> <a title="Line 153: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (hasApplicationCpe) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 154</td> <td class="nbHitsCovered"> 18</td> <td class="src"><pre class="src">  totalNumberOfApplicationEntries += 1;</pre></td></tr> -<tr> <td class="numLine"> 155</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 149</td> <td class="nbHitsCovered"> 2412</td> <td class="src"><pre class="src">  current.setNode(qName);</pre></td></tr> +<tr> <td class="numLineCover"> 150</td> <td class="nbHitsCovered"><a title="Line 150: Conditional coverage 100% (2/2)."> 2412</a></td> <td class="src"><pre class="src"> <a title="Line 150: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (current.isEntryNode()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 151</td> <td class="nbHitsCovered"> 27</td> <td class="src"><pre class="src">  totalNumberOfEntries += 1;</pre></td></tr> +<tr> <td class="numLineCover"> 152</td> <td class="nbHitsCovered"><a title="Line 152: Conditional coverage 100% (2/2)."> 27</a></td> <td class="src"><pre class="src"> <a title="Line 152: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (hasApplicationCpe) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 153</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  totalNumberOfApplicationEntries += 1;</pre></td></tr> +<tr> <td class="numLine"> 154</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 156</td> <td class="nbHitsCovered"> 18</td> <td class="src"><pre class="src">  saveEntry(vulnerability);</pre></td></tr> -<tr> <td class="numLineCover"> 157</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (DatabaseException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 158</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> SAXException(ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 159</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (CorruptIndexException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 160</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> SAXException(ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 161</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 162</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> SAXException(ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 163</td> <td class="nbHitsCovered"> 18</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 164</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 155</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  saveEntry(vulnerability);</pre></td></tr> +<tr> <td class="numLineCover"> 156</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (DatabaseException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 157</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> SAXException(ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 158</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (CorruptIndexException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 159</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> SAXException(ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 160</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 161</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> SAXException(ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 162</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 163</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 165</td> <td class="nbHitsCovered"> 27</td> <td class="src"><pre class="src">  vulnerability = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 166</td> <td class="nbHitsCovered"><a title="Line 166: Conditional coverage 100% (2/2)."> 2385</a></td> <td class="src"><pre class="src"> <a title="Line 166: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isCVSSScoreNode()) {</a></pre></td></tr> -<tr> <td class="numLine"> 167</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 164</td> <td class="nbHitsCovered"> 27</td> <td class="src"><pre class="src">  vulnerability = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 165</td> <td class="nbHitsCovered"><a title="Line 165: Conditional coverage 100% (2/2)."> 2385</a></td> <td class="src"><pre class="src"> <a title="Line 165: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isCVSSScoreNode()) {</a></pre></td></tr> +<tr> <td class="numLine"> 166</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 168</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  <span class="keyword">final</span> <span class="keyword">float</span> score = Float.parseFloat(nodeText.toString());</pre></td></tr> -<tr> <td class="numLineCover"> 169</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  vulnerability.setCvssScore(score);</pre></td></tr> -<tr> <td class="numLineCover"> 170</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (NumberFormatException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 171</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(NvdCve20Handler.<span class="keyword">class</span>.getName()).log(Level.SEVERE, <span class="string">"Error parsing CVSS Score."</span>);</span></pre></td></tr> -<tr> <td class="numLineCover"> 172</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(NvdCve20Handler.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="keyword">null</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 173</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 174</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 175</td> <td class="nbHitsCovered"><a title="Line 175: Conditional coverage 100% (2/2)."> 2359</a></td> <td class="src"><pre class="src"> <a title="Line 175: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isCVSSAccessVectorNode()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 176</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  vulnerability.setCvssAccessVector(nodeText.toString());</pre></td></tr> -<tr> <td class="numLineCover"> 177</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 178</td> <td class="nbHitsCovered"><a title="Line 178: Conditional coverage 100% (2/2)."> 2333</a></td> <td class="src"><pre class="src"> <a title="Line 178: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isCVSSAccessComplexityNode()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 179</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  vulnerability.setCvssAccessComplexity(nodeText.toString());</pre></td></tr> -<tr> <td class="numLineCover"> 180</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 181</td> <td class="nbHitsCovered"><a title="Line 181: Conditional coverage 100% (2/2)."> 2307</a></td> <td class="src"><pre class="src"> <a title="Line 181: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isCVSSAuthenticationNode()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 182</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  vulnerability.setCvssAuthentication(nodeText.toString());</pre></td></tr> -<tr> <td class="numLineCover"> 183</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 184</td> <td class="nbHitsCovered"><a title="Line 184: Conditional coverage 100% (2/2)."> 2281</a></td> <td class="src"><pre class="src"> <a title="Line 184: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isCVSSAvailabilityImpactNode()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 185</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  vulnerability.setCvssAvailabilityImpact(nodeText.toString());</pre></td></tr> -<tr> <td class="numLineCover"> 186</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 187</td> <td class="nbHitsCovered"><a title="Line 187: Conditional coverage 100% (2/2)."> 2255</a></td> <td class="src"><pre class="src"> <a title="Line 187: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isCVSSConfidentialityImpactNode()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 188</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  vulnerability.setCvssConfidentialityImpact(nodeText.toString());</pre></td></tr> -<tr> <td class="numLineCover"> 189</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 190</td> <td class="nbHitsCovered"><a title="Line 190: Conditional coverage 100% (2/2)."> 2229</a></td> <td class="src"><pre class="src"> <a title="Line 190: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isCVSSIntegrityImpactNode()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 191</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  vulnerability.setCvssIntegrityImpact(nodeText.toString());</pre></td></tr> -<tr> <td class="numLineCover"> 192</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 193</td> <td class="nbHitsCovered"><a title="Line 193: Conditional coverage 100% (2/2)."> 2203</a></td> <td class="src"><pre class="src"> <a title="Line 193: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isVulnProductNode()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 194</td> <td class="nbHitsCovered"> 727</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String cpe = nodeText.toString();</pre></td></tr> -<tr> <td class="numLineCover"> 195</td> <td class="nbHitsCovered"><a title="Line 195: Conditional coverage 100% (2/2)."> 727</a></td> <td class="src"><pre class="src"> <a title="Line 195: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (cpe.startsWith(<span class="string">"cpe:/a:"</span>)) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 196</td> <td class="nbHitsCovered"> 614</td> <td class="src"><pre class="src">  hasApplicationCpe = <span class="keyword">true</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 197</td> <td class="nbHitsCovered"> 614</td> <td class="src"><pre class="src">  vulnerability.addVulnerableSoftware(cpe);</pre></td></tr> -<tr> <td class="numLine"> 198</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 167</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  <span class="keyword">final</span> <span class="keyword">float</span> score = Float.parseFloat(nodeText.toString());</pre></td></tr> +<tr> <td class="numLineCover"> 168</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  vulnerability.setCvssScore(score);</pre></td></tr> +<tr> <td class="numLineCover"> 169</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (NumberFormatException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 170</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(NvdCve20Handler.<span class="keyword">class</span>.getName()).log(Level.SEVERE, <span class="string">"Error parsing CVSS Score."</span>);</span></pre></td></tr> +<tr> <td class="numLineCover"> 171</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(NvdCve20Handler.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="keyword">null</span>, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 172</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 173</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 174</td> <td class="nbHitsCovered"><a title="Line 174: Conditional coverage 100% (2/2)."> 2359</a></td> <td class="src"><pre class="src"> <a title="Line 174: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isCVSSAccessVectorNode()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 175</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  vulnerability.setCvssAccessVector(nodeText.toString());</pre></td></tr> +<tr> <td class="numLineCover"> 176</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 177</td> <td class="nbHitsCovered"><a title="Line 177: Conditional coverage 100% (2/2)."> 2333</a></td> <td class="src"><pre class="src"> <a title="Line 177: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isCVSSAccessComplexityNode()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 178</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  vulnerability.setCvssAccessComplexity(nodeText.toString());</pre></td></tr> +<tr> <td class="numLineCover"> 179</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 180</td> <td class="nbHitsCovered"><a title="Line 180: Conditional coverage 100% (2/2)."> 2307</a></td> <td class="src"><pre class="src"> <a title="Line 180: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isCVSSAuthenticationNode()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 181</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  vulnerability.setCvssAuthentication(nodeText.toString());</pre></td></tr> +<tr> <td class="numLineCover"> 182</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 183</td> <td class="nbHitsCovered"><a title="Line 183: Conditional coverage 100% (2/2)."> 2281</a></td> <td class="src"><pre class="src"> <a title="Line 183: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isCVSSAvailabilityImpactNode()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 184</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  vulnerability.setCvssAvailabilityImpact(nodeText.toString());</pre></td></tr> +<tr> <td class="numLineCover"> 185</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 186</td> <td class="nbHitsCovered"><a title="Line 186: Conditional coverage 100% (2/2)."> 2255</a></td> <td class="src"><pre class="src"> <a title="Line 186: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isCVSSConfidentialityImpactNode()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 187</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  vulnerability.setCvssConfidentialityImpact(nodeText.toString());</pre></td></tr> +<tr> <td class="numLineCover"> 188</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 189</td> <td class="nbHitsCovered"><a title="Line 189: Conditional coverage 100% (2/2)."> 2229</a></td> <td class="src"><pre class="src"> <a title="Line 189: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isCVSSIntegrityImpactNode()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 190</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  vulnerability.setCvssIntegrityImpact(nodeText.toString());</pre></td></tr> +<tr> <td class="numLineCover"> 191</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 192</td> <td class="nbHitsCovered"><a title="Line 192: Conditional coverage 100% (2/2)."> 2203</a></td> <td class="src"><pre class="src"> <a title="Line 192: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isVulnProductNode()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 193</td> <td class="nbHitsCovered"> 727</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String cpe = nodeText.toString();</pre></td></tr> +<tr> <td class="numLineCover"> 194</td> <td class="nbHitsCovered"><a title="Line 194: Conditional coverage 100% (2/2)."> 727</a></td> <td class="src"><pre class="src"> <a title="Line 194: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (cpe.startsWith(<span class="string">"cpe:/a:"</span>)) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 195</td> <td class="nbHitsCovered"> 614</td> <td class="src"><pre class="src">  hasApplicationCpe = <span class="keyword">true</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 196</td> <td class="nbHitsCovered"> 614</td> <td class="src"><pre class="src">  vulnerability.addVulnerableSoftware(cpe);</pre></td></tr> +<tr> <td class="numLine"> 197</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 199</td> <td class="nbHitsCovered"> 727</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 200</td> <td class="nbHitsCovered"><a title="Line 200: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 727</a></td> <td class="src"><pre class="src"> <a title="Line 200: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> } <span class="keyword">else</span> <span class="keyword">if</span> (reference != <span class="keyword">null</span> && current.isVulnReferencesNode()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 201</td> <td class="nbHitsCovered"> 90</td> <td class="src"><pre class="src">  vulnerability.addReference(reference);</pre></td></tr> -<tr> <td class="numLineCover"> 202</td> <td class="nbHitsCovered"> 90</td> <td class="src"><pre class="src">  reference = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 203</td> <td class="nbHitsCovered"><a title="Line 203: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 1386</a></td> <td class="src"><pre class="src"> <a title="Line 203: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> } <span class="keyword">else</span> <span class="keyword">if</span> (reference != <span class="keyword">null</span> && current.isVulnReferenceNode()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 204</td> <td class="nbHitsCovered"> 90</td> <td class="src"><pre class="src">  reference.setName(nodeText.toString());</pre></td></tr> -<tr> <td class="numLineCover"> 205</td> <td class="nbHitsCovered"> 90</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 206</td> <td class="nbHitsUncovered"><a title="Line 206: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> 1296</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 206: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> } <span class="keyword">else</span> <span class="keyword">if</span> (reference != <span class="keyword">null</span> && current.isVulnSourceNode()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 207</td> <td class="nbHitsCovered"> 90</td> <td class="src"><pre class="src">  reference.setSource(nodeText.toString());</pre></td></tr> -<tr> <td class="numLineCover"> 208</td> <td class="nbHitsCovered"> 90</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 209</td> <td class="nbHitsCovered"><a title="Line 209: Conditional coverage 100% (2/2)."> 1206</a></td> <td class="src"><pre class="src"> <a title="Line 209: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isVulnSummaryNode()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 210</td> <td class="nbHitsCovered"> 27</td> <td class="src"><pre class="src">  vulnerability.setDescription(nodeText.toString());</pre></td></tr> -<tr> <td class="numLineCover"> 211</td> <td class="nbHitsCovered"> 27</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 198</td> <td class="nbHitsCovered"> 727</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 199</td> <td class="nbHitsCovered"><a title="Line 199: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 727</a></td> <td class="src"><pre class="src"> <a title="Line 199: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> } <span class="keyword">else</span> <span class="keyword">if</span> (reference != <span class="keyword">null</span> && current.isVulnReferencesNode()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 200</td> <td class="nbHitsCovered"> 90</td> <td class="src"><pre class="src">  vulnerability.addReference(reference);</pre></td></tr> +<tr> <td class="numLineCover"> 201</td> <td class="nbHitsCovered"> 90</td> <td class="src"><pre class="src">  reference = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 202</td> <td class="nbHitsCovered"><a title="Line 202: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 1386</a></td> <td class="src"><pre class="src"> <a title="Line 202: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> } <span class="keyword">else</span> <span class="keyword">if</span> (reference != <span class="keyword">null</span> && current.isVulnReferenceNode()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 203</td> <td class="nbHitsCovered"> 90</td> <td class="src"><pre class="src">  reference.setName(nodeText.toString());</pre></td></tr> +<tr> <td class="numLineCover"> 204</td> <td class="nbHitsCovered"> 90</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 205</td> <td class="nbHitsUncovered"><a title="Line 205: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> 1296</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 205: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> } <span class="keyword">else</span> <span class="keyword">if</span> (reference != <span class="keyword">null</span> && current.isVulnSourceNode()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 206</td> <td class="nbHitsCovered"> 90</td> <td class="src"><pre class="src">  reference.setSource(nodeText.toString());</pre></td></tr> +<tr> <td class="numLineCover"> 207</td> <td class="nbHitsCovered"> 90</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 208</td> <td class="nbHitsCovered"><a title="Line 208: Conditional coverage 100% (2/2)."> 1206</a></td> <td class="src"><pre class="src"> <a title="Line 208: Conditional coverage 100% (2/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (current.isVulnSummaryNode()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 209</td> <td class="nbHitsCovered"> 27</td> <td class="src"><pre class="src">  vulnerability.setDescription(nodeText.toString());</pre></td></tr> +<tr> <td class="numLineCover"> 210</td> <td class="nbHitsCovered"><a title="Line 210: Conditional coverage 100% (2/2)."> 27</a></td> <td class="src"><pre class="src"> <a title="Line 210: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (nodeText.indexOf(<span class="string">"** REJECT **"</span>) >= 0) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 211</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  hasApplicationCpe = <span class="keyword">true</span>; <span class="comment">//ensure we process this to delete the vuln</span></pre></td></tr> <tr> <td class="numLine"> 212</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 213</td> <td class="nbHitsCovered"> 2412</td> <td class="src"><pre class="src">  }</pre></td></tr> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 213</td> <td class="nbHitsCovered"> 27</td> <td class="src"><pre class="src">  nodeText = <span class="keyword">null</span>;</pre></td></tr> <tr> <td class="numLine"> 214</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 215</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * the cve database.</span></pre></td></tr> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 215</td> <td class="nbHitsCovered"> 2412</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 216</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 217</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">private</span> CveDB cveDB;</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * the cve database.</span></pre></td></tr> <tr> <td class="numLine"> 218</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 219</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">private</span> CveDB cveDB;</pre></td></tr> <tr> <td class="numLine"> 220</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Sets the cveDB.</span></pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 221</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 222</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param db a reference to the CveDB</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * Sets the cveDB.</span></pre></td></tr> <tr> <td class="numLine"> 223</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 224</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param db a reference to the CveDB</span></pre></td></tr> +<tr> <td class="numLine"> 225</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 226</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> setCveDB(CveDB db) {</pre></td></tr> -<tr> <td class="numLineCover"> 225</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  cveDB = db;</span></pre></td></tr> -<tr> <td class="numLineCover"> 226</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLine"> 227</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 228</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * A list of CVE entries and associated VulnerableSoftware entries that</span></pre></td></tr> +<tr> <td class="numLineCover"> 227</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  cveDB = db;</span></pre></td></tr> +<tr> <td class="numLineCover"> 228</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> <tr> <td class="numLine"> 229</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * contain previous entries.</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 230</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * A list of CVE entries and associated VulnerableSoftware entries that</span></pre></td></tr> <tr> <td class="numLine"> 231</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">private</span> Map<String, List<VulnerableSoftware>> prevVersionVulnMap;</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * contain previous entries.</span></pre></td></tr> <tr> <td class="numLine"> 232</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 233</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">private</span> Map<String, List<VulnerableSoftware>> prevVersionVulnMap;</pre></td></tr> <tr> <td class="numLine"> 234</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Sets the prevVersionVulnMap.</span></pre></td></tr> -<tr> <td class="numLine"> 235</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 236</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param map the map of vulnerable software with previous versions being</span></pre></td></tr> -<tr> <td class="numLine"> 237</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * vulnerable</span></pre></td></tr> -<tr> <td class="numLine"> 238</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 239</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> setPrevVersionVulnMap(Map<String, List<VulnerableSoftware>> map) {</pre></td></tr> -<tr> <td class="numLineCover"> 240</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  prevVersionVulnMap = map;</span></pre></td></tr> -<tr> <td class="numLineCover"> 241</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLine"> 242</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 243</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 235</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 244</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Saves a vulnerability to the CVE Database.</span></pre></td></tr> -<tr> <td class="numLine"> 245</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 236</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Sets the prevVersionVulnMap.</span></pre></td></tr> +<tr> <td class="numLine"> 237</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 246</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param vuln the vulnerability to store in the database</span></pre></td></tr> -<tr> <td class="numLine"> 247</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws DatabaseException thrown if there is an error writing to the</span></pre></td></tr> -<tr> <td class="numLine"> 248</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * database</span></pre></td></tr> -<tr> <td class="numLine"> 249</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws CorruptIndexException is thrown if the CPE Index is corrupt</span></pre></td></tr> -<tr> <td class="numLine"> 250</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws IOException thrown if there is an IOException with the CPE Index</span></pre></td></tr> -<tr> <td class="numLine"> 251</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 238</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param map the map of vulnerable software with previous versions being</span></pre></td></tr> +<tr> <td class="numLine"> 239</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * vulnerable</span></pre></td></tr> +<tr> <td class="numLine"> 240</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 252</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">void</span> saveEntry(Vulnerability vuln) <span class="keyword">throws</span> DatabaseException, CorruptIndexException, IOException {</pre></td></tr> -<tr> <td class="numLineCover"> 253</td> <td class="nbHitsUncovered"><a title="Line 253: Conditional coverage 50% (1/2)."> 18</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 253: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (cveDB == <span class="keyword">null</span>) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 254</td> <td class="nbHitsCovered"> 18</td> <td class="src"><pre class="src">  <span class="keyword">return</span>;</pre></td></tr> -<tr> <td class="numLine"> 255</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 256</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String cveName = vuln.getName();</span></pre></td></tr> -<tr> <td class="numLineCover"> 257</td> <td class="nbHitsUncovered"><a title="Line 257: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 257: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (prevVersionVulnMap.containsKey(cveName)) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 258</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> List<VulnerableSoftware> vulnSoftware = prevVersionVulnMap.get(cveName);</span></pre></td></tr> -<tr> <td class="numLineCover"> 259</td> <td class="nbHitsUncovered"><a title="Line 259: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 259: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (VulnerableSoftware vs : vulnSoftware) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 260</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  vuln.updateVulnerableSoftware(vs);</span></pre></td></tr> -<tr> <td class="numLine"> 261</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 262</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 263</td> <td class="nbHitsUncovered"><a title="Line 263: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 263: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (VulnerableSoftware vs : vuln.getVulnerableSoftware()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 264</td> <td class="nbHitsUncovered"><a title="Line 264: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 264: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (cpeIndex != <span class="keyword">null</span>) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 265</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  cpeIndex.saveEntry(vs);</span></pre></td></tr> -<tr> <td class="numLine"> 266</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 267</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 268</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  cveDB.updateVulnerability(vuln);</span></pre></td></tr> -<tr> <td class="numLineCover"> 269</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLine"> 270</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 241</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> setPrevVersionVulnMap(Map<String, List<VulnerableSoftware>> map) {</pre></td></tr> +<tr> <td class="numLineCover"> 242</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  prevVersionVulnMap = map;</span></pre></td></tr> +<tr> <td class="numLineCover"> 243</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLine"> 244</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 245</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 246</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Saves a vulnerability to the CVE Database.</span></pre></td></tr> +<tr> <td class="numLine"> 247</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 248</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param vuln the vulnerability to store in the database</span></pre></td></tr> +<tr> <td class="numLine"> 249</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @throws DatabaseException thrown if there is an error writing to the</span></pre></td></tr> +<tr> <td class="numLine"> 250</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * database</span></pre></td></tr> +<tr> <td class="numLine"> 251</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @throws CorruptIndexException is thrown if the CPE Index is corrupt</span></pre></td></tr> +<tr> <td class="numLine"> 252</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @throws IOException thrown if there is an IOException with the CPE Index</span></pre></td></tr> +<tr> <td class="numLine"> 253</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 254</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">void</span> saveEntry(Vulnerability vuln) <span class="keyword">throws</span> DatabaseException, CorruptIndexException, IOException {</pre></td></tr> +<tr> <td class="numLineCover"> 255</td> <td class="nbHitsUncovered"><a title="Line 255: Conditional coverage 50% (1/2)."> 19</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 255: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (cveDB == <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 256</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  <span class="keyword">return</span>;</pre></td></tr> +<tr> <td class="numLine"> 257</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 258</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String cveName = vuln.getName();</span></pre></td></tr> +<tr> <td class="numLineCover"> 259</td> <td class="nbHitsUncovered"><a title="Line 259: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 259: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (prevVersionVulnMap.containsKey(cveName)) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 260</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> List<VulnerableSoftware> vulnSoftware = prevVersionVulnMap.get(cveName);</span></pre></td></tr> +<tr> <td class="numLineCover"> 261</td> <td class="nbHitsUncovered"><a title="Line 261: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 261: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (VulnerableSoftware vs : vulnSoftware) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 262</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  vuln.updateVulnerableSoftware(vs);</span></pre></td></tr> +<tr> <td class="numLine"> 263</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 264</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 265</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  cveDB.updateVulnerability(vuln);</span></pre></td></tr> +<tr> <td class="numLineCover"> 266</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLine"> 267</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 268</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">// <editor-fold defaultstate="collapsed" desc="The Element Class that maintains state information about the current node"></span></pre></td></tr> +<tr> <td class="numLine"> 269</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 270</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * A simple class to maintain information about the current element while</span></pre></td></tr> <tr> <td class="numLine"> 271</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * the cpe index.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * parsing the NVD CVE XML.</span></pre></td></tr> <tr> <td class="numLine"> 272</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 273</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">private</span> CpeIndexWriter cpeIndex;</pre></td></tr> +<tr> <td class="numLineCover"> 273</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">protected</span> <span class="keyword">static</span> <span class="keyword">class</span> Element {</pre></td></tr> <tr> <td class="numLine"> 274</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 275</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 276</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Sets the cpe index writer.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * A node type in the NVD CVE Schema 2.0</span></pre></td></tr> <tr> <td class="numLine"> 277</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 278</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param index the CPE Lucene Index</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String NVD = <span class="string">"nvd"</span>;</pre></td></tr> <tr> <td class="numLine"> 279</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 280</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> setCpeIndex(CpeIndexWriter index) {</pre></td></tr> -<tr> <td class="numLineCover"> 281</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  cpeIndex = index;</span></pre></td></tr> -<tr> <td class="numLineCover"> 282</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * A node type in the NVD CVE Schema 2.0</span></pre></td></tr> +<tr> <td class="numLine"> 281</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 282</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String ENTRY = <span class="string">"entry"</span>;</pre></td></tr> <tr> <td class="numLine"> 283</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 284</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">// <editor-fold defaultstate="collapsed" desc="The Element Class that maintains state information about the current node"></span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * A node type in the NVD CVE Schema 2.0</span></pre></td></tr> <tr> <td class="numLine"> 285</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 286</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * A simple class to maintain information about the current element while</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String VULN_PRODUCT = <span class="string">"vuln:product"</span>;</pre></td></tr> <tr> <td class="numLine"> 287</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * parsing the NVD CVE XML.</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 288</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 289</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">protected</span> <span class="keyword">static</span> <span class="keyword">class</span> Element {</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * A node type in the NVD CVE Schema 2.0</span></pre></td></tr> +<tr> <td class="numLine"> 289</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 290</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String VULN_REFERENCES = <span class="string">"vuln:references"</span>;</pre></td></tr> <tr> <td class="numLine"> 291</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 292</td> <td class="nbHits"> </td> @@ -479,7 +482,7 @@ <tr> <td class="numLine"> 293</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 294</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String NVD = <span class="string">"nvd"</span>;</pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String VULN_SOURCE = <span class="string">"vuln:source"</span>;</pre></td></tr> <tr> <td class="numLine"> 295</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 296</td> <td class="nbHits"> </td> @@ -487,7 +490,7 @@ <tr> <td class="numLine"> 297</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 298</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String ENTRY = <span class="string">"entry"</span>;</pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String VULN_REFERENCE = <span class="string">"vuln:reference"</span>;</pre></td></tr> <tr> <td class="numLine"> 299</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 300</td> <td class="nbHits"> </td> @@ -495,7 +498,7 @@ <tr> <td class="numLine"> 301</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 302</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String VULN_PRODUCT = <span class="string">"vuln:product"</span>;</pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String VULN_SUMMARY = <span class="string">"vuln:summary"</span>;</pre></td></tr> <tr> <td class="numLine"> 303</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 304</td> <td class="nbHits"> </td> @@ -503,7 +506,7 @@ <tr> <td class="numLine"> 305</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 306</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String VULN_REFERENCES = <span class="string">"vuln:references"</span>;</pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String VULN_CWE = <span class="string">"vuln:cwe"</span>;</pre></td></tr> <tr> <td class="numLine"> 307</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 308</td> <td class="nbHits"> </td> @@ -511,7 +514,7 @@ <tr> <td class="numLine"> 309</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 310</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String VULN_SOURCE = <span class="string">"vuln:source"</span>;</pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String CVSS_SCORE = <span class="string">"cvss:score"</span>;</pre></td></tr> <tr> <td class="numLine"> 311</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 312</td> <td class="nbHits"> </td> @@ -519,7 +522,7 @@ <tr> <td class="numLine"> 313</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 314</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String VULN_REFERENCE = <span class="string">"vuln:reference"</span>;</pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String CVSS_ACCESS_VECTOR = <span class="string">"cvss:access-vector"</span>;</pre></td></tr> <tr> <td class="numLine"> 315</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 316</td> <td class="nbHits"> </td> @@ -527,7 +530,7 @@ <tr> <td class="numLine"> 317</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 318</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String VULN_SUMMARY = <span class="string">"vuln:summary"</span>;</pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String CVSS_ACCESS_COMPLEXITY = <span class="string">"cvss:access-complexity"</span>;</pre></td></tr> <tr> <td class="numLine"> 319</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 320</td> <td class="nbHits"> </td> @@ -535,7 +538,7 @@ <tr> <td class="numLine"> 321</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 322</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String VULN_CWE = <span class="string">"vuln:cwe"</span>;</pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String CVSS_AUTHENTICATION = <span class="string">"cvss:authentication"</span>;</pre></td></tr> <tr> <td class="numLine"> 323</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 324</td> <td class="nbHits"> </td> @@ -543,7 +546,7 @@ <tr> <td class="numLine"> 325</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 326</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String CVSS_SCORE = <span class="string">"cvss:score"</span>;</pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String CVSS_CONFIDENTIALITY_IMPACT = <span class="string">"cvss:confidentiality-impact"</span>;</pre></td></tr> <tr> <td class="numLine"> 327</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 328</td> <td class="nbHits"> </td> @@ -551,7 +554,7 @@ <tr> <td class="numLine"> 329</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 330</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String CVSS_ACCESS_VECTOR = <span class="string">"cvss:access-vector"</span>;</pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String CVSS_INTEGRITY_IMPACT = <span class="string">"cvss:integrity-impact"</span>;</pre></td></tr> <tr> <td class="numLine"> 331</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 332</td> <td class="nbHits"> </td> @@ -559,343 +562,311 @@ <tr> <td class="numLine"> 333</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 334</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String CVSS_ACCESS_COMPLEXITY = <span class="string">"cvss:access-complexity"</span>;</pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String CVSS_AVAILABILITY_IMPACT = <span class="string">"cvss:availability-impact"</span>;</pre></td></tr> <tr> <td class="numLine"> 335</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 336</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * A node type in the NVD CVE Schema 2.0</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * The current node.</span></pre></td></tr> <tr> <td class="numLine"> 337</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 338</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String CVSS_AUTHENTICATION = <span class="string">"cvss:authentication"</span>;</pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">private</span> String node;</pre></td></tr> <tr> <td class="numLine"> 339</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 340</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * A node type in the NVD CVE Schema 2.0</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 341</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * Gets the value of node.</span></pre></td></tr> <tr> <td class="numLine"> 342</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String CVSS_CONFIDENTIALITY_IMPACT = <span class="string">"cvss:confidentiality-impact"</span>;</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 343</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * @return the value of node</span></pre></td></tr> <tr> <td class="numLine"> 344</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * A node type in the NVD CVE Schema 2.0</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 345</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 346</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String CVSS_INTEGRITY_IMPACT = <span class="string">"cvss:integrity-impact"</span>;</pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">public</span> String getNode() {</pre></td></tr> +<tr> <td class="numLineCover"> 346</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">this</span>.node;</span></pre></td></tr> <tr> <td class="numLine"> 347</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 348</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * A node type in the NVD CVE Schema 2.0</span></pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 349</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 350</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String CVSS_AVAILABILITY_IMPACT = <span class="string">"cvss:availability-impact"</span>;</pre></td></tr> -<tr> <td class="numLine"> 351</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 350</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Sets the value of node.</span></pre></td></tr> +<tr> <td class="numLine"> 351</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 352</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * The current node.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * @param node new value of node</span></pre></td></tr> <tr> <td class="numLine"> 353</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 354</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">private</span> String node;</pre></td></tr> -<tr> <td class="numLine"> 355</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 356</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 357</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Gets the value of node.</span></pre></td></tr> -<tr> <td class="numLine"> 358</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 359</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @return the value of node</span></pre></td></tr> -<tr> <td class="numLine"> 360</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 361</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> String getNode() {</pre></td></tr> -<tr> <td class="numLineCover"> 362</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">this</span>.node;</span></pre></td></tr> -<tr> <td class="numLine"> 363</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 364</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 365</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 366</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Sets the value of node.</span></pre></td></tr> -<tr> <td class="numLine"> 367</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 368</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param node new value of node</span></pre></td></tr> -<tr> <td class="numLine"> 369</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 370</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> setNode(String node) {</pre></td></tr> -<tr> <td class="numLineCover"> 371</td> <td class="nbHitsCovered"> 4824</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.node = node;</pre></td></tr> -<tr> <td class="numLineCover"> 372</td> <td class="nbHitsCovered"> 4824</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 373</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 355</td> <td class="nbHitsCovered"> 4824</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.node = node;</pre></td></tr> +<tr> <td class="numLineCover"> 356</td> <td class="nbHitsCovered"> 4824</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 357</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 374</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 358</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 375</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 359</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Checks if the handler is at the NVD node.</span></pre></td></tr> -<tr> <td class="numLine"> 376</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 360</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 377</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 361</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return true or false</span></pre></td></tr> -<tr> <td class="numLine"> 378</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 362</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 379</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 363</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> isNVDNode() {</pre></td></tr> -<tr> <td class="numLineCover"> 380</td> <td class="nbHitsCovered"> 1361</td> <td class="src"><pre class="src">  <span class="keyword">return</span> NVD.equals(node);</pre></td></tr> -<tr> <td class="numLine"> 381</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 364</td> <td class="nbHitsCovered"> 1361</td> <td class="src"><pre class="src">  <span class="keyword">return</span> NVD.equals(node);</pre></td></tr> +<tr> <td class="numLine"> 365</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 382</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 366</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 383</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 367</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 384</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 368</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Checks if the handler is at the ENTRY node.</span></pre></td></tr> -<tr> <td class="numLine"> 385</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 369</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 386</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 370</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return true or false</span></pre></td></tr> -<tr> <td class="numLine"> 387</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 371</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 388</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 372</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> isEntryNode() {</pre></td></tr> -<tr> <td class="numLineCover"> 389</td> <td class="nbHitsCovered"> 4824</td> <td class="src"><pre class="src">  <span class="keyword">return</span> ENTRY.equals(node);</pre></td></tr> -<tr> <td class="numLine"> 390</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 373</td> <td class="nbHitsCovered"> 4824</td> <td class="src"><pre class="src">  <span class="keyword">return</span> ENTRY.equals(node);</pre></td></tr> +<tr> <td class="numLine"> 374</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 391</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 375</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 392</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 376</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 393</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 377</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Checks if the handler is at the VULN_PRODUCT node.</span></pre></td></tr> -<tr> <td class="numLine"> 394</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 378</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 395</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 379</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return true or false</span></pre></td></tr> -<tr> <td class="numLine"> 396</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 380</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 397</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 381</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> isVulnProductNode() {</pre></td></tr> -<tr> <td class="numLineCover"> 398</td> <td class="nbHitsCovered"> 4588</td> <td class="src"><pre class="src">  <span class="keyword">return</span> VULN_PRODUCT.equals(node);</pre></td></tr> -<tr> <td class="numLine"> 399</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 382</td> <td class="nbHitsCovered"> 4588</td> <td class="src"><pre class="src">  <span class="keyword">return</span> VULN_PRODUCT.equals(node);</pre></td></tr> +<tr> <td class="numLine"> 383</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 400</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 384</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 401</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 385</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 402</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 386</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Checks if the handler is at the REFERENCES node.</span></pre></td></tr> -<tr> <td class="numLine"> 403</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 387</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 404</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 388</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return true or false</span></pre></td></tr> -<tr> <td class="numLine"> 405</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 389</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 406</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 390</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> isVulnReferencesNode() {</pre></td></tr> -<tr> <td class="numLineCover"> 407</td> <td class="nbHitsCovered"> 1928</td> <td class="src"><pre class="src">  <span class="keyword">return</span> VULN_REFERENCES.equals(node);</pre></td></tr> -<tr> <td class="numLine"> 408</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 391</td> <td class="nbHitsCovered"> 1928</td> <td class="src"><pre class="src">  <span class="keyword">return</span> VULN_REFERENCES.equals(node);</pre></td></tr> +<tr> <td class="numLine"> 392</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 409</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 393</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 410</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 394</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 411</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 395</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Checks if the handler is at the REFERENCE node.</span></pre></td></tr> -<tr> <td class="numLine"> 412</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 396</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 413</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 397</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return true or false</span></pre></td></tr> -<tr> <td class="numLine"> 414</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 398</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 415</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 399</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> isVulnReferenceNode() {</pre></td></tr> -<tr> <td class="numLineCover"> 416</td> <td class="nbHitsCovered"> 360</td> <td class="src"><pre class="src">  <span class="keyword">return</span> VULN_REFERENCE.equals(node);</pre></td></tr> -<tr> <td class="numLine"> 417</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 400</td> <td class="nbHitsCovered"> 360</td> <td class="src"><pre class="src">  <span class="keyword">return</span> VULN_REFERENCE.equals(node);</pre></td></tr> +<tr> <td class="numLine"> 401</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 418</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 402</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 419</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 403</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 420</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 404</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Checks if the handler is at the VULN_SOURCE node.</span></pre></td></tr> -<tr> <td class="numLine"> 421</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 405</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 422</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 406</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return true or false</span></pre></td></tr> -<tr> <td class="numLine"> 423</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 407</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 424</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 408</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> isVulnSourceNode() {</pre></td></tr> -<tr> <td class="numLineCover"> 425</td> <td class="nbHitsCovered"> 180</td> <td class="src"><pre class="src">  <span class="keyword">return</span> VULN_SOURCE.equals(node);</pre></td></tr> -<tr> <td class="numLine"> 426</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 409</td> <td class="nbHitsCovered"> 180</td> <td class="src"><pre class="src">  <span class="keyword">return</span> VULN_SOURCE.equals(node);</pre></td></tr> +<tr> <td class="numLine"> 410</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 427</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 411</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 428</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 412</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 429</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 413</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Checks if the handler is at the VULN_SUMMARY node.</span></pre></td></tr> -<tr> <td class="numLine"> 430</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 414</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 431</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 415</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return true or false</span></pre></td></tr> -<tr> <td class="numLine"> 432</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 416</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 433</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 417</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> isVulnSummaryNode() {</pre></td></tr> -<tr> <td class="numLineCover"> 434</td> <td class="nbHitsCovered"> 2594</td> <td class="src"><pre class="src">  <span class="keyword">return</span> VULN_SUMMARY.equals(node);</pre></td></tr> -<tr> <td class="numLine"> 435</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 418</td> <td class="nbHitsCovered"> 2594</td> <td class="src"><pre class="src">  <span class="keyword">return</span> VULN_SUMMARY.equals(node);</pre></td></tr> +<tr> <td class="numLine"> 419</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 436</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 420</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 437</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 421</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 438</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 422</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Checks if the handler is at the VULN_CWE node.</span></pre></td></tr> -<tr> <td class="numLine"> 439</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 423</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 440</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 424</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return true or false</span></pre></td></tr> -<tr> <td class="numLine"> 441</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 425</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 442</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 426</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> isVulnCWENode() {</pre></td></tr> -<tr> <td class="numLineCover"> 443</td> <td class="nbHitsCovered"> 1360</td> <td class="src"><pre class="src">  <span class="keyword">return</span> VULN_CWE.equals(node);</pre></td></tr> -<tr> <td class="numLine"> 444</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 427</td> <td class="nbHitsCovered"> 1360</td> <td class="src"><pre class="src">  <span class="keyword">return</span> VULN_CWE.equals(node);</pre></td></tr> +<tr> <td class="numLine"> 428</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 445</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 429</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 446</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 430</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 447</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 431</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Checks if the handler is at the CVSS_SCORE node.</span></pre></td></tr> -<tr> <td class="numLine"> 448</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 432</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 449</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 433</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return true or false</span></pre></td></tr> -<tr> <td class="numLine"> 450</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 434</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 451</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 435</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> isCVSSScoreNode() {</pre></td></tr> -<tr> <td class="numLineCover"> 452</td> <td class="nbHitsCovered"> 3726</td> <td class="src"><pre class="src">  <span class="keyword">return</span> CVSS_SCORE.equals(node);</pre></td></tr> -<tr> <td class="numLine"> 453</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 436</td> <td class="nbHitsCovered"> 3726</td> <td class="src"><pre class="src">  <span class="keyword">return</span> CVSS_SCORE.equals(node);</pre></td></tr> +<tr> <td class="numLine"> 437</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 454</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 438</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 455</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 439</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 456</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 440</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Checks if the handler is at the CVSS_ACCESS_VECTOR node.</span></pre></td></tr> -<tr> <td class="numLine"> 457</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 441</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 458</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 442</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return true or false</span></pre></td></tr> -<tr> <td class="numLine"> 459</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 443</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 460</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 444</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> isCVSSAccessVectorNode() {</pre></td></tr> -<tr> <td class="numLineCover"> 461</td> <td class="nbHitsCovered"> 3674</td> <td class="src"><pre class="src">  <span class="keyword">return</span> CVSS_ACCESS_VECTOR.equals(node);</pre></td></tr> -<tr> <td class="numLine"> 462</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 445</td> <td class="nbHitsCovered"> 3674</td> <td class="src"><pre class="src">  <span class="keyword">return</span> CVSS_ACCESS_VECTOR.equals(node);</pre></td></tr> +<tr> <td class="numLine"> 446</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 463</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 447</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 464</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 448</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 465</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 449</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Checks if the handler is at the CVSS_ACCESS_COMPLEXITY node.</span></pre></td></tr> -<tr> <td class="numLine"> 466</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 450</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 467</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 451</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return true or false</span></pre></td></tr> -<tr> <td class="numLine"> 468</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 452</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 469</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 453</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> isCVSSAccessComplexityNode() {</pre></td></tr> -<tr> <td class="numLineCover"> 470</td> <td class="nbHitsCovered"> 3622</td> <td class="src"><pre class="src">  <span class="keyword">return</span> CVSS_ACCESS_COMPLEXITY.equals(node);</pre></td></tr> -<tr> <td class="numLine"> 471</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 454</td> <td class="nbHitsCovered"> 3622</td> <td class="src"><pre class="src">  <span class="keyword">return</span> CVSS_ACCESS_COMPLEXITY.equals(node);</pre></td></tr> +<tr> <td class="numLine"> 455</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 472</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 456</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 473</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 457</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 474</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 458</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Checks if the handler is at the CVSS_AUTHENTICATION node.</span></pre></td></tr> -<tr> <td class="numLine"> 475</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 459</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 476</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 460</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return true or false</span></pre></td></tr> -<tr> <td class="numLine"> 477</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 461</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 478</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 462</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> isCVSSAuthenticationNode() {</pre></td></tr> -<tr> <td class="numLineCover"> 479</td> <td class="nbHitsCovered"> 3570</td> <td class="src"><pre class="src">  <span class="keyword">return</span> CVSS_AUTHENTICATION.equals(node);</pre></td></tr> -<tr> <td class="numLine"> 480</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 463</td> <td class="nbHitsCovered"> 3570</td> <td class="src"><pre class="src">  <span class="keyword">return</span> CVSS_AUTHENTICATION.equals(node);</pre></td></tr> +<tr> <td class="numLine"> 464</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 481</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 465</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 482</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 466</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 483</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 467</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Checks if the handler is at the CVSS_CONFIDENTIALITY_IMPACT node.</span></pre></td></tr> -<tr> <td class="numLine"> 484</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 468</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 485</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 469</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return true or false</span></pre></td></tr> -<tr> <td class="numLine"> 486</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 470</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 487</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 471</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> isCVSSConfidentialityImpactNode() {</pre></td></tr> -<tr> <td class="numLineCover"> 488</td> <td class="nbHitsCovered"> 3466</td> <td class="src"><pre class="src">  <span class="keyword">return</span> CVSS_CONFIDENTIALITY_IMPACT.equals(node);</pre></td></tr> -<tr> <td class="numLine"> 489</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 472</td> <td class="nbHitsCovered"> 3466</td> <td class="src"><pre class="src">  <span class="keyword">return</span> CVSS_CONFIDENTIALITY_IMPACT.equals(node);</pre></td></tr> +<tr> <td class="numLine"> 473</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 490</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 474</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 491</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 475</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 492</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 476</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Checks if the handler is at the CVSS_INTEGRITY_IMPACT node.</span></pre></td></tr> -<tr> <td class="numLine"> 493</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 477</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 494</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 478</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return true or false</span></pre></td></tr> -<tr> <td class="numLine"> 495</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 479</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 496</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 480</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> isCVSSIntegrityImpactNode() {</pre></td></tr> -<tr> <td class="numLineCover"> 497</td> <td class="nbHitsCovered"> 3414</td> <td class="src"><pre class="src">  <span class="keyword">return</span> CVSS_INTEGRITY_IMPACT.equals(node);</pre></td></tr> -<tr> <td class="numLine"> 498</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 481</td> <td class="nbHitsCovered"> 3414</td> <td class="src"><pre class="src">  <span class="keyword">return</span> CVSS_INTEGRITY_IMPACT.equals(node);</pre></td></tr> +<tr> <td class="numLine"> 482</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 499</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 483</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 500</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 484</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 501</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 485</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Checks if the handler is at the CVSS_AVAILABILITY_IMPACT node.</span></pre></td></tr> -<tr> <td class="numLine"> 502</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 486</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 503</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 487</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return true or false</span></pre></td></tr> -<tr> <td class="numLine"> 504</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 488</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 505</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 489</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> isCVSSAvailabilityImpactNode() {</pre></td></tr> -<tr> <td class="numLineCover"> 506</td> <td class="nbHitsCovered"> 3518</td> <td class="src"><pre class="src">  <span class="keyword">return</span> CVSS_AVAILABILITY_IMPACT.equals(node);</pre></td></tr> -<tr> <td class="numLine"> 507</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 490</td> <td class="nbHitsCovered"> 3518</td> <td class="src"><pre class="src">  <span class="keyword">return</span> CVSS_AVAILABILITY_IMPACT.equals(node);</pre></td></tr> +<tr> <td class="numLine"> 491</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 508</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 492</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 509</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 493</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">// </editor-fold></span></pre></td></tr> -<tr> <td class="numLine"> 510</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 494</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.AbstractUpdateTask.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.AbstractUpdateTask.html index 1e86e6991..aeebe18d2 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.AbstractUpdateTask.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.AbstractUpdateTask.html @@ -12,7 +12,7 @@ <div class="separator"> </div> <table class="report"> <thead><tr> <td class="heading">Classes in this File</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead> - <tr><td><a href="org.owasp.dependencycheck.data.update.AbstractUpdateTask.html">AbstractUpdateTask</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">51%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:51px"><span class="text">37/72</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">83%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:83px"><span class="text">10/12</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.0;</span>2</td></tr> + <tr><td><a href="org.owasp.dependencycheck.data.update.AbstractUpdateTask.html">AbstractUpdateTask</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">47%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:47px"><span class="text">28/59</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">87%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:87px"><span class="text">7/8</span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.8571428571428572;</span>1.857</td></tr> </table> <div class="separator"> </div> @@ -82,447 +82,404 @@ <tr> <td class="numLine"> 32</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.UpdateException;</pre></td></tr> <tr> <td class="numLine"> 33</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.cpe.CpeIndexWriter;</pre></td></tr> -<tr> <td class="numLine"> 34</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.nvdcve.CveDB;</pre></td></tr> -<tr> <td class="numLine"> 35</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 34</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.utils.FileUtils;</pre></td></tr> -<tr> <td class="numLine"> 36</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 35</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.utils.Settings;</pre></td></tr> -<tr> <td class="numLine"> 37</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 36</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.nvdcve.DatabaseException;</pre></td></tr> -<tr> <td class="numLine"> 38</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 37</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler;</pre></td></tr> -<tr> <td class="numLine"> 39</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 38</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler;</pre></td></tr> -<tr> <td class="numLine"> 40</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 39</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.dependency.VulnerableSoftware;</pre></td></tr> -<tr> <td class="numLine"> 41</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 40</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.utils.DownloadFailedException;</pre></td></tr> -<tr> <td class="numLine"> 42</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 41</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> org.xml.sax.SAXException;</pre></td></tr> +<tr> <td class="numLine"> 42</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 43</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 44</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 45</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 44</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Class responsible for updating the CPE and NVDCVE data stores.</span></pre></td></tr> -<tr> <td class="numLine"> 46</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 45</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 47</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 46</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @author Jeremy Long (jeremy.long@owasp.org)</span></pre></td></tr> -<tr> <td class="numLine"> 48</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 47</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 49</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 48</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">abstract</span> <span class="keyword">class</span> AbstractUpdateTask <span class="keyword">implements</span> UpdateTask {</pre></td></tr> +<tr> <td class="numLine"> 49</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 50</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 51</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 52</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Initializes the AbstractUpdateTask.</span></pre></td></tr> +<tr> <td class="numLine"> 52</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 53</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 54</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param properties information about the data store</span></pre></td></tr> -<tr> <td class="numLine"> 55</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 54</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws MalformedURLException thrown if the configuration contains a</span></pre></td></tr> -<tr> <td class="numLine"> 56</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 55</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * malformed url</span></pre></td></tr> -<tr> <td class="numLine"> 57</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 56</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws DownloadFailedException thrown if the timestamp on a file cannot</span></pre></td></tr> -<tr> <td class="numLine"> 58</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 57</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * be checked</span></pre></td></tr> -<tr> <td class="numLine"> 59</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 58</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws UpdateException thrown if the update fails</span></pre></td></tr> -<tr> <td class="numLine"> 60</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 59</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 61</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  <span class="keyword">public</span> AbstractUpdateTask(DataStoreMetaInfo properties) <span class="keyword">throws</span> MalformedURLException, DownloadFailedException, UpdateException {</pre></td></tr> -<tr> <td class="numLineCover"> 62</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.properties = properties;</pre></td></tr> -<tr> <td class="numLineCover"> 63</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.updateable = updatesNeeded();</pre></td></tr> -<tr> <td class="numLineCover"> 64</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 60</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  <span class="keyword">public</span> AbstractUpdateTask(DataStoreMetaInfo properties) <span class="keyword">throws</span> MalformedURLException, DownloadFailedException, UpdateException {</pre></td></tr> +<tr> <td class="numLineCover"> 61</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.properties = properties;</pre></td></tr> +<tr> <td class="numLineCover"> 62</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.updateable = updatesNeeded();</pre></td></tr> +<tr> <td class="numLineCover"> 63</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 64</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 65</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 66</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * A collection of updateable NVD CVE items.</span></pre></td></tr> +<tr> <td class="numLine"> 66</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 67</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 68</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">private</span> Updateable updateable;</pre></td></tr> +<tr> <td class="numLine"> 68</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 69</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 70</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Utility to read and write meta-data about the data.</span></pre></td></tr> -<tr> <td class="numLine"> 71</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 70</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 72</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  <span class="keyword">private</span> DataStoreMetaInfo properties = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 71</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  <span class="keyword">private</span> DataStoreMetaInfo properties = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLine"> 72</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 73</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 74</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 75</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Returns the data store properties.</span></pre></td></tr> +<tr> <td class="numLine"> 75</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 76</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 77</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return the data store properties</span></pre></td></tr> +<tr> <td class="numLine"> 77</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 78</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 79</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">protected</span> DataStoreMetaInfo getProperties() {</pre></td></tr> -<tr> <td class="numLineCover"> 80</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  <span class="keyword">return</span> properties;</pre></td></tr> +<tr> <td class="numLineCover"> 79</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  <span class="keyword">return</span> properties;</pre></td></tr> +<tr> <td class="numLine"> 80</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 81</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 82</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 83</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Reference to the Cve Database.</span></pre></td></tr> -<tr> <td class="numLine"> 84</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 83</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 85</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  <span class="keyword">private</span> CveDB cveDB = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLine"> 86</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 84</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  <span class="keyword">private</span> CveDB cveDB = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLine"> 85</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 87</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 86</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 88</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 87</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Returns the CveDB.</span></pre></td></tr> -<tr> <td class="numLine"> 89</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 88</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 90</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 89</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return the CveDB</span></pre></td></tr> -<tr> <td class="numLine"> 91</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 90</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 92</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 91</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">protected</span> CveDB getCveDB() {</pre></td></tr> -<tr> <td class="numLineCover"> 93</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> cveDB;</span></pre></td></tr> -<tr> <td class="numLine"> 94</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 92</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> cveDB;</span></pre></td></tr> +<tr> <td class="numLine"> 93</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 94</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 95</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 96</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Reference to the Cpe Index.</span></pre></td></tr> -<tr> <td class="numLine"> 97</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 98</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  <span class="keyword">private</span> CpeIndexWriter cpeIndex = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLine"> 99</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 100</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 101</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Returns the CpeIndex.</span></pre></td></tr> -<tr> <td class="numLine"> 102</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 103</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @return the CpeIndex</span></pre></td></tr> -<tr> <td class="numLine"> 104</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 105</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">protected</span> CpeIndexWriter getCpeIndex() {</pre></td></tr> -<tr> <td class="numLineCover"> 106</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> cpeIndex;</span></pre></td></tr> -<tr> <td class="numLine"> 107</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 108</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 109</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 110</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Gets whether or not an update is needed.</span></pre></td></tr> -<tr> <td class="numLine"> 111</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 97</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 112</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 98</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return true or false depending on whether an update is needed</span></pre></td></tr> -<tr> <td class="numLine"> 113</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 99</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 114</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 100</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> isUpdateNeeded() {</pre></td></tr> -<tr> <td class="numLineCover"> 115</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> updateable.isUpdateNeeded();</span></pre></td></tr> -<tr> <td class="numLine"> 116</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 101</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> updateable.isUpdateNeeded();</span></pre></td></tr> +<tr> <td class="numLine"> 102</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 117</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 103</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 118</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 104</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 119</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 105</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Gets the updateable NVD CVE Entries.</span></pre></td></tr> -<tr> <td class="numLine"> 120</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 106</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 121</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 107</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return an Updateable object containing the NVD CVE entries</span></pre></td></tr> -<tr> <td class="numLine"> 122</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 108</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 123</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 109</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">protected</span> Updateable getUpdateable() {</pre></td></tr> -<tr> <td class="numLineCover"> 124</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> updateable;</span></pre></td></tr> -<tr> <td class="numLine"> 125</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 110</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> updateable;</span></pre></td></tr> +<tr> <td class="numLine"> 111</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 126</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 112</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 127</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 113</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 128</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 114</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Determines if the index needs to be updated.</span></pre></td></tr> -<tr> <td class="numLine"> 129</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 115</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 130</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 116</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return a collection of updateable resources.</span></pre></td></tr> -<tr> <td class="numLine"> 131</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 117</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws MalformedURLException is thrown if the URL for the NVD CVE Meta</span></pre></td></tr> -<tr> <td class="numLine"> 132</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 118</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * data is incorrect.</span></pre></td></tr> -<tr> <td class="numLine"> 133</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 119</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws DownloadFailedException is thrown if there is an error.</span></pre></td></tr> -<tr> <td class="numLine"> 134</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 120</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * downloading the NVD CVE download data file.</span></pre></td></tr> -<tr> <td class="numLine"> 135</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 121</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws UpdateException Is thrown if there is an issue with the last</span></pre></td></tr> -<tr> <td class="numLine"> 136</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 122</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * updated properties file.</span></pre></td></tr> -<tr> <td class="numLine"> 137</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 123</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 138</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 124</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">protected</span> <span class="keyword">abstract</span> Updateable updatesNeeded() <span class="keyword">throws</span> MalformedURLException, DownloadFailedException, UpdateException;</pre></td></tr> -<tr> <td class="numLine"> 139</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 125</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 140</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 126</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 141</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 127</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * <p>Updates the data store to the latest version.</p></span></pre></td></tr> -<tr> <td class="numLine"> 142</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 128</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 143</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 129</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws UpdateException is thrown if there is an error updating the</span></pre></td></tr> -<tr> <td class="numLine"> 144</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 130</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * database</span></pre></td></tr> -<tr> <td class="numLine"> 145</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 131</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 146</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 132</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">abstract</span> <span class="keyword">void</span> update() <span class="keyword">throws</span> UpdateException;</pre></td></tr> -<tr> <td class="numLine"> 147</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 133</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 148</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 134</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * A flag indicating whether or not the current data store should be</span></pre></td></tr> -<tr> <td class="numLine"> 149</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 135</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * deleted.</span></pre></td></tr> -<tr> <td class="numLine"> 150</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 136</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 151</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">boolean</span> deleteAndRecreate = <span class="keyword">false</span>;</pre></td></tr> -<tr> <td class="numLine"> 152</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 137</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">boolean</span> deleteAndRecreate = <span class="keyword">false</span>;</pre></td></tr> +<tr> <td class="numLine"> 138</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 153</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 139</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 154</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 140</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Get the value of deleteAndRecreate.</span></pre></td></tr> -<tr> <td class="numLine"> 155</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 141</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 156</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 142</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return the value of deleteAndRecreate</span></pre></td></tr> -<tr> <td class="numLine"> 157</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 143</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 158</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 144</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> shouldDeleteAndRecreate() {</pre></td></tr> -<tr> <td class="numLineCover"> 159</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">return</span> deleteAndRecreate;</pre></td></tr> -<tr> <td class="numLine"> 160</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 145</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">return</span> deleteAndRecreate;</pre></td></tr> +<tr> <td class="numLine"> 146</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 161</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 147</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 162</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 148</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 163</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 149</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Set the value of deleteAndRecreate.</span></pre></td></tr> -<tr> <td class="numLine"> 164</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 150</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 165</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 151</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param deleteAndRecreate new value of deleteAndRecreate</span></pre></td></tr> -<tr> <td class="numLine"> 166</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 152</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 167</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 153</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">protected</span> <span class="keyword">void</span> setDeleteAndRecreate(<span class="keyword">boolean</span> deleteAndRecreate) {</pre></td></tr> -<tr> <td class="numLineCover"> 168</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.deleteAndRecreate = deleteAndRecreate;</pre></td></tr> -<tr> <td class="numLineCover"> 169</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 170</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 154</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.deleteAndRecreate = deleteAndRecreate;</pre></td></tr> +<tr> <td class="numLineCover"> 155</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 156</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 171</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 157</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 172</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 158</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Deletes the existing data directories.</span></pre></td></tr> -<tr> <td class="numLine"> 173</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 159</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 174</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 160</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws IOException thrown if the directory cannot be deleted</span></pre></td></tr> +<tr> <td class="numLine"> 161</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 162</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">protected</span> <span class="keyword">void</span> deleteExistingData() <span class="keyword">throws</span> IOException {</pre></td></tr> +<tr> <td class="numLineCover"> 163</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  File data = Settings.getDataFile(Settings.KEYS.CVE_DATA_DIRECTORY);</pre></td></tr> +<tr> <td class="numLineCover"> 164</td> <td class="nbHitsCovered"><a title="Line 164: Conditional coverage 100% (2/2)."> 3</a></td> <td class="src"><pre class="src"> <a title="Line 164: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (data.exists()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 165</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  FileUtils.delete(data);</pre></td></tr> +<tr> <td class="numLine"> 166</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 167</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  data = DataStoreMetaInfo.getPropertiesFile();</pre></td></tr> +<tr> <td class="numLineCover"> 168</td> <td class="nbHitsCovered"><a title="Line 168: Conditional coverage 100% (2/2)."> 3</a></td> <td class="src"><pre class="src"> <a title="Line 168: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (data.exists()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 169</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  FileUtils.delete(data);</pre></td></tr> +<tr> <td class="numLine"> 170</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 171</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 172</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 173</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 174</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Closes the CVE and CPE data stores.</span></pre></td></tr> <tr> <td class="numLine"> 175</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 176</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">protected</span> <span class="keyword">void</span> deleteExistingData() <span class="keyword">throws</span> IOException {</pre></td></tr> -<tr> <td class="numLineCover"> 177</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  File data = Settings.getFile(Settings.KEYS.CVE_DATA_DIRECTORY);</pre></td></tr> -<tr> <td class="numLineCover"> 178</td> <td class="nbHitsCovered"><a title="Line 178: Conditional coverage 100% (2/2)."> 3</a></td> <td class="src"><pre class="src"> <a title="Line 178: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (data.exists()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 179</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  FileUtils.delete(data);</pre></td></tr> -<tr> <td class="numLine"> 180</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 181</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  data = Settings.getFile(Settings.KEYS.CPE_DATA_DIRECTORY);</pre></td></tr> -<tr> <td class="numLineCover"> 182</td> <td class="nbHitsCovered"><a title="Line 182: Conditional coverage 100% (2/2)."> 3</a></td> <td class="src"><pre class="src"> <a title="Line 182: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (data.exists()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 183</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  FileUtils.delete(data);</pre></td></tr> -<tr> <td class="numLine"> 184</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 185</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  data = DataStoreMetaInfo.getPropertiesFile();</pre></td></tr> -<tr> <td class="numLineCover"> 186</td> <td class="nbHitsCovered"><a title="Line 186: Conditional coverage 100% (2/2)."> 3</a></td> <td class="src"><pre class="src"> <a title="Line 186: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (data.exists()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 187</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  FileUtils.delete(data);</pre></td></tr> -<tr> <td class="numLine"> 188</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 189</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 190</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 191</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 192</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Closes the CVE and CPE data stores.</span></pre></td></tr> -<tr> <td class="numLine"> 193</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 194</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">protected</span> <span class="keyword">void</span> closeDataStores() {</pre></td></tr> -<tr> <td class="numLineCover"> 195</td> <td class="nbHitsUncovered"><a title="Line 195: Conditional coverage 50% (1/2)."> 1</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 195: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (cveDB != <span class="keyword">null</span>) {</a></span></pre></td></tr> -<tr> <td class="numLine"> 196</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 177</td> <td class="nbHitsUncovered"><a title="Line 177: Conditional coverage 50% (1/2)."> 1</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 177: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (cveDB != <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLine"> 178</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 197</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  cveDB.close();</pre></td></tr> -<tr> <td class="numLineCover"> 198</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (Exception ignore) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 199</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(AbstractUpdateTask.<span class="keyword">class</span>.getName()).log(Level.FINEST, <span class="string">"Error closing the cveDB"</span>, ignore);</span></pre></td></tr> -<tr> <td class="numLineCover"> 200</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 201</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 179</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  cveDB.close();</pre></td></tr> +<tr> <td class="numLineCover"> 180</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (Exception ignore) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 181</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(AbstractUpdateTask.<span class="keyword">class</span>.getName()).log(Level.FINEST, <span class="string">"Error closing the cveDB"</span>, ignore);</span></pre></td></tr> +<tr> <td class="numLineCover"> 182</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 183</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 202</td> <td class="nbHitsUncovered"><a title="Line 202: Conditional coverage 50% (1/2)."> 1</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 202: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (cpeIndex != <span class="keyword">null</span>) {</a></span></pre></td></tr> -<tr> <td class="numLine"> 203</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 204</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  cpeIndex.close();</pre></td></tr> -<tr> <td class="numLineCover"> 205</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (Exception ignore) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 206</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(AbstractUpdateTask.<span class="keyword">class</span>.getName()).log(Level.FINEST, <span class="string">"Error closing the cpeIndex"</span>, ignore);</span></pre></td></tr> -<tr> <td class="numLineCover"> 207</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 208</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 209</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 210</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 184</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 185</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 211</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 186</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 212</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 187</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Opens the CVE and CPE data stores.</span></pre></td></tr> -<tr> <td class="numLine"> 213</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 188</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 214</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 189</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws UpdateException thrown if a data store cannot be opened</span></pre></td></tr> -<tr> <td class="numLine"> 215</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 190</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 216</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 191</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">protected</span> <span class="keyword">void</span> openDataStores() <span class="keyword">throws</span> UpdateException {</pre></td></tr> -<tr> <td class="numLine"> 217</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 192</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">//open the cve and cpe data stores</span></pre></td></tr> -<tr> <td class="numLine"> 218</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 193</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 219</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  cveDB = <span class="keyword">new</span> CveDB();</pre></td></tr> -<tr> <td class="numLineCover"> 220</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  cveDB.open();</pre></td></tr> -<tr> <td class="numLineCover"> 221</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  cpeIndex = <span class="keyword">new</span> CpeIndexWriter();</pre></td></tr> -<tr> <td class="numLineCover"> 222</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  cpeIndex.open();</pre></td></tr> -<tr> <td class="numLineCover"> 223</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 224</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeDataStores();</span></pre></td></tr> -<tr> <td class="numLineCover"> 225</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(AbstractUpdateTask.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="string">"IO Error opening databases"</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 226</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> UpdateException(<span class="string">"Error updating the CPE/CVE data, please see the log file for more details."</span>);</span></pre></td></tr> -<tr> <td class="numLineCover"> 227</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 228</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeDataStores();</span></pre></td></tr> -<tr> <td class="numLineCover"> 229</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(AbstractUpdateTask.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="string">"SQL Exception opening databases"</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 230</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> UpdateException(<span class="string">"Error updating the CPE/CVE data, please see the log file for more details."</span>);</span></pre></td></tr> -<tr> <td class="numLineCover"> 231</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (DatabaseException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 232</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeDataStores();</span></pre></td></tr> -<tr> <td class="numLineCover"> 233</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(AbstractUpdateTask.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="string">"Database Exception opening databases"</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 234</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> UpdateException(<span class="string">"Error updating the CPE/CVE data, please see the log file for more details."</span>);</span></pre></td></tr> -<tr> <td class="numLineCover"> 235</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (ClassNotFoundException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 236</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeDataStores();</span></pre></td></tr> -<tr> <td class="numLineCover"> 237</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(AbstractUpdateTask.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="string">"Class not found exception opening databases"</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 238</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> UpdateException(<span class="string">"Error updating the CPE/CVE data, please see the log file for more details."</span>);</span></pre></td></tr> -<tr> <td class="numLineCover"> 239</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 240</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 241</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 194</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  cveDB = <span class="keyword">new</span> CveDB();</pre></td></tr> +<tr> <td class="numLineCover"> 195</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  cveDB.open();</pre></td></tr> +<tr> <td class="numLineCover"> 196</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 197</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeDataStores();</span></pre></td></tr> +<tr> <td class="numLineCover"> 198</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(AbstractUpdateTask.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="string">"IO Error opening databases"</span>, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 199</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> UpdateException(<span class="string">"Error updating the CPE/CVE data, please see the log file for more details."</span>);</span></pre></td></tr> +<tr> <td class="numLineCover"> 200</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 201</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeDataStores();</span></pre></td></tr> +<tr> <td class="numLineCover"> 202</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(AbstractUpdateTask.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="string">"SQL Exception opening databases"</span>, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 203</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> UpdateException(<span class="string">"Error updating the CPE/CVE data, please see the log file for more details."</span>);</span></pre></td></tr> +<tr> <td class="numLineCover"> 204</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (DatabaseException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 205</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeDataStores();</span></pre></td></tr> +<tr> <td class="numLineCover"> 206</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(AbstractUpdateTask.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="string">"Database Exception opening databases"</span>, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 207</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> UpdateException(<span class="string">"Error updating the CPE/CVE data, please see the log file for more details."</span>);</span></pre></td></tr> +<tr> <td class="numLineCover"> 208</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (ClassNotFoundException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 209</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeDataStores();</span></pre></td></tr> +<tr> <td class="numLineCover"> 210</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(AbstractUpdateTask.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="string">"Class not found exception opening databases"</span>, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 211</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> UpdateException(<span class="string">"Error updating the CPE/CVE data, please see the log file for more details."</span>);</span></pre></td></tr> +<tr> <td class="numLineCover"> 212</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 213</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 214</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 242</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 215</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 243</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 216</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Determines if the epoch date is within the range specified of the</span></pre></td></tr> -<tr> <td class="numLine"> 244</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 217</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * compareTo epoch time. This takes the (compareTo-date)/1000/60/60/24 to</span></pre></td></tr> -<tr> <td class="numLine"> 245</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 218</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * get the number of days. If the calculated days is less then the range the</span></pre></td></tr> -<tr> <td class="numLine"> 246</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 219</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * date is considered valid.</span></pre></td></tr> -<tr> <td class="numLine"> 247</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 220</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 248</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 221</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param date the date to be checked.</span></pre></td></tr> -<tr> <td class="numLine"> 249</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 222</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param compareTo the date to compare to.</span></pre></td></tr> -<tr> <td class="numLine"> 250</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 223</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param range the range in days to be considered valid.</span></pre></td></tr> -<tr> <td class="numLine"> 251</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 224</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return whether or not the date is within the range.</span></pre></td></tr> -<tr> <td class="numLine"> 252</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 225</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 253</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 226</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">protected</span> <span class="keyword">boolean</span> withinRange(<span class="keyword">long</span> date, <span class="keyword">long</span> compareTo, <span class="keyword">int</span> range) {</pre></td></tr> -<tr> <td class="numLineCover"> 254</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  <span class="keyword">final</span> <span class="keyword">double</span> differenceInDays = (compareTo - date) / 1000.0 / 60.0 / 60.0 / 24.0;</pre></td></tr> -<tr> <td class="numLineCover"> 255</td> <td class="nbHitsCovered"><a title="Line 255: Conditional coverage 100% (2/2)."> 2</a></td> <td class="src"><pre class="src"> <a title="Line 255: Conditional coverage 100% (2/2)."> <span class="keyword">return</span> differenceInDays < range;</a></pre></td></tr> -<tr> <td class="numLine"> 256</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 227</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  <span class="keyword">final</span> <span class="keyword">double</span> differenceInDays = (compareTo - date) / 1000.0 / 60.0 / 60.0 / 24.0;</pre></td></tr> +<tr> <td class="numLineCover"> 228</td> <td class="nbHitsCovered"><a title="Line 228: Conditional coverage 100% (2/2)."> 2</a></td> <td class="src"><pre class="src"> <a title="Line 228: Conditional coverage 100% (2/2)."> <span class="keyword">return</span> differenceInDays < range;</a></pre></td></tr> +<tr> <td class="numLine"> 229</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 257</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 230</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 258</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 231</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 259</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 232</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Imports the NVD CVE XML File into the Lucene Index.</span></pre></td></tr> -<tr> <td class="numLine"> 260</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 233</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 261</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 234</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param file the file containing the NVD CVE XML</span></pre></td></tr> -<tr> <td class="numLine"> 262</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 235</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param oldVersion contains the file containing the NVD CVE XML 1.2</span></pre></td></tr> -<tr> <td class="numLine"> 263</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 236</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws ParserConfigurationException is thrown if there is a parser</span></pre></td></tr> -<tr> <td class="numLine"> 264</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 237</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * configuration exception</span></pre></td></tr> -<tr> <td class="numLine"> 265</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 238</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws SAXException is thrown if there is a SAXException</span></pre></td></tr> -<tr> <td class="numLine"> 266</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 239</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws IOException is thrown if there is a IO Exception</span></pre></td></tr> -<tr> <td class="numLine"> 267</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 240</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws SQLException is thrown if there is a SQL exception</span></pre></td></tr> -<tr> <td class="numLine"> 268</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 241</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws DatabaseException is thrown if there is a database exception</span></pre></td></tr> -<tr> <td class="numLine"> 269</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 242</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws ClassNotFoundException thrown if the h2 database driver cannot be</span></pre></td></tr> -<tr> <td class="numLine"> 270</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 243</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * loaded</span></pre></td></tr> -<tr> <td class="numLine"> 271</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 244</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 272</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">protected</span> <span class="keyword">void</span> importXML(File file, File oldVersion)</pre></td></tr> -<tr> <td class="numLine"> 273</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">throws</span> ParserConfigurationException, SAXException, IOException, SQLException, DatabaseException, ClassNotFoundException {</pre></td></tr> -<tr> <td class="numLine"> 274</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 245</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">protected</span> <span class="keyword">void</span> importXML(File file, File oldVersion) <span class="keyword">throws</span> ParserConfigurationException,</pre></td></tr> +<tr> <td class="numLine"> 246</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  SAXException, IOException, SQLException, DatabaseException, ClassNotFoundException {</pre></td></tr> +<tr> <td class="numLine"> 247</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 275</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> SAXParserFactory factory = SAXParserFactory.newInstance();</span></pre></td></tr> -<tr> <td class="numLineCover"> 276</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> SAXParser saxParser = factory.newSAXParser();</span></pre></td></tr> -<tr> <td class="numLine"> 277</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 248</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> SAXParserFactory factory = SAXParserFactory.newInstance();</span></pre></td></tr> +<tr> <td class="numLineCover"> 249</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> SAXParser saxParser = factory.newSAXParser();</span></pre></td></tr> +<tr> <td class="numLine"> 250</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 278</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> NvdCve12Handler cve12Handler = <span class="keyword">new</span> NvdCve12Handler();</span></pre></td></tr> -<tr> <td class="numLineCover"> 279</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  saxParser.parse(oldVersion, cve12Handler);</span></pre></td></tr> -<tr> <td class="numLineCover"> 280</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> Map<String, List<VulnerableSoftware>> prevVersionVulnMap = cve12Handler.getVulnerabilities();</span></pre></td></tr> -<tr> <td class="numLine"> 281</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 251</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> NvdCve12Handler cve12Handler = <span class="keyword">new</span> NvdCve12Handler();</span></pre></td></tr> +<tr> <td class="numLineCover"> 252</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  saxParser.parse(oldVersion, cve12Handler);</span></pre></td></tr> +<tr> <td class="numLineCover"> 253</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> Map<String, List<VulnerableSoftware>> prevVersionVulnMap = cve12Handler.getVulnerabilities();</span></pre></td></tr> +<tr> <td class="numLine"> 254</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 282</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> NvdCve20Handler cve20Handler = <span class="keyword">new</span> NvdCve20Handler();</span></pre></td></tr> -<tr> <td class="numLineCover"> 283</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  cve20Handler.setCveDB(cveDB);</span></pre></td></tr> -<tr> <td class="numLineCover"> 284</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  cve20Handler.setPrevVersionVulnMap(prevVersionVulnMap);</span></pre></td></tr> -<tr> <td class="numLineCover"> 285</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  cve20Handler.setCpeIndex(cpeIndex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 286</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  saxParser.parse(file, cve20Handler);</span></pre></td></tr> -<tr> <td class="numLineCover"> 287</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLine"> 288</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 255</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> NvdCve20Handler cve20Handler = <span class="keyword">new</span> NvdCve20Handler();</span></pre></td></tr> +<tr> <td class="numLineCover"> 256</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  cve20Handler.setCveDB(cveDB);</span></pre></td></tr> +<tr> <td class="numLineCover"> 257</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  cve20Handler.setPrevVersionVulnMap(prevVersionVulnMap);</span></pre></td></tr> +<tr> <td class="numLineCover"> 258</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  saxParser.parse(file, cve20Handler);</span></pre></td></tr> +<tr> <td class="numLineCover"> 259</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLine"> 260</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.BatchUpdateTask.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.BatchUpdateTask.html index 64818e70a..3a9c5d939 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.BatchUpdateTask.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.BatchUpdateTask.html @@ -106,353 +106,357 @@ <tr> <td class="numLine"> 44</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @author Jeremy Long (jeremy.long@owasp.org)</span></pre></td></tr> <tr> <td class="numLine"> 45</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * @deprecated batch update mode will no longer be supported.</span></pre></td></tr> <tr> <td class="numLine"> 46</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> BatchUpdateTask <span class="keyword">extends</span> AbstractUpdateTask {</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 47</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src"> @Deprecated</pre></td></tr> <tr> <td class="numLine"> 48</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> BatchUpdateTask <span class="keyword">extends</span> AbstractUpdateTask {</pre></td></tr> <tr> <td class="numLine"> 49</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Constructs a new BatchUpdateTask.</span></pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 50</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 51</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param properties information about the data store</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * Constructs a new BatchUpdateTask.</span></pre></td></tr> <tr> <td class="numLine"> 52</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws MalformedURLException thrown if a configured URL is malformed</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 53</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws DownloadFailedException thrown if a timestamp cannot be checked</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * @param properties information about the data store</span></pre></td></tr> <tr> <td class="numLine"> 54</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * on a configured URL</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * @throws MalformedURLException thrown if a configured URL is malformed</span></pre></td></tr> <tr> <td class="numLine"> 55</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws UpdateException thrown if there is an exception generating the</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * @throws DownloadFailedException thrown if a timestamp cannot be checked</span></pre></td></tr> <tr> <td class="numLine"> 56</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * update task</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * on a configured URL</span></pre></td></tr> <tr> <td class="numLine"> 57</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * @throws UpdateException thrown if there is an exception generating the</span></pre></td></tr> <tr> <td class="numLine"> 58</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * update task</span></pre></td></tr> +<tr> <td class="numLine"> 59</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 60</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> BatchUpdateTask(DataStoreMetaInfo properties) <span class="keyword">throws</span> MalformedURLException, DownloadFailedException, UpdateException {</pre></td></tr> -<tr> <td class="numLineCover"> 59</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  <span class="keyword">super</span>(properties);</pre></td></tr> -<tr> <td class="numLineCover"> 60</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 61</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 62</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * A flag indicating whether or not the batch update should be performed.</span></pre></td></tr> +<tr> <td class="numLineCover"> 61</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  <span class="keyword">super</span>(properties);</pre></td></tr> +<tr> <td class="numLineCover"> 62</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 63</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 64</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">boolean</span> doBatchUpdate;</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * A flag indicating whether or not the batch update should be performed.</span></pre></td></tr> <tr> <td class="numLine"> 65</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 66</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">boolean</span> doBatchUpdate;</pre></td></tr> <tr> <td class="numLine"> 67</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Get the value of doBatchUpdate</span></pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 68</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 69</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @return the value of doBatchUpdate</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * Get the value of doBatchUpdate</span></pre></td></tr> <tr> <td class="numLine"> 70</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 71</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">protected</span> <span class="keyword">boolean</span> isDoBatchUpdate() {</pre></td></tr> -<tr> <td class="numLineCover"> 72</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">return</span> doBatchUpdate;</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * @return the value of doBatchUpdate</span></pre></td></tr> +<tr> <td class="numLine"> 72</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 73</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 74</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">protected</span> <span class="keyword">boolean</span> isDoBatchUpdate() {</pre></td></tr> +<tr> <td class="numLineCover"> 74</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">return</span> doBatchUpdate;</pre></td></tr> <tr> <td class="numLine"> 75</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 76</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Set the value of doBatchUpdate</span></pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 77</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 78</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param doBatchUpdate new value of doBatchUpdate</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * Set the value of doBatchUpdate</span></pre></td></tr> <tr> <td class="numLine"> 79</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 80</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param doBatchUpdate new value of doBatchUpdate</span></pre></td></tr> +<tr> <td class="numLine"> 81</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 82</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">protected</span> <span class="keyword">void</span> setDoBatchUpdate(<span class="keyword">boolean</span> doBatchUpdate) {</pre></td></tr> -<tr> <td class="numLineCover"> 81</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.doBatchUpdate = doBatchUpdate;</pre></td></tr> -<tr> <td class="numLineCover"> 82</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 83</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 84</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLineCover"> 83</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.doBatchUpdate = doBatchUpdate;</pre></td></tr> +<tr> <td class="numLineCover"> 84</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 85</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * <p>Downloads the latest NVD CVE XML file from the web and imports it into</span></pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 86</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * the current CVE Database.</p></span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 87</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * <p>Downloads the latest NVD CVE XML file from the web and imports it into</span></pre></td></tr> <tr> <td class="numLine"> 88</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws UpdateException is thrown if there is an error updating the</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * the current CVE Database.</p></span></pre></td></tr> <tr> <td class="numLine"> 89</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * database</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 90</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * @throws UpdateException is thrown if there is an error updating the</span></pre></td></tr> <tr> <td class="numLine"> 91</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  @Override</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * database</span></pre></td></tr> <tr> <td class="numLine"> 92</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> update() <span class="keyword">throws</span> UpdateException {</pre></td></tr> -<tr> <td class="numLineCover"> 93</td> <td class="nbHitsUncovered"><a title="Line 93: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> 1</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 93: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> <span class="keyword">if</span> (getProperties().isBatchUpdateMode() && doBatchUpdate) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 94</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String batchSrc = Settings.getString(Settings.KEYS.BATCH_UPDATE_URL);</pre></td></tr> -<tr> <td class="numLineCover"> 95</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  File tmp = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLine"> 96</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 97</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  deleteExistingData();</pre></td></tr> -<tr> <td class="numLineCover"> 98</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">final</span> File dataDirectory = CveDB.getDataDirectory().getParentFile();</pre></td></tr> -<tr> <td class="numLineCover"> 99</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">final</span> URL batchUrl = <span class="keyword">new</span> URL(batchSrc);</pre></td></tr> -<tr> <td class="numLineCover"> 100</td> <td class="nbHitsUncovered"><a title="Line 100: Conditional coverage 50% (1/2)."> 1</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 100: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (<span class="string">"file"</span>.equals(batchUrl.getProtocol())) {</a></span></pre></td></tr> -<tr> <td class="numLine"> 101</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 102</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  tmp = <span class="keyword">new</span> File(batchUrl.toURI());</pre></td></tr> -<tr> <td class="numLineCover"> 103</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (URISyntaxException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 104</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = String.format(<span class="string">"Invalid batch update URI: %s"</span>, batchSrc);</span></pre></td></tr> -<tr> <td class="numLineCover"> 105</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> UpdateException(msg, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 106</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 107</td> <td class="nbHitsUncovered"><a title="Line 107: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 107: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> } <span class="keyword">else</span> <span class="keyword">if</span> (<span class="string">"http"</span>.equals(batchUrl.getProtocol())</a></span></pre></td></tr> -<tr> <td class="numLine"> 108</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  || <span class="string">"https"</span>.equals(batchUrl.getProtocol())) {</pre></td></tr> -<tr> <td class="numLineCover"> 109</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  tmp = File.createTempFile(<span class="string">"batch_"</span>, <span class="string">".zip"</span>);</span></pre></td></tr> -<tr> <td class="numLineCover"> 110</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Downloader.fetchFile(batchUrl, tmp);</span></pre></td></tr> -<tr> <td class="numLine"> 111</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 112</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">//TODO add FTP?</span></pre></td></tr> -<tr> <td class="numLineCover"> 113</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  FileUtils.extractFiles(tmp, dataDirectory);</pre></td></tr> -<tr> <td class="numLine"> 114</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 115</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 116</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = String.format(<span class="string">"IO Exception Occured performing batch update using: %s"</span>, batchSrc);</span></pre></td></tr> -<tr> <td class="numLineCover"> 117</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> UpdateException(msg, ex);</span></pre></td></tr> -<tr> <td class="numLine"> 118</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  } <span class="keyword">finally</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 119</td> <td class="nbHitsUncovered"><a title="Line 119: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> 1</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 119: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> <span class="keyword">if</span> (tmp != <span class="keyword">null</span> && !tmp.delete()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 120</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  tmp.deleteOnExit();</span></pre></td></tr> -<tr> <td class="numLine"> 121</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 122</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 123</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 124</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 125</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 126</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 127</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Determines if the index needs to be updated. This is done by fetching the</span></pre></td></tr> -<tr> <td class="numLine"> 128</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * NVD CVE meta data and checking the last update date. If the data needs to</span></pre></td></tr> -<tr> <td class="numLine"> 129</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * be refreshed this method will return the NvdCveUrl for the files that</span></pre></td></tr> -<tr> <td class="numLine"> 130</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * need to be updated.</span></pre></td></tr> -<tr> <td class="numLine"> 131</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 132</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @return the collection of files that need to be updated</span></pre></td></tr> -<tr> <td class="numLine"> 133</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws MalformedURLException is thrown if the URL for the NVD CVE Meta</span></pre></td></tr> -<tr> <td class="numLine"> 134</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * data is incorrect</span></pre></td></tr> -<tr> <td class="numLine"> 135</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws DownloadFailedException is thrown if there is an error.</span></pre></td></tr> -<tr> <td class="numLine"> 136</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * downloading the NVD CVE download data file</span></pre></td></tr> -<tr> <td class="numLine"> 137</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws UpdateException Is thrown if there is an issue with the last</span></pre></td></tr> -<tr> <td class="numLine"> 138</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * updated properties file</span></pre></td></tr> -<tr> <td class="numLine"> 139</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 140</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 93</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  @Override</pre></td></tr> -<tr> <td class="numLine"> 141</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> Updateable updatesNeeded() <span class="keyword">throws</span> MalformedURLException, DownloadFailedException, UpdateException {</pre></td></tr> -<tr> <td class="numLineCover"> 142</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  Updateable updates = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLine"> 143</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 144</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  updates = retrieveCurrentTimestampsFromWeb();</pre></td></tr> -<tr> <td class="numLineCover"> 145</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (InvalidDataException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 146</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = <span class="string">"Unable to retrieve valid timestamp from nvd cve downloads page"</span>;</span></pre></td></tr> -<tr> <td class="numLineCover"> 147</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(BatchUpdateTask.<span class="keyword">class</span>.getName()).log(Level.FINE, msg, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 148</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> DownloadFailedException(msg, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 149</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (InvalidSettingException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 150</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(BatchUpdateTask.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="string">"Invalid setting found when retrieving timestamps"</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 151</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> DownloadFailedException(<span class="string">"Invalid settings"</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 152</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 153</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 154</td> <td class="nbHitsUncovered"><a title="Line 154: Conditional coverage 50% (1/2)."> 2</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 154: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (updates == <span class="keyword">null</span>) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 155</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> DownloadFailedException(<span class="string">"Unable to retrieve the timestamps of the currently published NVD CVE data"</span>);</span></pre></td></tr> -<tr> <td class="numLine"> 156</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 157</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  <span class="keyword">final</span> DataStoreMetaInfo properties = getProperties();</pre></td></tr> -<tr> <td class="numLineCover"> 158</td> <td class="nbHitsUncovered"><a title="Line 158: Conditional coverage 50% (1/2)."> 2</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 158: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (!properties.isEmpty()) {</a></span></pre></td></tr> -<tr> <td class="numLine"> 159</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 94</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> update() <span class="keyword">throws</span> UpdateException {</pre></td></tr> +<tr> <td class="numLineCover"> 95</td> <td class="nbHitsUncovered"><a title="Line 95: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> 1</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 95: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> <span class="keyword">if</span> (getProperties().isBatchUpdateMode() && doBatchUpdate) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 96</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String batchSrc = Settings.getString(Settings.KEYS.BATCH_UPDATE_URL);</pre></td></tr> +<tr> <td class="numLineCover"> 97</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  File tmp = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLine"> 98</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 160</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">boolean</span> deleteAndRecreate = <span class="keyword">false</span>;</span></pre></td></tr> -<tr> <td class="numLine"> 161</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">float</span> version;</pre></td></tr> -<tr> <td class="numLine"> 162</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 163</td> <td class="nbHitsUncovered"><a title="Line 163: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 163: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (properties.getProperty(<span class="string">"version"</span>) == <span class="keyword">null</span>) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 164</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  deleteAndRecreate = <span class="keyword">true</span>;</span></pre></td></tr> -<tr> <td class="numLine"> 165</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLine"> 166</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 99</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  deleteExistingData();</pre></td></tr> +<tr> <td class="numLineCover"> 100</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">final</span> File dataDirectory = CveDB.getDataDirectory().getParentFile();</pre></td></tr> +<tr> <td class="numLineCover"> 101</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">final</span> URL batchUrl = <span class="keyword">new</span> URL(batchSrc);</pre></td></tr> +<tr> <td class="numLineCover"> 102</td> <td class="nbHitsUncovered"><a title="Line 102: Conditional coverage 50% (1/2)."> 1</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 102: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (<span class="string">"file"</span>.equals(batchUrl.getProtocol())) {</a></span></pre></td></tr> +<tr> <td class="numLine"> 103</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 167</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  version = Float.parseFloat(properties.getProperty(<span class="string">"version"</span>));</span></pre></td></tr> -<tr> <td class="numLineCover"> 168</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> <span class="keyword">float</span> currentVersion = Float.parseFloat(CveDB.DB_SCHEMA_VERSION);</span></pre></td></tr> -<tr> <td class="numLineCover"> 169</td> <td class="nbHitsUncovered"><a title="Line 169: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 169: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (currentVersion > version) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 170</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  deleteAndRecreate = <span class="keyword">true</span>;</span></pre></td></tr> -<tr> <td class="numLine"> 171</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 172</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (NumberFormatException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 173</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  deleteAndRecreate = <span class="keyword">true</span>;</span></pre></td></tr> -<tr> <td class="numLineCover"> 174</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLine"> 175</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 104</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  tmp = <span class="keyword">new</span> File(batchUrl.toURI());</pre></td></tr> +<tr> <td class="numLineCover"> 105</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (URISyntaxException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 106</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = String.format(<span class="string">"Invalid batch update URI: %s"</span>, batchSrc);</span></pre></td></tr> +<tr> <td class="numLineCover"> 107</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> UpdateException(msg, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 108</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 109</td> <td class="nbHitsUncovered"><a title="Line 109: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 109: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> } <span class="keyword">else</span> <span class="keyword">if</span> (<span class="string">"http"</span>.equals(batchUrl.getProtocol())</a></span></pre></td></tr> +<tr> <td class="numLine"> 110</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  || <span class="string">"https"</span>.equals(batchUrl.getProtocol())) {</pre></td></tr> +<tr> <td class="numLineCover"> 111</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  tmp = File.createTempFile(<span class="string">"batch_"</span>, <span class="string">".zip"</span>);</span></pre></td></tr> +<tr> <td class="numLineCover"> 112</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Downloader.fetchFile(batchUrl, tmp);</span></pre></td></tr> +<tr> <td class="numLine"> 113</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 176</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 114</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">//TODO add FTP?</span></pre></td></tr> +<tr> <td class="numLineCover"> 115</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  FileUtils.extractFiles(tmp, dataDirectory);</pre></td></tr> +<tr> <td class="numLine"> 116</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 177</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> NvdCveInfo batchInfo = updates.get(BATCH);</span></pre></td></tr> -<tr> <td class="numLineCover"> 178</td> <td class="nbHitsUncovered"><a title="Line 178: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 178: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> (properties.isBatchUpdateMode() && batchInfo != <span class="keyword">null</span>) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 179</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> <span class="keyword">long</span> lastUpdated = Long.parseLong(properties.getProperty(DataStoreMetaInfo.BATCH, <span class="string">"0"</span>));</span></pre></td></tr> -<tr> <td class="numLineCover"> 180</td> <td class="nbHitsUncovered"><a title="Line 180: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 180: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (lastUpdated != batchInfo.getTimestamp()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 181</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  deleteAndRecreate = <span class="keyword">true</span>;</span></pre></td></tr> -<tr> <td class="numLine"> 182</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 183</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 117</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 118</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = String.format(<span class="string">"IO Exception Occured performing batch update using: %s"</span>, batchSrc);</span></pre></td></tr> +<tr> <td class="numLineCover"> 119</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> UpdateException(msg, ex);</span></pre></td></tr> +<tr> <td class="numLine"> 120</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  } <span class="keyword">finally</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 121</td> <td class="nbHitsUncovered"><a title="Line 121: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> 1</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 121: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> <span class="keyword">if</span> (tmp != <span class="keyword">null</span> && !tmp.delete()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 122</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  tmp.deleteOnExit();</span></pre></td></tr> +<tr> <td class="numLine"> 123</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 184</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 185</td> <td class="nbHitsUncovered"><a title="Line 185: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 185: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (deleteAndRecreate) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 186</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  setDoBatchUpdate(properties.isBatchUpdateMode());</span></pre></td></tr> -<tr> <td class="numLine"> 187</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 188</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  deleteExistingData();</span></pre></td></tr> -<tr> <td class="numLineCover"> 189</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 190</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = <span class="string">"Unable to delete existing data"</span>;</span></pre></td></tr> -<tr> <td class="numLineCover"> 191</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(BatchUpdateTask.<span class="keyword">class</span>.getName()).log(Level.WARNING, msg);</span></pre></td></tr> -<tr> <td class="numLineCover"> 192</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(BatchUpdateTask.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="keyword">null</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 193</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLineCover"> 194</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> updates;</span></pre></td></tr> -<tr> <td class="numLine"> 195</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 196</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 197</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> <span class="keyword">long</span> lastUpdated = Long.parseLong(properties.getProperty(DataStoreMetaInfo.LAST_UPDATED, <span class="string">"0"</span>));</span></pre></td></tr> -<tr> <td class="numLineCover"> 198</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> Date now = <span class="keyword">new</span> Date();</span></pre></td></tr> -<tr> <td class="numLineCover"> 199</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> <span class="keyword">int</span> days = Settings.getInt(Settings.KEYS.CVE_MODIFIED_VALID_FOR_DAYS, 7);</span></pre></td></tr> -<tr> <td class="numLineCover"> 200</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> <span class="keyword">int</span> start = Settings.getInt(Settings.KEYS.CVE_START_YEAR, 2002);</span></pre></td></tr> -<tr> <td class="numLineCover"> 201</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> <span class="keyword">int</span> end = Calendar.getInstance().get(Calendar.YEAR);</span></pre></td></tr> -<tr> <td class="numLineCover"> 202</td> <td class="nbHitsUncovered"><a title="Line 202: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 202: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (lastUpdated == updates.get(MODIFIED).getTimestamp()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 203</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updates.clear(); <span class="comment">//we don't need to update anything.</span></span></pre></td></tr> -<tr> <td class="numLineCover"> 204</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  setDoBatchUpdate(properties.isBatchUpdateMode());</span></pre></td></tr> -<tr> <td class="numLineCover"> 205</td> <td class="nbHitsUncovered"><a title="Line 205: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 205: Conditional coverage 0% (0/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (withinRange(lastUpdated, now.getTime(), days)) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 206</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updates.get(MODIFIED).setNeedsUpdate(<span class="keyword">true</span>);</span></pre></td></tr> -<tr> <td class="numLineCover"> 207</td> <td class="nbHitsUncovered"><a title="Line 207: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 207: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (properties.isBatchUpdateMode()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 208</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  setDoBatchUpdate(<span class="keyword">false</span>);</span></pre></td></tr> -<tr> <td class="numLine"> 209</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 210</td> <td class="nbHitsUncovered"><a title="Line 210: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 210: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = start; i <= end; i++) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 211</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updates.get(String.valueOf(i)).setNeedsUpdate(<span class="keyword">false</span>);</span></pre></td></tr> -<tr> <td class="numLine"> 212</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 213</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 214</td> <td class="nbHitsUncovered"><a title="Line 214: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 214: Conditional coverage 0% (0/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (properties.isBatchUpdateMode()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 215</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updates.get(MODIFIED).setNeedsUpdate(<span class="keyword">true</span>);</span></pre></td></tr> -<tr> <td class="numLineCover"> 216</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  setDoBatchUpdate(<span class="keyword">true</span>);</span></pre></td></tr> -<tr> <td class="numLine"> 217</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  } <span class="keyword">else</span> { <span class="comment">//we figure out which of the several XML files need to be downloaded.</span></pre></td></tr> -<tr> <td class="numLineCover"> 218</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updates.get(MODIFIED).setNeedsUpdate(<span class="keyword">false</span>);</span></pre></td></tr> -<tr> <td class="numLineCover"> 219</td> <td class="nbHitsUncovered"><a title="Line 219: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 219: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = start; i <= end; i++) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 220</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> NvdCveInfo cve = updates.get(String.valueOf(i));</span></pre></td></tr> -<tr> <td class="numLineCover"> 221</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">long</span> currentTimestamp = 0;</span></pre></td></tr> -<tr> <td class="numLine"> 222</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 223</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  currentTimestamp = Long.parseLong(properties.getProperty(DataStoreMetaInfo.LAST_UPDATED_BASE + String.valueOf(i), <span class="string">"0"</span>));</span></pre></td></tr> -<tr> <td class="numLineCover"> 224</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (NumberFormatException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 225</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = String.format(<span class="string">"Error parsing '%s' '%s' from nvdcve.lastupdated"</span>,</span></pre></td></tr> -<tr> <td class="numLine"> 226</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  DataStoreMetaInfo.LAST_UPDATED_BASE, String.valueOf(i));</pre></td></tr> -<tr> <td class="numLineCover"> 227</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(BatchUpdateTask.<span class="keyword">class</span>.getName()).log(Level.FINE, msg, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 228</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLineCover"> 229</td> <td class="nbHitsUncovered"><a title="Line 229: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 229: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (currentTimestamp == cve.getTimestamp()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 230</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  cve.setNeedsUpdate(<span class="keyword">false</span>); <span class="comment">//they default to true.</span></span></pre></td></tr> -<tr> <td class="numLine"> 231</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 232</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 233</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 234</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (NumberFormatException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 235</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = <span class="string">"An invalid schema version or timestamp exists in the data.properties file."</span>;</span></pre></td></tr> -<tr> <td class="numLineCover"> 236</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(BatchUpdateTask.<span class="keyword">class</span>.getName()).log(Level.WARNING, msg);</span></pre></td></tr> -<tr> <td class="numLineCover"> 237</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(BatchUpdateTask.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="keyword">null</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 238</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  setDoBatchUpdate(properties.isBatchUpdateMode());</span></pre></td></tr> -<tr> <td class="numLineCover"> 239</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLine"> 240</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 124</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 125</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 241</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  <span class="keyword">return</span> updates;</pre></td></tr> -<tr> <td class="numLine"> 242</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 243</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 126</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 127</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 244</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 128</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 245</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Retrieves the timestamps from the NVD CVE meta data file.</span></pre></td></tr> -<tr> <td class="numLine"> 246</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 129</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Determines if the index needs to be updated. This is done by fetching the</span></pre></td></tr> +<tr> <td class="numLine"> 130</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * NVD CVE meta data and checking the last update date. If the data needs to</span></pre></td></tr> +<tr> <td class="numLine"> 131</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * be refreshed this method will return the NvdCveUrl for the files that</span></pre></td></tr> +<tr> <td class="numLine"> 132</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * need to be updated.</span></pre></td></tr> +<tr> <td class="numLine"> 133</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 247</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @return the timestamp from the currently published nvdcve downloads page</span></pre></td></tr> -<tr> <td class="numLine"> 248</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws MalformedURLException thrown if the URL for the NVD CCE Meta data</span></pre></td></tr> -<tr> <td class="numLine"> 249</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * is incorrect.</span></pre></td></tr> -<tr> <td class="numLine"> 250</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws DownloadFailedException thrown if there is an error downloading</span></pre></td></tr> -<tr> <td class="numLine"> 251</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * the nvd cve meta data file</span></pre></td></tr> -<tr> <td class="numLine"> 252</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws InvalidDataException thrown if there is an exception parsing the</span></pre></td></tr> -<tr> <td class="numLine"> 253</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * timestamps</span></pre></td></tr> -<tr> <td class="numLine"> 254</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws InvalidSettingException thrown if the settings are invalid</span></pre></td></tr> -<tr> <td class="numLine"> 255</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 134</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @return the collection of files that need to be updated</span></pre></td></tr> +<tr> <td class="numLine"> 135</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @throws MalformedURLException is thrown if the URL for the NVD CVE Meta</span></pre></td></tr> +<tr> <td class="numLine"> 136</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * data is incorrect</span></pre></td></tr> +<tr> <td class="numLine"> 137</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @throws DownloadFailedException is thrown if there is an error.</span></pre></td></tr> +<tr> <td class="numLine"> 138</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * downloading the NVD CVE download data file</span></pre></td></tr> +<tr> <td class="numLine"> 139</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @throws UpdateException Is thrown if there is an issue with the last</span></pre></td></tr> +<tr> <td class="numLine"> 140</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * updated properties file</span></pre></td></tr> +<tr> <td class="numLine"> 141</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 256</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">private</span> Updateable retrieveCurrentTimestampsFromWeb()</pre></td></tr> -<tr> <td class="numLine"> 257</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">throws</span> MalformedURLException, DownloadFailedException, InvalidDataException, InvalidSettingException {</pre></td></tr> -<tr> <td class="numLineCover"> 258</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  <span class="keyword">final</span> Updateable updates = <span class="keyword">new</span> Updateable();</pre></td></tr> -<tr> <td class="numLineCover"> 259</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  updates.add(BATCH, Settings.getString(Settings.KEYS.BATCH_UPDATE_URL),</pre></td></tr> -<tr> <td class="numLine"> 260</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">null</span>, <span class="keyword">false</span>);</pre></td></tr> -<tr> <td class="numLine"> 261</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 142</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  @Override</pre></td></tr> +<tr> <td class="numLine"> 143</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> Updateable updatesNeeded() <span class="keyword">throws</span> MalformedURLException, DownloadFailedException, UpdateException {</pre></td></tr> +<tr> <td class="numLineCover"> 144</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  Updateable updates = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLine"> 145</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 146</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  updates = retrieveCurrentTimestampsFromWeb();</pre></td></tr> +<tr> <td class="numLineCover"> 147</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (InvalidDataException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 148</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = <span class="string">"Unable to retrieve valid timestamp from nvd cve downloads page"</span>;</span></pre></td></tr> +<tr> <td class="numLineCover"> 149</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(BatchUpdateTask.<span class="keyword">class</span>.getName()).log(Level.FINE, msg, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 150</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> DownloadFailedException(msg, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 151</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (InvalidSettingException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 152</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(BatchUpdateTask.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="string">"Invalid setting found when retrieving timestamps"</span>, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 153</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> DownloadFailedException(<span class="string">"Invalid settings"</span>, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 154</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 155</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 262</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String url = Settings.getString(Settings.KEYS.CVE_MODIFIED_20_URL, <span class="string">""</span>);</pre></td></tr> -<tr> <td class="numLineCover"> 263</td> <td class="nbHitsUncovered"><a title="Line 263: Conditional coverage 50% (1/2)."> 2</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 263: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (!url.isEmpty()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 264</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  updates.add(MODIFIED, url,</pre></td></tr> -<tr> <td class="numLine"> 265</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  Settings.getString(Settings.KEYS.CVE_MODIFIED_12_URL),</pre></td></tr> -<tr> <td class="numLine"> 266</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">false</span>);</pre></td></tr> -<tr> <td class="numLine"> 267</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 156</td> <td class="nbHitsUncovered"><a title="Line 156: Conditional coverage 50% (1/2)."> 2</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 156: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (updates == <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 157</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> DownloadFailedException(<span class="string">"Unable to retrieve the timestamps of the currently published NVD CVE data"</span>);</span></pre></td></tr> +<tr> <td class="numLine"> 158</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 268</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  <span class="keyword">return</span> updates;</pre></td></tr> -<tr> <td class="numLine"> 269</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 159</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  <span class="keyword">final</span> DataStoreMetaInfo properties = getProperties();</pre></td></tr> +<tr> <td class="numLineCover"> 160</td> <td class="nbHitsUncovered"><a title="Line 160: Conditional coverage 50% (1/2)."> 2</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 160: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (!properties.isEmpty()) {</a></span></pre></td></tr> +<tr> <td class="numLine"> 161</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 162</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">boolean</span> deleteAndRecreate = <span class="keyword">false</span>;</span></pre></td></tr> +<tr> <td class="numLine"> 163</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">float</span> version;</pre></td></tr> +<tr> <td class="numLine"> 164</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLineCover"> 165</td> <td class="nbHitsUncovered"><a title="Line 165: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 165: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (properties.getProperty(<span class="string">"version"</span>) == <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 166</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  deleteAndRecreate = <span class="keyword">true</span>;</span></pre></td></tr> +<tr> <td class="numLine"> 167</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> +<tr> <td class="numLine"> 168</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 169</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  version = Float.parseFloat(properties.getProperty(<span class="string">"version"</span>));</span></pre></td></tr> +<tr> <td class="numLineCover"> 170</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> <span class="keyword">float</span> currentVersion = Float.parseFloat(CveDB.DB_SCHEMA_VERSION);</span></pre></td></tr> +<tr> <td class="numLineCover"> 171</td> <td class="nbHitsUncovered"><a title="Line 171: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 171: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (currentVersion > version) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 172</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  deleteAndRecreate = <span class="keyword">true</span>;</span></pre></td></tr> +<tr> <td class="numLine"> 173</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 174</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (NumberFormatException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 175</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  deleteAndRecreate = <span class="keyword">true</span>;</span></pre></td></tr> +<tr> <td class="numLineCover"> 176</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLine"> 177</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 178</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLineCover"> 179</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> NvdCveInfo batchInfo = updates.get(BATCH);</span></pre></td></tr> +<tr> <td class="numLineCover"> 180</td> <td class="nbHitsUncovered"><a title="Line 180: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 180: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> (properties.isBatchUpdateMode() && batchInfo != <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 181</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> <span class="keyword">long</span> lastUpdated = Long.parseLong(properties.getProperty(DataStoreMetaInfo.BATCH, <span class="string">"0"</span>));</span></pre></td></tr> +<tr> <td class="numLineCover"> 182</td> <td class="nbHitsUncovered"><a title="Line 182: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 182: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (lastUpdated != batchInfo.getTimestamp()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 183</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  deleteAndRecreate = <span class="keyword">true</span>;</span></pre></td></tr> +<tr> <td class="numLine"> 184</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 185</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 186</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLineCover"> 187</td> <td class="nbHitsUncovered"><a title="Line 187: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 187: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (deleteAndRecreate) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 188</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  setDoBatchUpdate(properties.isBatchUpdateMode());</span></pre></td></tr> +<tr> <td class="numLine"> 189</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 190</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  deleteExistingData();</span></pre></td></tr> +<tr> <td class="numLineCover"> 191</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 192</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = <span class="string">"Unable to delete existing data"</span>;</span></pre></td></tr> +<tr> <td class="numLineCover"> 193</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(BatchUpdateTask.<span class="keyword">class</span>.getName()).log(Level.WARNING, msg);</span></pre></td></tr> +<tr> <td class="numLineCover"> 194</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(BatchUpdateTask.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="keyword">null</span>, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 195</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLineCover"> 196</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> updates;</span></pre></td></tr> +<tr> <td class="numLine"> 197</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 198</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLineCover"> 199</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> <span class="keyword">long</span> lastUpdated = Long.parseLong(properties.getProperty(DataStoreMetaInfo.LAST_UPDATED, <span class="string">"0"</span>));</span></pre></td></tr> +<tr> <td class="numLineCover"> 200</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> Date now = <span class="keyword">new</span> Date();</span></pre></td></tr> +<tr> <td class="numLineCover"> 201</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> <span class="keyword">int</span> days = Settings.getInt(Settings.KEYS.CVE_MODIFIED_VALID_FOR_DAYS, 7);</span></pre></td></tr> +<tr> <td class="numLineCover"> 202</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> <span class="keyword">int</span> start = Settings.getInt(Settings.KEYS.CVE_START_YEAR, 2002);</span></pre></td></tr> +<tr> <td class="numLineCover"> 203</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> <span class="keyword">int</span> end = Calendar.getInstance().get(Calendar.YEAR);</span></pre></td></tr> +<tr> <td class="numLineCover"> 204</td> <td class="nbHitsUncovered"><a title="Line 204: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 204: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (lastUpdated == updates.get(MODIFIED).getTimestamp()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 205</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updates.clear(); <span class="comment">//we don't need to update anything.</span></span></pre></td></tr> +<tr> <td class="numLineCover"> 206</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  setDoBatchUpdate(properties.isBatchUpdateMode());</span></pre></td></tr> +<tr> <td class="numLineCover"> 207</td> <td class="nbHitsUncovered"><a title="Line 207: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 207: Conditional coverage 0% (0/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (withinRange(lastUpdated, now.getTime(), days)) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 208</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updates.get(MODIFIED).setNeedsUpdate(<span class="keyword">true</span>);</span></pre></td></tr> +<tr> <td class="numLineCover"> 209</td> <td class="nbHitsUncovered"><a title="Line 209: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 209: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (properties.isBatchUpdateMode()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 210</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  setDoBatchUpdate(<span class="keyword">false</span>);</span></pre></td></tr> +<tr> <td class="numLine"> 211</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 212</td> <td class="nbHitsUncovered"><a title="Line 212: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 212: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = start; i <= end; i++) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 213</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updates.get(String.valueOf(i)).setNeedsUpdate(<span class="keyword">false</span>);</span></pre></td></tr> +<tr> <td class="numLine"> 214</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 215</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 216</td> <td class="nbHitsUncovered"><a title="Line 216: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 216: Conditional coverage 0% (0/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (properties.isBatchUpdateMode()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 217</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updates.get(MODIFIED).setNeedsUpdate(<span class="keyword">true</span>);</span></pre></td></tr> +<tr> <td class="numLineCover"> 218</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  setDoBatchUpdate(<span class="keyword">true</span>);</span></pre></td></tr> +<tr> <td class="numLine"> 219</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  } <span class="keyword">else</span> { <span class="comment">//we figure out which of the several XML files need to be downloaded.</span></pre></td></tr> +<tr> <td class="numLineCover"> 220</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updates.get(MODIFIED).setNeedsUpdate(<span class="keyword">false</span>);</span></pre></td></tr> +<tr> <td class="numLineCover"> 221</td> <td class="nbHitsUncovered"><a title="Line 221: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 221: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = start; i <= end; i++) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 222</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> NvdCveInfo cve = updates.get(String.valueOf(i));</span></pre></td></tr> +<tr> <td class="numLineCover"> 223</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">long</span> currentTimestamp = 0;</span></pre></td></tr> +<tr> <td class="numLine"> 224</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 225</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  currentTimestamp = Long.parseLong(properties.getProperty(DataStoreMetaInfo.LAST_UPDATED_BASE + String.valueOf(i), <span class="string">"0"</span>));</span></pre></td></tr> +<tr> <td class="numLineCover"> 226</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (NumberFormatException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 227</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = String.format(<span class="string">"Error parsing '%s' '%s' from nvdcve.lastupdated"</span>,</span></pre></td></tr> +<tr> <td class="numLine"> 228</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  DataStoreMetaInfo.LAST_UPDATED_BASE, String.valueOf(i));</pre></td></tr> +<tr> <td class="numLineCover"> 229</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(BatchUpdateTask.<span class="keyword">class</span>.getName()).log(Level.FINE, msg, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 230</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLineCover"> 231</td> <td class="nbHitsUncovered"><a title="Line 231: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 231: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (currentTimestamp == cve.getTimestamp()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 232</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  cve.setNeedsUpdate(<span class="keyword">false</span>); <span class="comment">//they default to true.</span></span></pre></td></tr> +<tr> <td class="numLine"> 233</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 234</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 235</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 236</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (NumberFormatException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 237</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = <span class="string">"An invalid schema version or timestamp exists in the data.properties file."</span>;</span></pre></td></tr> +<tr> <td class="numLineCover"> 238</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(BatchUpdateTask.<span class="keyword">class</span>.getName()).log(Level.WARNING, msg);</span></pre></td></tr> +<tr> <td class="numLineCover"> 239</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(BatchUpdateTask.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="keyword">null</span>, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 240</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  setDoBatchUpdate(properties.isBatchUpdateMode());</span></pre></td></tr> +<tr> <td class="numLineCover"> 241</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLine"> 242</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 243</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  <span class="keyword">return</span> updates;</pre></td></tr> +<tr> <td class="numLine"> 244</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 270</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 245</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 246</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 247</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Retrieves the timestamps from the NVD CVE meta data file.</span></pre></td></tr> +<tr> <td class="numLine"> 248</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 249</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @return the timestamp from the currently published nvdcve downloads page</span></pre></td></tr> +<tr> <td class="numLine"> 250</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @throws MalformedURLException thrown if the URL for the NVD CCE Meta data</span></pre></td></tr> +<tr> <td class="numLine"> 251</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * is incorrect.</span></pre></td></tr> +<tr> <td class="numLine"> 252</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @throws DownloadFailedException thrown if there is an error downloading</span></pre></td></tr> +<tr> <td class="numLine"> 253</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * the nvd cve meta data file</span></pre></td></tr> +<tr> <td class="numLine"> 254</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @throws InvalidDataException thrown if there is an exception parsing the</span></pre></td></tr> +<tr> <td class="numLine"> 255</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * timestamps</span></pre></td></tr> +<tr> <td class="numLine"> 256</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @throws InvalidSettingException thrown if the settings are invalid</span></pre></td></tr> +<tr> <td class="numLine"> 257</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 258</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">private</span> Updateable retrieveCurrentTimestampsFromWeb()</pre></td></tr> +<tr> <td class="numLine"> 259</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">throws</span> MalformedURLException, DownloadFailedException, InvalidDataException, InvalidSettingException {</pre></td></tr> +<tr> <td class="numLineCover"> 260</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  <span class="keyword">final</span> Updateable updates = <span class="keyword">new</span> Updateable();</pre></td></tr> +<tr> <td class="numLineCover"> 261</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  updates.add(BATCH, Settings.getString(Settings.KEYS.BATCH_UPDATE_URL),</pre></td></tr> +<tr> <td class="numLine"> 262</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">null</span>, <span class="keyword">false</span>);</pre></td></tr> +<tr> <td class="numLine"> 263</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLineCover"> 264</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String url = Settings.getString(Settings.KEYS.CVE_MODIFIED_20_URL, <span class="string">""</span>);</pre></td></tr> +<tr> <td class="numLineCover"> 265</td> <td class="nbHitsUncovered"><a title="Line 265: Conditional coverage 50% (1/2)."> 2</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 265: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (!url.isEmpty()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 266</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  updates.add(MODIFIED, url,</pre></td></tr> +<tr> <td class="numLine"> 267</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  Settings.getString(Settings.KEYS.CVE_MODIFIED_12_URL),</pre></td></tr> +<tr> <td class="numLine"> 268</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">false</span>);</pre></td></tr> +<tr> <td class="numLine"> 269</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 270</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  <span class="keyword">return</span> updates;</pre></td></tr> +<tr> <td class="numLine"> 271</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 272</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.DataStoreMetaInfo.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.DataStoreMetaInfo.html index be86c3e2b..de06bda52 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.DataStoreMetaInfo.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.DataStoreMetaInfo.html @@ -419,7 +419,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 236</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> File getPropertiesFile() {</pre></td></tr> -<tr> <td class="numLineCover"> 237</td> <td class="nbHitsCovered"> 16</td> <td class="src"><pre class="src">  <span class="keyword">final</span> File dataDirectory = Settings.getFile(Settings.KEYS.DATA_DIRECTORY);</pre></td></tr> +<tr> <td class="numLineCover"> 237</td> <td class="nbHitsCovered"> 16</td> <td class="src"><pre class="src">  <span class="keyword">final</span> File dataDirectory = Settings.getDataFile(Settings.KEYS.DATA_DIRECTORY);</pre></td></tr> <tr> <td class="numLineCover"> 238</td> <td class="nbHitsCovered"> 16</td> <td class="src"><pre class="src">  <span class="keyword">final</span> File file = <span class="keyword">new</span> File(dataDirectory, UPDATE_PROPERTIES_FILE);</pre></td></tr> <tr> <td class="numLineCover"> 239</td> <td class="nbHitsCovered"> 16</td> <td class="src"><pre class="src">  <span class="keyword">return</span> file;</pre></td></tr> <tr> <td class="numLine"> 240</td> <td class="nbHits"> </td> @@ -428,6 +428,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.DatabaseUpdater.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.DatabaseUpdater.html index 6a4f0f271..14be3bff8 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.DatabaseUpdater.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.DatabaseUpdater.html @@ -12,7 +12,7 @@ <div class="separator"> </div> <table class="report"> <thead><tr> <td class="heading">Classes in this File</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead> - <tr><td><a href="org.owasp.dependencycheck.data.update.DatabaseUpdater.html">DatabaseUpdater</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/43</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/12</span></div></div></td></tr></table></td><td class="value"><span class="hidden">8.0;</span>8</td></tr> + <tr><td><a href="org.owasp.dependencycheck.data.update.DatabaseUpdater.html">DatabaseUpdater</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/25</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/8</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.5;</span>4.5</td></tr> </table> <div class="separator"> </div> @@ -70,146 +70,104 @@ <tr> <td class="numLine"> 26</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.logging.Logger;</pre></td></tr> <tr> <td class="numLine"> 27</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.concurrency.DirectoryLockException;</pre></td></tr> -<tr> <td class="numLine"> 28</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.concurrency.DirectorySpinLock;</pre></td></tr> -<tr> <td class="numLine"> 29</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.concurrency.InvalidDirectoryException;</pre></td></tr> -<tr> <td class="numLine"> 30</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.UpdateException;</pre></td></tr> -<tr> <td class="numLine"> 31</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 28</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.utils.DownloadFailedException;</pre></td></tr> -<tr> <td class="numLine"> 32</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 29</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.utils.FileUtils;</pre></td></tr> -<tr> <td class="numLine"> 33</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 30</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.utils.Settings;</pre></td></tr> -<tr> <td class="numLine"> 34</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 31</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 35</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 32</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 36</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 33</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Class responsible for updating the CPE and NVDCVE data stores.</span></pre></td></tr> -<tr> <td class="numLine"> 37</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 34</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 38</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 35</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @author Jeremy Long (jeremy.long@owasp.org)</span></pre></td></tr> -<tr> <td class="numLine"> 39</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 36</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 40</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">public</span> <span class="keyword">class</span> DatabaseUpdater <span class="keyword">implements</span> CachedWebDataSource {</span></pre></td></tr> -<tr> <td class="numLine"> 41</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 37</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">public</span> <span class="keyword">class</span> DatabaseUpdater <span class="keyword">implements</span> CachedWebDataSource {</span></pre></td></tr> +<tr> <td class="numLine"> 38</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 42</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 39</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 43</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 40</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * <p>Downloads the latest NVD CVE XML file from the web and imports it into</span></pre></td></tr> -<tr> <td class="numLine"> 44</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 41</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * the current CVE Database.</p></span></pre></td></tr> -<tr> <td class="numLine"> 45</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 42</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 46</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 43</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws UpdateException is thrown if there is an error updating the</span></pre></td></tr> -<tr> <td class="numLine"> 47</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 44</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * database</span></pre></td></tr> -<tr> <td class="numLine"> 48</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 45</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 49</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 46</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  @Override</pre></td></tr> -<tr> <td class="numLine"> 50</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 47</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> update() <span class="keyword">throws</span> UpdateException {</pre></td></tr> -<tr> <td class="numLineCover"> 51</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> File dataDir = Settings.getFile(Settings.KEYS.DATA_DIRECTORY);</span></pre></td></tr> -<tr> <td class="numLineCover"> 52</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  DirectorySpinLock lock = <span class="keyword">null</span>;</span></pre></td></tr> -<tr> <td class="numLine"> 53</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 48</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 54</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  lock = <span class="keyword">new</span> DirectorySpinLock(dataDir);</span></pre></td></tr> -<tr> <td class="numLineCover"> 55</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (InvalidDirectoryException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 56</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> UpdateException(<span class="string">"Unable to obtain lock on the data directory"</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 57</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (DirectoryLockException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 58</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> UpdateException(<span class="string">"Unable to obtain exclusive lock on the data directory"</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 59</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLine"> 60</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 61</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 62</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  lock.obtainSharedLock();</span></pre></td></tr> -<tr> <td class="numLineCover"> 63</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> UpdateTask task = UpdateTaskFactory.getUpdateTask();</span></pre></td></tr> -<tr> <td class="numLine"> 64</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 65</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 66</td> <td class="nbHitsUncovered"><a title="Line 66: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 66: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (task.isUpdateNeeded()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 67</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  lock.release();</span></pre></td></tr> -<tr> <td class="numLineCover"> 68</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  lock.obtainExclusiveLock();</span></pre></td></tr> -<tr> <td class="numLineCover"> 69</td> <td class="nbHitsUncovered"><a title="Line 69: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 69: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (task.shouldDeleteAndRecreate()) {</a></span></pre></td></tr> -<tr> <td class="numLine"> 70</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 49</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> UpdateTask task = UpdateTaskFactory.getUpdateTask();</span></pre></td></tr> +<tr> <td class="numLineCover"> 50</td> <td class="nbHitsUncovered"><a title="Line 50: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 50: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (task.isUpdateNeeded()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 51</td> <td class="nbHitsUncovered"><a title="Line 51: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 51: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (task.shouldDeleteAndRecreate()) {</a></span></pre></td></tr> +<tr> <td class="numLine"> 52</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 71</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  deleteExistingData();</span></pre></td></tr> -<tr> <td class="numLineCover"> 72</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 73</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(DatabaseUpdater.<span class="keyword">class</span>.getName()).log(Level.WARNING, <span class="string">"Unable to delete the existing data directory"</span>);</span></pre></td></tr> -<tr> <td class="numLineCover"> 74</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(DatabaseUpdater.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="keyword">null</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 75</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLine"> 76</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 53</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  deleteExistingData();</span></pre></td></tr> +<tr> <td class="numLineCover"> 54</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 55</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(DatabaseUpdater.<span class="keyword">class</span>.getName()).log(Level.WARNING, <span class="string">"Unable to delete the existing data directory"</span>);</span></pre></td></tr> +<tr> <td class="numLineCover"> 56</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(DatabaseUpdater.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="keyword">null</span>, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 57</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLine"> 58</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 77</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  task.update();</span></pre></td></tr> -<tr> <td class="numLine"> 78</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 59</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  task.update();</span></pre></td></tr> +<tr> <td class="numLine"> 60</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 79</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (DirectoryLockException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 80</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(DatabaseUpdater.<span class="keyword">class</span>.getName()).log(Level.WARNING,</span></pre></td></tr> -<tr> <td class="numLine"> 81</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="string">"Unable to obtain lock on data directory, unable to update the data to use the most current data."</span>);</pre></td></tr> -<tr> <td class="numLineCover"> 82</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(DatabaseUpdater.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="keyword">null</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 83</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (MalformedURLException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 84</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(DatabaseUpdater.<span class="keyword">class</span>.getName()).log(Level.WARNING,</span></pre></td></tr> -<tr> <td class="numLine"> 85</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 61</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (MalformedURLException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 62</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(DatabaseUpdater.<span class="keyword">class</span>.getName()).log(Level.WARNING,</span></pre></td></tr> +<tr> <td class="numLine"> 63</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="string">"NVD CVE properties files contain an invalid URL, unable to update the data to use the most current data."</span>);</pre></td></tr> -<tr> <td class="numLineCover"> 86</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(DatabaseUpdater.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="keyword">null</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 87</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (DownloadFailedException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 88</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(DatabaseUpdater.<span class="keyword">class</span>.getName()).log(Level.WARNING,</span></pre></td></tr> -<tr> <td class="numLine"> 89</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 64</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(DatabaseUpdater.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="keyword">null</span>, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 65</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (DownloadFailedException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 66</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(DatabaseUpdater.<span class="keyword">class</span>.getName()).log(Level.WARNING,</span></pre></td></tr> +<tr> <td class="numLine"> 67</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="string">"Unable to download the NVD CVE data, unable to update the data to use the most current data."</span>);</pre></td></tr> -<tr> <td class="numLineCover"> 90</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(DatabaseUpdater.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="keyword">null</span>, ex);</span></pre></td></tr> -<tr> <td class="numLine"> 91</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  } <span class="keyword">finally</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 92</td> <td class="nbHitsUncovered"><a title="Line 92: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 92: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (lock != <span class="keyword">null</span>) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 93</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  lock.release();</span></pre></td></tr> -<tr> <td class="numLine"> 94</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 95</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 96</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLine"> 97</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 68</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(DatabaseUpdater.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="keyword">null</span>, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 69</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLineCover"> 70</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLine"> 71</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 98</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 72</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 99</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 73</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Deletes the existing data directories.</span></pre></td></tr> -<tr> <td class="numLine"> 100</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 74</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 101</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 75</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws IOException thrown if the directory cannot be deleted</span></pre></td></tr> -<tr> <td class="numLine"> 102</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 76</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 103</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 77</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">protected</span> <span class="keyword">void</span> deleteExistingData() <span class="keyword">throws</span> IOException {</pre></td></tr> -<tr> <td class="numLineCover"> 104</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  File data = Settings.getFile(Settings.KEYS.CVE_DATA_DIRECTORY);</span></pre></td></tr> -<tr> <td class="numLineCover"> 105</td> <td class="nbHitsUncovered"><a title="Line 105: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 105: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (data.exists()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 106</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  FileUtils.delete(data);</span></pre></td></tr> -<tr> <td class="numLine"> 107</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 78</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  File data = Settings.getDataFile(Settings.KEYS.CVE_DATA_DIRECTORY);</span></pre></td></tr> +<tr> <td class="numLineCover"> 79</td> <td class="nbHitsUncovered"><a title="Line 79: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 79: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (data.exists()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 80</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  FileUtils.delete(data);</span></pre></td></tr> +<tr> <td class="numLine"> 81</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 108</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  data = Settings.getFile(Settings.KEYS.CPE_DATA_DIRECTORY);</span></pre></td></tr> -<tr> <td class="numLineCover"> 109</td> <td class="nbHitsUncovered"><a title="Line 109: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 109: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (data.exists()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 110</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  FileUtils.delete(data);</span></pre></td></tr> -<tr> <td class="numLine"> 111</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 82</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  data = DataStoreMetaInfo.getPropertiesFile();</span></pre></td></tr> +<tr> <td class="numLineCover"> 83</td> <td class="nbHitsUncovered"><a title="Line 83: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 83: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (data.exists()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 84</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  FileUtils.delete(data);</span></pre></td></tr> +<tr> <td class="numLine"> 85</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 112</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  data = DataStoreMetaInfo.getPropertiesFile();</span></pre></td></tr> -<tr> <td class="numLineCover"> 113</td> <td class="nbHitsUncovered"><a title="Line 113: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 113: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (data.exists()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 114</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  FileUtils.delete(data);</span></pre></td></tr> -<tr> <td class="numLine"> 115</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 116</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLine"> 117</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 86</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLine"> 87</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.NvdCveInfo.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.NvdCveInfo.html index ccd226ad6..e6a9df5d0 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.NvdCveInfo.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.NvdCveInfo.html @@ -278,6 +278,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.StandardUpdateTask.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.StandardUpdateTask.html index 35128afff..d7bbdeec7 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.StandardUpdateTask.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.StandardUpdateTask.html @@ -12,7 +12,7 @@ <div class="separator"> </div> <table class="report"> <thead><tr> <td class="heading">Classes in this File</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead> - <tr><td><a href="org.owasp.dependencycheck.data.update.StandardUpdateTask.html">StandardUpdateTask</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/126</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/60</span></div></div></td></tr></table></td><td class="value"><span class="hidden">14.75;</span>14.75</td></tr> + <tr><td><a href="org.owasp.dependencycheck.data.update.StandardUpdateTask.html">StandardUpdateTask</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/129</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/46</span></div></div></td></tr></table></td><td class="value"><span class="hidden">14.25;</span>14.25</td></tr> </table> <div class="separator"> </div> @@ -72,415 +72,632 @@ <tr> <td class="numLine"> 27</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> java.net.MalformedURLException;</pre></td></tr> <tr> <td class="numLine"> 28</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> java.net.URL;</pre></td></tr> -<tr> <td class="numLine"> 29</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> java.sql.SQLException;</pre></td></tr> -<tr> <td class="numLine"> 30</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 29</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.Calendar;</pre></td></tr> -<tr> <td class="numLine"> 31</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 30</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.Date;</pre></td></tr> +<tr> <td class="numLine"> 31</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.HashSet;</pre></td></tr> <tr> <td class="numLine"> 32</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.logging.Level;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.Set;</pre></td></tr> <tr> <td class="numLine"> 33</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.logging.Logger;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.concurrent.ExecutionException;</pre></td></tr> <tr> <td class="numLine"> 34</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.UpdateException;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.concurrent.ExecutorService;</pre></td></tr> <tr> <td class="numLine"> 35</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.nvdcve.CveDB;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.concurrent.Executors;</pre></td></tr> <tr> <td class="numLine"> 36</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.utils.DownloadFailedException;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.concurrent.Future;</pre></td></tr> <tr> <td class="numLine"> 37</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.utils.Downloader;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.logging.Level;</pre></td></tr> <tr> <td class="numLine"> 38</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.utils.Settings;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> java.util.logging.Logger;</pre></td></tr> <tr> <td class="numLine"> 39</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.nvdcve.DatabaseException;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.UpdateException;</pre></td></tr> <tr> <td class="numLine"> 40</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.utils.InvalidSettingException;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.nvdcve.CveDB;</pre></td></tr> <tr> <td class="numLine"> 41</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">import</span> <span class="keyword">static</span> org.owasp.dependencycheck.data.update.DataStoreMetaInfo.MODIFIED;</pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.utils.DownloadFailedException;</pre></td></tr> <tr> <td class="numLine"> 42</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.utils.Settings;</pre></td></tr> <tr> <td class="numLine"> 43</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.data.nvdcve.DatabaseException;</pre></td></tr> <tr> <td class="numLine"> 44</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Class responsible for updating the CPE and NVDCVE data stores.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> org.owasp.dependencycheck.utils.InvalidSettingException;</pre></td></tr> <tr> <td class="numLine"> 45</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">import</span> <span class="keyword">static</span> org.owasp.dependencycheck.data.update.DataStoreMetaInfo.MODIFIED;</pre></td></tr> <tr> <td class="numLine"> 46</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @author Jeremy Long (jeremy.long@owasp.org)</span></pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 47</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 48</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> StandardUpdateTask <span class="keyword">extends</span> AbstractUpdateTask {</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * Class responsible for updating the CPE and NVDCVE data stores.</span></pre></td></tr> <tr> <td class="numLine"> 49</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 50</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * @author Jeremy Long (jeremy.long@owasp.org)</span></pre></td></tr> <tr> <td class="numLine"> 51</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Constructs a new Standard Update Task.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 52</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> StandardUpdateTask <span class="keyword">extends</span> AbstractUpdateTask {</pre></td></tr> <tr> <td class="numLine"> 53</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param properties information about the data store</span></pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 54</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws MalformedURLException thrown if a configured URL is malformed</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 55</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws DownloadFailedException thrown if a timestamp cannot be checked</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * The max thread pool size to use when downloading files.</span></pre></td></tr> <tr> <td class="numLine"> 56</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * on a configured URL</span></pre></td></tr> -<tr> <td class="numLine"> 57</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws UpdateException thrown if there is an exception generating the</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLineCover"> 57</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">int</span> MAX_THREAD_POOL_SIZE = Settings.getInt(Settings.KEYS.MAX_DOWNLOAD_THREAD_POOL_SIZE, 3);</span></pre></td></tr> <tr> <td class="numLine"> 58</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * update task</span></pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 59</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 60</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> StandardUpdateTask(DataStoreMetaInfo properties) <span class="keyword">throws</span> MalformedURLException, DownloadFailedException, UpdateException {</pre></td></tr> -<tr> <td class="numLineCover"> 61</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">super</span>(properties);</span></pre></td></tr> -<tr> <td class="numLineCover"> 62</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * Constructs a new Standard Update Task.</span></pre></td></tr> +<tr> <td class="numLine"> 61</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 62</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param properties information about the data store</span></pre></td></tr> <tr> <td class="numLine"> 63</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * @throws MalformedURLException thrown if a configured URL is malformed</span></pre></td></tr> <tr> <td class="numLine"> 64</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * @throws DownloadFailedException thrown if a timestamp cannot be checked</span></pre></td></tr> <tr> <td class="numLine"> 65</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * <p>Downloads the latest NVD CVE XML file from the web and imports it into</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * on a configured URL</span></pre></td></tr> <tr> <td class="numLine"> 66</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * the current CVE Database.</p></span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * @throws UpdateException thrown if there is an exception generating the</span></pre></td></tr> <tr> <td class="numLine"> 67</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * update task</span></pre></td></tr> <tr> <td class="numLine"> 68</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws UpdateException is thrown if there is an error updating the</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 69</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * database</span></pre></td></tr> -<tr> <td class="numLine"> 70</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 71</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  @Override</pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">public</span> StandardUpdateTask(DataStoreMetaInfo properties) <span class="keyword">throws</span> MalformedURLException, DownloadFailedException, UpdateException {</pre></td></tr> +<tr> <td class="numLineCover"> 70</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">super</span>(properties);</span></pre></td></tr> +<tr> <td class="numLineCover"> 71</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> <tr> <td class="numLine"> 72</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> update() <span class="keyword">throws</span> UpdateException {</pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 73</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 74</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">int</span> maxUpdates = 0;</span></pre></td></tr> -<tr> <td class="numLineCover"> 75</td> <td class="nbHitsUncovered"><a title="Line 75: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 75: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (NvdCveInfo cve : getUpdateable()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 76</td> <td class="nbHitsUncovered"><a title="Line 76: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 76: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (cve.getNeedsUpdate()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 77</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  maxUpdates += 1;</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 74</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * <p>Downloads the latest NVD CVE XML file from the web and imports it into</span></pre></td></tr> +<tr> <td class="numLine"> 75</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * the current CVE Database.</p></span></pre></td></tr> +<tr> <td class="numLine"> 76</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 77</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @throws UpdateException is thrown if there is an error updating the</span></pre></td></tr> <tr> <td class="numLine"> 78</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * database</span></pre></td></tr> <tr> <td class="numLine"> 79</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 80</td> <td class="nbHitsUncovered"><a title="Line 80: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 80: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (maxUpdates > 3) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 81</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(StandardUpdateTask.<span class="keyword">class</span>.getName()).log(Level.INFO,</span></pre></td></tr> -<tr> <td class="numLine"> 82</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="string">"NVD CVE requires several updates; this could take a couple of minutes."</span>);</pre></td></tr> -<tr> <td class="numLine"> 83</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 84</td> <td class="nbHitsUncovered"><a title="Line 84: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 84: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (maxUpdates > 0) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 85</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  openDataStores();</span></pre></td></tr> -<tr> <td class="numLine"> 86</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 87</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 88</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">int</span> count = 0;</span></pre></td></tr> -<tr> <td class="numLineCover"> 89</td> <td class="nbHitsUncovered"><a title="Line 89: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 89: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (NvdCveInfo cve : getUpdateable()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 90</td> <td class="nbHitsUncovered"><a title="Line 90: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 90: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (cve.getNeedsUpdate()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 91</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  count += 1;</span></pre></td></tr> -<tr> <td class="numLineCover"> 92</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(StandardUpdateTask.<span class="keyword">class</span>.getName()).log(Level.INFO,</span></pre></td></tr> -<tr> <td class="numLine"> 93</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="string">"Updating NVD CVE ({0} of {1})"</span>, <span class="keyword">new</span> Object[]{count, maxUpdates});</pre></td></tr> -<tr> <td class="numLineCover"> 94</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  URL url = <span class="keyword">new</span> URL(cve.getUrl());</span></pre></td></tr> -<tr> <td class="numLineCover"> 95</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  File outputPath = <span class="keyword">null</span>;</span></pre></td></tr> -<tr> <td class="numLineCover"> 96</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  File outputPath12 = <span class="keyword">null</span>;</span></pre></td></tr> -<tr> <td class="numLine"> 97</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 98</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(StandardUpdateTask.<span class="keyword">class</span>.getName()).log(Level.INFO,</span></pre></td></tr> -<tr> <td class="numLine"> 99</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="string">"Downloading {0}"</span>, cve.getUrl());</pre></td></tr> -<tr> <td class="numLineCover"> 100</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  outputPath = File.createTempFile(<span class="string">"cve"</span> + cve.getId() + <span class="string">"_"</span>, <span class="string">".xml"</span>);</span></pre></td></tr> -<tr> <td class="numLineCover"> 101</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Downloader.fetchFile(url, outputPath);</span></pre></td></tr> -<tr> <td class="numLine"> 102</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 103</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  url = <span class="keyword">new</span> URL(cve.getOldSchemaVersionUrl());</span></pre></td></tr> -<tr> <td class="numLineCover"> 104</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  outputPath12 = File.createTempFile(<span class="string">"cve_1_2_"</span> + cve.getId() + <span class="string">"_"</span>, <span class="string">".xml"</span>);</span></pre></td></tr> -<tr> <td class="numLineCover"> 105</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Downloader.fetchFile(url, outputPath12);</span></pre></td></tr> -<tr> <td class="numLine"> 106</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 107</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(StandardUpdateTask.<span class="keyword">class</span>.getName()).log(Level.INFO,</span></pre></td></tr> -<tr> <td class="numLine"> 108</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="string">"Processing {0}"</span>, cve.getUrl());</pre></td></tr> -<tr> <td class="numLine"> 109</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 110</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  importXML(outputPath, outputPath12);</span></pre></td></tr> -<tr> <td class="numLine"> 111</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 112</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  getCveDB().commit();</span></pre></td></tr> -<tr> <td class="numLineCover"> 113</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  getCpeIndex().commit();</span></pre></td></tr> -<tr> <td class="numLineCover"> 114</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  getProperties().save(cve);</span></pre></td></tr> -<tr> <td class="numLine"> 115</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 116</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(StandardUpdateTask.<span class="keyword">class</span>.getName()).log(Level.INFO,</span></pre></td></tr> -<tr> <td class="numLine"> 117</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="string">"Completed update {0} of {1}"</span>, <span class="keyword">new</span> Object[]{count, maxUpdates});</pre></td></tr> -<tr> <td class="numLineCover"> 118</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (FileNotFoundException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 119</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> UpdateException(ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 120</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (ParserConfigurationException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 121</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> UpdateException(ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 122</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (SAXException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 123</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> UpdateException(ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 124</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 125</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> UpdateException(ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 126</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 127</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> UpdateException(ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 128</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (DatabaseException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 129</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> UpdateException(ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 130</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (ClassNotFoundException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 131</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> UpdateException(ex);</span></pre></td></tr> -<tr> <td class="numLine"> 132</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  } <span class="keyword">finally</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 133</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">boolean</span> deleted = <span class="keyword">false</span>;</span></pre></td></tr> -<tr> <td class="numLine"> 134</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 135</td> <td class="nbHitsUncovered"><a title="Line 135: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 135: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> (outputPath != <span class="keyword">null</span> && outputPath.exists()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 136</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  deleted = outputPath.delete();</span></pre></td></tr> -<tr> <td class="numLine"> 137</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 138</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  } <span class="keyword">finally</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 139</td> <td class="nbHitsUncovered"><a title="Line 139: Conditional coverage 0% (0/6) [each condition: 0%, 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 139: Conditional coverage 0% (0/6) [each condition: 0%, 0%, 0%]."> <span class="keyword">if</span> (outputPath != <span class="keyword">null</span> && (outputPath.exists() || !deleted)) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 140</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  outputPath.deleteOnExit();</span></pre></td></tr> -<tr> <td class="numLine"> 141</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 142</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 143</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 144</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  deleted = <span class="keyword">false</span>;</span></pre></td></tr> -<tr> <td class="numLineCover"> 145</td> <td class="nbHitsUncovered"><a title="Line 145: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 145: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> (outputPath12 != <span class="keyword">null</span> && outputPath12.exists()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 146</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  deleted = outputPath12.delete();</span></pre></td></tr> -<tr> <td class="numLine"> 147</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 148</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  } <span class="keyword">finally</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 149</td> <td class="nbHitsUncovered"><a title="Line 149: Conditional coverage 0% (0/6) [each condition: 0%, 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 149: Conditional coverage 0% (0/6) [each condition: 0%, 0%, 0%]."> <span class="keyword">if</span> (outputPath12 != <span class="keyword">null</span> && (outputPath12.exists() || !deleted)) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 150</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  outputPath12.deleteOnExit();</span></pre></td></tr> -<tr> <td class="numLine"> 151</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 152</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 153</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLineCover"> 154</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLine"> 155</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 156</td> <td class="nbHitsUncovered"><a title="Line 156: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 156: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (maxUpdates >= 1) { <span class="comment">//ensure the modified file date gets written</span></a></span></pre></td></tr> -<tr> <td class="numLineCover"> 157</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  getProperties().save(getUpdateable().get(MODIFIED));</span></pre></td></tr> -<tr> <td class="numLineCover"> 158</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  getCveDB().cleanupDatabase();</span></pre></td></tr> -<tr> <td class="numLine"> 159</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 160</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (MalformedURLException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 161</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> UpdateException(ex);</span></pre></td></tr> -<tr> <td class="numLine"> 162</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  } <span class="keyword">finally</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 163</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeDataStores();</span></pre></td></tr> -<tr> <td class="numLineCover"> 164</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLineCover"> 165</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLine"> 166</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 167</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 168</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Determines if the index needs to be updated. This is done by fetching the</span></pre></td></tr> -<tr> <td class="numLine"> 169</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * NVD CVE meta data and checking the last update date. If the data needs to</span></pre></td></tr> -<tr> <td class="numLine"> 170</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * be refreshed this method will return the NvdCveUrl for the files that</span></pre></td></tr> -<tr> <td class="numLine"> 171</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * need to be updated.</span></pre></td></tr> -<tr> <td class="numLine"> 172</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 173</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @return the collection of files that need to be updated</span></pre></td></tr> -<tr> <td class="numLine"> 174</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws MalformedURLException is thrown if the URL for the NVD CVE Meta</span></pre></td></tr> -<tr> <td class="numLine"> 175</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * data is incorrect</span></pre></td></tr> -<tr> <td class="numLine"> 176</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws DownloadFailedException is thrown if there is an error.</span></pre></td></tr> -<tr> <td class="numLine"> 177</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * downloading the NVD CVE download data file</span></pre></td></tr> -<tr> <td class="numLine"> 178</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws UpdateException Is thrown if there is an issue with the last</span></pre></td></tr> -<tr> <td class="numLine"> 179</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * updated properties file</span></pre></td></tr> -<tr> <td class="numLine"> 180</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 181</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 80</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  @Override</pre></td></tr> -<tr> <td class="numLine"> 182</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">protected</span> Updateable updatesNeeded() <span class="keyword">throws</span> MalformedURLException, DownloadFailedException, UpdateException {</pre></td></tr> -<tr> <td class="numLineCover"> 183</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Updateable updates = <span class="keyword">null</span>;</span></pre></td></tr> -<tr> <td class="numLine"> 184</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 81</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> update() <span class="keyword">throws</span> UpdateException {</pre></td></tr> +<tr> <td class="numLineCover"> 82</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">int</span> maxUpdates = 0;</span></pre></td></tr> +<tr> <td class="numLine"> 83</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 185</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updates = retrieveCurrentTimestampsFromWeb();</span></pre></td></tr> -<tr> <td class="numLineCover"> 186</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (InvalidDataException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 187</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = <span class="string">"Unable to retrieve valid timestamp from nvd cve downloads page"</span>;</span></pre></td></tr> -<tr> <td class="numLineCover"> 188</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(StandardUpdateTask.<span class="keyword">class</span>.getName()).log(Level.FINE, msg, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 189</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> DownloadFailedException(msg, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 190</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (InvalidSettingException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 191</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(StandardUpdateTask.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="string">"Invalid setting found when retrieving timestamps"</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 192</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> DownloadFailedException(<span class="string">"Invalid settings"</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 193</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLine"> 194</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 84</td> <td class="nbHitsUncovered"><a title="Line 84: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 84: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (NvdCveInfo cve : getUpdateable()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 85</td> <td class="nbHitsUncovered"><a title="Line 85: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 85: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (cve.getNeedsUpdate()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 86</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  maxUpdates += 1;</span></pre></td></tr> +<tr> <td class="numLine"> 87</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 88</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 89</td> <td class="nbHitsUncovered"><a title="Line 89: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 89: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (maxUpdates <= 0) {</a></span></pre></td></tr> +<tr> <td class="numLine"> 90</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">return</span>;</pre></td></tr> +<tr> <td class="numLine"> 91</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 92</td> <td class="nbHitsUncovered"><a title="Line 92: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 92: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (maxUpdates > 3) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 93</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(StandardUpdateTask.<span class="keyword">class</span>.getName()).log(Level.INFO,</span></pre></td></tr> +<tr> <td class="numLine"> 94</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="string">"NVD CVE requires several updates; this could take a couple of minutes."</span>);</pre></td></tr> +<tr> <td class="numLine"> 95</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 96</td> <td class="nbHitsUncovered"><a title="Line 96: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 96: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (maxUpdates > 0) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 97</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  openDataStores();</span></pre></td></tr> +<tr> <td class="numLine"> 98</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 99</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 195</td> <td class="nbHitsUncovered"><a title="Line 195: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 195: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (updates == <span class="keyword">null</span>) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 196</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> DownloadFailedException(<span class="string">"Unable to retrieve the timestamps of the currently published NVD CVE data"</span>);</span></pre></td></tr> -<tr> <td class="numLine"> 197</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 198</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> DataStoreMetaInfo properties = getProperties();</span></pre></td></tr> -<tr> <td class="numLineCover"> 199</td> <td class="nbHitsUncovered"><a title="Line 199: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 199: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (!properties.isEmpty()) {</a></span></pre></td></tr> -<tr> <td class="numLine"> 200</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLine"> 201</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">float</span> version;</pre></td></tr> -<tr> <td class="numLine"> 202</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 100</td> <td class="nbHitsUncovered"><a title="Line 100: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 100: Conditional coverage 0% (0/2)."> <span class="keyword">final</span> <span class="keyword">int</span> poolSize = (MAX_THREAD_POOL_SIZE > maxUpdates) ? MAX_THREAD_POOL_SIZE : maxUpdates;</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 101</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> ExecutorService executorService = Executors.newFixedThreadPool(poolSize);</span></pre></td></tr> +<tr> <td class="numLineCover"> 102</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> Set<Future<CallableDownloadTask>> futures = <span class="keyword">new</span> HashSet<Future<CallableDownloadTask>>(maxUpdates);</span></pre></td></tr> +<tr> <td class="numLine"> 103</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 203</td> <td class="nbHitsUncovered"><a title="Line 203: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 203: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (properties.getProperty(<span class="string">"version"</span>) == <span class="keyword">null</span>) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 204</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  setDeleteAndRecreate(<span class="keyword">true</span>);</span></pre></td></tr> -<tr> <td class="numLine"> 205</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLine"> 206</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 104</td> <td class="nbHitsUncovered"><a title="Line 104: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 104: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (NvdCveInfo cve : getUpdateable()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 105</td> <td class="nbHitsUncovered"><a title="Line 105: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 105: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (cve.getNeedsUpdate()) {</a></span></pre></td></tr> +<tr> <td class="numLine"> 106</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">final</span> File file1;</pre></td></tr> +<tr> <td class="numLine"> 107</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">final</span> File file2;</pre></td></tr> +<tr> <td class="numLine"> 108</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 207</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  version = Float.parseFloat(properties.getProperty(<span class="string">"version"</span>));</span></pre></td></tr> -<tr> <td class="numLineCover"> 208</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> <span class="keyword">float</span> currentVersion = Float.parseFloat(CveDB.DB_SCHEMA_VERSION);</span></pre></td></tr> -<tr> <td class="numLineCover"> 209</td> <td class="nbHitsUncovered"><a title="Line 209: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 209: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (currentVersion > version) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 210</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  setDeleteAndRecreate(<span class="keyword">true</span>);</span></pre></td></tr> +<tr> <td class="numLineCover"> 109</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  file1 = File.createTempFile(<span class="string">"cve"</span> + cve.getId() + <span class="string">"_"</span>, <span class="string">".xml"</span>);</span></pre></td></tr> +<tr> <td class="numLineCover"> 110</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  file2 = File.createTempFile(<span class="string">"cve_1_2_"</span> + cve.getId() + <span class="string">"_"</span>, <span class="string">".xml"</span>);</span></pre></td></tr> +<tr> <td class="numLineCover"> 111</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 112</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> UpdateException(ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 113</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLineCover"> 114</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> CallableDownloadTask call = <span class="keyword">new</span> CallableDownloadTask(cve, file1, file2);</span></pre></td></tr> +<tr> <td class="numLineCover"> 115</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  futures.add(executorService.submit(call));</span></pre></td></tr> +<tr> <td class="numLineCover"> 116</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLine"> 117</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 118</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 119</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 120</td> <td class="nbHitsUncovered"><a title="Line 120: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 120: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (Future<CallableDownloadTask> future : futures) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 121</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> CallableDownloadTask filePair = future.get();</span></pre></td></tr> +<tr> <td class="numLineCover"> 122</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  String msg = String.format(<span class="string">"Processing Started for NVD CVE - %s"</span>, filePair.getNvdCveInfo().getId());</span></pre></td></tr> +<tr> <td class="numLineCover"> 123</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(StandardUpdateTask.<span class="keyword">class</span>.getName()).log(Level.INFO, msg);</span></pre></td></tr> +<tr> <td class="numLine"> 124</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 125</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  importXML(filePair.getFirst(), filePair.getSecond());</span></pre></td></tr> +<tr> <td class="numLineCover"> 126</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  getCveDB().commit();</span></pre></td></tr> +<tr> <td class="numLineCover"> 127</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  getProperties().save(filePair.getNvdCveInfo());</span></pre></td></tr> +<tr> <td class="numLineCover"> 128</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (FileNotFoundException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 129</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> UpdateException(ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 130</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (ParserConfigurationException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 131</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> UpdateException(ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 132</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (SAXException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 133</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> UpdateException(ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 134</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 135</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> UpdateException(ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 136</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (SQLException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 137</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> UpdateException(ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 138</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (DatabaseException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 139</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> UpdateException(ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 140</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (ClassNotFoundException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 141</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> UpdateException(ex);</span></pre></td></tr> +<tr> <td class="numLine"> 142</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  } <span class="keyword">finally</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 143</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  filePair.cleanup();</span></pre></td></tr> +<tr> <td class="numLineCover"> 144</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLineCover"> 145</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  msg = String.format(<span class="string">"Processing Complete for NVD CVE - %s"</span>, filePair.getNvdCveInfo().getId());</span></pre></td></tr> +<tr> <td class="numLineCover"> 146</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(StandardUpdateTask.<span class="keyword">class</span>.getName()).log(Level.INFO, msg);</span></pre></td></tr> +<tr> <td class="numLineCover"> 147</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLineCover"> 148</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (InterruptedException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 149</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  executorService.shutdownNow();</span></pre></td></tr> +<tr> <td class="numLineCover"> 150</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(StandardUpdateTask.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="string">"Thread was interupted"</span>, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 151</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> UpdateException(ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 152</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (ExecutionException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 153</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  executorService.shutdownNow();</span></pre></td></tr> +<tr> <td class="numLineCover"> 154</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(StandardUpdateTask.<span class="keyword">class</span>.getName()).log(Level.SEVERE, <span class="keyword">null</span>, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 155</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> UpdateException(ex);</span></pre></td></tr> +<tr> <td class="numLine"> 156</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  } <span class="keyword">finally</span> {</pre></td></tr> +<tr> <td class="numLine"> 157</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">//yes, this should likely not be in the finally because of the shutdownNow above.</span></pre></td></tr> +<tr> <td class="numLineCover"> 158</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  executorService.shutdown();</span></pre></td></tr> +<tr> <td class="numLineCover"> 159</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLine"> 160</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLineCover"> 161</td> <td class="nbHitsUncovered"><a title="Line 161: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 161: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (maxUpdates >= 1) { <span class="comment">//ensure the modified file date gets written</span></a></span></pre></td></tr> +<tr> <td class="numLineCover"> 162</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  getProperties().save(getUpdateable().get(MODIFIED));</span></pre></td></tr> +<tr> <td class="numLineCover"> 163</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  getCveDB().cleanupDatabase();</span></pre></td></tr> +<tr> <td class="numLine"> 164</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 165</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  } <span class="keyword">finally</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 166</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  closeDataStores();</span></pre></td></tr> +<tr> <td class="numLineCover"> 167</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLineCover"> 168</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLine"> 169</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 170</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">//<editor-fold defaultstate="collapsed" desc="OLD version of update() - not multithreaded"></span></pre></td></tr> +<tr> <td class="numLine"> 171</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/*</span></pre></td></tr> +<tr> <td class="numLine"> 172</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * TODO - remove this</span></pre></td></tr> +<tr> <td class="numLine"> 173</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> public void update() throws UpdateException {</span></pre></td></tr> +<tr> <td class="numLine"> 174</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> try {</span></pre></td></tr> +<tr> <td class="numLine"> 175</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> int maxUpdates = 0;</span></pre></td></tr> +<tr> <td class="numLine"> 176</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> for (NvdCveInfo cve : getUpdateable()) {</span></pre></td></tr> +<tr> <td class="numLine"> 177</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> if (cve.getNeedsUpdate()) {</span></pre></td></tr> +<tr> <td class="numLine"> 178</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> maxUpdates += 1;</span></pre></td></tr> +<tr> <td class="numLine"> 179</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> }</span></pre></td></tr> +<tr> <td class="numLine"> 180</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> }</span></pre></td></tr> +<tr> <td class="numLine"> 181</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> if (maxUpdates > 3) {</span></pre></td></tr> +<tr> <td class="numLine"> 182</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.INFO,</span></pre></td></tr> +<tr> <td class="numLine"> 183</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> "NVD CVE requires several updates; this could take a couple of minutes.");</span></pre></td></tr> +<tr> <td class="numLine"> 184</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> }</span></pre></td></tr> +<tr> <td class="numLine"> 185</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> if (maxUpdates > 0) {</span></pre></td></tr> +<tr> <td class="numLine"> 186</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> openDataStores();</span></pre></td></tr> +<tr> <td class="numLine"> 187</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> }</span></pre></td></tr> +<tr> <td class="numLine"> 188</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 189</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> int count = 0;</span></pre></td></tr> +<tr> <td class="numLine"> 190</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> for (NvdCveInfo cve : getUpdateable()) {</span></pre></td></tr> +<tr> <td class="numLine"> 191</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> if (cve.getNeedsUpdate()) {</span></pre></td></tr> +<tr> <td class="numLine"> 192</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> count += 1;</span></pre></td></tr> +<tr> <td class="numLine"> 193</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.INFO,</span></pre></td></tr> +<tr> <td class="numLine"> 194</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> "Updating NVD CVE ({0} of {1})", new Object[]{count, maxUpdates});</span></pre></td></tr> +<tr> <td class="numLine"> 195</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> URL url = new URL(cve.getUrl());</span></pre></td></tr> +<tr> <td class="numLine"> 196</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> File outputPath = null;</span></pre></td></tr> +<tr> <td class="numLine"> 197</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> File outputPath12 = null;</span></pre></td></tr> +<tr> <td class="numLine"> 198</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> try {</span></pre></td></tr> +<tr> <td class="numLine"> 199</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.INFO,</span></pre></td></tr> +<tr> <td class="numLine"> 200</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> "Downloading {0}", cve.getUrl());</span></pre></td></tr> +<tr> <td class="numLine"> 201</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> outputPath = File.createTempFile("cve" + cve.getId() + "_", ".xml");</span></pre></td></tr> +<tr> <td class="numLine"> 202</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> Downloader.fetchFile(url, outputPath);</span></pre></td></tr> +<tr> <td class="numLine"> 203</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 204</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> url = new URL(cve.getOldSchemaVersionUrl());</span></pre></td></tr> +<tr> <td class="numLine"> 205</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> outputPath12 = File.createTempFile("cve_1_2_" + cve.getId() + "_", ".xml");</span></pre></td></tr> +<tr> <td class="numLine"> 206</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> Downloader.fetchFile(url, outputPath12);</span></pre></td></tr> +<tr> <td class="numLine"> 207</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 208</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.INFO,</span></pre></td></tr> +<tr> <td class="numLine"> 209</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> "Processing {0}", cve.getUrl());</span></pre></td></tr> +<tr> <td class="numLine"> 210</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 211</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 212</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (NumberFormatException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 213</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  setDeleteAndRecreate(<span class="keyword">true</span>);</span></pre></td></tr> -<tr> <td class="numLineCover"> 214</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> importXML(outputPath, outputPath12);</span></pre></td></tr> +<tr> <td class="numLine"> 212</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 213</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> getCveDB().commit();</span></pre></td></tr> +<tr> <td class="numLine"> 214</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> getProperties().save(cve);</span></pre></td></tr> <tr> <td class="numLine"> 215</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 216</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 217</td> <td class="nbHitsUncovered"><a title="Line 217: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 217: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (shouldDeleteAndRecreate()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 218</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> updates;</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.INFO,</span></pre></td></tr> +<tr> <td class="numLine"> 217</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> "Completed update {0} of {1}", new Object[]{count, maxUpdates});</span></pre></td></tr> +<tr> <td class="numLine"> 218</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> } catch (FileNotFoundException ex) {</span></pre></td></tr> <tr> <td class="numLine"> 219</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> throw new UpdateException(ex);</span></pre></td></tr> <tr> <td class="numLine"> 220</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 221</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> <span class="keyword">long</span> lastUpdated = Long.parseLong(properties.getProperty(DataStoreMetaInfo.LAST_UPDATED, <span class="string">"0"</span>));</span></pre></td></tr> -<tr> <td class="numLineCover"> 222</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> Date now = <span class="keyword">new</span> Date();</span></pre></td></tr> -<tr> <td class="numLineCover"> 223</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> <span class="keyword">int</span> days = Settings.getInt(Settings.KEYS.CVE_MODIFIED_VALID_FOR_DAYS, 7);</span></pre></td></tr> -<tr> <td class="numLineCover"> 224</td> <td class="nbHitsUncovered"><a title="Line 224: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 224: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (lastUpdated == updates.getTimeStamp(MODIFIED)) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 225</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updates.clear(); <span class="comment">//we don't need to update anything.</span></span></pre></td></tr> -<tr> <td class="numLineCover"> 226</td> <td class="nbHitsUncovered"><a title="Line 226: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 226: Conditional coverage 0% (0/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (withinRange(lastUpdated, now.getTime(), days)) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 227</td> <td class="nbHitsUncovered"><a title="Line 227: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 227: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (NvdCveInfo entry : updates) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 228</td> <td class="nbHitsUncovered"><a title="Line 228: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 228: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (MODIFIED.equals(entry.getId())) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 229</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  entry.setNeedsUpdate(<span class="keyword">true</span>);</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> } catch (ParserConfigurationException ex) {</span></pre></td></tr> +<tr> <td class="numLine"> 221</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> throw new UpdateException(ex);</span></pre></td></tr> +<tr> <td class="numLine"> 222</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> } catch (SAXException ex) {</span></pre></td></tr> +<tr> <td class="numLine"> 223</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> throw new UpdateException(ex);</span></pre></td></tr> +<tr> <td class="numLine"> 224</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> } catch (IOException ex) {</span></pre></td></tr> +<tr> <td class="numLine"> 225</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> throw new UpdateException(ex);</span></pre></td></tr> +<tr> <td class="numLine"> 226</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> } catch (SQLException ex) {</span></pre></td></tr> +<tr> <td class="numLine"> 227</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> throw new UpdateException(ex);</span></pre></td></tr> +<tr> <td class="numLine"> 228</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> } catch (DatabaseException ex) {</span></pre></td></tr> +<tr> <td class="numLine"> 229</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> throw new UpdateException(ex);</span></pre></td></tr> <tr> <td class="numLine"> 230</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 231</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  entry.setNeedsUpdate(<span class="keyword">false</span>);</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> } catch (ClassNotFoundException ex) {</span></pre></td></tr> +<tr> <td class="numLine"> 231</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> throw new UpdateException(ex);</span></pre></td></tr> <tr> <td class="numLine"> 232</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> } finally {</span></pre></td></tr> <tr> <td class="numLine"> 233</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> boolean deleted = false;</span></pre></td></tr> <tr> <td class="numLine"> 234</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  } <span class="keyword">else</span> { <span class="comment">//we figure out which of the several XML files need to be downloaded.</span></pre></td></tr> -<tr> <td class="numLineCover"> 235</td> <td class="nbHitsUncovered"><a title="Line 235: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 235: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (NvdCveInfo entry : updates) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 236</td> <td class="nbHitsUncovered"><a title="Line 236: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 236: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (MODIFIED.equals(entry.getId())) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 237</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  entry.setNeedsUpdate(<span class="keyword">true</span>);</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> try {</span></pre></td></tr> +<tr> <td class="numLine"> 235</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> if (outputPath != null && outputPath.exists()) {</span></pre></td></tr> +<tr> <td class="numLine"> 236</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> deleted = outputPath.delete();</span></pre></td></tr> +<tr> <td class="numLine"> 237</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> }</span></pre></td></tr> <tr> <td class="numLine"> 238</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 239</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">long</span> currentTimestamp = 0;</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> } finally {</span></pre></td></tr> +<tr> <td class="numLine"> 239</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> if (outputPath != null && (outputPath.exists() || !deleted)) {</span></pre></td></tr> <tr> <td class="numLine"> 240</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 241</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  currentTimestamp = Long.parseLong(properties.getProperty(DataStoreMetaInfo.LAST_UPDATED_BASE + entry.getId(), <span class="string">"0"</span>));</span></pre></td></tr> -<tr> <td class="numLineCover"> 242</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (NumberFormatException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 243</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = String.format(<span class="string">"Error parsing '%s' '%s' from nvdcve.lastupdated"</span>,</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> outputPath.deleteOnExit();</span></pre></td></tr> +<tr> <td class="numLine"> 241</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> }</span></pre></td></tr> +<tr> <td class="numLine"> 242</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> }</span></pre></td></tr> +<tr> <td class="numLine"> 243</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> try {</span></pre></td></tr> <tr> <td class="numLine"> 244</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  DataStoreMetaInfo.LAST_UPDATED_BASE, entry.getId());</pre></td></tr> -<tr> <td class="numLineCover"> 245</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(StandardUpdateTask.<span class="keyword">class</span>.getName()).log(Level.FINE, msg, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 246</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLineCover"> 247</td> <td class="nbHitsUncovered"><a title="Line 247: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 247: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (currentTimestamp == entry.getTimestamp()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 248</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  entry.setNeedsUpdate(<span class="keyword">false</span>);</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> deleted = false;</span></pre></td></tr> +<tr> <td class="numLine"> 245</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> if (outputPath12 != null && outputPath12.exists()) {</span></pre></td></tr> +<tr> <td class="numLine"> 246</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> deleted = outputPath12.delete();</span></pre></td></tr> +<tr> <td class="numLine"> 247</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> }</span></pre></td></tr> +<tr> <td class="numLine"> 248</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> } finally {</span></pre></td></tr> <tr> <td class="numLine"> 249</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 250</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> if (outputPath12 != null && (outputPath12.exists() || !deleted)) {</span></pre></td></tr> +<tr> <td class="numLine"> 250</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> outputPath12.deleteOnExit();</span></pre></td></tr> <tr> <td class="numLine"> 251</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> }</span></pre></td></tr> <tr> <td class="numLine"> 252</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 253</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (NumberFormatException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 254</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = <span class="string">"An invalid schema version or timestamp exists in the data.properties file."</span>;</span></pre></td></tr> -<tr> <td class="numLineCover"> 255</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(StandardUpdateTask.<span class="keyword">class</span>.getName()).log(Level.WARNING, msg);</span></pre></td></tr> -<tr> <td class="numLineCover"> 256</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(StandardUpdateTask.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="keyword">null</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 257</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> }</span></pre></td></tr> +<tr> <td class="numLine"> 253</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> }</span></pre></td></tr> +<tr> <td class="numLine"> 254</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> }</span></pre></td></tr> +<tr> <td class="numLine"> 255</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> }</span></pre></td></tr> +<tr> <td class="numLine"> 256</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> if (maxUpdates >= 1) { //ensure the modified file date gets written</span></pre></td></tr> +<tr> <td class="numLine"> 257</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> getProperties().save(getUpdateable().get(MODIFIED));</span></pre></td></tr> <tr> <td class="numLine"> 258</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 259</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> updates;</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> getCveDB().cleanupDatabase();</span></pre></td></tr> +<tr> <td class="numLine"> 259</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> }</span></pre></td></tr> <tr> <td class="numLine"> 260</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> } catch (MalformedURLException ex) {</span></pre></td></tr> <tr> <td class="numLine"> 261</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> throw new UpdateException(ex);</span></pre></td></tr> <tr> <td class="numLine"> 262</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> } finally {</span></pre></td></tr> <tr> <td class="numLine"> 263</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Retrieves the timestamps from the NVD CVE meta data file.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> closeDataStores();</span></pre></td></tr> <tr> <td class="numLine"> 264</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> }</span></pre></td></tr> <tr> <td class="numLine"> 265</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @return the timestamp from the currently published nvdcve downloads page</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> }</span></pre></td></tr> <tr> <td class="numLine"> 266</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws MalformedURLException thrown if the URL for the NVD CCE Meta data</span></pre></td></tr> -<tr> <td class="numLine"> 267</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * is incorrect.</span></pre></td></tr> -<tr> <td class="numLine"> 268</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws DownloadFailedException thrown if there is an error downloading</span></pre></td></tr> -<tr> <td class="numLine"> 269</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * the nvd cve meta data file</span></pre></td></tr> -<tr> <td class="numLine"> 270</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws InvalidDataException thrown if there is an exception parsing the</span></pre></td></tr> -<tr> <td class="numLine"> 271</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * timestamps</span></pre></td></tr> -<tr> <td class="numLine"> 272</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws InvalidSettingException thrown if the settings are invalid</span></pre></td></tr> -<tr> <td class="numLine"> 273</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 267</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">//</editor-fold></span></pre></td></tr> +<tr> <td class="numLine"> 268</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 269</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Determines if the index needs to be updated. This is done by fetching the</span></pre></td></tr> +<tr> <td class="numLine"> 270</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * NVD CVE meta data and checking the last update date. If the data needs to</span></pre></td></tr> +<tr> <td class="numLine"> 271</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * be refreshed this method will return the NvdCveUrl for the files that</span></pre></td></tr> +<tr> <td class="numLine"> 272</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * need to be updated.</span></pre></td></tr> +<tr> <td class="numLine"> 273</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 274</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">private</span> Updateable retrieveCurrentTimestampsFromWeb()</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * @return the collection of files that need to be updated</span></pre></td></tr> <tr> <td class="numLine"> 275</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">throws</span> MalformedURLException, DownloadFailedException, InvalidDataException, InvalidSettingException {</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * @throws MalformedURLException is thrown if the URL for the NVD CVE Meta</span></pre></td></tr> <tr> <td class="numLine"> 276</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 277</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> Updateable updates = <span class="keyword">new</span> Updateable();</span></pre></td></tr> -<tr> <td class="numLineCover"> 278</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updates.add(MODIFIED, Settings.getString(Settings.KEYS.CVE_MODIFIED_20_URL),</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * data is incorrect</span></pre></td></tr> +<tr> <td class="numLine"> 277</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @throws DownloadFailedException is thrown if there is an error.</span></pre></td></tr> +<tr> <td class="numLine"> 278</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * downloading the NVD CVE download data file</span></pre></td></tr> <tr> <td class="numLine"> 279</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  Settings.getString(Settings.KEYS.CVE_MODIFIED_12_URL),</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * @throws UpdateException Is thrown if there is an issue with the last</span></pre></td></tr> <tr> <td class="numLine"> 280</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">false</span>);</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * updated properties file</span></pre></td></tr> <tr> <td class="numLine"> 281</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 282</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> <span class="keyword">int</span> start = Settings.getInt(Settings.KEYS.CVE_START_YEAR);</span></pre></td></tr> -<tr> <td class="numLineCover"> 283</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> <span class="keyword">int</span> end = Calendar.getInstance().get(Calendar.YEAR);</span></pre></td></tr> -<tr> <td class="numLineCover"> 284</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String baseUrl20 = Settings.getString(Settings.KEYS.CVE_SCHEMA_2_0);</span></pre></td></tr> -<tr> <td class="numLineCover"> 285</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String baseUrl12 = Settings.getString(Settings.KEYS.CVE_SCHEMA_1_2);</span></pre></td></tr> -<tr> <td class="numLineCover"> 286</td> <td class="nbHitsUncovered"><a title="Line 286: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 286: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = start; i <= end; i++) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 287</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updates.add(Integer.toString(i), String.format(baseUrl20, i),</span></pre></td></tr> -<tr> <td class="numLine"> 288</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  String.format(baseUrl12, i),</pre></td></tr> -<tr> <td class="numLine"> 289</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">true</span>);</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 282</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  @Override</pre></td></tr> +<tr> <td class="numLine"> 283</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">protected</span> Updateable updatesNeeded() <span class="keyword">throws</span> MalformedURLException, DownloadFailedException, UpdateException {</pre></td></tr> +<tr> <td class="numLineCover"> 284</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Updateable updates = <span class="keyword">null</span>;</span></pre></td></tr> +<tr> <td class="numLine"> 285</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 286</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updates = retrieveCurrentTimestampsFromWeb();</span></pre></td></tr> +<tr> <td class="numLineCover"> 287</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (InvalidDataException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 288</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = <span class="string">"Unable to retrieve valid timestamp from nvd cve downloads page"</span>;</span></pre></td></tr> +<tr> <td class="numLineCover"> 289</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger</span></pre></td></tr> <tr> <td class="numLine"> 290</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> + <td class="src"><pre class="src">  .getLogger(StandardUpdateTask.<span class="keyword">class</span></pre></td></tr> <tr> <td class="numLine"> 291</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  .getName()).log(Level.FINE, msg, ex);</pre></td></tr> +<tr> <td class="numLineCover"> 292</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> DownloadFailedException(msg, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 293</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (InvalidSettingException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 294</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(StandardUpdateTask.<span class="keyword">class</span></span></pre></td></tr> +<tr> <td class="numLine"> 295</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  .getName()).log(Level.FINE, <span class="string">"Invalid setting found when retrieving timestamps"</span>, ex);</pre></td></tr> +<tr> <td class="numLineCover"> 296</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> DownloadFailedException(</span></pre></td></tr> +<tr> <td class="numLine"> 297</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="string">"Invalid settings"</span>, ex);</pre></td></tr> +<tr> <td class="numLineCover"> 298</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLine"> 299</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 292</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> updates;</span></pre></td></tr> -<tr> <td class="numLine"> 293</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 300</td> <td class="nbHitsUncovered"><a title="Line 300: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 300: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (updates == <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 301</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> DownloadFailedException(<span class="string">"Unable to retrieve the timestamps of the currently published NVD CVE data"</span>);</span></pre></td></tr> +<tr> <td class="numLine"> 302</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 303</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> DataStoreMetaInfo properties = getProperties();</span></pre></td></tr> +<tr> <td class="numLineCover"> 304</td> <td class="nbHitsUncovered"><a title="Line 304: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 304: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (!properties.isEmpty()) {</a></span></pre></td></tr> +<tr> <td class="numLine"> 305</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> +<tr> <td class="numLine"> 306</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">float</span> version;</pre></td></tr> +<tr> <td class="numLine"> 307</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLineCover"> 308</td> <td class="nbHitsUncovered"><a title="Line 308: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 308: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (properties.getProperty(<span class="string">"version"</span>) == <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 309</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  setDeleteAndRecreate(<span class="keyword">true</span>);</span></pre></td></tr> +<tr> <td class="numLine"> 310</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> +<tr> <td class="numLine"> 311</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 312</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  version = Float.parseFloat(properties.getProperty(<span class="string">"version"</span>));</span></pre></td></tr> +<tr> <td class="numLineCover"> 313</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> <span class="keyword">float</span> currentVersion = Float.parseFloat(CveDB.DB_SCHEMA_VERSION);</span></pre></td></tr> +<tr> <td class="numLineCover"> 314</td> <td class="nbHitsUncovered"><a title="Line 314: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 314: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (currentVersion > version) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 315</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  setDeleteAndRecreate(<span class="keyword">true</span>);</span></pre></td></tr> +<tr> <td class="numLine"> 316</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 317</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (NumberFormatException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 318</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  setDeleteAndRecreate(<span class="keyword">true</span>);</span></pre></td></tr> +<tr> <td class="numLineCover"> 319</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLine"> 320</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 321</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLineCover"> 322</td> <td class="nbHitsUncovered"><a title="Line 322: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 322: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (shouldDeleteAndRecreate()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 323</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> updates;</span></pre></td></tr> +<tr> <td class="numLine"> 324</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 325</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLineCover"> 326</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> <span class="keyword">long</span> lastUpdated = Long.parseLong(properties.getProperty(DataStoreMetaInfo.LAST_UPDATED, <span class="string">"0"</span>));</span></pre></td></tr> +<tr> <td class="numLineCover"> 327</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> Date now = <span class="keyword">new</span> Date();</span></pre></td></tr> +<tr> <td class="numLineCover"> 328</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> <span class="keyword">int</span> days = Settings.getInt(Settings.KEYS.CVE_MODIFIED_VALID_FOR_DAYS, 7);</span></pre></td></tr> +<tr> <td class="numLineCover"> 329</td> <td class="nbHitsUncovered"><a title="Line 329: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 329: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (lastUpdated == updates.getTimeStamp(MODIFIED)) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 330</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updates.clear(); <span class="comment">//we don't need to update anything.</span></span></pre></td></tr> +<tr> <td class="numLineCover"> 331</td> <td class="nbHitsUncovered"><a title="Line 331: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 331: Conditional coverage 0% (0/2)."> } <span class="keyword">else</span> <span class="keyword">if</span> (withinRange(lastUpdated, now.getTime(), days)) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 332</td> <td class="nbHitsUncovered"><a title="Line 332: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 332: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (NvdCveInfo entry : updates) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 333</td> <td class="nbHitsUncovered"><a title="Line 333: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 333: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (MODIFIED.equals(entry.getId())) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 334</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  entry.setNeedsUpdate(<span class="keyword">true</span>);</span></pre></td></tr> +<tr> <td class="numLine"> 335</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 336</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  entry.setNeedsUpdate(<span class="keyword">false</span>);</span></pre></td></tr> +<tr> <td class="numLine"> 337</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 338</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 339</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  } <span class="keyword">else</span> { <span class="comment">//we figure out which of the several XML files need to be downloaded.</span></pre></td></tr> +<tr> <td class="numLineCover"> 340</td> <td class="nbHitsUncovered"><a title="Line 340: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 340: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (NvdCveInfo entry : updates) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 341</td> <td class="nbHitsUncovered"><a title="Line 341: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 341: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (MODIFIED.equals(entry.getId())) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 342</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  entry.setNeedsUpdate(<span class="keyword">true</span>);</span></pre></td></tr> +<tr> <td class="numLine"> 343</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 344</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">long</span> currentTimestamp = 0;</span></pre></td></tr> +<tr> <td class="numLine"> 345</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 346</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  currentTimestamp = Long.parseLong(properties.getProperty(DataStoreMetaInfo.LAST_UPDATED_BASE + entry.getId(), <span class="string">"0"</span>));</span></pre></td></tr> +<tr> <td class="numLineCover"> 347</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (NumberFormatException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 348</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = String.format(<span class="string">"Error parsing '%s' '%s' from nvdcve.lastupdated"</span>,</span></pre></td></tr> +<tr> <td class="numLine"> 349</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  DataStoreMetaInfo.LAST_UPDATED_BASE, entry.getId());</pre></td></tr> +<tr> <td class="numLineCover"> 350</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger</span></pre></td></tr> +<tr> <td class="numLine"> 351</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  .getLogger(StandardUpdateTask.<span class="keyword">class</span></pre></td></tr> +<tr> <td class="numLine"> 352</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  .getName()).log(Level.FINE, msg, ex);</pre></td></tr> +<tr> <td class="numLineCover"> 353</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLineCover"> 354</td> <td class="nbHitsUncovered"><a title="Line 354: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 354: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (currentTimestamp == entry.getTimestamp()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 355</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  entry.setNeedsUpdate(<span class="keyword">false</span>);</span></pre></td></tr> +<tr> <td class="numLine"> 356</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 357</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLine"> 358</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 359</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 360</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (NumberFormatException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 361</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = <span class="string">"An invalid schema version or timestamp exists in the data.properties file."</span>;</span></pre></td></tr> +<tr> <td class="numLineCover"> 362</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger</span></pre></td></tr> +<tr> <td class="numLine"> 363</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  .getLogger(StandardUpdateTask.<span class="keyword">class</span></pre></td></tr> +<tr> <td class="numLine"> 364</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  .getName()).log(Level.WARNING, msg);</pre></td></tr> +<tr> <td class="numLineCover"> 365</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(StandardUpdateTask.<span class="keyword">class</span></span></pre></td></tr> +<tr> <td class="numLine"> 366</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  .getName()).log(Level.FINE, <span class="keyword">null</span>, ex);</pre></td></tr> +<tr> <td class="numLineCover"> 367</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLine"> 368</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 369</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> updates;</span></pre></td></tr> +<tr> <td class="numLine"> 370</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 294</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 371</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 372</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 373</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Retrieves the timestamps from the NVD CVE meta data file.</span></pre></td></tr> +<tr> <td class="numLine"> 374</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 375</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @return the timestamp from the currently published nvdcve downloads page</span></pre></td></tr> +<tr> <td class="numLine"> 376</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @throws MalformedURLException thrown if the URL for the NVD CCE Meta data</span></pre></td></tr> +<tr> <td class="numLine"> 377</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * is incorrect.</span></pre></td></tr> +<tr> <td class="numLine"> 378</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @throws DownloadFailedException thrown if there is an error downloading</span></pre></td></tr> +<tr> <td class="numLine"> 379</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * the nvd cve meta data file</span></pre></td></tr> +<tr> <td class="numLine"> 380</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @throws InvalidDataException thrown if there is an exception parsing the</span></pre></td></tr> +<tr> <td class="numLine"> 381</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * timestamps</span></pre></td></tr> +<tr> <td class="numLine"> 382</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @throws InvalidSettingException thrown if the settings are invalid</span></pre></td></tr> +<tr> <td class="numLine"> 383</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 384</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">private</span> Updateable retrieveCurrentTimestampsFromWeb()</pre></td></tr> +<tr> <td class="numLine"> 385</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">throws</span> MalformedURLException, DownloadFailedException, InvalidDataException, InvalidSettingException {</pre></td></tr> +<tr> <td class="numLine"> 386</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLineCover"> 387</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> Updateable updates = <span class="keyword">new</span> Updateable();</span></pre></td></tr> +<tr> <td class="numLineCover"> 388</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updates.add(MODIFIED, Settings.getString(Settings.KEYS.CVE_MODIFIED_20_URL),</span></pre></td></tr> +<tr> <td class="numLine"> 389</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  Settings.getString(Settings.KEYS.CVE_MODIFIED_12_URL),</pre></td></tr> +<tr> <td class="numLine"> 390</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">false</span>);</pre></td></tr> +<tr> <td class="numLine"> 391</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLineCover"> 392</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> <span class="keyword">int</span> start = Settings.getInt(Settings.KEYS.CVE_START_YEAR);</span></pre></td></tr> +<tr> <td class="numLineCover"> 393</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> <span class="keyword">int</span> end = Calendar.getInstance().get(Calendar.YEAR);</span></pre></td></tr> +<tr> <td class="numLineCover"> 394</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String baseUrl20 = Settings.getString(Settings.KEYS.CVE_SCHEMA_2_0);</span></pre></td></tr> +<tr> <td class="numLineCover"> 395</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String baseUrl12 = Settings.getString(Settings.KEYS.CVE_SCHEMA_1_2);</span></pre></td></tr> +<tr> <td class="numLineCover"> 396</td> <td class="nbHitsUncovered"><a title="Line 396: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 396: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = start; i <= end; i++) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 397</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  updates.add(Integer.toString(i), String.format(baseUrl20, i),</span></pre></td></tr> +<tr> <td class="numLine"> 398</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  String.format(baseUrl12, i),</pre></td></tr> +<tr> <td class="numLine"> 399</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">true</span>);</pre></td></tr> +<tr> <td class="numLine"> 400</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 401</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLineCover"> 402</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> updates;</span></pre></td></tr> +<tr> <td class="numLine"> 403</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 404</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.UpdateTask.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.UpdateTask.html index e5050696d..1a18127e6 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.UpdateTask.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.UpdateTask.html @@ -121,6 +121,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.UpdateTaskFactory.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.UpdateTaskFactory.html index 47d704bc3..ae63981ca 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.UpdateTaskFactory.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.UpdateTaskFactory.html @@ -12,7 +12,7 @@ <div class="separator"> </div> <table class="report"> <thead><tr> <td class="heading">Classes in this File</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead> - <tr><td><a href="org.owasp.dependencycheck.data.update.UpdateTaskFactory.html">UpdateTaskFactory</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/7</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/2</span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.5;</span>1.5</td></tr> + <tr><td><a href="org.owasp.dependencycheck.data.update.UpdateTaskFactory.html">UpdateTaskFactory</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/5</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.0;</span>1</td></tr> </table> <div class="separator"> </div> @@ -118,13 +118,15 @@ <tr> <td class="numLine"> 51</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">final</span> UpdateTask task;</pre></td></tr> <tr> <td class="numLineCover"> 52</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> DataStoreMetaInfo properties = <span class="keyword">new</span> DataStoreMetaInfo();</span></pre></td></tr> -<tr> <td class="numLineCover"> 53</td> <td class="nbHitsUncovered"><a title="Line 53: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 53: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (properties.isBatchUpdateMode()) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 54</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  task = <span class="keyword">new</span> BatchUpdateTask(properties);</span></pre></td></tr> +<tr> <td class="numLine"> 53</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment">// if (properties.isBatchUpdateMode()) {</span></pre></td></tr> +<tr> <td class="numLine"> 54</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment">// task = new BatchUpdateTask(properties);</span></pre></td></tr> <tr> <td class="numLine"> 55</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 56</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  task = <span class="keyword">new</span> StandardUpdateTask(properties);</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment">// } else {</span></pre></td></tr> +<tr> <td class="numLineCover"> 56</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  task = <span class="keyword">new</span> StandardUpdateTask(properties);</span></pre></td></tr> <tr> <td class="numLine"> 57</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment">// }</span></pre></td></tr> <tr> <td class="numLineCover"> 58</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> task;</span></pre></td></tr> <tr> <td class="numLine"> 59</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> @@ -132,6 +134,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.Updateable.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.Updateable.html index 36d613d43..9b3bf5243 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.Updateable.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.data.update.Updateable.html @@ -352,6 +352,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Dependency.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Dependency.html index d3cee5b17..ad7ea8dd9 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Dependency.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Dependency.html @@ -12,7 +12,7 @@ <div class="separator"> </div> <table class="report"> <thead><tr> <td class="heading">Classes in this File</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead> - <tr><td><a href="org.owasp.dependencycheck.dependency.Dependency.html">Dependency</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">59%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:59px"><span class="text">83/140</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">13%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:13px"><span class="text">17/124</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.7804878048780486;</span>2.78</td></tr> + <tr><td><a href="org.owasp.dependencycheck.dependency.Dependency.html">Dependency</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">60%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:60px"><span class="text">85/140</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">13%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:13px"><span class="text">17/124</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.7804878048780486;</span>2.78</td></tr> </table> <div class="separator"> </div> @@ -99,7 +99,7 @@ <td class="src"><pre class="src"> <span class="comment"> * @author Jeremy Long (jeremy.long@owasp.org)</span></pre></td></tr> <tr> <td class="numLine"> 41</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 42</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> Dependency <span class="keyword">implements</span> Comparable<Dependency> {</pre></td></tr> +<tr> <td class="numLineCover"> 42</td> <td class="nbHitsCovered"> 20</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> Dependency <span class="keyword">implements</span> Comparable<Dependency> {</pre></td></tr> <tr> <td class="numLine"> 43</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 44</td> <td class="nbHits"> </td> @@ -190,13 +190,13 @@ <td class="src"><pre class="src"> <span class="comment"> * Constructs a new Dependency object.</span></pre></td></tr> <tr> <td class="numLine"> 87</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 88</td> <td class="nbHitsCovered"> 53</td> <td class="src"><pre class="src">  <span class="keyword">public</span> Dependency() {</pre></td></tr> -<tr> <td class="numLineCover"> 89</td> <td class="nbHitsCovered"> 53</td> <td class="src"><pre class="src">  vendorEvidence = <span class="keyword">new</span> EvidenceCollection();</pre></td></tr> -<tr> <td class="numLineCover"> 90</td> <td class="nbHitsCovered"> 53</td> <td class="src"><pre class="src">  productEvidence = <span class="keyword">new</span> EvidenceCollection();</pre></td></tr> -<tr> <td class="numLineCover"> 91</td> <td class="nbHitsCovered"> 53</td> <td class="src"><pre class="src">  versionEvidence = <span class="keyword">new</span> EvidenceCollection();</pre></td></tr> -<tr> <td class="numLineCover"> 92</td> <td class="nbHitsCovered"> 53</td> <td class="src"><pre class="src">  identifiers = <span class="keyword">new</span> TreeSet<Identifier>();</pre></td></tr> -<tr> <td class="numLineCover"> 93</td> <td class="nbHitsCovered"> 53</td> <td class="src"><pre class="src">  vulnerabilities = <span class="keyword">new</span> TreeSet<Vulnerability>(<span class="keyword">new</span> VulnerabilityComparator());</pre></td></tr> -<tr> <td class="numLineCover"> 94</td> <td class="nbHitsCovered"> 53</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 88</td> <td class="nbHitsCovered"> 54</td> <td class="src"><pre class="src">  <span class="keyword">public</span> Dependency() {</pre></td></tr> +<tr> <td class="numLineCover"> 89</td> <td class="nbHitsCovered"> 54</td> <td class="src"><pre class="src">  vendorEvidence = <span class="keyword">new</span> EvidenceCollection();</pre></td></tr> +<tr> <td class="numLineCover"> 90</td> <td class="nbHitsCovered"> 54</td> <td class="src"><pre class="src">  productEvidence = <span class="keyword">new</span> EvidenceCollection();</pre></td></tr> +<tr> <td class="numLineCover"> 91</td> <td class="nbHitsCovered"> 54</td> <td class="src"><pre class="src">  versionEvidence = <span class="keyword">new</span> EvidenceCollection();</pre></td></tr> +<tr> <td class="numLineCover"> 92</td> <td class="nbHitsCovered"> 54</td> <td class="src"><pre class="src">  identifiers = <span class="keyword">new</span> TreeSet<Identifier>();</pre></td></tr> +<tr> <td class="numLineCover"> 93</td> <td class="nbHitsCovered"> 54</td> <td class="src"><pre class="src">  vulnerabilities = <span class="keyword">new</span> TreeSet<Vulnerability>(<span class="keyword">new</span> VulnerabilityComparator());</pre></td></tr> +<tr> <td class="numLineCover"> 94</td> <td class="nbHitsCovered"> 54</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 95</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 96</td> <td class="nbHits"> </td> @@ -211,13 +211,13 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 101</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> Dependency(File file) {</pre></td></tr> -<tr> <td class="numLineCover"> 102</td> <td class="nbHitsCovered"> 35</td> <td class="src"><pre class="src">  <span class="keyword">this</span>();</pre></td></tr> -<tr> <td class="numLineCover"> 103</td> <td class="nbHitsCovered"> 35</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.actualFilePath = file.getPath();</pre></td></tr> -<tr> <td class="numLineCover"> 104</td> <td class="nbHitsCovered"> 35</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.filePath = <span class="keyword">this</span>.actualFilePath;</pre></td></tr> -<tr> <td class="numLineCover"> 105</td> <td class="nbHitsCovered"> 35</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.fileName = file.getName();</pre></td></tr> -<tr> <td class="numLineCover"> 106</td> <td class="nbHitsCovered"> 35</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.fileExtension = FileUtils.getFileExtension(fileName);</pre></td></tr> -<tr> <td class="numLineCover"> 107</td> <td class="nbHitsCovered"> 35</td> <td class="src"><pre class="src">  determineHashes(file);</pre></td></tr> -<tr> <td class="numLineCover"> 108</td> <td class="nbHitsCovered"> 35</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 102</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src">  <span class="keyword">this</span>();</pre></td></tr> +<tr> <td class="numLineCover"> 103</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.actualFilePath = file.getPath();</pre></td></tr> +<tr> <td class="numLineCover"> 104</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.filePath = <span class="keyword">this</span>.actualFilePath;</pre></td></tr> +<tr> <td class="numLineCover"> 105</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.fileName = file.getName();</pre></td></tr> +<tr> <td class="numLineCover"> 106</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.fileExtension = FileUtils.getFileExtension(fileName);</pre></td></tr> +<tr> <td class="numLineCover"> 107</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src">  determineHashes(file);</pre></td></tr> +<tr> <td class="numLineCover"> 108</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 109</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 110</td> <td class="nbHits"> </td> @@ -232,7 +232,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 115</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> String getFileName() {</pre></td></tr> -<tr> <td class="numLineCover"> 116</td> <td class="nbHitsCovered"> 160</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">this</span>.fileName;</pre></td></tr> +<tr> <td class="numLineCover"> 116</td> <td class="nbHitsCovered"> 148</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">this</span>.fileName;</pre></td></tr> <tr> <td class="numLine"> 117</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 118</td> <td class="nbHits"> </td> @@ -281,7 +281,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 142</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> String getActualFilePath() {</pre></td></tr> -<tr> <td class="numLineCover"> 143</td> <td class="nbHitsCovered"> 142</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">this</span>.actualFilePath;</pre></td></tr> +<tr> <td class="numLineCover"> 143</td> <td class="nbHitsCovered"> 160</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">this</span>.actualFilePath;</pre></td></tr> <tr> <td class="numLine"> 144</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 145</td> <td class="nbHits"> </td> @@ -318,7 +318,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 162</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> String getFilePath() {</pre></td></tr> -<tr> <td class="numLineCover"> 163</td> <td class="nbHitsCovered"> 17</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">this</span>.filePath;</pre></td></tr> +<tr> <td class="numLineCover"> 163</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">this</span>.filePath;</pre></td></tr> <tr> <td class="numLine"> 164</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 165</td> <td class="nbHits"> </td> @@ -351,7 +351,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 180</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> String getFileExtension() {</pre></td></tr> -<tr> <td class="numLineCover"> 181</td> <td class="nbHitsCovered"> 80</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">this</span>.fileExtension;</pre></td></tr> +<tr> <td class="numLineCover"> 181</td> <td class="nbHitsCovered"> 98</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">this</span>.fileExtension;</pre></td></tr> <tr> <td class="numLine"> 182</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 183</td> <td class="nbHits"> </td> @@ -385,8 +385,8 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 198</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> setMd5sum(String md5sum) {</pre></td></tr> -<tr> <td class="numLineCover"> 199</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.md5sum = md5sum;</pre></td></tr> -<tr> <td class="numLineCover"> 200</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 199</td> <td class="nbHitsCovered"> 37</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.md5sum = md5sum;</pre></td></tr> +<tr> <td class="numLineCover"> 200</td> <td class="nbHitsCovered"> 37</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 201</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 202</td> <td class="nbHits"> </td> @@ -401,7 +401,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 207</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> String getSha1sum() {</pre></td></tr> -<tr> <td class="numLineCover"> 208</td> <td class="nbHitsCovered"> 5</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">this</span>.sha1sum;</pre></td></tr> +<tr> <td class="numLineCover"> 208</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">this</span>.sha1sum;</pre></td></tr> <tr> <td class="numLine"> 209</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 210</td> <td class="nbHits"> </td> @@ -418,8 +418,8 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 216</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> setSha1sum(String sha1sum) {</pre></td></tr> -<tr> <td class="numLineCover"> 217</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.sha1sum = sha1sum;</pre></td></tr> -<tr> <td class="numLineCover"> 218</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 217</td> <td class="nbHitsCovered"> 39</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.sha1sum = sha1sum;</pre></td></tr> +<tr> <td class="numLineCover"> 218</td> <td class="nbHitsCovered"> 39</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 219</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 220</td> <td class="nbHits"> </td> @@ -434,7 +434,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 225</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> Set<Identifier> getIdentifiers() {</pre></td></tr> -<tr> <td class="numLineCover"> 226</td> <td class="nbHitsCovered"> 125</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">this</span>.identifiers;</pre></td></tr> +<tr> <td class="numLineCover"> 226</td> <td class="nbHitsCovered"> 132</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">this</span>.identifiers;</pre></td></tr> <tr> <td class="numLine"> 227</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 228</td> <td class="nbHits"> </td> @@ -473,9 +473,9 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 246</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> addIdentifier(String type, String value, String url) {</pre></td></tr> -<tr> <td class="numLineCover"> 247</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">final</span> Identifier i = <span class="keyword">new</span> Identifier(type, value, url);</pre></td></tr> -<tr> <td class="numLineCover"> 248</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.identifiers.add(i);</pre></td></tr> -<tr> <td class="numLineCover"> 249</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 247</td> <td class="nbHitsCovered"> 5</td> <td class="src"><pre class="src">  <span class="keyword">final</span> Identifier i = <span class="keyword">new</span> Identifier(type, value, url);</pre></td></tr> +<tr> <td class="numLineCover"> 248</td> <td class="nbHitsCovered"> 5</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.identifiers.add(i);</pre></td></tr> +<tr> <td class="numLineCover"> 249</td> <td class="nbHitsCovered"> 5</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 250</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 251</td> <td class="nbHits"> </td> @@ -559,7 +559,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 293</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> EvidenceCollection getProductEvidence() {</pre></td></tr> -<tr> <td class="numLineCover"> 294</td> <td class="nbHitsCovered"> 1080</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">this</span>.productEvidence;</pre></td></tr> +<tr> <td class="numLineCover"> 294</td> <td class="nbHitsCovered"> 1082</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">this</span>.productEvidence;</pre></td></tr> <tr> <td class="numLine"> 295</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 296</td> <td class="nbHits"> </td> @@ -585,7 +585,7 @@ <td class="src"><pre class="src"> <span class="comment"> * A list of exceptions that occurred during analysis of this dependency.</span></pre></td></tr> <tr> <td class="numLine"> 307</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 308</td> <td class="nbHitsCovered"> 53</td> <td class="src"><pre class="src">  <span class="keyword">private</span> List<Exception> analysisExceptions = <span class="keyword">new</span> ArrayList<Exception>();</pre></td></tr> +<tr> <td class="numLineCover"> 308</td> <td class="nbHitsCovered"> 54</td> <td class="src"><pre class="src">  <span class="keyword">private</span> List<Exception> analysisExceptions = <span class="keyword">new</span> ArrayList<Exception>();</pre></td></tr> <tr> <td class="numLine"> 309</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 310</td> <td class="nbHits"> </td> @@ -739,7 +739,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 390</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> SortedSet<Vulnerability> getVulnerabilities() {</pre></td></tr> -<tr> <td class="numLineCover"> 391</td> <td class="nbHitsCovered"> 17</td> <td class="src"><pre class="src">  <span class="keyword">return</span> vulnerabilities;</pre></td></tr> +<tr> <td class="numLineCover"> 391</td> <td class="nbHitsCovered"> 28</td> <td class="src"><pre class="src">  <span class="keyword">return</span> vulnerabilities;</pre></td></tr> <tr> <td class="numLine"> 392</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 393</td> <td class="nbHits"> </td> @@ -772,12 +772,12 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 408</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">void</span> determineHashes(File file) {</pre></td></tr> -<tr> <td class="numLineCover"> 409</td> <td class="nbHitsCovered"> 35</td> <td class="src"><pre class="src">  String md5 = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 410</td> <td class="nbHitsCovered"> 35</td> <td class="src"><pre class="src">  String sha1 = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 409</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src">  String md5 = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 410</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src">  String sha1 = <span class="keyword">null</span>;</pre></td></tr> <tr> <td class="numLine"> 411</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 412</td> <td class="nbHitsCovered"> 35</td> <td class="src"><pre class="src">  md5 = Checksum.getMD5Checksum(file);</pre></td></tr> -<tr> <td class="numLineCover"> 413</td> <td class="nbHitsCovered"> 35</td> <td class="src"><pre class="src">  sha1 = Checksum.getSHA1Checksum(file);</pre></td></tr> +<tr> <td class="numLineCover"> 412</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src">  md5 = Checksum.getMD5Checksum(file);</pre></td></tr> +<tr> <td class="numLineCover"> 413</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src">  sha1 = Checksum.getSHA1Checksum(file);</pre></td></tr> <tr> <td class="numLineCover"> 414</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr> <tr> <td class="numLineCover"> 415</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = String.format(<span class="string">"Unable to read '%s' to determine hashes."</span>, file.getName());</span></pre></td></tr> <tr> <td class="numLineCover"> 416</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Dependency.<span class="keyword">class</span>.getName()).log(Level.WARNING, msg);</span></pre></td></tr> @@ -786,10 +786,10 @@ <tr> <td class="numLineCover"> 419</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = <span class="string">"Unable to use MD5 of SHA1 checksums."</span>;</span></pre></td></tr> <tr> <td class="numLineCover"> 420</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Dependency.<span class="keyword">class</span>.getName()).log(Level.WARNING, msg);</span></pre></td></tr> <tr> <td class="numLineCover"> 421</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Dependency.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="keyword">null</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 422</td> <td class="nbHitsCovered"> 35</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 423</td> <td class="nbHitsCovered"> 35</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.setMd5sum(md5);</pre></td></tr> -<tr> <td class="numLineCover"> 424</td> <td class="nbHitsCovered"> 35</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.setSha1sum(sha1);</pre></td></tr> -<tr> <td class="numLineCover"> 425</td> <td class="nbHitsCovered"> 35</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 422</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 423</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.setMd5sum(md5);</pre></td></tr> +<tr> <td class="numLineCover"> 424</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.setSha1sum(sha1);</pre></td></tr> +<tr> <td class="numLineCover"> 425</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 426</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 427</td> <td class="nbHits"> </td> @@ -804,15 +804,15 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 432</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> addVulnerability(Vulnerability vulnerability) {</pre></td></tr> -<tr> <td class="numLineCover"> 433</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">this</span>.vulnerabilities.add(vulnerability);</span></pre></td></tr> -<tr> <td class="numLineCover"> 434</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLineCover"> 433</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.vulnerabilities.add(vulnerability);</pre></td></tr> +<tr> <td class="numLineCover"> 434</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 435</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 436</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * A collection of related dependencies.</span></pre></td></tr> <tr> <td class="numLine"> 437</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 438</td> <td class="nbHitsCovered"> 53</td> <td class="src"><pre class="src">  <span class="keyword">private</span> Set<Dependency> relatedDependencies = <span class="keyword">new</span> TreeSet<Dependency>();</pre></td></tr> +<tr> <td class="numLineCover"> 438</td> <td class="nbHitsCovered"> 54</td> <td class="src"><pre class="src">  <span class="keyword">private</span> Set<Dependency> relatedDependencies = <span class="keyword">new</span> TreeSet<Dependency>();</pre></td></tr> <tr> <td class="numLine"> 439</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 440</td> <td class="nbHits"> </td> @@ -880,7 +880,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 474</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">int</span> compareTo(Dependency o) {</pre></td></tr> -<tr> <td class="numLineCover"> 475</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">this</span>.getFileName().compareToIgnoreCase(o.getFileName());</pre></td></tr> +<tr> <td class="numLineCover"> 475</td> <td class="nbHitsCovered"> 20</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">this</span>.getFileName().compareToIgnoreCase(o.getFileName());</pre></td></tr> <tr> <td class="numLine"> 476</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 477</td> <td class="nbHits"> </td> @@ -993,23 +993,23 @@ <td class="src"><pre class="src">  @Override</pre></td></tr> <tr> <td class="numLine"> 549</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">int</span> hashCode() {</pre></td></tr> -<tr> <td class="numLineCover"> 550</td> <td class="nbHitsCovered"> 90</td> <td class="src"><pre class="src">  <span class="keyword">int</span> hash = 3;</pre></td></tr> -<tr> <td class="numLineCover"> 551</td> <td class="nbHitsUncovered"><a title="Line 551: Conditional coverage 50% (1/2)."> 90</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 551: Conditional coverage 50% (1/2)."> hash = 47 * hash + (<span class="keyword">this</span>.actualFilePath != <span class="keyword">null</span> ? <span class="keyword">this</span>.actualFilePath.hashCode() : 0);</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 552</td> <td class="nbHitsUncovered"><a title="Line 552: Conditional coverage 50% (1/2)."> 90</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 552: Conditional coverage 50% (1/2)."> hash = 47 * hash + (<span class="keyword">this</span>.filePath != <span class="keyword">null</span> ? <span class="keyword">this</span>.filePath.hashCode() : 0);</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 553</td> <td class="nbHitsUncovered"><a title="Line 553: Conditional coverage 50% (1/2)."> 90</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 553: Conditional coverage 50% (1/2)."> hash = 47 * hash + (<span class="keyword">this</span>.fileName != <span class="keyword">null</span> ? <span class="keyword">this</span>.fileName.hashCode() : 0);</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 554</td> <td class="nbHitsUncovered"><a title="Line 554: Conditional coverage 50% (1/2)."> 90</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 554: Conditional coverage 50% (1/2)."> hash = 47 * hash + (<span class="keyword">this</span>.fileExtension != <span class="keyword">null</span> ? <span class="keyword">this</span>.fileExtension.hashCode() : 0);</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 555</td> <td class="nbHitsUncovered"><a title="Line 555: Conditional coverage 50% (1/2)."> 90</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 555: Conditional coverage 50% (1/2)."> hash = 47 * hash + (<span class="keyword">this</span>.md5sum != <span class="keyword">null</span> ? <span class="keyword">this</span>.md5sum.hashCode() : 0);</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 556</td> <td class="nbHitsUncovered"><a title="Line 556: Conditional coverage 50% (1/2)."> 90</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 556: Conditional coverage 50% (1/2)."> hash = 47 * hash + (<span class="keyword">this</span>.sha1sum != <span class="keyword">null</span> ? <span class="keyword">this</span>.sha1sum.hashCode() : 0);</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 557</td> <td class="nbHitsUncovered"><a title="Line 557: Conditional coverage 50% (1/2)."> 90</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 557: Conditional coverage 50% (1/2)."> hash = 47 * hash + (<span class="keyword">this</span>.identifiers != <span class="keyword">null</span> ? <span class="keyword">this</span>.identifiers.hashCode() : 0);</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 558</td> <td class="nbHitsUncovered"><a title="Line 558: Conditional coverage 50% (1/2)."> 90</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 558: Conditional coverage 50% (1/2)."> hash = 47 * hash + (<span class="keyword">this</span>.vendorEvidence != <span class="keyword">null</span> ? <span class="keyword">this</span>.vendorEvidence.hashCode() : 0);</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 559</td> <td class="nbHitsUncovered"><a title="Line 559: Conditional coverage 50% (1/2)."> 90</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 559: Conditional coverage 50% (1/2)."> hash = 47 * hash + (<span class="keyword">this</span>.productEvidence != <span class="keyword">null</span> ? <span class="keyword">this</span>.productEvidence.hashCode() : 0);</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 560</td> <td class="nbHitsUncovered"><a title="Line 560: Conditional coverage 50% (1/2)."> 90</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 560: Conditional coverage 50% (1/2)."> hash = 47 * hash + (<span class="keyword">this</span>.versionEvidence != <span class="keyword">null</span> ? <span class="keyword">this</span>.versionEvidence.hashCode() : 0);</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 561</td> <td class="nbHitsUncovered"><a title="Line 561: Conditional coverage 50% (1/2)."> 90</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 561: Conditional coverage 50% (1/2)."> hash = 47 * hash + (<span class="keyword">this</span>.analysisExceptions != <span class="keyword">null</span> ? <span class="keyword">this</span>.analysisExceptions.hashCode() : 0);</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 562</td> <td class="nbHitsCovered"><a title="Line 562: Conditional coverage 100% (2/2)."> 90</a></td> <td class="src"><pre class="src"> <a title="Line 562: Conditional coverage 100% (2/2)."> hash = 47 * hash + (<span class="keyword">this</span>.description != <span class="keyword">null</span> ? <span class="keyword">this</span>.description.hashCode() : 0);</a></pre></td></tr> -<tr> <td class="numLineCover"> 563</td> <td class="nbHitsCovered"><a title="Line 563: Conditional coverage 100% (2/2)."> 90</a></td> <td class="src"><pre class="src"> <a title="Line 563: Conditional coverage 100% (2/2)."> hash = 47 * hash + (<span class="keyword">this</span>.license != <span class="keyword">null</span> ? <span class="keyword">this</span>.license.hashCode() : 0);</a></pre></td></tr> -<tr> <td class="numLineCover"> 564</td> <td class="nbHitsUncovered"><a title="Line 564: Conditional coverage 50% (1/2)."> 90</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 564: Conditional coverage 50% (1/2)."> hash = 47 * hash + (<span class="keyword">this</span>.vulnerabilities != <span class="keyword">null</span> ? <span class="keyword">this</span>.vulnerabilities.hashCode() : 0);</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 565</td> <td class="nbHitsUncovered"><a title="Line 565: Conditional coverage 50% (1/2)."> 90</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 565: Conditional coverage 50% (1/2)."> hash = 47 * hash + (<span class="keyword">this</span>.relatedDependencies != <span class="keyword">null</span> ? <span class="keyword">this</span>.relatedDependencies.hashCode() : 0);</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 566</td> <td class="nbHitsCovered"> 90</td> <td class="src"><pre class="src">  <span class="keyword">return</span> hash;</pre></td></tr> +<tr> <td class="numLineCover"> 550</td> <td class="nbHitsCovered"> 108</td> <td class="src"><pre class="src">  <span class="keyword">int</span> hash = 3;</pre></td></tr> +<tr> <td class="numLineCover"> 551</td> <td class="nbHitsUncovered"><a title="Line 551: Conditional coverage 50% (1/2)."> 108</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 551: Conditional coverage 50% (1/2)."> hash = 47 * hash + (<span class="keyword">this</span>.actualFilePath != <span class="keyword">null</span> ? <span class="keyword">this</span>.actualFilePath.hashCode() : 0);</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 552</td> <td class="nbHitsUncovered"><a title="Line 552: Conditional coverage 50% (1/2)."> 108</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 552: Conditional coverage 50% (1/2)."> hash = 47 * hash + (<span class="keyword">this</span>.filePath != <span class="keyword">null</span> ? <span class="keyword">this</span>.filePath.hashCode() : 0);</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 553</td> <td class="nbHitsUncovered"><a title="Line 553: Conditional coverage 50% (1/2)."> 108</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 553: Conditional coverage 50% (1/2)."> hash = 47 * hash + (<span class="keyword">this</span>.fileName != <span class="keyword">null</span> ? <span class="keyword">this</span>.fileName.hashCode() : 0);</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 554</td> <td class="nbHitsUncovered"><a title="Line 554: Conditional coverage 50% (1/2)."> 108</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 554: Conditional coverage 50% (1/2)."> hash = 47 * hash + (<span class="keyword">this</span>.fileExtension != <span class="keyword">null</span> ? <span class="keyword">this</span>.fileExtension.hashCode() : 0);</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 555</td> <td class="nbHitsUncovered"><a title="Line 555: Conditional coverage 50% (1/2)."> 108</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 555: Conditional coverage 50% (1/2)."> hash = 47 * hash + (<span class="keyword">this</span>.md5sum != <span class="keyword">null</span> ? <span class="keyword">this</span>.md5sum.hashCode() : 0);</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 556</td> <td class="nbHitsUncovered"><a title="Line 556: Conditional coverage 50% (1/2)."> 108</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 556: Conditional coverage 50% (1/2)."> hash = 47 * hash + (<span class="keyword">this</span>.sha1sum != <span class="keyword">null</span> ? <span class="keyword">this</span>.sha1sum.hashCode() : 0);</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 557</td> <td class="nbHitsUncovered"><a title="Line 557: Conditional coverage 50% (1/2)."> 108</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 557: Conditional coverage 50% (1/2)."> hash = 47 * hash + (<span class="keyword">this</span>.identifiers != <span class="keyword">null</span> ? <span class="keyword">this</span>.identifiers.hashCode() : 0);</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 558</td> <td class="nbHitsUncovered"><a title="Line 558: Conditional coverage 50% (1/2)."> 108</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 558: Conditional coverage 50% (1/2)."> hash = 47 * hash + (<span class="keyword">this</span>.vendorEvidence != <span class="keyword">null</span> ? <span class="keyword">this</span>.vendorEvidence.hashCode() : 0);</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 559</td> <td class="nbHitsUncovered"><a title="Line 559: Conditional coverage 50% (1/2)."> 108</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 559: Conditional coverage 50% (1/2)."> hash = 47 * hash + (<span class="keyword">this</span>.productEvidence != <span class="keyword">null</span> ? <span class="keyword">this</span>.productEvidence.hashCode() : 0);</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 560</td> <td class="nbHitsUncovered"><a title="Line 560: Conditional coverage 50% (1/2)."> 108</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 560: Conditional coverage 50% (1/2)."> hash = 47 * hash + (<span class="keyword">this</span>.versionEvidence != <span class="keyword">null</span> ? <span class="keyword">this</span>.versionEvidence.hashCode() : 0);</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 561</td> <td class="nbHitsUncovered"><a title="Line 561: Conditional coverage 50% (1/2)."> 108</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 561: Conditional coverage 50% (1/2)."> hash = 47 * hash + (<span class="keyword">this</span>.analysisExceptions != <span class="keyword">null</span> ? <span class="keyword">this</span>.analysisExceptions.hashCode() : 0);</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 562</td> <td class="nbHitsCovered"><a title="Line 562: Conditional coverage 100% (2/2)."> 108</a></td> <td class="src"><pre class="src"> <a title="Line 562: Conditional coverage 100% (2/2)."> hash = 47 * hash + (<span class="keyword">this</span>.description != <span class="keyword">null</span> ? <span class="keyword">this</span>.description.hashCode() : 0);</a></pre></td></tr> +<tr> <td class="numLineCover"> 563</td> <td class="nbHitsCovered"><a title="Line 563: Conditional coverage 100% (2/2)."> 108</a></td> <td class="src"><pre class="src"> <a title="Line 563: Conditional coverage 100% (2/2)."> hash = 47 * hash + (<span class="keyword">this</span>.license != <span class="keyword">null</span> ? <span class="keyword">this</span>.license.hashCode() : 0);</a></pre></td></tr> +<tr> <td class="numLineCover"> 564</td> <td class="nbHitsUncovered"><a title="Line 564: Conditional coverage 50% (1/2)."> 108</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 564: Conditional coverage 50% (1/2)."> hash = 47 * hash + (<span class="keyword">this</span>.vulnerabilities != <span class="keyword">null</span> ? <span class="keyword">this</span>.vulnerabilities.hashCode() : 0);</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 565</td> <td class="nbHitsUncovered"><a title="Line 565: Conditional coverage 50% (1/2)."> 108</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 565: Conditional coverage 50% (1/2)."> hash = 47 * hash + (<span class="keyword">this</span>.relatedDependencies != <span class="keyword">null</span> ? <span class="keyword">this</span>.relatedDependencies.hashCode() : 0);</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 566</td> <td class="nbHitsCovered"> 108</td> <td class="src"><pre class="src">  <span class="keyword">return</span> hash;</pre></td></tr> <tr> <td class="numLine"> 567</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 568</td> <td class="nbHits"> </td> @@ -1037,6 +1037,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Evidence.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Evidence.html index e356dc79e..a6f06ded4 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Evidence.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Evidence.html @@ -68,7 +68,7 @@ <td class="src"><pre class="src"> <span class="comment"> * @author Jeremy Long (jeremy.long@owasp.org)</span></pre></td></tr> <tr> <td class="numLine"> 25</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 26</td> <td class="nbHitsCovered"> 129498</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> Evidence <span class="keyword">implements</span> Comparable<Evidence> {</pre></td></tr> +<tr> <td class="numLineCover"> 26</td> <td class="nbHitsCovered"> 121377</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> Evidence <span class="keyword">implements</span> Comparable<Evidence> {</pre></td></tr> <tr> <td class="numLine"> 27</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 28</td> <td class="nbHits"> </td> @@ -248,8 +248,8 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 125</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> String getValue() {</pre></td></tr> -<tr> <td class="numLineCover"> 126</td> <td class="nbHitsCovered"> 6725</td> <td class="src"><pre class="src">  used = <span class="keyword">true</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 127</td> <td class="nbHitsCovered"> 6725</td> <td class="src"><pre class="src">  <span class="keyword">return</span> value;</pre></td></tr> +<tr> <td class="numLineCover"> 126</td> <td class="nbHitsCovered"> 6726</td> <td class="src"><pre class="src">  used = <span class="keyword">true</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 127</td> <td class="nbHitsCovered"> 6726</td> <td class="src"><pre class="src">  <span class="keyword">return</span> value;</pre></td></tr> <tr> <td class="numLine"> 128</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 129</td> <td class="nbHits"> </td> @@ -314,7 +314,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 161</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> isUsed() {</pre></td></tr> -<tr> <td class="numLineCover"> 162</td> <td class="nbHitsCovered"> 9273</td> <td class="src"><pre class="src">  <span class="keyword">return</span> used;</pre></td></tr> +<tr> <td class="numLineCover"> 162</td> <td class="nbHitsCovered"> 9263</td> <td class="src"><pre class="src">  <span class="keyword">return</span> used;</pre></td></tr> <tr> <td class="numLine"> 163</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 164</td> <td class="nbHits"> </td> @@ -471,9 +471,9 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 249</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">int</span> compareTo(Evidence o) {</pre></td></tr> -<tr> <td class="numLineCover"> 250</td> <td class="nbHitsCovered"><a title="Line 250: Conditional coverage 100% (2/2)."> 129498</a></td> <td class="src"><pre class="src"> <a title="Line 250: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (source.equals(o.source)) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 251</td> <td class="nbHitsCovered"><a title="Line 251: Conditional coverage 100% (2/2)."> 99433</a></td> <td class="src"><pre class="src"> <a title="Line 251: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (name.equals(o.name)) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 252</td> <td class="nbHitsCovered"><a title="Line 252: Conditional coverage 100% (2/2)."> 99127</a></td> <td class="src"><pre class="src"> <a title="Line 252: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (value.equals(o.value)) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 250</td> <td class="nbHitsCovered"><a title="Line 250: Conditional coverage 100% (2/2)."> 121377</a></td> <td class="src"><pre class="src"> <a title="Line 250: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (source.equals(o.source)) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 251</td> <td class="nbHitsCovered"><a title="Line 251: Conditional coverage 100% (2/2)."> 99684</a></td> <td class="src"><pre class="src"> <a title="Line 251: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (name.equals(o.name)) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 252</td> <td class="nbHitsCovered"><a title="Line 252: Conditional coverage 100% (2/2)."> 99381</a></td> <td class="src"><pre class="src"> <a title="Line 252: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (value.equals(o.value)) {</a></pre></td></tr> <tr> <td class="numLineCover"> 253</td> <td class="nbHitsCovered"><a title="Line 253: Conditional coverage 100% (2/2)."> 70476</a></td> <td class="src"><pre class="src"> <a title="Line 253: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (confidence.equals(o.confidence)) {</a></pre></td></tr> <tr> <td class="numLineCover"> 254</td> <td class="nbHitsCovered"> 70471</td> <td class="src"><pre class="src">  <span class="keyword">return</span> 0; <span class="comment">//they are equal</span></pre></td></tr> <tr> <td class="numLine"> 255</td> <td class="nbHits"> </td> @@ -483,17 +483,17 @@ <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 258</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 259</td> <td class="nbHitsCovered"> 28651</td> <td class="src"><pre class="src">  <span class="keyword">return</span> value.compareToIgnoreCase(o.value);</pre></td></tr> +<tr> <td class="numLineCover"> 259</td> <td class="nbHitsCovered"> 28905</td> <td class="src"><pre class="src">  <span class="keyword">return</span> value.compareToIgnoreCase(o.value);</pre></td></tr> <tr> <td class="numLine"> 260</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 261</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 262</td> <td class="nbHitsCovered"> 306</td> <td class="src"><pre class="src">  <span class="keyword">return</span> name.compareToIgnoreCase(o.name);</pre></td></tr> +<tr> <td class="numLineCover"> 262</td> <td class="nbHitsCovered"> 303</td> <td class="src"><pre class="src">  <span class="keyword">return</span> name.compareToIgnoreCase(o.name);</pre></td></tr> <tr> <td class="numLine"> 263</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 264</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 265</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src">  <span class="keyword">return</span> source.compareToIgnoreCase(o.source);</pre></td></tr> +<tr> <td class="numLineCover"> 265</td> <td class="nbHitsCovered"> 21693</td> <td class="src"><pre class="src">  <span class="keyword">return</span> source.compareToIgnoreCase(o.source);</pre></td></tr> <tr> <td class="numLine"> 266</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 267</td> <td class="nbHits"> </td> @@ -502,6 +502,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.EvidenceCollection.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.EvidenceCollection.html index b651b16d7..47a5c1b6f 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.EvidenceCollection.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.EvidenceCollection.html @@ -177,7 +177,7 @@ <tr> <td class="numLineCover"> 81</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> Filter<Evidence> EVIDENCE_USED = <span class="keyword">new</span> Filter<Evidence>() {</pre></td></tr> <tr> <td class="numLine"> 82</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> passes(Evidence evidence) {</pre></td></tr> -<tr> <td class="numLineCover"> 83</td> <td class="nbHitsCovered"> 9214</td> <td class="src"><pre class="src">  <span class="keyword">return</span> evidence.isUsed();</pre></td></tr> +<tr> <td class="numLineCover"> 83</td> <td class="nbHitsCovered"> 9204</td> <td class="src"><pre class="src">  <span class="keyword">return</span> evidence.isUsed();</pre></td></tr> <tr> <td class="numLine"> 84</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 85</td> <td class="nbHits"> </td> @@ -237,10 +237,10 @@ <td class="src"><pre class="src"> <span class="comment"> * Creates a new EvidenceCollection.</span></pre></td></tr> <tr> <td class="numLine"> 116</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 117</td> <td class="nbHitsCovered"> 164</td> <td class="src"><pre class="src">  <span class="keyword">public</span> EvidenceCollection() {</pre></td></tr> -<tr> <td class="numLineCover"> 118</td> <td class="nbHitsCovered"> 164</td> <td class="src"><pre class="src">  list = <span class="keyword">new</span> TreeSet<Evidence>();</pre></td></tr> -<tr> <td class="numLineCover"> 119</td> <td class="nbHitsCovered"> 164</td> <td class="src"><pre class="src">  weightedStrings = <span class="keyword">new</span> HashSet<String>();</pre></td></tr> -<tr> <td class="numLineCover"> 120</td> <td class="nbHitsCovered"> 164</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 117</td> <td class="nbHitsCovered"> 167</td> <td class="src"><pre class="src">  <span class="keyword">public</span> EvidenceCollection() {</pre></td></tr> +<tr> <td class="numLineCover"> 118</td> <td class="nbHitsCovered"> 167</td> <td class="src"><pre class="src">  list = <span class="keyword">new</span> TreeSet<Evidence>();</pre></td></tr> +<tr> <td class="numLineCover"> 119</td> <td class="nbHitsCovered"> 167</td> <td class="src"><pre class="src">  weightedStrings = <span class="keyword">new</span> HashSet<String>();</pre></td></tr> +<tr> <td class="numLineCover"> 120</td> <td class="nbHitsCovered"> 167</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 121</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 122</td> <td class="nbHits"> </td> @@ -432,7 +432,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 227</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> Iterator<Evidence> iterator() {</pre></td></tr> -<tr> <td class="numLineCover"> 228</td> <td class="nbHitsCovered"> 1456</td> <td class="src"><pre class="src">  <span class="keyword">return</span> list.iterator();</pre></td></tr> +<tr> <td class="numLineCover"> 228</td> <td class="nbHitsCovered"> 1455</td> <td class="src"><pre class="src">  <span class="keyword">return</span> list.iterator();</pre></td></tr> <tr> <td class="numLine"> 229</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 230</td> <td class="nbHits"> </td> @@ -451,23 +451,23 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 237</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> containsUsedString(String text) {</pre></td></tr> -<tr> <td class="numLineCover"> 238</td> <td class="nbHitsUncovered"><a title="Line 238: Conditional coverage 50% (1/2)."> 1435</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 238: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (text == <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 238</td> <td class="nbHitsUncovered"><a title="Line 238: Conditional coverage 50% (1/2)."> 1434</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 238: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (text == <span class="keyword">null</span>) {</a></span></pre></td></tr> <tr> <td class="numLineCover"> 239</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr> <tr> <td class="numLine"> 240</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 241</td> <td class="nbHitsCovered"> 1435</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String textToTest = text.toLowerCase();</pre></td></tr> +<tr> <td class="numLineCover"> 241</td> <td class="nbHitsCovered"> 1434</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String textToTest = text.toLowerCase();</pre></td></tr> <tr> <td class="numLine"> 242</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 243</td> <td class="nbHitsCovered"><a title="Line 243: Conditional coverage 100% (2/2)."> 1435</a></td> <td class="src"><pre class="src"> <a title="Line 243: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Evidence e : EvidenceCollection.EVIDENCE_USED.filter(<span class="keyword">this</span>)) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 243</td> <td class="nbHitsCovered"><a title="Line 243: Conditional coverage 100% (2/2)."> 1434</a></td> <td class="src"><pre class="src"> <a title="Line 243: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Evidence e : EvidenceCollection.EVIDENCE_USED.filter(<span class="keyword">this</span>)) {</a></pre></td></tr> <tr> <td class="numLine"> 244</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">//TODO consider changing the regex to only compare alpha-numeric (i.e. strip everything else)</span></pre></td></tr> -<tr> <td class="numLineCover"> 245</td> <td class="nbHitsCovered"> 6156</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String value = urlCorrection(e.getValue().toLowerCase()).replaceAll(<span class="string">"[\\s_-]"</span>, <span class="string">""</span>);</pre></td></tr> -<tr> <td class="numLineCover"> 246</td> <td class="nbHitsCovered"><a title="Line 246: Conditional coverage 100% (2/2)."> 6156</a></td> <td class="src"><pre class="src"> <a title="Line 246: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (value.contains(textToTest)) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 247</td> <td class="nbHitsCovered"> 505</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">true</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 245</td> <td class="nbHitsCovered"> 6157</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String value = urlCorrection(e.getValue().toLowerCase()).replaceAll(<span class="string">"[\\s_-]"</span>, <span class="string">""</span>);</pre></td></tr> +<tr> <td class="numLineCover"> 246</td> <td class="nbHitsCovered"><a title="Line 246: Conditional coverage 100% (2/2)."> 6157</a></td> <td class="src"><pre class="src"> <a title="Line 246: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (value.contains(textToTest)) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 247</td> <td class="nbHitsCovered"> 506</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">true</span>;</pre></td></tr> <tr> <td class="numLine"> 248</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLineCover"> 249</td> <td class="nbHitsCovered"> 5651</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 250</td> <td class="nbHitsCovered"> 930</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">false</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 250</td> <td class="nbHitsCovered"> 928</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">false</span>;</pre></td></tr> <tr> <td class="numLine"> 251</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 252</td> <td class="nbHits"> </td> @@ -666,8 +666,8 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 363</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">private</span> String urlCorrection(String value) {</pre></td></tr> -<tr> <td class="numLineCover"> 364</td> <td class="nbHitsUncovered"><a title="Line 364: Conditional coverage 75% (3/4) [each condition: 50%, 100%]."> 6156</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 364: Conditional coverage 75% (3/4) [each condition: 50%, 100%]."> <span class="keyword">if</span> (value == <span class="keyword">null</span> || !UrlStringUtils.containsUrl(value)) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 365</td> <td class="nbHitsCovered"> 6023</td> <td class="src"><pre class="src">  <span class="keyword">return</span> value;</pre></td></tr> +<tr> <td class="numLineCover"> 364</td> <td class="nbHitsUncovered"><a title="Line 364: Conditional coverage 75% (3/4) [each condition: 50%, 100%]."> 6157</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 364: Conditional coverage 75% (3/4) [each condition: 50%, 100%]."> <span class="keyword">if</span> (value == <span class="keyword">null</span> || !UrlStringUtils.containsUrl(value)) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 365</td> <td class="nbHitsCovered"> 6024</td> <td class="src"><pre class="src">  <span class="keyword">return</span> value;</pre></td></tr> <tr> <td class="numLine"> 366</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLineCover"> 367</td> <td class="nbHitsCovered"> 133</td> <td class="src"><pre class="src">  <span class="keyword">final</span> StringBuilder sb = <span class="keyword">new</span> StringBuilder(value.length());</pre></td></tr> @@ -696,6 +696,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Identifier.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Identifier.html index 31d0b6c7c..5000de366 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Identifier.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Identifier.html @@ -65,7 +65,7 @@ <td class="src"><pre class="src"> <span class="comment"> * @author Jeremy Long (jeremy.long@owasp.org)</span></pre></td></tr> <tr> <td class="numLine"> 24</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 25</td> <td class="nbHitsCovered"> 128</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> Identifier <span class="keyword">implements</span> Comparable<Identifier> {</pre></td></tr> +<tr> <td class="numLineCover"> 25</td> <td class="nbHitsCovered"> 131</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> Identifier <span class="keyword">implements</span> Comparable<Identifier> {</pre></td></tr> <tr> <td class="numLine"> 26</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 27</td> <td class="nbHits"> </td> @@ -82,11 +82,11 @@ <td class="src"><pre class="src"> <span class="comment"> * @param url the identifier url.</span></pre></td></tr> <tr> <td class="numLine"> 33</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 34</td> <td class="nbHitsCovered"> 246</td> <td class="src"><pre class="src">  <span class="keyword">public</span> Identifier(String type, String value, String url) {</pre></td></tr> -<tr> <td class="numLineCover"> 35</td> <td class="nbHitsCovered"> 246</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.type = type;</pre></td></tr> -<tr> <td class="numLineCover"> 36</td> <td class="nbHitsCovered"> 246</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.value = value;</pre></td></tr> -<tr> <td class="numLineCover"> 37</td> <td class="nbHitsCovered"> 246</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.url = url;</pre></td></tr> -<tr> <td class="numLineCover"> 38</td> <td class="nbHitsCovered"> 246</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 34</td> <td class="nbHitsCovered"> 251</td> <td class="src"><pre class="src">  <span class="keyword">public</span> Identifier(String type, String value, String url) {</pre></td></tr> +<tr> <td class="numLineCover"> 35</td> <td class="nbHitsCovered"> 251</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.type = type;</pre></td></tr> +<tr> <td class="numLineCover"> 36</td> <td class="nbHitsCovered"> 251</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.value = value;</pre></td></tr> +<tr> <td class="numLineCover"> 37</td> <td class="nbHitsCovered"> 251</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.url = url;</pre></td></tr> +<tr> <td class="numLineCover"> 38</td> <td class="nbHitsCovered"> 251</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 39</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 40</td> <td class="nbHits"> </td> @@ -132,7 +132,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 62</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> String getValue() {</pre></td></tr> -<tr> <td class="numLineCover"> 63</td> <td class="nbHitsCovered"> 366</td> <td class="src"><pre class="src">  <span class="keyword">return</span> value;</pre></td></tr> +<tr> <td class="numLineCover"> 63</td> <td class="nbHitsCovered"> 384</td> <td class="src"><pre class="src">  <span class="keyword">return</span> value;</pre></td></tr> <tr> <td class="numLine"> 64</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 65</td> <td class="nbHits"> </td> @@ -306,10 +306,10 @@ <td class="src"><pre class="src">  @Override</pre></td></tr> <tr> <td class="numLine"> 160</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">int</span> hashCode() {</pre></td></tr> -<tr> <td class="numLineCover"> 161</td> <td class="nbHitsCovered"> 37</td> <td class="src"><pre class="src">  <span class="keyword">int</span> hash = 5;</pre></td></tr> -<tr> <td class="numLineCover"> 162</td> <td class="nbHitsUncovered"><a title="Line 162: Conditional coverage 50% (1/2)."> 37</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 162: Conditional coverage 50% (1/2)."> hash = 53 * hash + (<span class="keyword">this</span>.value != <span class="keyword">null</span> ? <span class="keyword">this</span>.value.hashCode() : 0);</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 163</td> <td class="nbHitsUncovered"><a title="Line 163: Conditional coverage 50% (1/2)."> 37</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 163: Conditional coverage 50% (1/2)."> hash = 53 * hash + (<span class="keyword">this</span>.type != <span class="keyword">null</span> ? <span class="keyword">this</span>.type.hashCode() : 0);</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 164</td> <td class="nbHitsCovered"> 37</td> <td class="src"><pre class="src">  <span class="keyword">return</span> hash;</pre></td></tr> +<tr> <td class="numLineCover"> 161</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  <span class="keyword">int</span> hash = 5;</pre></td></tr> +<tr> <td class="numLineCover"> 162</td> <td class="nbHitsUncovered"><a title="Line 162: Conditional coverage 50% (1/2)."> 59</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 162: Conditional coverage 50% (1/2)."> hash = 53 * hash + (<span class="keyword">this</span>.value != <span class="keyword">null</span> ? <span class="keyword">this</span>.value.hashCode() : 0);</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 163</td> <td class="nbHitsUncovered"><a title="Line 163: Conditional coverage 50% (1/2)."> 59</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 163: Conditional coverage 50% (1/2)."> hash = 53 * hash + (<span class="keyword">this</span>.type != <span class="keyword">null</span> ? <span class="keyword">this</span>.type.hashCode() : 0);</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 164</td> <td class="nbHitsCovered"> 59</td> <td class="src"><pre class="src">  <span class="keyword">return</span> hash;</pre></td></tr> <tr> <td class="numLine"> 165</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 166</td> <td class="nbHits"> </td> @@ -349,17 +349,17 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 184</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">int</span> compareTo(Identifier o) {</pre></td></tr> -<tr> <td class="numLineCover"> 185</td> <td class="nbHitsUncovered"><a title="Line 185: Conditional coverage 50% (1/2)."> 211</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 185: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (o == <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 185</td> <td class="nbHitsUncovered"><a title="Line 185: Conditional coverage 50% (1/2)."> 214</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 185: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (o == <span class="keyword">null</span>) {</a></span></pre></td></tr> <tr> <td class="numLineCover"> 186</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> -1;</span></pre></td></tr> <tr> <td class="numLine"> 187</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 188</td> <td class="nbHitsCovered"> 211</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">this</span>.value.compareTo(o.value);</pre></td></tr> +<tr> <td class="numLineCover"> 188</td> <td class="nbHitsCovered"> 214</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">this</span>.value.compareTo(o.value);</pre></td></tr> <tr> <td class="numLine"> 189</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 190</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Reference.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Reference.html index e1706d0fd..47c632f62 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Reference.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Reference.html @@ -73,7 +73,7 @@ <td class="src"><pre class="src"> <span class="comment"> * @author Jeremy Long (jeremy.long@owasp.org)</span></pre></td></tr> <tr> <td class="numLine"> 28</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 29</td> <td class="nbHitsCovered"> 1569</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> Reference <span class="keyword">implements</span> Serializable, Comparable<Reference> {</pre></td></tr> +<tr> <td class="numLineCover"> 29</td> <td class="nbHitsCovered"> 1608</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> Reference <span class="keyword">implements</span> Serializable, Comparable<Reference> {</pre></td></tr> <tr> <td class="numLine"> 30</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 31</td> <td class="nbHits"> </td> @@ -106,7 +106,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 45</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> String getName() {</pre></td></tr> -<tr> <td class="numLineCover"> 46</td> <td class="nbHitsCovered"> 202</td> <td class="src"><pre class="src">  <span class="keyword">return</span> name;</pre></td></tr> +<tr> <td class="numLineCover"> 46</td> <td class="nbHitsCovered"> 217</td> <td class="src"><pre class="src">  <span class="keyword">return</span> name;</pre></td></tr> <tr> <td class="numLine"> 47</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 48</td> <td class="nbHits"> </td> @@ -123,8 +123,8 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 54</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> setName(String name) {</pre></td></tr> -<tr> <td class="numLineCover"> 55</td> <td class="nbHitsCovered"> 491</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.name = name;</pre></td></tr> -<tr> <td class="numLineCover"> 56</td> <td class="nbHitsCovered"> 491</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 55</td> <td class="nbHitsCovered"> 506</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.name = name;</pre></td></tr> +<tr> <td class="numLineCover"> 56</td> <td class="nbHitsCovered"> 506</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 57</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 58</td> <td class="nbHits"> </td> @@ -147,7 +147,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 67</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> String getUrl() {</pre></td></tr> -<tr> <td class="numLineCover"> 68</td> <td class="nbHitsCovered"> 202</td> <td class="src"><pre class="src">  <span class="keyword">return</span> url;</pre></td></tr> +<tr> <td class="numLineCover"> 68</td> <td class="nbHitsCovered"> 217</td> <td class="src"><pre class="src">  <span class="keyword">return</span> url;</pre></td></tr> <tr> <td class="numLine"> 69</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 70</td> <td class="nbHits"> </td> @@ -164,8 +164,8 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 76</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> setUrl(String url) {</pre></td></tr> -<tr> <td class="numLineCover"> 77</td> <td class="nbHitsCovered"> 491</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.url = url;</pre></td></tr> -<tr> <td class="numLineCover"> 78</td> <td class="nbHitsCovered"> 491</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 77</td> <td class="nbHitsCovered"> 506</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.url = url;</pre></td></tr> +<tr> <td class="numLineCover"> 78</td> <td class="nbHitsCovered"> 506</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 79</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 80</td> <td class="nbHits"> </td> @@ -188,7 +188,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 89</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> String getSource() {</pre></td></tr> -<tr> <td class="numLineCover"> 90</td> <td class="nbHitsCovered"> 202</td> <td class="src"><pre class="src">  <span class="keyword">return</span> source;</pre></td></tr> +<tr> <td class="numLineCover"> 90</td> <td class="nbHitsCovered"> 217</td> <td class="src"><pre class="src">  <span class="keyword">return</span> source;</pre></td></tr> <tr> <td class="numLine"> 91</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 92</td> <td class="nbHits"> </td> @@ -205,8 +205,8 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 98</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> setSource(String source) {</pre></td></tr> -<tr> <td class="numLineCover"> 99</td> <td class="nbHitsCovered"> 491</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.source = source;</pre></td></tr> -<tr> <td class="numLineCover"> 100</td> <td class="nbHitsCovered"> 491</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 99</td> <td class="nbHitsCovered"> 506</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.source = source;</pre></td></tr> +<tr> <td class="numLineCover"> 100</td> <td class="nbHitsCovered"> 506</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 101</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 102</td> <td class="nbHits"> </td> @@ -266,8 +266,8 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 138</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">int</span> compareTo(Reference o) {</pre></td></tr> -<tr> <td class="numLineCover"> 139</td> <td class="nbHitsCovered"><a title="Line 139: Conditional coverage 100% (2/2)."> 1078</a></td> <td class="src"><pre class="src"> <a title="Line 139: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (source.equals(o.source)) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 140</td> <td class="nbHitsUncovered"><a title="Line 140: Conditional coverage 50% (1/2)."> 172</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 140: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (name.equals(o.name)) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 139</td> <td class="nbHitsCovered"><a title="Line 139: Conditional coverage 100% (2/2)."> 1102</a></td> <td class="src"><pre class="src"> <a title="Line 139: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (source.equals(o.source)) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 140</td> <td class="nbHitsUncovered"><a title="Line 140: Conditional coverage 50% (1/2)."> 176</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 140: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (name.equals(o.name)) {</a></span></pre></td></tr> <tr> <td class="numLineCover"> 141</td> <td class="nbHitsUncovered"><a title="Line 141: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 141: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (url.equals(o.url)) {</a></span></pre></td></tr> <tr> <td class="numLineCover"> 142</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> 0; <span class="comment">//they are equal</span></span></pre></td></tr> <tr> <td class="numLine"> 143</td> <td class="nbHits"> </td> @@ -277,12 +277,12 @@ <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 146</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 147</td> <td class="nbHitsCovered"> 172</td> <td class="src"><pre class="src">  <span class="keyword">return</span> name.compareTo(o.name);</pre></td></tr> +<tr> <td class="numLineCover"> 147</td> <td class="nbHitsCovered"> 176</td> <td class="src"><pre class="src">  <span class="keyword">return</span> name.compareTo(o.name);</pre></td></tr> <tr> <td class="numLine"> 148</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 149</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 150</td> <td class="nbHitsCovered"> 906</td> <td class="src"><pre class="src">  <span class="keyword">return</span> source.compareTo(o.source);</pre></td></tr> +<tr> <td class="numLineCover"> 150</td> <td class="nbHitsCovered"> 926</td> <td class="src"><pre class="src">  <span class="keyword">return</span> source.compareTo(o.source);</pre></td></tr> <tr> <td class="numLine"> 151</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 152</td> <td class="nbHits"> </td> @@ -291,6 +291,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Vulnerability.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Vulnerability.html index fe7a4fb27..81c7f3bbf 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Vulnerability.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.Vulnerability.html @@ -12,7 +12,7 @@ <div class="separator"> </div> <table class="report"> <thead><tr> <td class="heading">Classes in this File</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead> - <tr><td><a href="org.owasp.dependencycheck.dependency.Vulnerability.html">Vulnerability</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">66%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:66px"><span class="text">45/68</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">18%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:18px"><span class="text">3/16</span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.3125;</span>1.312</td></tr> + <tr><td><a href="org.owasp.dependencycheck.dependency.Vulnerability.html">Vulnerability</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">70%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:70px"><span class="text">48/68</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">25%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:25px"><span class="text">4/16</span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.3125;</span>1.312</td></tr> </table> <div class="separator"> </div> @@ -77,7 +77,7 @@ <td class="src"><pre class="src"> <span class="comment"> * @author Jeremy Long (jeremy.long@owasp.org)</span></pre></td></tr> <tr> <td class="numLine"> 30</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 31</td> <td class="nbHitsCovered"> 86</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> Vulnerability <span class="keyword">implements</span> Serializable, Comparable<Vulnerability> {</pre></td></tr> +<tr> <td class="numLineCover"> 31</td> <td class="nbHitsCovered"> 89</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> Vulnerability <span class="keyword">implements</span> Serializable, Comparable<Vulnerability> {</pre></td></tr> <tr> <td class="numLine"> 32</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 33</td> <td class="nbHits"> </td> @@ -110,7 +110,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 47</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> String getName() {</pre></td></tr> -<tr> <td class="numLineCover"> 48</td> <td class="nbHitsCovered"> 213</td> <td class="src"><pre class="src">  <span class="keyword">return</span> name;</pre></td></tr> +<tr> <td class="numLineCover"> 48</td> <td class="nbHitsCovered"> 232</td> <td class="src"><pre class="src">  <span class="keyword">return</span> name;</pre></td></tr> <tr> <td class="numLine"> 49</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 50</td> <td class="nbHits"> </td> @@ -127,8 +127,8 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 56</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> setName(String name) {</pre></td></tr> -<tr> <td class="numLineCover"> 57</td> <td class="nbHitsCovered"> 86</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.name = name;</pre></td></tr> -<tr> <td class="numLineCover"> 58</td> <td class="nbHitsCovered"> 86</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 57</td> <td class="nbHitsCovered"> 89</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.name = name;</pre></td></tr> +<tr> <td class="numLineCover"> 58</td> <td class="nbHitsCovered"> 89</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 59</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 60</td> <td class="nbHits"> </td> @@ -151,7 +151,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 69</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> String getDescription() {</pre></td></tr> -<tr> <td class="numLineCover"> 70</td> <td class="nbHitsCovered"> 29</td> <td class="src"><pre class="src">  <span class="keyword">return</span> description;</pre></td></tr> +<tr> <td class="numLineCover"> 70</td> <td class="nbHitsCovered"> 31</td> <td class="src"><pre class="src">  <span class="keyword">return</span> description;</pre></td></tr> <tr> <td class="numLine"> 71</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 72</td> <td class="nbHits"> </td> @@ -168,15 +168,15 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 78</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> setDescription(String description) {</pre></td></tr> -<tr> <td class="numLineCover"> 79</td> <td class="nbHitsCovered"> 86</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.description = description;</pre></td></tr> -<tr> <td class="numLineCover"> 80</td> <td class="nbHitsCovered"> 86</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 79</td> <td class="nbHitsCovered"> 88</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.description = description;</pre></td></tr> +<tr> <td class="numLineCover"> 80</td> <td class="nbHitsCovered"> 88</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 81</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 82</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * References for this vulnerability.</span></pre></td></tr> <tr> <td class="numLine"> 83</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 84</td> <td class="nbHitsCovered"> 86</td> <td class="src"><pre class="src">  <span class="keyword">private</span> SortedSet<Reference> references = <span class="keyword">new</span> TreeSet<Reference>();</pre></td></tr> +<tr> <td class="numLineCover"> 84</td> <td class="nbHitsCovered"> 89</td> <td class="src"><pre class="src">  <span class="keyword">private</span> SortedSet<Reference> references = <span class="keyword">new</span> TreeSet<Reference>();</pre></td></tr> <tr> <td class="numLine"> 85</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 86</td> <td class="nbHits"> </td> @@ -191,7 +191,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 91</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> Set<Reference> getReferences() {</pre></td></tr> -<tr> <td class="numLineCover"> 92</td> <td class="nbHitsCovered"> 29</td> <td class="src"><pre class="src">  <span class="keyword">return</span> references;</pre></td></tr> +<tr> <td class="numLineCover"> 92</td> <td class="nbHitsCovered"> 31</td> <td class="src"><pre class="src">  <span class="keyword">return</span> references;</pre></td></tr> <tr> <td class="numLine"> 93</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 94</td> <td class="nbHits"> </td> @@ -244,19 +244,19 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 120</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> addReference(String referenceSource, String referenceName, String referenceUrl) {</pre></td></tr> -<tr> <td class="numLineCover"> 121</td> <td class="nbHitsCovered"> 401</td> <td class="src"><pre class="src">  <span class="keyword">final</span> Reference ref = <span class="keyword">new</span> Reference();</pre></td></tr> -<tr> <td class="numLineCover"> 122</td> <td class="nbHitsCovered"> 401</td> <td class="src"><pre class="src">  ref.setSource(referenceSource);</pre></td></tr> -<tr> <td class="numLineCover"> 123</td> <td class="nbHitsCovered"> 401</td> <td class="src"><pre class="src">  ref.setName(referenceName);</pre></td></tr> -<tr> <td class="numLineCover"> 124</td> <td class="nbHitsCovered"> 401</td> <td class="src"><pre class="src">  ref.setUrl(referenceUrl);</pre></td></tr> -<tr> <td class="numLineCover"> 125</td> <td class="nbHitsCovered"> 401</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.references.add(ref);</pre></td></tr> -<tr> <td class="numLineCover"> 126</td> <td class="nbHitsCovered"> 401</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 121</td> <td class="nbHitsCovered"> 416</td> <td class="src"><pre class="src">  <span class="keyword">final</span> Reference ref = <span class="keyword">new</span> Reference();</pre></td></tr> +<tr> <td class="numLineCover"> 122</td> <td class="nbHitsCovered"> 416</td> <td class="src"><pre class="src">  ref.setSource(referenceSource);</pre></td></tr> +<tr> <td class="numLineCover"> 123</td> <td class="nbHitsCovered"> 416</td> <td class="src"><pre class="src">  ref.setName(referenceName);</pre></td></tr> +<tr> <td class="numLineCover"> 124</td> <td class="nbHitsCovered"> 416</td> <td class="src"><pre class="src">  ref.setUrl(referenceUrl);</pre></td></tr> +<tr> <td class="numLineCover"> 125</td> <td class="nbHitsCovered"> 416</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.references.add(ref);</pre></td></tr> +<tr> <td class="numLineCover"> 126</td> <td class="nbHitsCovered"> 416</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 127</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 128</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * A set of vulnerable software.</span></pre></td></tr> <tr> <td class="numLine"> 129</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 130</td> <td class="nbHitsCovered"> 86</td> <td class="src"><pre class="src">  <span class="keyword">private</span> SortedSet<VulnerableSoftware> vulnerableSoftware = <span class="keyword">new</span> TreeSet<VulnerableSoftware>();</pre></td></tr> +<tr> <td class="numLineCover"> 130</td> <td class="nbHitsCovered"> 89</td> <td class="src"><pre class="src">  <span class="keyword">private</span> SortedSet<VulnerableSoftware> vulnerableSoftware = <span class="keyword">new</span> TreeSet<VulnerableSoftware>();</pre></td></tr> <tr> <td class="numLine"> 131</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 132</td> <td class="nbHits"> </td> @@ -271,7 +271,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 137</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> Set<VulnerableSoftware> getVulnerableSoftware() {</pre></td></tr> -<tr> <td class="numLineCover"> 138</td> <td class="nbHitsCovered"> 29</td> <td class="src"><pre class="src">  <span class="keyword">return</span> vulnerableSoftware;</pre></td></tr> +<tr> <td class="numLineCover"> 138</td> <td class="nbHitsCovered"> 31</td> <td class="src"><pre class="src">  <span class="keyword">return</span> vulnerableSoftware;</pre></td></tr> <tr> <td class="numLine"> 139</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 140</td> <td class="nbHits"> </td> @@ -306,7 +306,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 156</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> addVulnerableSoftware(String cpe) {</pre></td></tr> -<tr> <td class="numLineCover"> 157</td> <td class="nbHitsCovered"> 3186</td> <td class="src"><pre class="src">  <span class="keyword">return</span> addVulnerableSoftware(cpe, <span class="keyword">null</span>);</pre></td></tr> +<tr> <td class="numLineCover"> 157</td> <td class="nbHitsCovered"> 3276</td> <td class="src"><pre class="src">  <span class="keyword">return</span> addVulnerableSoftware(cpe, <span class="keyword">null</span>);</pre></td></tr> <tr> <td class="numLine"> 158</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 159</td> <td class="nbHits"> </td> @@ -329,13 +329,13 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 168</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> addVulnerableSoftware(String cpe, String previousVersion) {</pre></td></tr> -<tr> <td class="numLineCover"> 169</td> <td class="nbHitsCovered"> 3228</td> <td class="src"><pre class="src">  <span class="keyword">final</span> VulnerableSoftware vs = <span class="keyword">new</span> VulnerableSoftware();</pre></td></tr> -<tr> <td class="numLineCover"> 170</td> <td class="nbHitsCovered"> 3228</td> <td class="src"><pre class="src">  vs.setCpe(cpe);</pre></td></tr> -<tr> <td class="numLineCover"> 171</td> <td class="nbHitsCovered"><a title="Line 171: Conditional coverage 100% (2/2)."> 3228</a></td> <td class="src"><pre class="src"> <a title="Line 171: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (previousVersion != <span class="keyword">null</span>) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 169</td> <td class="nbHitsCovered"> 3318</td> <td class="src"><pre class="src">  <span class="keyword">final</span> VulnerableSoftware vs = <span class="keyword">new</span> VulnerableSoftware();</pre></td></tr> +<tr> <td class="numLineCover"> 170</td> <td class="nbHitsCovered"> 3318</td> <td class="src"><pre class="src">  vs.setCpe(cpe);</pre></td></tr> +<tr> <td class="numLineCover"> 171</td> <td class="nbHitsCovered"><a title="Line 171: Conditional coverage 100% (2/2)."> 3318</a></td> <td class="src"><pre class="src"> <a title="Line 171: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (previousVersion != <span class="keyword">null</span>) {</a></pre></td></tr> <tr> <td class="numLineCover"> 172</td> <td class="nbHitsCovered"> 42</td> <td class="src"><pre class="src">  vs.setPreviousVersion(previousVersion);</pre></td></tr> <tr> <td class="numLine"> 173</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 174</td> <td class="nbHitsCovered"> 3228</td> <td class="src"><pre class="src">  <span class="keyword">return</span> updateVulnerableSoftware(vs);</pre></td></tr> +<tr> <td class="numLineCover"> 174</td> <td class="nbHitsCovered"> 3318</td> <td class="src"><pre class="src">  <span class="keyword">return</span> updateVulnerableSoftware(vs);</pre></td></tr> <tr> <td class="numLine"> 175</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 176</td> <td class="nbHits"> </td> @@ -354,11 +354,11 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 183</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> updateVulnerableSoftware(VulnerableSoftware vulnSoftware) {</pre></td></tr> -<tr> <td class="numLineCover"> 184</td> <td class="nbHitsUncovered"><a title="Line 184: Conditional coverage 50% (1/2)."> 3228</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 184: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (vulnerableSoftware.contains(vulnSoftware)) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 184</td> <td class="nbHitsUncovered"><a title="Line 184: Conditional coverage 50% (1/2)."> 3318</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 184: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (vulnerableSoftware.contains(vulnSoftware)) {</a></span></pre></td></tr> <tr> <td class="numLineCover"> 185</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  vulnerableSoftware.remove(vulnSoftware);</span></pre></td></tr> <tr> <td class="numLine"> 186</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 187</td> <td class="nbHitsCovered"> 3228</td> <td class="src"><pre class="src">  <span class="keyword">return</span> vulnerableSoftware.add(vulnSoftware);</pre></td></tr> +<tr> <td class="numLineCover"> 187</td> <td class="nbHitsCovered"> 3318</td> <td class="src"><pre class="src">  <span class="keyword">return</span> vulnerableSoftware.add(vulnSoftware);</pre></td></tr> <tr> <td class="numLine"> 188</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 189</td> <td class="nbHits"> </td> @@ -383,7 +383,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 199</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> String getCwe() {</pre></td></tr> -<tr> <td class="numLineCover"> 200</td> <td class="nbHitsCovered"> 56</td> <td class="src"><pre class="src">  <span class="keyword">return</span> cwe;</pre></td></tr> +<tr> <td class="numLineCover"> 200</td> <td class="nbHitsCovered"> 62</td> <td class="src"><pre class="src">  <span class="keyword">return</span> cwe;</pre></td></tr> <tr> <td class="numLine"> 201</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 202</td> <td class="nbHits"> </td> @@ -400,8 +400,8 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 208</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> setCwe(String cwe) {</pre></td></tr> -<tr> <td class="numLineCover"> 209</td> <td class="nbHitsCovered"> 78</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.cwe = cwe;</pre></td></tr> -<tr> <td class="numLineCover"> 210</td> <td class="nbHitsCovered"> 78</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 209</td> <td class="nbHitsCovered"> 81</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.cwe = cwe;</pre></td></tr> +<tr> <td class="numLineCover"> 210</td> <td class="nbHitsCovered"> 81</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 211</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 212</td> <td class="nbHits"> </td> @@ -424,7 +424,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 221</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">float</span> getCvssScore() {</pre></td></tr> -<tr> <td class="numLineCover"> 222</td> <td class="nbHitsCovered"> 86</td> <td class="src"><pre class="src">  <span class="keyword">return</span> cvssScore;</pre></td></tr> +<tr> <td class="numLineCover"> 222</td> <td class="nbHitsCovered"> 95</td> <td class="src"><pre class="src">  <span class="keyword">return</span> cvssScore;</pre></td></tr> <tr> <td class="numLine"> 223</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 224</td> <td class="nbHits"> </td> @@ -441,8 +441,8 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 230</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> setCvssScore(<span class="keyword">float</span> cvssScore) {</pre></td></tr> -<tr> <td class="numLineCover"> 231</td> <td class="nbHitsCovered"> 85</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.cvssScore = cvssScore;</pre></td></tr> -<tr> <td class="numLineCover"> 232</td> <td class="nbHitsCovered"> 85</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 231</td> <td class="nbHitsCovered"> 88</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.cvssScore = cvssScore;</pre></td></tr> +<tr> <td class="numLineCover"> 232</td> <td class="nbHitsCovered"> 88</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 233</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 234</td> <td class="nbHits"> </td> @@ -482,8 +482,8 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 252</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> setCvssAccessVector(String cvssAccessVector) {</pre></td></tr> -<tr> <td class="numLineCover"> 253</td> <td class="nbHitsCovered"> 85</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.cvssAccessVector = cvssAccessVector;</pre></td></tr> -<tr> <td class="numLineCover"> 254</td> <td class="nbHitsCovered"> 85</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 253</td> <td class="nbHitsCovered"> 87</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.cvssAccessVector = cvssAccessVector;</pre></td></tr> +<tr> <td class="numLineCover"> 254</td> <td class="nbHitsCovered"> 87</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 255</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 256</td> <td class="nbHits"> </td> @@ -523,8 +523,8 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 274</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> setCvssAccessComplexity(String cvssAccessComplexity) {</pre></td></tr> -<tr> <td class="numLineCover"> 275</td> <td class="nbHitsCovered"> 85</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.cvssAccessComplexity = cvssAccessComplexity;</pre></td></tr> -<tr> <td class="numLineCover"> 276</td> <td class="nbHitsCovered"> 85</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 275</td> <td class="nbHitsCovered"> 87</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.cvssAccessComplexity = cvssAccessComplexity;</pre></td></tr> +<tr> <td class="numLineCover"> 276</td> <td class="nbHitsCovered"> 87</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 277</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 278</td> <td class="nbHits"> </td> @@ -564,8 +564,8 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 296</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> setCvssAuthentication(String cvssAuthentication) {</pre></td></tr> -<tr> <td class="numLineCover"> 297</td> <td class="nbHitsCovered"> 85</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.cvssAuthentication = cvssAuthentication;</pre></td></tr> -<tr> <td class="numLineCover"> 298</td> <td class="nbHitsCovered"> 85</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 297</td> <td class="nbHitsCovered"> 87</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.cvssAuthentication = cvssAuthentication;</pre></td></tr> +<tr> <td class="numLineCover"> 298</td> <td class="nbHitsCovered"> 87</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 299</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 300</td> <td class="nbHits"> </td> @@ -605,8 +605,8 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 318</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> setCvssConfidentialityImpact(String cvssConfidentialityImpact) {</pre></td></tr> -<tr> <td class="numLineCover"> 319</td> <td class="nbHitsCovered"> 85</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.cvssConfidentialityImpact = cvssConfidentialityImpact;</pre></td></tr> -<tr> <td class="numLineCover"> 320</td> <td class="nbHitsCovered"> 85</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 319</td> <td class="nbHitsCovered"> 87</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.cvssConfidentialityImpact = cvssConfidentialityImpact;</pre></td></tr> +<tr> <td class="numLineCover"> 320</td> <td class="nbHitsCovered"> 87</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 321</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 322</td> <td class="nbHits"> </td> @@ -646,8 +646,8 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 340</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> setCvssIntegrityImpact(String cvssIntegrityImpact) {</pre></td></tr> -<tr> <td class="numLineCover"> 341</td> <td class="nbHitsCovered"> 85</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.cvssIntegrityImpact = cvssIntegrityImpact;</pre></td></tr> -<tr> <td class="numLineCover"> 342</td> <td class="nbHitsCovered"> 85</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 341</td> <td class="nbHitsCovered"> 87</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.cvssIntegrityImpact = cvssIntegrityImpact;</pre></td></tr> +<tr> <td class="numLineCover"> 342</td> <td class="nbHitsCovered"> 87</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 343</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 344</td> <td class="nbHits"> </td> @@ -687,8 +687,8 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 362</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> setCvssAvailabilityImpact(String cvssAvailabilityImpact) {</pre></td></tr> -<tr> <td class="numLineCover"> 363</td> <td class="nbHitsCovered"> 85</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.cvssAvailabilityImpact = cvssAvailabilityImpact;</pre></td></tr> -<tr> <td class="numLineCover"> 364</td> <td class="nbHitsCovered"> 85</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 363</td> <td class="nbHitsCovered"> 87</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.cvssAvailabilityImpact = cvssAvailabilityImpact;</pre></td></tr> +<tr> <td class="numLineCover"> 364</td> <td class="nbHitsCovered"> 87</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 365</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 366</td> <td class="nbHits"> </td> @@ -717,9 +717,9 @@ <td class="src"><pre class="src">  @Override</pre></td></tr> <tr> <td class="numLine"> 382</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">int</span> hashCode() {</pre></td></tr> -<tr> <td class="numLineCover"> 383</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">int</span> hash = 5;</span></pre></td></tr> -<tr> <td class="numLineCover"> 384</td> <td class="nbHitsUncovered"><a title="Line 384: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 384: Conditional coverage 0% (0/2)."> hash = 41 * hash + (<span class="keyword">this</span>.name != <span class="keyword">null</span> ? <span class="keyword">this</span>.name.hashCode() : 0);</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 385</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> hash;</span></pre></td></tr> +<tr> <td class="numLineCover"> 383</td> <td class="nbHitsCovered"> 41</td> <td class="src"><pre class="src">  <span class="keyword">int</span> hash = 5;</pre></td></tr> +<tr> <td class="numLineCover"> 384</td> <td class="nbHitsUncovered"><a title="Line 384: Conditional coverage 50% (1/2)."> 41</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 384: Conditional coverage 50% (1/2)."> hash = 41 * hash + (<span class="keyword">this</span>.name != <span class="keyword">null</span> ? <span class="keyword">this</span>.name.hashCode() : 0);</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 385</td> <td class="nbHitsCovered"> 41</td> <td class="src"><pre class="src">  <span class="keyword">return</span> hash;</pre></td></tr> <tr> <td class="numLine"> 386</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 387</td> <td class="nbHits"> </td> @@ -747,6 +747,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.VulnerabilityComparator.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.VulnerabilityComparator.html index add92eb72..8b6599a1f 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.VulnerabilityComparator.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.VulnerabilityComparator.html @@ -73,7 +73,7 @@ <td class="src"><pre class="src"> <span class="comment"> * @author Jeremy Long (jeremy.long@owasp.org)</span></pre></td></tr> <tr> <td class="numLine"> 28</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 29</td> <td class="nbHitsCovered"> 145</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> VulnerabilityComparator <span class="keyword">implements</span> Comparator<Vulnerability>, Serializable {</pre></td></tr> +<tr> <td class="numLineCover"> 29</td> <td class="nbHitsCovered"> 153</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> VulnerabilityComparator <span class="keyword">implements</span> Comparator<Vulnerability>, Serializable {</pre></td></tr> <tr> <td class="numLine"> 30</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 31</td> <td class="nbHits"> </td> @@ -102,13 +102,13 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 43</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">int</span> compare(Vulnerability o1, Vulnerability o2) {</pre></td></tr> -<tr> <td class="numLineCover"> 44</td> <td class="nbHitsCovered"> 92</td> <td class="src"><pre class="src">  <span class="keyword">return</span> o2.getName().compareTo(o1.getName());</pre></td></tr> +<tr> <td class="numLineCover"> 44</td> <td class="nbHitsCovered"> 99</td> <td class="src"><pre class="src">  <span class="keyword">return</span> o2.getName().compareTo(o1.getName());</pre></td></tr> <tr> <td class="numLine"> 45</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 46</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.VulnerableSoftware.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.VulnerableSoftware.html index c3743e5e3..1a2bcbe49 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.VulnerableSoftware.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.dependency.VulnerableSoftware.html @@ -83,7 +83,7 @@ <td class="src"><pre class="src"> <span class="comment"> * @author Jeremy Long (jeremy.long@owasp.org)</span></pre></td></tr> <tr> <td class="numLine"> 33</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 34</td> <td class="nbHitsCovered"> 61009</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> VulnerableSoftware <span class="keyword">extends</span> IndexEntry <span class="keyword">implements</span> Serializable, Comparable<VulnerableSoftware> {</pre></td></tr> +<tr> <td class="numLineCover"> 34</td> <td class="nbHitsCovered"> 62226</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> VulnerableSoftware <span class="keyword">extends</span> IndexEntry <span class="keyword">implements</span> Serializable, Comparable<VulnerableSoftware> {</pre></td></tr> <tr> <td class="numLine"> 35</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 36</td> <td class="nbHits"> </td> @@ -110,14 +110,14 @@ <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> setCpe(String cpe) {</pre></td></tr> <tr> <td class="numLine"> 47</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 48</td> <td class="nbHitsCovered"> 7616</td> <td class="src"><pre class="src">  parseName(cpe);</pre></td></tr> +<tr> <td class="numLineCover"> 48</td> <td class="nbHitsCovered"> 7714</td> <td class="src"><pre class="src">  parseName(cpe);</pre></td></tr> <tr> <td class="numLineCover"> 49</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (UnsupportedEncodingException ex) {</span></pre></td></tr> <tr> <td class="numLineCover"> 50</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = String.format(<span class="string">"Character encoding is unsupported for CPE '%s'."</span>, cpe);</span></pre></td></tr> <tr> <td class="numLineCover"> 51</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(VulnerableSoftware.<span class="keyword">class</span>.getName()).log(Level.WARNING, msg);</span></pre></td></tr> <tr> <td class="numLineCover"> 52</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(VulnerableSoftware.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="keyword">null</span>, ex);</span></pre></td></tr> <tr> <td class="numLineCover"> 53</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  setName(cpe);</span></pre></td></tr> -<tr> <td class="numLineCover"> 54</td> <td class="nbHitsCovered"> 7616</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 55</td> <td class="nbHitsCovered"> 7616</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 54</td> <td class="nbHitsCovered"> 7714</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 55</td> <td class="nbHitsCovered"> 7714</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 56</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 57</td> <td class="nbHits"> </td> @@ -148,16 +148,16 @@ <td class="src"><pre class="src">  @Override</pre></td></tr> <tr> <td class="numLine"> 70</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">void</span> parseName(String cpeName) <span class="keyword">throws</span> UnsupportedEncodingException {</pre></td></tr> -<tr> <td class="numLineCover"> 71</td> <td class="nbHitsCovered"> 11151</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.name = cpeName;</pre></td></tr> -<tr> <td class="numLineCover"> 72</td> <td class="nbHitsUncovered"><a title="Line 72: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> 11151</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 72: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> <span class="keyword">if</span> (cpeName != <span class="keyword">null</span> && cpeName.length() > 7) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 73</td> <td class="nbHitsCovered"> 11151</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String[] data = cpeName.substring(7).split(<span class="string">":"</span>);</pre></td></tr> -<tr> <td class="numLineCover"> 74</td> <td class="nbHitsUncovered"><a title="Line 74: Conditional coverage 50% (1/2)."> 11151</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 74: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (data.length >= 1) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 75</td> <td class="nbHitsCovered"> 11151</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.setVendor(URLDecoder.decode(data[0].replace(<span class="string">"+"</span>, <span class="string">"%2B"</span>), <span class="string">"UTF-8"</span>)); <span class="comment">//.replaceAll("[_-]", " ")</span></pre></td></tr> -<tr> <td class="numLineCover"> 76</td> <td class="nbHitsUncovered"><a title="Line 76: Conditional coverage 50% (1/2)."> 11151</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 76: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (data.length >= 2) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 77</td> <td class="nbHitsCovered"> 11151</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.setProduct(URLDecoder.decode(data[1].replace(<span class="string">"+"</span>, <span class="string">"%2B"</span>), <span class="string">"UTF-8"</span>)); <span class="comment">//.replaceAll("[_-]", " ")</span></pre></td></tr> -<tr> <td class="numLineCover"> 78</td> <td class="nbHitsCovered"><a title="Line 78: Conditional coverage 100% (2/2)."> 11151</a></td> <td class="src"><pre class="src"> <a title="Line 78: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (data.length >= 3) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 79</td> <td class="nbHitsCovered"> 11123</td> <td class="src"><pre class="src">  version = URLDecoder.decode(data[2].replace(<span class="string">"+"</span>, <span class="string">"%2B"</span>), <span class="string">"UTF-8"</span>);</pre></td></tr> -<tr> <td class="numLineCover"> 80</td> <td class="nbHitsCovered"><a title="Line 80: Conditional coverage 100% (2/2)."> 11123</a></td> <td class="src"><pre class="src"> <a title="Line 80: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (data.length >= 4) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 71</td> <td class="nbHitsCovered"> 11286</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.name = cpeName;</pre></td></tr> +<tr> <td class="numLineCover"> 72</td> <td class="nbHitsUncovered"><a title="Line 72: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> 11286</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 72: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> <span class="keyword">if</span> (cpeName != <span class="keyword">null</span> && cpeName.length() > 7) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 73</td> <td class="nbHitsCovered"> 11286</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String[] data = cpeName.substring(7).split(<span class="string">":"</span>);</pre></td></tr> +<tr> <td class="numLineCover"> 74</td> <td class="nbHitsUncovered"><a title="Line 74: Conditional coverage 50% (1/2)."> 11286</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 74: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (data.length >= 1) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 75</td> <td class="nbHitsCovered"> 11286</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.setVendor(URLDecoder.decode(data[0].replace(<span class="string">"+"</span>, <span class="string">"%2B"</span>), <span class="string">"UTF-8"</span>)); <span class="comment">//.replaceAll("[_-]", " ")</span></pre></td></tr> +<tr> <td class="numLineCover"> 76</td> <td class="nbHitsUncovered"><a title="Line 76: Conditional coverage 50% (1/2)."> 11286</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 76: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (data.length >= 2) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 77</td> <td class="nbHitsCovered"> 11286</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.setProduct(URLDecoder.decode(data[1].replace(<span class="string">"+"</span>, <span class="string">"%2B"</span>), <span class="string">"UTF-8"</span>)); <span class="comment">//.replaceAll("[_-]", " ")</span></pre></td></tr> +<tr> <td class="numLineCover"> 78</td> <td class="nbHitsCovered"><a title="Line 78: Conditional coverage 100% (2/2)."> 11286</a></td> <td class="src"><pre class="src"> <a title="Line 78: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (data.length >= 3) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 79</td> <td class="nbHitsCovered"> 11258</td> <td class="src"><pre class="src">  version = URLDecoder.decode(data[2].replace(<span class="string">"+"</span>, <span class="string">"%2B"</span>), <span class="string">"UTF-8"</span>);</pre></td></tr> +<tr> <td class="numLineCover"> 80</td> <td class="nbHitsCovered"><a title="Line 80: Conditional coverage 100% (2/2)."> 11258</a></td> <td class="src"><pre class="src"> <a title="Line 80: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (data.length >= 4) {</a></pre></td></tr> <tr> <td class="numLineCover"> 81</td> <td class="nbHitsCovered"> 2318</td> <td class="src"><pre class="src">  revision = URLDecoder.decode(data[3].replace(<span class="string">"+"</span>, <span class="string">"%2B"</span>), <span class="string">"UTF-8"</span>);</pre></td></tr> <tr> <td class="numLineCover"> 82</td> <td class="nbHitsCovered"><a title="Line 82: Conditional coverage 100% (2/2)."> 2318</a></td> <td class="src"><pre class="src"> <a title="Line 82: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (data.length >= 5) {</a></pre></td></tr> <tr> <td class="numLineCover"> 83</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  edition = URLDecoder.decode(data[4].replace(<span class="string">"+"</span>, <span class="string">"%2B"</span>), <span class="string">"UTF-8"</span>);</pre></td></tr> @@ -173,7 +173,7 @@ <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 89</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 90</td> <td class="nbHitsCovered"> 11151</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 90</td> <td class="nbHitsCovered"> 11286</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 91</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 92</td> <td class="nbHits"> </td> @@ -196,7 +196,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 101</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> hasPreviousVersion() {</pre></td></tr> -<tr> <td class="numLineCover"> 102</td> <td class="nbHitsCovered"><a title="Line 102: Conditional coverage 100% (2/2)."> 1895</a></td> <td class="src"><pre class="src"> <a title="Line 102: Conditional coverage 100% (2/2)."> <span class="keyword">return</span> previousVersion != <span class="keyword">null</span>;</a></pre></td></tr> +<tr> <td class="numLineCover"> 102</td> <td class="nbHitsCovered"><a title="Line 102: Conditional coverage 100% (2/2)."> 1985</a></td> <td class="src"><pre class="src"> <a title="Line 102: Conditional coverage 100% (2/2)."> <span class="keyword">return</span> previousVersion != <span class="keyword">null</span>;</a></pre></td></tr> <tr> <td class="numLine"> 103</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 104</td> <td class="nbHits"> </td> @@ -284,9 +284,9 @@ <td class="src"><pre class="src">  @Override</pre></td></tr> <tr> <td class="numLine"> 151</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">int</span> hashCode() {</pre></td></tr> -<tr> <td class="numLineCover"> 152</td> <td class="nbHitsCovered"> 4383</td> <td class="src"><pre class="src">  <span class="keyword">int</span> hash = 7;</pre></td></tr> -<tr> <td class="numLineCover"> 153</td> <td class="nbHitsUncovered"><a title="Line 153: Conditional coverage 50% (1/2)."> 4383</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 153: Conditional coverage 50% (1/2)."> hash = 83 * hash + (<span class="keyword">this</span>.getName() != <span class="keyword">null</span> ? <span class="keyword">this</span>.getName().hashCode() : 0);</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 154</td> <td class="nbHitsCovered"> 4383</td> <td class="src"><pre class="src">  <span class="keyword">return</span> hash;</pre></td></tr> +<tr> <td class="numLineCover"> 152</td> <td class="nbHitsCovered"> 4391</td> <td class="src"><pre class="src">  <span class="keyword">int</span> hash = 7;</pre></td></tr> +<tr> <td class="numLineCover"> 153</td> <td class="nbHitsUncovered"><a title="Line 153: Conditional coverage 50% (1/2)."> 4391</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 153: Conditional coverage 50% (1/2)."> hash = 83 * hash + (<span class="keyword">this</span>.getName() != <span class="keyword">null</span> ? <span class="keyword">this</span>.getName().hashCode() : 0);</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 154</td> <td class="nbHitsCovered"> 4391</td> <td class="src"><pre class="src">  <span class="keyword">return</span> hash;</pre></td></tr> <tr> <td class="numLine"> 155</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 156</td> <td class="nbHits"> </td> @@ -328,42 +328,42 @@ <td class="src"><pre class="src">  @Override</pre></td></tr> <tr> <td class="numLine"> 175</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">int</span> compareTo(VulnerableSoftware vs) {</pre></td></tr> -<tr> <td class="numLineCover"> 176</td> <td class="nbHitsCovered"> 49859</td> <td class="src"><pre class="src">  <span class="keyword">int</span> result = 0;</pre></td></tr> -<tr> <td class="numLineCover"> 177</td> <td class="nbHitsCovered"> 49859</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String[] left = <span class="keyword">this</span>.getName().split(<span class="string">":"</span>);</pre></td></tr> -<tr> <td class="numLineCover"> 178</td> <td class="nbHitsCovered"> 49859</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String[] right = vs.getName().split(<span class="string">":"</span>);</pre></td></tr> -<tr> <td class="numLineCover"> 179</td> <td class="nbHitsCovered"><a title="Line 179: Conditional coverage 100% (2/2)."> 49859</a></td> <td class="src"><pre class="src"> <a title="Line 179: Conditional coverage 100% (2/2)."> <span class="keyword">final</span> <span class="keyword">int</span> max = (left.length <= right.length) ? left.length : right.length;</a></pre></td></tr> -<tr> <td class="numLineCover"> 180</td> <td class="nbHitsUncovered"><a title="Line 180: Conditional coverage 50% (1/2)."> 49859</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 180: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (max > 0) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 181</td> <td class="nbHitsCovered"><a title="Line 181: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 301368</a></td> <td class="src"><pre class="src"> <a title="Line 181: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; result == 0 && i < max; i++) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 182</td> <td class="nbHitsCovered"> 251509</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String[] subLeft = left[i].split(<span class="string">"\\."</span>);</pre></td></tr> -<tr> <td class="numLineCover"> 183</td> <td class="nbHitsCovered"> 251509</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String[] subRight = right[i].split(<span class="string">"\\."</span>);</pre></td></tr> -<tr> <td class="numLineCover"> 184</td> <td class="nbHitsCovered"><a title="Line 184: Conditional coverage 100% (2/2)."> 251509</a></td> <td class="src"><pre class="src"> <a title="Line 184: Conditional coverage 100% (2/2)."> <span class="keyword">final</span> <span class="keyword">int</span> subMax = (subLeft.length <= subRight.length) ? subLeft.length : subRight.length;</a></pre></td></tr> -<tr> <td class="numLineCover"> 185</td> <td class="nbHitsUncovered"><a title="Line 185: Conditional coverage 50% (1/2)."> 251509</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 185: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (subMax > 0) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 186</td> <td class="nbHitsCovered"><a title="Line 186: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 564931</a></td> <td class="src"><pre class="src"> <a title="Line 186: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">for</span> (<span class="keyword">int</span> x = 0; result == 0 && x < subMax; x++) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 187</td> <td class="nbHitsCovered"><a title="Line 187: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 313422</a></td> <td class="src"><pre class="src"> <a title="Line 187: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (isPositiveInteger(subLeft[x]) && isPositiveInteger(subRight[x])) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 188</td> <td class="nbHitsCovered"> 108826</td> <td class="src"><pre class="src">  <span class="keyword">final</span> <span class="keyword">int</span> iLeft = Integer.parseInt(subLeft[x]);</pre></td></tr> -<tr> <td class="numLineCover"> 189</td> <td class="nbHitsCovered"> 108826</td> <td class="src"><pre class="src">  <span class="keyword">final</span> <span class="keyword">int</span> iRight = Integer.parseInt(subRight[x]);</pre></td></tr> -<tr> <td class="numLineCover"> 190</td> <td class="nbHitsCovered"><a title="Line 190: Conditional coverage 100% (2/2)."> 108826</a></td> <td class="src"><pre class="src"> <a title="Line 190: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (iLeft != iRight) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 191</td> <td class="nbHitsCovered"><a title="Line 191: Conditional coverage 100% (2/2)."> 42480</a></td> <td class="src"><pre class="src"> <a title="Line 191: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (iLeft > iRight) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 192</td> <td class="nbHitsCovered"> 39020</td> <td class="src"><pre class="src">  result = 2;</pre></td></tr> +<tr> <td class="numLineCover"> 176</td> <td class="nbHitsCovered"> 50941</td> <td class="src"><pre class="src">  <span class="keyword">int</span> result = 0;</pre></td></tr> +<tr> <td class="numLineCover"> 177</td> <td class="nbHitsCovered"> 50941</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String[] left = <span class="keyword">this</span>.getName().split(<span class="string">":"</span>);</pre></td></tr> +<tr> <td class="numLineCover"> 178</td> <td class="nbHitsCovered"> 50941</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String[] right = vs.getName().split(<span class="string">":"</span>);</pre></td></tr> +<tr> <td class="numLineCover"> 179</td> <td class="nbHitsCovered"><a title="Line 179: Conditional coverage 100% (2/2)."> 50941</a></td> <td class="src"><pre class="src"> <a title="Line 179: Conditional coverage 100% (2/2)."> <span class="keyword">final</span> <span class="keyword">int</span> max = (left.length <= right.length) ? left.length : right.length;</a></pre></td></tr> +<tr> <td class="numLineCover"> 180</td> <td class="nbHitsUncovered"><a title="Line 180: Conditional coverage 50% (1/2)."> 50941</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 180: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (max > 0) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 181</td> <td class="nbHitsCovered"><a title="Line 181: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 307860</a></td> <td class="src"><pre class="src"> <a title="Line 181: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; result == 0 && i < max; i++) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 182</td> <td class="nbHitsCovered"> 256919</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String[] subLeft = left[i].split(<span class="string">"\\."</span>);</pre></td></tr> +<tr> <td class="numLineCover"> 183</td> <td class="nbHitsCovered"> 256919</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String[] subRight = right[i].split(<span class="string">"\\."</span>);</pre></td></tr> +<tr> <td class="numLineCover"> 184</td> <td class="nbHitsCovered"><a title="Line 184: Conditional coverage 100% (2/2)."> 256919</a></td> <td class="src"><pre class="src"> <a title="Line 184: Conditional coverage 100% (2/2)."> <span class="keyword">final</span> <span class="keyword">int</span> subMax = (subLeft.length <= subRight.length) ? subLeft.length : subRight.length;</a></pre></td></tr> +<tr> <td class="numLineCover"> 185</td> <td class="nbHitsUncovered"><a title="Line 185: Conditional coverage 50% (1/2)."> 256919</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 185: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (subMax > 0) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 186</td> <td class="nbHitsCovered"><a title="Line 186: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 577349</a></td> <td class="src"><pre class="src"> <a title="Line 186: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">for</span> (<span class="keyword">int</span> x = 0; result == 0 && x < subMax; x++) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 187</td> <td class="nbHitsCovered"><a title="Line 187: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 320430</a></td> <td class="src"><pre class="src"> <a title="Line 187: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (isPositiveInteger(subLeft[x]) && isPositiveInteger(subRight[x])) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 188</td> <td class="nbHitsCovered"> 111444</td> <td class="src"><pre class="src">  <span class="keyword">final</span> <span class="keyword">int</span> iLeft = Integer.parseInt(subLeft[x]);</pre></td></tr> +<tr> <td class="numLineCover"> 189</td> <td class="nbHitsCovered"> 111444</td> <td class="src"><pre class="src">  <span class="keyword">final</span> <span class="keyword">int</span> iRight = Integer.parseInt(subRight[x]);</pre></td></tr> +<tr> <td class="numLineCover"> 190</td> <td class="nbHitsCovered"><a title="Line 190: Conditional coverage 100% (2/2)."> 111444</a></td> <td class="src"><pre class="src"> <a title="Line 190: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (iLeft != iRight) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 191</td> <td class="nbHitsCovered"><a title="Line 191: Conditional coverage 100% (2/2)."> 43588</a></td> <td class="src"><pre class="src"> <a title="Line 191: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (iLeft > iRight) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 192</td> <td class="nbHitsCovered"> 40124</td> <td class="src"><pre class="src">  result = 2;</pre></td></tr> <tr> <td class="numLine"> 193</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 194</td> <td class="nbHitsCovered"> 3460</td> <td class="src"><pre class="src">  result = -2;</pre></td></tr> +<tr> <td class="numLineCover"> 194</td> <td class="nbHitsCovered"> 3464</td> <td class="src"><pre class="src">  result = -2;</pre></td></tr> <tr> <td class="numLine"> 195</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 196</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 197</td> <td class="nbHitsCovered"> 108826</td> <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 198</td> <td class="nbHitsCovered"> 204596</td> <td class="src"><pre class="src">  result = subLeft[x].compareToIgnoreCase(subRight[x]);</pre></td></tr> +<tr> <td class="numLineCover"> 197</td> <td class="nbHitsCovered"> 111444</td> <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 198</td> <td class="nbHitsCovered"> 208986</td> <td class="src"><pre class="src">  result = subLeft[x].compareToIgnoreCase(subRight[x]);</pre></td></tr> <tr> <td class="numLine"> 199</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 200</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 201</td> <td class="nbHitsCovered"><a title="Line 201: Conditional coverage 100% (2/2)."> 251509</a></td> <td class="src"><pre class="src"> <a title="Line 201: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (result == 0) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 202</td> <td class="nbHitsCovered"><a title="Line 202: Conditional coverage 100% (2/2)."> 203675</a></td> <td class="src"><pre class="src"> <a title="Line 202: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (subLeft.length > subRight.length) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 203</td> <td class="nbHitsCovered"> 1430</td> <td class="src"><pre class="src">  result = 2;</pre></td></tr> +<tr> <td class="numLineCover"> 201</td> <td class="nbHitsCovered"><a title="Line 201: Conditional coverage 100% (2/2)."> 256919</a></td> <td class="src"><pre class="src"> <a title="Line 201: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (result == 0) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 202</td> <td class="nbHitsCovered"><a title="Line 202: Conditional coverage 100% (2/2)."> 207915</a></td> <td class="src"><pre class="src"> <a title="Line 202: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (subLeft.length > subRight.length) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 203</td> <td class="nbHitsCovered"> 1442</td> <td class="src"><pre class="src">  result = 2;</pre></td></tr> <tr> <td class="numLine"> 204</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 205</td> <td class="nbHitsCovered"><a title="Line 205: Conditional coverage 100% (2/2)."> 203675</a></td> <td class="src"><pre class="src"> <a title="Line 205: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (subRight.length > subLeft.length) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 205</td> <td class="nbHitsCovered"><a title="Line 205: Conditional coverage 100% (2/2)."> 207915</a></td> <td class="src"><pre class="src"> <a title="Line 205: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (subRight.length > subLeft.length) {</a></pre></td></tr> <tr> <td class="numLineCover"> 206</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src">  result = -2;</pre></td></tr> <tr> <td class="numLine"> 207</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> @@ -376,13 +376,13 @@ <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 212</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 213</td> <td class="nbHitsCovered"><a title="Line 213: Conditional coverage 100% (2/2)."> 49859</a></td> <td class="src"><pre class="src"> <a title="Line 213: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (result == 0) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 214</td> <td class="nbHitsCovered"><a title="Line 214: Conditional coverage 100% (2/2)."> 588</a></td> <td class="src"><pre class="src"> <a title="Line 214: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (left.length > right.length) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 215</td> <td class="nbHitsCovered"> 578</td> <td class="src"><pre class="src">  result = 2;</pre></td></tr> +<tr> <td class="numLineCover"> 213</td> <td class="nbHitsCovered"><a title="Line 213: Conditional coverage 100% (2/2)."> 50941</a></td> <td class="src"><pre class="src"> <a title="Line 213: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (result == 0) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 214</td> <td class="nbHitsCovered"><a title="Line 214: Conditional coverage 100% (2/2)."> 488</a></td> <td class="src"><pre class="src"> <a title="Line 214: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (left.length > right.length) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 215</td> <td class="nbHitsCovered"> 474</td> <td class="src"><pre class="src">  result = 2;</pre></td></tr> <tr> <td class="numLine"> 216</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 217</td> <td class="nbHitsCovered"><a title="Line 217: Conditional coverage 100% (2/2)."> 588</a></td> <td class="src"><pre class="src"> <a title="Line 217: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (right.length > left.length) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 218</td> <td class="nbHitsCovered"> 10</td> <td class="src"><pre class="src">  result = -2;</pre></td></tr> +<tr> <td class="numLineCover"> 217</td> <td class="nbHitsCovered"><a title="Line 217: Conditional coverage 100% (2/2)."> 488</a></td> <td class="src"><pre class="src"> <a title="Line 217: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (right.length > left.length) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 218</td> <td class="nbHitsCovered"> 14</td> <td class="src"><pre class="src">  result = -2;</pre></td></tr> <tr> <td class="numLine"> 219</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 220</td> <td class="nbHits"> </td> @@ -392,7 +392,7 @@ <tr> <td class="numLineCover"> 222</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  result = <span class="keyword">this</span>.getName().compareToIgnoreCase(vs.getName());</span></pre></td></tr> <tr> <td class="numLine"> 223</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 224</td> <td class="nbHitsCovered"> 49859</td> <td class="src"><pre class="src">  <span class="keyword">return</span> result;</pre></td></tr> +<tr> <td class="numLineCover"> 224</td> <td class="nbHitsCovered"> 50941</td> <td class="src"><pre class="src">  <span class="keyword">return</span> result;</pre></td></tr> <tr> <td class="numLine"> 225</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 226</td> <td class="nbHits"> </td> @@ -411,19 +411,19 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 233</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">boolean</span> isPositiveInteger(<span class="keyword">final</span> String str) {</pre></td></tr> -<tr> <td class="numLineCover"> 234</td> <td class="nbHitsUncovered"><a title="Line 234: Conditional coverage 75% (3/4) [each condition: 50%, 100%]."> 422342</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 234: Conditional coverage 75% (3/4) [each condition: 50%, 100%]."> <span class="keyword">if</span> (str == <span class="keyword">null</span> || str.isEmpty()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 234</td> <td class="nbHitsUncovered"><a title="Line 234: Conditional coverage 75% (3/4) [each condition: 50%, 100%]."> 432036</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 234: Conditional coverage 75% (3/4) [each condition: 50%, 100%]."> <span class="keyword">if</span> (str == <span class="keyword">null</span> || str.isEmpty()) {</a></span></pre></td></tr> <tr> <td class="numLineCover"> 235</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">false</span>;</pre></td></tr> <tr> <td class="numLine"> 236</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 237</td> <td class="nbHitsCovered"><a title="Line 237: Conditional coverage 100% (2/2)."> 657204</a></td> <td class="src"><pre class="src"> <a title="Line 237: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i < str.length(); i++) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 238</td> <td class="nbHitsCovered"> 439458</td> <td class="src"><pre class="src">  <span class="keyword">final</span> <span class="keyword">char</span> c = str.charAt(i);</pre></td></tr> -<tr> <td class="numLineCover"> 239</td> <td class="nbHitsCovered"><a title="Line 239: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 439458</a></td> <td class="src"><pre class="src"> <a title="Line 239: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (c < <span class="string">'0'</span> || c > <span class="string">'9'</span>) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 240</td> <td class="nbHitsCovered"> 204584</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">false</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 237</td> <td class="nbHitsCovered"><a title="Line 237: Conditional coverage 100% (2/2)."> 672648</a></td> <td class="src"><pre class="src"> <a title="Line 237: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i < str.length(); i++) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 238</td> <td class="nbHitsCovered"> 449598</td> <td class="src"><pre class="src">  <span class="keyword">final</span> <span class="keyword">char</span> c = str.charAt(i);</pre></td></tr> +<tr> <td class="numLineCover"> 239</td> <td class="nbHitsCovered"><a title="Line 239: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 449598</a></td> <td class="src"><pre class="src"> <a title="Line 239: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (c < <span class="string">'0'</span> || c > <span class="string">'9'</span>) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 240</td> <td class="nbHitsCovered"> 208974</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">false</span>;</pre></td></tr> <tr> <td class="numLine"> 241</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 242</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 243</td> <td class="nbHitsCovered"> 217746</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">true</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 243</td> <td class="nbHitsCovered"> 223050</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">true</span>;</pre></td></tr> <tr> <td class="numLine"> 244</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 245</td> <td class="nbHits"> </td> @@ -448,7 +448,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 255</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> String getName() {</pre></td></tr> -<tr> <td class="numLineCover"> 256</td> <td class="nbHitsCovered"> 110720</td> <td class="src"><pre class="src">  <span class="keyword">return</span> name;</pre></td></tr> +<tr> <td class="numLineCover"> 256</td> <td class="nbHitsCovered"> 112990</td> <td class="src"><pre class="src">  <span class="keyword">return</span> name;</pre></td></tr> <tr> <td class="numLine"> 257</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 258</td> <td class="nbHits"> </td> @@ -489,7 +489,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 277</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> String getVersion() {</pre></td></tr> -<tr> <td class="numLineCover"> 278</td> <td class="nbHitsCovered"> 19587</td> <td class="src"><pre class="src">  <span class="keyword">return</span> version;</pre></td></tr> +<tr> <td class="numLineCover"> 278</td> <td class="nbHitsCovered"> 19722</td> <td class="src"><pre class="src">  <span class="keyword">return</span> version;</pre></td></tr> <tr> <td class="numLine"> 279</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 280</td> <td class="nbHits"> </td> @@ -530,7 +530,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 299</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> String getRevision() {</pre></td></tr> -<tr> <td class="numLineCover"> 300</td> <td class="nbHitsCovered"> 19171</td> <td class="src"><pre class="src">  <span class="keyword">return</span> revision;</pre></td></tr> +<tr> <td class="numLineCover"> 300</td> <td class="nbHitsCovered"> 19232</td> <td class="src"><pre class="src">  <span class="keyword">return</span> revision;</pre></td></tr> <tr> <td class="numLine"> 301</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 302</td> <td class="nbHits"> </td> @@ -594,6 +594,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.MavenNamespaceFilter.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.MavenNamespaceFilter.html index 720a9214b..39690b519 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.MavenNamespaceFilter.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.MavenNamespaceFilter.html @@ -198,6 +198,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Activation.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Activation.html index f32c33c8b..329a2c10d 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Activation.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Activation.html @@ -393,6 +393,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ActivationFile.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ActivationFile.html index 3f42df27c..5afae884c 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ActivationFile.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ActivationFile.html @@ -226,6 +226,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ActivationOS.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ActivationOS.html index 46f6ed79e..6f9853584 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ActivationOS.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ActivationOS.html @@ -334,6 +334,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ActivationProperty.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ActivationProperty.html index c0903cd28..c5c120348 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ActivationProperty.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ActivationProperty.html @@ -226,6 +226,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Build.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Build.html index 0963ab698..88c6f8380 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Build.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Build.html @@ -1586,6 +1586,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.html index fcc331bc4..46142d3e9 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.BuildBase.html @@ -1115,6 +1115,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.CiManagement.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.CiManagement.html index e22bea85b..b4940d33d 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.CiManagement.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.CiManagement.html @@ -417,6 +417,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Contributor.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Contributor.html index 2a885ef91..824e5aad2 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Contributor.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Contributor.html @@ -847,6 +847,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Dependency.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Dependency.html index 5851539fc..acd46c500 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Dependency.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Dependency.html @@ -753,6 +753,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.DependencyManagement.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.DependencyManagement.html index 77174b8af..e1cafd049 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.DependencyManagement.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.DependencyManagement.html @@ -311,6 +311,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.DeploymentRepository.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.DeploymentRepository.html index 38abac946..ef768f0fe 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.DeploymentRepository.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.DeploymentRepository.html @@ -393,6 +393,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Developer.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Developer.html index 83141a378..dc0ab9229 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Developer.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Developer.html @@ -898,6 +898,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.DistributionManagement.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.DistributionManagement.html index 380f841a4..a0b1c919e 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.DistributionManagement.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.DistributionManagement.html @@ -446,6 +446,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Exclusion.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Exclusion.html index 8111cdfe1..8075edf5c 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Exclusion.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Exclusion.html @@ -218,6 +218,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Extension.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Extension.html index 74f363f01..7b30054be 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Extension.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Extension.html @@ -273,6 +273,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.IssueManagement.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.IssueManagement.html index a6a67a9a1..4d52bead9 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.IssueManagement.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.IssueManagement.html @@ -222,6 +222,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.License.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.License.html index 3d4a27afe..36c5fad0a 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.License.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.License.html @@ -336,6 +336,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.MailingList.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.MailingList.html index 1625b5435..f741f27fd 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.MailingList.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.MailingList.html @@ -588,6 +588,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Model.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Model.html index b3e2b0397..2359dc3c7 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Model.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Model.html @@ -3330,6 +3330,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Notifier.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Notifier.html index 5db6569b0..5cc885f09 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Notifier.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Notifier.html @@ -659,6 +659,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ObjectFactory.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ObjectFactory.html index f74b22506..60e6308cc 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ObjectFactory.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ObjectFactory.html @@ -1394,6 +1394,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Organization.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Organization.html index e1aa3d2a0..aa0d909e7 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Organization.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Organization.html @@ -218,6 +218,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Parent.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Parent.html index ec8952d2e..42b81a712 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Parent.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Parent.html @@ -332,6 +332,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Plugin.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Plugin.html index 24bd1adb5..969c57262 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Plugin.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Plugin.html @@ -1184,6 +1184,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.html index 8274cbcb3..9c4cc9b69 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.PluginExecution.html @@ -678,6 +678,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.PluginManagement.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.PluginManagement.html index 0dae3f09f..5548e27ac 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.PluginManagement.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.PluginManagement.html @@ -311,6 +311,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Prerequisites.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Prerequisites.html index 914074b30..951cd50e7 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Prerequisites.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Prerequisites.html @@ -167,6 +167,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Profile.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Profile.html index 8de0457c6..0795d5d6a 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Profile.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Profile.html @@ -1629,6 +1629,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Relocation.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Relocation.html index e286ec354..797209bcc 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Relocation.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Relocation.html @@ -330,6 +330,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin.html index 57bb32623..475c46a25 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ReportPlugin.html @@ -733,6 +733,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ReportSet.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ReportSet.html index 28aba3a82..456e96c49 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ReportSet.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.ReportSet.html @@ -623,6 +623,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Reporting.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Reporting.html index 408b239a9..e549deace 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Reporting.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Reporting.html @@ -421,6 +421,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Repository.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Repository.html index 0cd57a88a..edbb7fcd0 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Repository.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Repository.html @@ -446,6 +446,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.RepositoryPolicy.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.RepositoryPolicy.html index 706955dbd..9e3fa2f6a 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.RepositoryPolicy.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.RepositoryPolicy.html @@ -277,6 +277,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Resource.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Resource.html index f4abaae10..8ff6ca60c 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Resource.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Resource.html @@ -678,6 +678,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Scm.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Scm.html index f816b8bb1..14f7aed48 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Scm.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Scm.html @@ -332,6 +332,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Site.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Site.html index e9c672d11..8e5f64632 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Site.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.Site.html @@ -277,6 +277,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.package-info.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.package-info.html index dc250beb3..077c36ac2 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.package-info.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.jaxb.pom.generated.package-info.html @@ -37,6 +37,6 @@ <td class="src"><pre class="src"> <span class="keyword">package</span> org.owasp.dependencycheck.jaxb.pom.generated;</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.reporting.ReportGenerator.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.reporting.ReportGenerator.html index b8914ea50..8db78ef53 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.reporting.ReportGenerator.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.reporting.ReportGenerator.html @@ -437,6 +437,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.reporting.VelocityLoggerRedirect.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.reporting.VelocityLoggerRedirect.html index 1a5242892..b300f2914 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.reporting.VelocityLoggerRedirect.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.reporting.VelocityLoggerRedirect.html @@ -221,6 +221,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.Checksum.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.Checksum.html index 83b220801..db64fc027 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.Checksum.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.Checksum.html @@ -88,36 +88,36 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 36</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">byte</span>[] getChecksum(String algorithm, File file) <span class="keyword">throws</span> NoSuchAlgorithmException, IOException {</pre></td></tr> -<tr> <td class="numLineCover"> 37</td> <td class="nbHitsCovered"> 75</td> <td class="src"><pre class="src">  InputStream fis = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 38</td> <td class="nbHitsCovered"> 75</td> <td class="src"><pre class="src">  <span class="keyword">byte</span>[] buffer = <span class="keyword">new</span> <span class="keyword">byte</span>[1024];</pre></td></tr> -<tr> <td class="numLineCover"> 39</td> <td class="nbHitsCovered"> 75</td> <td class="src"><pre class="src">  MessageDigest complete = MessageDigest.getInstance(algorithm);</pre></td></tr> +<tr> <td class="numLineCover"> 37</td> <td class="nbHitsCovered"> 77</td> <td class="src"><pre class="src">  InputStream fis = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 38</td> <td class="nbHitsCovered"> 77</td> <td class="src"><pre class="src">  <span class="keyword">byte</span>[] buffer = <span class="keyword">new</span> <span class="keyword">byte</span>[1024];</pre></td></tr> +<tr> <td class="numLineCover"> 39</td> <td class="nbHitsCovered"> 77</td> <td class="src"><pre class="src">  MessageDigest complete = MessageDigest.getInstance(algorithm);</pre></td></tr> <tr> <td class="numLine"> 40</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">int</span> numRead;</pre></td></tr> <tr> <td class="numLine"> 41</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 42</td> <td class="nbHitsCovered"> 74</td> <td class="src"><pre class="src">  fis = <span class="keyword">new</span> FileInputStream(file);</pre></td></tr> +<tr> <td class="numLineCover"> 42</td> <td class="nbHitsCovered"> 76</td> <td class="src"><pre class="src">  fis = <span class="keyword">new</span> FileInputStream(file);</pre></td></tr> <tr> <td class="numLine"> 43</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">do</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 44</td> <td class="nbHitsCovered"> 39350</td> <td class="src"><pre class="src">  numRead = fis.read(buffer);</pre></td></tr> -<tr> <td class="numLineCover"> 45</td> <td class="nbHitsCovered"><a title="Line 45: Conditional coverage 100% (2/2)."> 39350</a></td> <td class="src"><pre class="src"> <a title="Line 45: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (numRead > 0) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 46</td> <td class="nbHitsCovered"> 39277</td> <td class="src"><pre class="src">  complete.update(buffer, 0, numRead);</pre></td></tr> +<tr> <td class="numLineCover"> 44</td> <td class="nbHitsCovered"> 40746</td> <td class="src"><pre class="src">  numRead = fis.read(buffer);</pre></td></tr> +<tr> <td class="numLineCover"> 45</td> <td class="nbHitsCovered"><a title="Line 45: Conditional coverage 100% (2/2)."> 40746</a></td> <td class="src"><pre class="src"> <a title="Line 45: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (numRead > 0) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 46</td> <td class="nbHitsCovered"> 40671</td> <td class="src"><pre class="src">  complete.update(buffer, 0, numRead);</pre></td></tr> <tr> <td class="numLine"> 47</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 48</td> <td class="nbHitsCovered"><a title="Line 48: Conditional coverage 100% (2/2)."> 39350</a></td> <td class="src"><pre class="src"> <a title="Line 48: Conditional coverage 100% (2/2)."> } <span class="keyword">while</span> (numRead != -1);</a></pre></td></tr> +<tr> <td class="numLineCover"> 48</td> <td class="nbHitsCovered"><a title="Line 48: Conditional coverage 100% (2/2)."> 40746</a></td> <td class="src"><pre class="src"> <a title="Line 48: Conditional coverage 100% (2/2)."> } <span class="keyword">while</span> (numRead != -1);</a></pre></td></tr> <tr> <td class="numLine"> 49</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  } <span class="keyword">finally</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 50</td> <td class="nbHitsCovered"><a title="Line 50: Conditional coverage 100% (2/2)."> 74</a></td> <td class="src"><pre class="src"> <a title="Line 50: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (fis != <span class="keyword">null</span>) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 50</td> <td class="nbHitsCovered"><a title="Line 50: Conditional coverage 100% (2/2)."> 76</a></td> <td class="src"><pre class="src"> <a title="Line 50: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (fis != <span class="keyword">null</span>) {</a></pre></td></tr> <tr> <td class="numLine"> 51</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 52</td> <td class="nbHitsCovered"> 73</td> <td class="src"><pre class="src">  fis.close();</pre></td></tr> +<tr> <td class="numLineCover"> 52</td> <td class="nbHitsCovered"> 75</td> <td class="src"><pre class="src">  fis.close();</pre></td></tr> <tr> <td class="numLineCover"> 53</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr> <tr> <td class="numLineCover"> 54</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Checksum.<span class="keyword">class</span>.getName()).log(Level.FINEST, <span class="string">"Error closing file '"</span> + file.getName() + <span class="string">"'."</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 55</td> <td class="nbHitsCovered"> 74</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 55</td> <td class="nbHitsCovered"> 76</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 56</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 57</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 58</td> <td class="nbHitsCovered"> 73</td> <td class="src"><pre class="src">  <span class="keyword">return</span> complete.digest();</pre></td></tr> +<tr> <td class="numLineCover"> 58</td> <td class="nbHitsCovered"> 75</td> <td class="src"><pre class="src">  <span class="keyword">return</span> complete.digest();</pre></td></tr> <tr> <td class="numLine"> 59</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 60</td> <td class="nbHits"> </td> @@ -140,8 +140,8 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 69</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> String getMD5Checksum(File file) <span class="keyword">throws</span> IOException, NoSuchAlgorithmException {</pre></td></tr> -<tr> <td class="numLineCover"> 70</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src">  <span class="keyword">byte</span>[] b = getChecksum(<span class="string">"MD5"</span>, file);</pre></td></tr> -<tr> <td class="numLineCover"> 71</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src">  <span class="keyword">return</span> getHex(b);</pre></td></tr> +<tr> <td class="numLineCover"> 70</td> <td class="nbHitsCovered"> 37</td> <td class="src"><pre class="src">  <span class="keyword">byte</span>[] b = getChecksum(<span class="string">"MD5"</span>, file);</pre></td></tr> +<tr> <td class="numLineCover"> 71</td> <td class="nbHitsCovered"> 37</td> <td class="src"><pre class="src">  <span class="keyword">return</span> getHex(b);</pre></td></tr> <tr> <td class="numLine"> 72</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 73</td> <td class="nbHits"> </td> @@ -164,8 +164,8 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 82</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> String getSHA1Checksum(File file) <span class="keyword">throws</span> IOException, NoSuchAlgorithmException {</pre></td></tr> -<tr> <td class="numLineCover"> 83</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src">  <span class="keyword">byte</span>[] b = getChecksum(<span class="string">"SHA1"</span>, file);</pre></td></tr> -<tr> <td class="numLineCover"> 84</td> <td class="nbHitsCovered"> 36</td> <td class="src"><pre class="src">  <span class="keyword">return</span> getHex(b);</pre></td></tr> +<tr> <td class="numLineCover"> 83</td> <td class="nbHitsCovered"> 37</td> <td class="src"><pre class="src">  <span class="keyword">byte</span>[] b = getChecksum(<span class="string">"SHA1"</span>, file);</pre></td></tr> +<tr> <td class="numLineCover"> 84</td> <td class="nbHitsCovered"> 37</td> <td class="src"><pre class="src">  <span class="keyword">return</span> getHex(b);</pre></td></tr> <tr> <td class="numLine"> 85</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 86</td> <td class="nbHits"> </td> @@ -192,22 +192,22 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 97</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> String getHex(<span class="keyword">byte</span>[] raw) {</pre></td></tr> -<tr> <td class="numLineCover"> 98</td> <td class="nbHitsUncovered"><a title="Line 98: Conditional coverage 50% (1/2)."> 73</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 98: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (raw == <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 98</td> <td class="nbHitsUncovered"><a title="Line 98: Conditional coverage 50% (1/2)."> 75</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 98: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (raw == <span class="keyword">null</span>) {</a></span></pre></td></tr> <tr> <td class="numLineCover"> 99</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">null</span>;</span></pre></td></tr> <tr> <td class="numLine"> 100</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 101</td> <td class="nbHitsCovered"> 73</td> <td class="src"><pre class="src">  <span class="keyword">final</span> StringBuilder hex = <span class="keyword">new</span> StringBuilder(2 * raw.length);</pre></td></tr> -<tr> <td class="numLineCover"> 102</td> <td class="nbHitsCovered"><a title="Line 102: Conditional coverage 100% (2/2)."> 1386</a></td> <td class="src"><pre class="src"> <a title="Line 102: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">final</span> <span class="keyword">byte</span> b : raw) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 103</td> <td class="nbHitsCovered"> 1313</td> <td class="src"><pre class="src">  hex.append(HEXES.charAt((b & 0xF0) >> 4)).append(HEXES.charAt((b & 0x0F)));</pre></td></tr> +<tr> <td class="numLineCover"> 101</td> <td class="nbHitsCovered"> 75</td> <td class="src"><pre class="src">  <span class="keyword">final</span> StringBuilder hex = <span class="keyword">new</span> StringBuilder(2 * raw.length);</pre></td></tr> +<tr> <td class="numLineCover"> 102</td> <td class="nbHitsCovered"><a title="Line 102: Conditional coverage 100% (2/2)."> 1424</a></td> <td class="src"><pre class="src"> <a title="Line 102: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">final</span> <span class="keyword">byte</span> b : raw) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 103</td> <td class="nbHitsCovered"> 1349</td> <td class="src"><pre class="src">  hex.append(HEXES.charAt((b & 0xF0) >> 4)).append(HEXES.charAt((b & 0x0F)));</pre></td></tr> <tr> <td class="numLine"> 104</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 105</td> <td class="nbHitsCovered"> 73</td> <td class="src"><pre class="src">  <span class="keyword">return</span> hex.toString();</pre></td></tr> +<tr> <td class="numLineCover"> 105</td> <td class="nbHitsCovered"> 75</td> <td class="src"><pre class="src">  <span class="keyword">return</span> hex.toString();</pre></td></tr> <tr> <td class="numLine"> 106</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 107</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.DependencyVersion.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.DependencyVersion.html index 8b624b683..e556840c3 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.DependencyVersion.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.DependencyVersion.html @@ -126,9 +126,9 @@ <td class="src"><pre class="src"> <span class="comment"> * @param version the well formated version number to parse</span></pre></td></tr> <tr> <td class="numLine"> 56</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 57</td> <td class="nbHitsCovered"> 12808</td> <td class="src"><pre class="src">  <span class="keyword">public</span> DependencyVersion(String version) {</pre></td></tr> -<tr> <td class="numLineCover"> 58</td> <td class="nbHitsCovered"> 12808</td> <td class="src"><pre class="src">  parseVersion(version);</pre></td></tr> -<tr> <td class="numLineCover"> 59</td> <td class="nbHitsCovered"> 12808</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 57</td> <td class="nbHitsCovered"> 12869</td> <td class="src"><pre class="src">  <span class="keyword">public</span> DependencyVersion(String version) {</pre></td></tr> +<tr> <td class="numLineCover"> 58</td> <td class="nbHitsCovered"> 12869</td> <td class="src"><pre class="src">  parseVersion(version);</pre></td></tr> +<tr> <td class="numLineCover"> 59</td> <td class="nbHitsCovered"> 12869</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 60</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 61</td> <td class="nbHits"> </td> @@ -147,21 +147,21 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 68</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">void</span> parseVersion(String version) {</pre></td></tr> -<tr> <td class="numLineCover"> 69</td> <td class="nbHitsCovered"> 12810</td> <td class="src"><pre class="src">  versionParts = <span class="keyword">new</span> ArrayList<String>();</pre></td></tr> -<tr> <td class="numLineCover"> 70</td> <td class="nbHitsUncovered"><a title="Line 70: Conditional coverage 50% (1/2)."> 12810</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 70: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (version != <span class="keyword">null</span>) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 71</td> <td class="nbHitsCovered"> 12810</td> <td class="src"><pre class="src">  <span class="keyword">final</span> Pattern rx = Pattern.compile(<span class="string">"(\\d+|[a-z]+\\d+|(release|beta|alpha)$)"</span>);</pre></td></tr> -<tr> <td class="numLineCover"> 72</td> <td class="nbHitsCovered"> 12810</td> <td class="src"><pre class="src">  <span class="keyword">final</span> Matcher matcher = rx.matcher(version.toLowerCase());</pre></td></tr> -<tr> <td class="numLineCover"> 73</td> <td class="nbHitsCovered"><a title="Line 73: Conditional coverage 100% (2/2)."> 52728</a></td> <td class="src"><pre class="src"> <a title="Line 73: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (matcher.find()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 74</td> <td class="nbHitsCovered"> 39918</td> <td class="src"><pre class="src">  versionParts.add(matcher.group());</pre></td></tr> +<tr> <td class="numLineCover"> 69</td> <td class="nbHitsCovered"> 12871</td> <td class="src"><pre class="src">  versionParts = <span class="keyword">new</span> ArrayList<String>();</pre></td></tr> +<tr> <td class="numLineCover"> 70</td> <td class="nbHitsUncovered"><a title="Line 70: Conditional coverage 50% (1/2)."> 12871</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 70: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (version != <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 71</td> <td class="nbHitsCovered"> 12871</td> <td class="src"><pre class="src">  <span class="keyword">final</span> Pattern rx = Pattern.compile(<span class="string">"(\\d+|[a-z]+\\d+|(release|beta|alpha)$)"</span>);</pre></td></tr> +<tr> <td class="numLineCover"> 72</td> <td class="nbHitsCovered"> 12871</td> <td class="src"><pre class="src">  <span class="keyword">final</span> Matcher matcher = rx.matcher(version.toLowerCase());</pre></td></tr> +<tr> <td class="numLineCover"> 73</td> <td class="nbHitsCovered"><a title="Line 73: Conditional coverage 100% (2/2)."> 53001</a></td> <td class="src"><pre class="src"> <a title="Line 73: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (matcher.find()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 74</td> <td class="nbHitsCovered"> 40130</td> <td class="src"><pre class="src">  versionParts.add(matcher.group());</pre></td></tr> <tr> <td class="numLine"> 75</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 76</td> <td class="nbHitsCovered"><a title="Line 76: Conditional coverage 100% (2/2)."> 12810</a></td> <td class="src"><pre class="src"> <a title="Line 76: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (versionParts.isEmpty()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 76</td> <td class="nbHitsCovered"><a title="Line 76: Conditional coverage 100% (2/2)."> 12871</a></td> <td class="src"><pre class="src"> <a title="Line 76: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (versionParts.isEmpty()) {</a></pre></td></tr> <tr> <td class="numLineCover"> 77</td> <td class="nbHitsCovered"> 77</td> <td class="src"><pre class="src">  versionParts.add(version);</pre></td></tr> <tr> <td class="numLine"> 78</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 79</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 80</td> <td class="nbHitsCovered"> 12810</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 80</td> <td class="nbHitsCovered"> 12871</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 81</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 82</td> <td class="nbHits"> </td> @@ -184,7 +184,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 91</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> List<String> getVersionParts() {</pre></td></tr> -<tr> <td class="numLineCover"> 92</td> <td class="nbHitsCovered"> 18190</td> <td class="src"><pre class="src">  <span class="keyword">return</span> versionParts;</pre></td></tr> +<tr> <td class="numLineCover"> 92</td> <td class="nbHitsCovered"> 18242</td> <td class="src"><pre class="src">  <span class="keyword">return</span> versionParts;</pre></td></tr> <tr> <td class="numLine"> 93</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 94</td> <td class="nbHits"> </td> @@ -236,7 +236,7 @@ <td class="src"><pre class="src">  @Override</pre></td></tr> <tr> <td class="numLine"> 119</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> String toString() {</pre></td></tr> -<tr> <td class="numLineCover"> 120</td> <td class="nbHitsCovered"> 3681</td> <td class="src"><pre class="src">  <span class="keyword">return</span> StringUtils.join(versionParts.toArray(), <span class="string">"."</span>);</pre></td></tr> +<tr> <td class="numLineCover"> 120</td> <td class="nbHitsCovered"> 3718</td> <td class="src"><pre class="src">  <span class="keyword">return</span> StringUtils.join(versionParts.toArray(), <span class="string">"."</span>);</pre></td></tr> <tr> <td class="numLine"> 121</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 122</td> <td class="nbHits"> </td> @@ -257,30 +257,30 @@ <td class="src"><pre class="src">  @Override</pre></td></tr> <tr> <td class="numLine"> 130</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> equals(Object obj) {</pre></td></tr> -<tr> <td class="numLineCover"> 131</td> <td class="nbHitsUncovered"><a title="Line 131: Conditional coverage 50% (1/2)."> 12444</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 131: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (obj == <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 131</td> <td class="nbHitsUncovered"><a title="Line 131: Conditional coverage 50% (1/2)."> 12505</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 131: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (obj == <span class="keyword">null</span>) {</a></span></pre></td></tr> <tr> <td class="numLineCover"> 132</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr> <tr> <td class="numLine"> 133</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 134</td> <td class="nbHitsUncovered"><a title="Line 134: Conditional coverage 50% (1/2)."> 12444</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 134: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (getClass() != obj.getClass()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 134</td> <td class="nbHitsUncovered"><a title="Line 134: Conditional coverage 50% (1/2)."> 12505</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 134: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (getClass() != obj.getClass()) {</a></span></pre></td></tr> <tr> <td class="numLineCover"> 135</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr> <tr> <td class="numLine"> 136</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 137</td> <td class="nbHitsCovered"> 12444</td> <td class="src"><pre class="src">  <span class="keyword">final</span> DependencyVersion other = (DependencyVersion) obj;</pre></td></tr> -<tr> <td class="numLineCover"> 138</td> <td class="nbHitsCovered"><a title="Line 138: Conditional coverage 100% (2/2)."> 12444</a></td> <td class="src"><pre class="src"> <a title="Line 138: Conditional coverage 100% (2/2)."> <span class="keyword">final</span> <span class="keyword">int</span> max = (<span class="keyword">this</span>.versionParts.size() < other.versionParts.size())</a></pre></td></tr> +<tr> <td class="numLineCover"> 137</td> <td class="nbHitsCovered"> 12505</td> <td class="src"><pre class="src">  <span class="keyword">final</span> DependencyVersion other = (DependencyVersion) obj;</pre></td></tr> +<tr> <td class="numLineCover"> 138</td> <td class="nbHitsCovered"><a title="Line 138: Conditional coverage 100% (2/2)."> 12505</a></td> <td class="src"><pre class="src"> <a title="Line 138: Conditional coverage 100% (2/2)."> <span class="keyword">final</span> <span class="keyword">int</span> max = (<span class="keyword">this</span>.versionParts.size() < other.versionParts.size())</a></pre></td></tr> <tr> <td class="numLine"> 139</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  ? <span class="keyword">this</span>.versionParts.size() : other.versionParts.size();</pre></td></tr> <tr> <td class="numLine"> 140</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">//TODO steal better version of code from compareTo</span></pre></td></tr> -<tr> <td class="numLineCover"> 141</td> <td class="nbHitsCovered"><a title="Line 141: Conditional coverage 100% (2/2)."> 18863</a></td> <td class="src"><pre class="src"> <a title="Line 141: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i < max; i++) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 142</td> <td class="nbHitsCovered"> 18174</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String thisPart = <span class="keyword">this</span>.versionParts.get(i);</pre></td></tr> -<tr> <td class="numLineCover"> 143</td> <td class="nbHitsCovered"> 18174</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String otherPart = other.versionParts.get(i);</pre></td></tr> -<tr> <td class="numLineCover"> 144</td> <td class="nbHitsCovered"><a title="Line 144: Conditional coverage 100% (2/2)."> 18174</a></td> <td class="src"><pre class="src"> <a title="Line 144: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!thisPart.equals(otherPart)) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 145</td> <td class="nbHitsCovered"> 11755</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">false</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 141</td> <td class="nbHitsCovered"><a title="Line 141: Conditional coverage 100% (2/2)."> 18989</a></td> <td class="src"><pre class="src"> <a title="Line 141: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i < max; i++) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 142</td> <td class="nbHitsCovered"> 18298</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String thisPart = <span class="keyword">this</span>.versionParts.get(i);</pre></td></tr> +<tr> <td class="numLineCover"> 143</td> <td class="nbHitsCovered"> 18298</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String otherPart = other.versionParts.get(i);</pre></td></tr> +<tr> <td class="numLineCover"> 144</td> <td class="nbHitsCovered"><a title="Line 144: Conditional coverage 100% (2/2)."> 18298</a></td> <td class="src"><pre class="src"> <a title="Line 144: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!thisPart.equals(otherPart)) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 145</td> <td class="nbHitsCovered"> 11814</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">false</span>;</pre></td></tr> <tr> <td class="numLine"> 146</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 147</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 148</td> <td class="nbHitsCovered"><a title="Line 148: Conditional coverage 100% (2/2)."> 689</a></td> <td class="src"><pre class="src"> <a title="Line 148: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (<span class="keyword">this</span>.versionParts.size() > max) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 148</td> <td class="nbHitsCovered"><a title="Line 148: Conditional coverage 100% (2/2)."> 691</a></td> <td class="src"><pre class="src"> <a title="Line 148: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (<span class="keyword">this</span>.versionParts.size() > max) {</a></pre></td></tr> <tr> <td class="numLineCover"> 149</td> <td class="nbHitsUncovered"><a title="Line 149: Conditional coverage 50% (1/2)."> 86</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 149: Conditional coverage 50% (1/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = max; i < <span class="keyword">this</span>.versionParts.size(); i++) {</a></span></pre></td></tr> <tr> <td class="numLineCover"> 150</td> <td class="nbHitsUncovered"><a title="Line 150: Conditional coverage 50% (1/2)."> 86</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 150: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (!<span class="string">"0"</span>.equals(<span class="keyword">this</span>.versionParts.get(i))) {</a></span></pre></td></tr> <tr> <td class="numLineCover"> 151</td> <td class="nbHitsCovered"> 86</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">false</span>;</pre></td></tr> @@ -292,7 +292,7 @@ <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 155</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 156</td> <td class="nbHitsCovered"><a title="Line 156: Conditional coverage 100% (2/2)."> 603</a></td> <td class="src"><pre class="src"> <a title="Line 156: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (other.versionParts.size() > max) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 156</td> <td class="nbHitsCovered"><a title="Line 156: Conditional coverage 100% (2/2)."> 605</a></td> <td class="src"><pre class="src"> <a title="Line 156: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (other.versionParts.size() > max) {</a></pre></td></tr> <tr> <td class="numLineCover"> 157</td> <td class="nbHitsCovered"><a title="Line 157: Conditional coverage 100% (2/2)."> 463</a></td> <td class="src"><pre class="src"> <a title="Line 157: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = max; i < other.versionParts.size(); i++) {</a></pre></td></tr> <tr> <td class="numLineCover"> 158</td> <td class="nbHitsCovered"><a title="Line 158: Conditional coverage 100% (2/2)."> 447</a></td> <td class="src"><pre class="src"> <a title="Line 158: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!<span class="string">"0"</span>.equals(other.versionParts.get(i))) {</a></pre></td></tr> <tr> <td class="numLineCover"> 159</td> <td class="nbHitsCovered"> 415</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">false</span>;</pre></td></tr> @@ -314,7 +314,7 @@ <td class="src"><pre class="src"> <span class="comment"> * }</span></pre></td></tr> <tr> <td class="numLine"> 168</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 169</td> <td class="nbHitsCovered"> 188</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">true</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 169</td> <td class="nbHitsCovered"> 190</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">true</span>;</pre></td></tr> <tr> <td class="numLine"> 170</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 171</td> <td class="nbHits"> </td> @@ -358,35 +358,35 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 192</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> matchesAtLeastThreeLevels(DependencyVersion version) {</pre></td></tr> -<tr> <td class="numLineCover"> 193</td> <td class="nbHitsUncovered"><a title="Line 193: Conditional coverage 50% (1/2)."> 8335</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 193: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (version == <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 193</td> <td class="nbHitsUncovered"><a title="Line 193: Conditional coverage 50% (1/2)."> 8359</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 193: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (version == <span class="keyword">null</span>) {</a></span></pre></td></tr> <tr> <td class="numLineCover"> 194</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr> <tr> <td class="numLine"> 195</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 196</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 197</td> <td class="nbHitsCovered"> 8335</td> <td class="src"><pre class="src">  <span class="keyword">boolean</span> ret = <span class="keyword">true</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 198</td> <td class="nbHitsCovered"><a title="Line 198: Conditional coverage 100% (2/2)."> 8335</a></td> <td class="src"><pre class="src"> <a title="Line 198: Conditional coverage 100% (2/2)."> <span class="keyword">int</span> max = (<span class="keyword">this</span>.versionParts.size() < version.versionParts.size())</a></pre></td></tr> +<tr> <td class="numLineCover"> 197</td> <td class="nbHitsCovered"> 8359</td> <td class="src"><pre class="src">  <span class="keyword">boolean</span> ret = <span class="keyword">true</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 198</td> <td class="nbHitsCovered"><a title="Line 198: Conditional coverage 100% (2/2)."> 8359</a></td> <td class="src"><pre class="src"> <a title="Line 198: Conditional coverage 100% (2/2)."> <span class="keyword">int</span> max = (<span class="keyword">this</span>.versionParts.size() < version.versionParts.size())</a></pre></td></tr> <tr> <td class="numLine"> 199</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  ? <span class="keyword">this</span>.versionParts.size() : version.versionParts.size();</pre></td></tr> <tr> <td class="numLine"> 200</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 201</td> <td class="nbHitsCovered"><a title="Line 201: Conditional coverage 100% (2/2)."> 8335</a></td> <td class="src"><pre class="src"> <a title="Line 201: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (max > 3) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 201</td> <td class="nbHitsCovered"><a title="Line 201: Conditional coverage 100% (2/2)."> 8359</a></td> <td class="src"><pre class="src"> <a title="Line 201: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (max > 3) {</a></pre></td></tr> <tr> <td class="numLineCover"> 202</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  max = 3;</pre></td></tr> <tr> <td class="numLine"> 203</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 204</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 205</td> <td class="nbHitsCovered"><a title="Line 205: Conditional coverage 100% (2/2)."> 12626</a></td> <td class="src"><pre class="src"> <a title="Line 205: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i < max; i++) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 206</td> <td class="nbHitsUncovered"><a title="Line 206: Conditional coverage 75% (3/4) [each condition: 50%, 100%]."> 12212</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 206: Conditional coverage 75% (3/4) [each condition: 50%, 100%]."> <span class="keyword">if</span> (<span class="keyword">this</span>.versionParts.get(i) == <span class="keyword">null</span> || !<span class="keyword">this</span>.versionParts.get(i).equals(version.versionParts.get(i))) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 207</td> <td class="nbHitsCovered"> 7921</td> <td class="src"><pre class="src">  ret = <span class="keyword">false</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 208</td> <td class="nbHitsCovered"> 7921</td> <td class="src"><pre class="src">  <span class="keyword">break</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 205</td> <td class="nbHitsCovered"><a title="Line 205: Conditional coverage 100% (2/2)."> 12674</a></td> <td class="src"><pre class="src"> <a title="Line 205: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i < max; i++) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 206</td> <td class="nbHitsUncovered"><a title="Line 206: Conditional coverage 75% (3/4) [each condition: 50%, 100%]."> 12260</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 206: Conditional coverage 75% (3/4) [each condition: 50%, 100%]."> <span class="keyword">if</span> (<span class="keyword">this</span>.versionParts.get(i) == <span class="keyword">null</span> || !<span class="keyword">this</span>.versionParts.get(i).equals(version.versionParts.get(i))) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 207</td> <td class="nbHitsCovered"> 7945</td> <td class="src"><pre class="src">  ret = <span class="keyword">false</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 208</td> <td class="nbHitsCovered"> 7945</td> <td class="src"><pre class="src">  <span class="keyword">break</span>;</pre></td></tr> <tr> <td class="numLine"> 209</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 210</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 211</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 212</td> <td class="nbHitsCovered"> 8335</td> <td class="src"><pre class="src">  <span class="keyword">return</span> ret;</pre></td></tr> +<tr> <td class="numLineCover"> 212</td> <td class="nbHitsCovered"> 8359</td> <td class="src"><pre class="src">  <span class="keyword">return</span> ret;</pre></td></tr> <tr> <td class="numLine"> 213</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 214</td> <td class="nbHits"> </td> @@ -447,6 +447,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.DependencyVersionUtil.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.DependencyVersionUtil.html index d9f142fd0..97c1692c3 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.DependencyVersionUtil.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.DependencyVersionUtil.html @@ -133,13 +133,13 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 60</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> DependencyVersion parseVersion(String text) {</pre></td></tr> -<tr> <td class="numLineCover"> 61</td> <td class="nbHitsCovered"><a title="Line 61: Conditional coverage 100% (2/2)."> 12774</a></td> <td class="src"><pre class="src"> <a title="Line 61: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (text == <span class="keyword">null</span>) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 61</td> <td class="nbHitsCovered"><a title="Line 61: Conditional coverage 100% (2/2)."> 12835</a></td> <td class="src"><pre class="src"> <a title="Line 61: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (text == <span class="keyword">null</span>) {</a></pre></td></tr> <tr> <td class="numLineCover"> 62</td> <td class="nbHitsCovered"> 40</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">null</span>;</pre></td></tr> <tr> <td class="numLine"> 63</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 64</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">//'-' is a special case used within the CVE entries, just include it as the version.</span></pre></td></tr> -<tr> <td class="numLineCover"> 65</td> <td class="nbHitsCovered"><a title="Line 65: Conditional coverage 100% (2/2)."> 12734</a></td> <td class="src"><pre class="src"> <a title="Line 65: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (<span class="string">"-"</span>.equals(text)) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 65</td> <td class="nbHitsCovered"><a title="Line 65: Conditional coverage 100% (2/2)."> 12795</a></td> <td class="src"><pre class="src"> <a title="Line 65: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (<span class="string">"-"</span>.equals(text)) {</a></pre></td></tr> <tr> <td class="numLineCover"> 66</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  <span class="keyword">final</span> DependencyVersion dv = <span class="keyword">new</span> DependencyVersion();</pre></td></tr> <tr> <td class="numLineCover"> 67</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  <span class="keyword">final</span> ArrayList<String> list = <span class="keyword">new</span> ArrayList<String>();</pre></td></tr> <tr> <td class="numLineCover"> 68</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  list.add(text);</pre></td></tr> @@ -147,19 +147,19 @@ <tr> <td class="numLineCover"> 70</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src">  <span class="keyword">return</span> dv;</pre></td></tr> <tr> <td class="numLine"> 71</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 72</td> <td class="nbHitsCovered"> 12715</td> <td class="src"><pre class="src">  String version = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 73</td> <td class="nbHitsCovered"> 12715</td> <td class="src"><pre class="src">  Matcher matcher = RX_VERSION.matcher(text);</pre></td></tr> -<tr> <td class="numLineCover"> 74</td> <td class="nbHitsCovered"><a title="Line 74: Conditional coverage 100% (2/2)."> 12715</a></td> <td class="src"><pre class="src"> <a title="Line 74: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (matcher.find()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 75</td> <td class="nbHitsCovered"> 12599</td> <td class="src"><pre class="src">  version = matcher.group();</pre></td></tr> +<tr> <td class="numLineCover"> 72</td> <td class="nbHitsCovered"> 12776</td> <td class="src"><pre class="src">  String version = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 73</td> <td class="nbHitsCovered"> 12776</td> <td class="src"><pre class="src">  Matcher matcher = RX_VERSION.matcher(text);</pre></td></tr> +<tr> <td class="numLineCover"> 74</td> <td class="nbHitsCovered"><a title="Line 74: Conditional coverage 100% (2/2)."> 12776</a></td> <td class="src"><pre class="src"> <a title="Line 74: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (matcher.find()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 75</td> <td class="nbHitsCovered"> 12660</td> <td class="src"><pre class="src">  version = matcher.group();</pre></td></tr> <tr> <td class="numLine"> 76</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 77</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">//throw away the results if there are two things that look like version numbers</span></pre></td></tr> -<tr> <td class="numLineCover"> 78</td> <td class="nbHitsCovered"><a title="Line 78: Conditional coverage 100% (2/2)."> 12715</a></td> <td class="src"><pre class="src"> <a title="Line 78: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (matcher.find()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 78</td> <td class="nbHitsCovered"><a title="Line 78: Conditional coverage 100% (2/2)."> 12776</a></td> <td class="src"><pre class="src"> <a title="Line 78: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (matcher.find()) {</a></pre></td></tr> <tr> <td class="numLineCover"> 79</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">null</span>;</pre></td></tr> <tr> <td class="numLine"> 80</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 81</td> <td class="nbHitsCovered"><a title="Line 81: Conditional coverage 100% (2/2)."> 12713</a></td> <td class="src"><pre class="src"> <a title="Line 81: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (version == <span class="keyword">null</span>) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 81</td> <td class="nbHitsCovered"><a title="Line 81: Conditional coverage 100% (2/2)."> 12774</a></td> <td class="src"><pre class="src"> <a title="Line 81: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (version == <span class="keyword">null</span>) {</a></pre></td></tr> <tr> <td class="numLineCover"> 82</td> <td class="nbHitsCovered"> 116</td> <td class="src"><pre class="src">  matcher = RX_SINGLE_VERSION.matcher(text);</pre></td></tr> <tr> <td class="numLineCover"> 83</td> <td class="nbHitsCovered"><a title="Line 83: Conditional coverage 100% (2/2)."> 116</a></td> <td class="src"><pre class="src"> <a title="Line 83: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (matcher.find()) {</a></pre></td></tr> <tr> <td class="numLineCover"> 84</td> <td class="nbHitsCovered"> 106</td> <td class="src"><pre class="src">  version = matcher.group();</pre></td></tr> @@ -176,13 +176,13 @@ <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 92</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 93</td> <td class="nbHitsCovered"> 12702</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">new</span> DependencyVersion(version);</pre></td></tr> +<tr> <td class="numLineCover"> 93</td> <td class="nbHitsCovered"> 12763</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">new</span> DependencyVersion(version);</pre></td></tr> <tr> <td class="numLine"> 94</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 95</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.DownloadFailedException.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.DownloadFailedException.html index c39674a6a..c693c0d5f 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.DownloadFailedException.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.DownloadFailedException.html @@ -149,6 +149,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.Downloader.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.Downloader.html index 6564742c0..c9f4fcff4 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.Downloader.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.Downloader.html @@ -383,6 +383,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.ExtractionException.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.ExtractionException.html index 71a031fea..fa4564afb 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.ExtractionException.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.ExtractionException.html @@ -149,6 +149,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.FileUtils.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.FileUtils.html index a1b6dd2ce..f2a4ae015 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.FileUtils.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.FileUtils.html @@ -12,7 +12,7 @@ <div class="separator"> </div> <table class="report"> <thead><tr> <td class="heading">Classes in this File</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead> - <tr><td><a href="org.owasp.dependencycheck.utils.FileUtils.html">FileUtils</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">52%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:52px"><span class="text">40/76</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">62%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:62px"><span class="text">20/32</span></div></div></td></tr></table></td><td class="value"><span class="hidden">5.285714285714286;</span>5.286</td></tr> + <tr><td><a href="org.owasp.dependencycheck.utils.FileUtils.html">FileUtils</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">52%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:52px"><span class="text">40/76</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">56%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:56px"><span class="text">18/32</span></div></div></td></tr></table></td><td class="value"><span class="hidden">5.285714285714286;</span>5.286</td></tr> </table> <div class="separator"> </div> @@ -135,13 +135,13 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 60</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> String getFileExtension(String fileName) {</pre></td></tr> -<tr> <td class="numLineCover"> 61</td> <td class="nbHitsCovered"> 218</td> <td class="src"><pre class="src">  String ret = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 62</td> <td class="nbHitsCovered"> 218</td> <td class="src"><pre class="src">  <span class="keyword">final</span> <span class="keyword">int</span> pos = fileName.lastIndexOf(<span class="string">"."</span>);</pre></td></tr> -<tr> <td class="numLineCover"> 63</td> <td class="nbHitsCovered"><a title="Line 63: Conditional coverage 100% (2/2)."> 218</a></td> <td class="src"><pre class="src"> <a title="Line 63: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (pos >= 0) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 64</td> <td class="nbHitsCovered"> 209</td> <td class="src"><pre class="src">  ret = fileName.substring(pos + 1, fileName.length()).toLowerCase();</pre></td></tr> +<tr> <td class="numLineCover"> 61</td> <td class="nbHitsCovered"> 207</td> <td class="src"><pre class="src">  String ret = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 62</td> <td class="nbHitsCovered"> 207</td> <td class="src"><pre class="src">  <span class="keyword">final</span> <span class="keyword">int</span> pos = fileName.lastIndexOf(<span class="string">"."</span>);</pre></td></tr> +<tr> <td class="numLineCover"> 63</td> <td class="nbHitsCovered"><a title="Line 63: Conditional coverage 100% (2/2)."> 207</a></td> <td class="src"><pre class="src"> <a title="Line 63: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (pos >= 0) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 64</td> <td class="nbHitsCovered"> 199</td> <td class="src"><pre class="src">  ret = fileName.substring(pos + 1, fileName.length()).toLowerCase();</pre></td></tr> <tr> <td class="numLine"> 65</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 66</td> <td class="nbHitsCovered"> 218</td> <td class="src"><pre class="src">  <span class="keyword">return</span> ret;</pre></td></tr> +<tr> <td class="numLineCover"> 66</td> <td class="nbHitsCovered"> 207</td> <td class="src"><pre class="src">  <span class="keyword">return</span> ret;</pre></td></tr> <tr> <td class="numLine"> 67</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 68</td> <td class="nbHits"> </td> @@ -162,14 +162,14 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 76</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> delete(File file) <span class="keyword">throws</span> IOException {</pre></td></tr> -<tr> <td class="numLineCover"> 77</td> <td class="nbHitsCovered"><a title="Line 77: Conditional coverage 100% (2/2)."> 18</a></td> <td class="src"><pre class="src"> <a title="Line 77: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (file.isDirectory()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 78</td> <td class="nbHitsCovered"><a title="Line 78: Conditional coverage 100% (2/2)."> 16</a></td> <td class="src"><pre class="src"> <a title="Line 78: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (File c : file.listFiles()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 79</td> <td class="nbHitsCovered"> 14</td> <td class="src"><pre class="src">  delete(c);</pre></td></tr> +<tr> <td class="numLineCover"> 77</td> <td class="nbHitsCovered"><a title="Line 77: Conditional coverage 100% (2/2)."> 5</a></td> <td class="src"><pre class="src"> <a title="Line 77: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (file.isDirectory()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 78</td> <td class="nbHitsCovered"><a title="Line 78: Conditional coverage 100% (2/2)."> 3</a></td> <td class="src"><pre class="src"> <a title="Line 78: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (File c : file.listFiles()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 79</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  delete(c);</pre></td></tr> <tr> <td class="numLine"> 80</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 81</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 82</td> <td class="nbHitsUncovered"><a title="Line 82: Conditional coverage 50% (1/2)."> 18</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 82: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (!org.apache.commons.io.FileUtils.deleteQuietly(file)) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 82</td> <td class="nbHitsUncovered"><a title="Line 82: Conditional coverage 50% (1/2)."> 5</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 82: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (!org.apache.commons.io.FileUtils.deleteQuietly(file)) {</a></span></pre></td></tr> <tr> <td class="numLineCover"> 83</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> FileNotFoundException(<span class="string">"Failed to delete file: "</span> + file);</span></pre></td></tr> <tr> <td class="numLine"> 84</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> @@ -185,7 +185,7 @@ <td class="src"><pre class="src"> <span class="comment"> file.deleteOnExit();</span></pre></td></tr> <tr> <td class="numLine"> 90</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> }*/</span></pre></td></tr> -<tr> <td class="numLineCover"> 91</td> <td class="nbHitsCovered"> 18</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 91</td> <td class="nbHitsCovered"> 5</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 92</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 93</td> <td class="nbHits"> </td> @@ -339,33 +339,33 @@ <td class="src"><pre class="src">  ZipEntry entry;</pre></td></tr> <tr> <td class="numLine"> 178</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 179</td> <td class="nbHitsCovered"><a title="Line 179: Conditional coverage 100% (2/2)."> 18</a></td> <td class="src"><pre class="src"> <a title="Line 179: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> ((entry = zis.getNextEntry()) != <span class="keyword">null</span>) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 180</td> <td class="nbHitsCovered"><a title="Line 180: Conditional coverage 100% (2/2)."> 17</a></td> <td class="src"><pre class="src"> <a title="Line 180: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (entry.isDirectory()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 181</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  <span class="keyword">final</span> File d = <span class="keyword">new</span> File(extractTo, entry.getName());</pre></td></tr> -<tr> <td class="numLineCover"> 182</td> <td class="nbHitsUncovered"><a title="Line 182: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> 2</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 182: Conditional coverage 75% (3/4) [each condition: 100%, 50%]."> <span class="keyword">if</span> (!d.exists() && !d.mkdirs()) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 179</td> <td class="nbHitsCovered"><a title="Line 179: Conditional coverage 100% (2/2)."> 5</a></td> <td class="src"><pre class="src"> <a title="Line 179: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> ((entry = zis.getNextEntry()) != <span class="keyword">null</span>) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 180</td> <td class="nbHitsCovered"><a title="Line 180: Conditional coverage 100% (2/2)."> 4</a></td> <td class="src"><pre class="src"> <a title="Line 180: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (entry.isDirectory()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 181</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">final</span> File d = <span class="keyword">new</span> File(extractTo, entry.getName());</pre></td></tr> +<tr> <td class="numLineCover"> 182</td> <td class="nbHitsUncovered"><a title="Line 182: Conditional coverage 25% (1/4) [each condition: 50%, 0%]."> 1</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 182: Conditional coverage 25% (1/4) [each condition: 50%, 0%]."> <span class="keyword">if</span> (!d.exists() && !d.mkdirs()) {</a></span></pre></td></tr> <tr> <td class="numLineCover"> 183</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = String.format(<span class="string">"Unable to create '%s'."</span>, d.getAbsolutePath());</span></pre></td></tr> <tr> <td class="numLineCover"> 184</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> ExtractionException(msg);</span></pre></td></tr> <tr> <td class="numLine"> 185</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 186</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 187</td> <td class="nbHitsCovered"> 15</td> <td class="src"><pre class="src">  <span class="keyword">final</span> File file = <span class="keyword">new</span> File(extractTo, entry.getName());</pre></td></tr> -<tr> <td class="numLineCover"> 188</td> <td class="nbHitsCovered"> 15</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String ext = getFileExtension(file.getName());</pre></td></tr> -<tr> <td class="numLineCover"> 189</td> <td class="nbHitsUncovered"><a title="Line 189: Conditional coverage 25% (1/4) [each condition: 50%, 0%]."> 15</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 189: Conditional coverage 25% (1/4) [each condition: 50%, 0%]."> <span class="keyword">if</span> (engine == <span class="keyword">null</span> || engine.supportsExtension(ext)) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 190</td> <td class="nbHitsCovered"> 15</td> <td class="src"><pre class="src">  BufferedOutputStream bos = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 186</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 187</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  <span class="keyword">final</span> File file = <span class="keyword">new</span> File(extractTo, entry.getName());</pre></td></tr> +<tr> <td class="numLineCover"> 188</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String ext = getFileExtension(file.getName());</pre></td></tr> +<tr> <td class="numLineCover"> 189</td> <td class="nbHitsUncovered"><a title="Line 189: Conditional coverage 25% (1/4) [each condition: 50%, 0%]."> 3</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 189: Conditional coverage 25% (1/4) [each condition: 50%, 0%]."> <span class="keyword">if</span> (engine == <span class="keyword">null</span> || engine.supportsExtension(ext)) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 190</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  BufferedOutputStream bos = <span class="keyword">null</span>;</pre></td></tr> <tr> <td class="numLine"> 191</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  FileOutputStream fos;</pre></td></tr> <tr> <td class="numLine"> 192</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 193</td> <td class="nbHitsCovered"> 15</td> <td class="src"><pre class="src">  fos = <span class="keyword">new</span> FileOutputStream(file);</pre></td></tr> -<tr> <td class="numLineCover"> 194</td> <td class="nbHitsCovered"> 15</td> <td class="src"><pre class="src">  bos = <span class="keyword">new</span> BufferedOutputStream(fos, BUFFER_SIZE);</pre></td></tr> +<tr> <td class="numLineCover"> 193</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  fos = <span class="keyword">new</span> FileOutputStream(file);</pre></td></tr> +<tr> <td class="numLineCover"> 194</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  bos = <span class="keyword">new</span> BufferedOutputStream(fos, BUFFER_SIZE);</pre></td></tr> <tr> <td class="numLine"> 195</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">int</span> count;</pre></td></tr> -<tr> <td class="numLineCover"> 196</td> <td class="nbHitsCovered"> 15</td> <td class="src"><pre class="src">  <span class="keyword">final</span> <span class="keyword">byte</span> data[] = <span class="keyword">new</span> <span class="keyword">byte</span>[BUFFER_SIZE];</pre></td></tr> -<tr> <td class="numLineCover"> 197</td> <td class="nbHitsCovered"><a title="Line 197: Conditional coverage 100% (2/2)."> 91875</a></td> <td class="src"><pre class="src"> <a title="Line 197: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> ((count = zis.read(data, 0, BUFFER_SIZE)) != -1) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 198</td> <td class="nbHitsCovered"> 91860</td> <td class="src"><pre class="src">  bos.write(data, 0, count);</pre></td></tr> +<tr> <td class="numLineCover"> 196</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  <span class="keyword">final</span> <span class="keyword">byte</span> data[] = <span class="keyword">new</span> <span class="keyword">byte</span>[BUFFER_SIZE];</pre></td></tr> +<tr> <td class="numLineCover"> 197</td> <td class="nbHitsCovered"><a title="Line 197: Conditional coverage 100% (2/2)."> 90235</a></td> <td class="src"><pre class="src"> <a title="Line 197: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> ((count = zis.read(data, 0, BUFFER_SIZE)) != -1) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 198</td> <td class="nbHitsCovered"> 90232</td> <td class="src"><pre class="src">  bos.write(data, 0, count);</pre></td></tr> <tr> <td class="numLine"> 199</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 200</td> <td class="nbHitsCovered"> 15</td> <td class="src"><pre class="src">  bos.flush();</pre></td></tr> +<tr> <td class="numLineCover"> 200</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  bos.flush();</pre></td></tr> <tr> <td class="numLineCover"> 201</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (FileNotFoundException ex) {</span></pre></td></tr> <tr> <td class="numLineCover"> 202</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(FileUtils.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="keyword">null</span>, ex);</span></pre></td></tr> <tr> <td class="numLineCover"> 203</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String msg = String.format(<span class="string">"Unable to find file '%s'."</span>, file.getName());</span></pre></td></tr> @@ -376,20 +376,20 @@ <tr> <td class="numLineCover"> 208</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> ExtractionException(msg, ex);</span></pre></td></tr> <tr> <td class="numLine"> 209</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  } <span class="keyword">finally</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 210</td> <td class="nbHitsUncovered"><a title="Line 210: Conditional coverage 50% (1/2)."> 15</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 210: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (bos != <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 210</td> <td class="nbHitsUncovered"><a title="Line 210: Conditional coverage 50% (1/2)."> 3</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 210: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (bos != <span class="keyword">null</span>) {</a></span></pre></td></tr> <tr> <td class="numLine"> 211</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 212</td> <td class="nbHitsCovered"> 15</td> <td class="src"><pre class="src">  bos.close();</pre></td></tr> +<tr> <td class="numLineCover"> 212</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  bos.close();</pre></td></tr> <tr> <td class="numLineCover"> 213</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr> <tr> <td class="numLineCover"> 214</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(FileUtils.<span class="keyword">class</span>.getName()).log(Level.FINEST, <span class="keyword">null</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 215</td> <td class="nbHitsCovered"> 15</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 215</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 216</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 217</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 218</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 219</td> <td class="nbHitsCovered"> 15</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 219</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 220</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLineCover"> 221</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr> @@ -409,6 +409,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.Filter.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.Filter.html index 515fd131a..15ffa0314 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.Filter.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.Filter.html @@ -56,19 +56,19 @@ <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 19</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> Iterator<T> filter(Iterator<T> iterator) {</pre></td></tr> -<tr> <td class="numLineCover"> 20</td> <td class="nbHitsCovered"> 1884</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">new</span> FilterIterator(iterator);</pre></td></tr> +<tr> <td class="numLineCover"> 20</td> <td class="nbHitsCovered"> 1883</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">new</span> FilterIterator(iterator);</pre></td></tr> <tr> <td class="numLine"> 21</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 22</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 23</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> Iterable<T> filter(<span class="keyword">final</span> Iterable<T> iterable) {</pre></td></tr> -<tr> <td class="numLineCover"> 24</td> <td class="nbHitsCovered"> 1884</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">new</span> Iterable<T>() {</pre></td></tr> +<tr> <td class="numLineCover"> 24</td> <td class="nbHitsCovered"> 1883</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">new</span> Iterable<T>() {</pre></td></tr> <tr> <td class="numLine"> 25</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 26</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> Iterator<T> iterator() {</pre></td></tr> -<tr> <td class="numLineCover"> 27</td> <td class="nbHitsCovered"> 1884</td> <td class="src"><pre class="src">  <span class="keyword">return</span> filter(iterable.iterator());</pre></td></tr> +<tr> <td class="numLineCover"> 27</td> <td class="nbHitsCovered"> 1883</td> <td class="src"><pre class="src">  <span class="keyword">return</span> filter(iterable.iterator());</pre></td></tr> <tr> <td class="numLine"> 28</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 29</td> <td class="nbHits"> </td> @@ -86,28 +86,28 @@ <td class="src"><pre class="src">  <span class="keyword">private</span> T next;</pre></td></tr> <tr> <td class="numLine"> 36</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 37</td> <td class="nbHitsCovered"> 1884</td> <td class="src"><pre class="src">  <span class="keyword">private</span> FilterIterator(Iterator<T> iterator) {</pre></td></tr> -<tr> <td class="numLineCover"> 38</td> <td class="nbHitsCovered"> 1884</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.iterator = iterator;</pre></td></tr> -<tr> <td class="numLineCover"> 39</td> <td class="nbHitsCovered"> 1884</td> <td class="src"><pre class="src">  toNext();</pre></td></tr> -<tr> <td class="numLineCover"> 40</td> <td class="nbHitsCovered"> 1884</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 37</td> <td class="nbHitsCovered"> 1883</td> <td class="src"><pre class="src">  <span class="keyword">private</span> FilterIterator(Iterator<T> iterator) {</pre></td></tr> +<tr> <td class="numLineCover"> 38</td> <td class="nbHitsCovered"> 1883</td> <td class="src"><pre class="src">  <span class="keyword">this</span>.iterator = iterator;</pre></td></tr> +<tr> <td class="numLineCover"> 39</td> <td class="nbHitsCovered"> 1883</td> <td class="src"><pre class="src">  toNext();</pre></td></tr> +<tr> <td class="numLineCover"> 40</td> <td class="nbHitsCovered"> 1883</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 41</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 42</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">boolean</span> hasNext() {</pre></td></tr> -<tr> <td class="numLineCover"> 43</td> <td class="nbHitsCovered"><a title="Line 43: Conditional coverage 100% (2/2)."> 8053</a></td> <td class="src"><pre class="src"> <a title="Line 43: Conditional coverage 100% (2/2)."> <span class="keyword">return</span> next != <span class="keyword">null</span>;</a></pre></td></tr> +<tr> <td class="numLineCover"> 43</td> <td class="nbHitsCovered"><a title="Line 43: Conditional coverage 100% (2/2)."> 8052</a></td> <td class="src"><pre class="src"> <a title="Line 43: Conditional coverage 100% (2/2)."> <span class="keyword">return</span> next != <span class="keyword">null</span>;</a></pre></td></tr> <tr> <td class="numLine"> 44</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 45</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 46</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> T next() {</pre></td></tr> -<tr> <td class="numLineCover"> 47</td> <td class="nbHitsUncovered"><a title="Line 47: Conditional coverage 50% (1/2)."> 6674</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 47: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (next == <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 47</td> <td class="nbHitsUncovered"><a title="Line 47: Conditional coverage 50% (1/2)."> 6675</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 47: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (next == <span class="keyword">null</span>) {</a></span></pre></td></tr> <tr> <td class="numLineCover"> 48</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> NoSuchElementException();</span></pre></td></tr> <tr> <td class="numLine"> 49</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 50</td> <td class="nbHitsCovered"> 6674</td> <td class="src"><pre class="src">  T returnValue = next;</pre></td></tr> -<tr> <td class="numLineCover"> 51</td> <td class="nbHitsCovered"> 6674</td> <td class="src"><pre class="src">  toNext();</pre></td></tr> -<tr> <td class="numLineCover"> 52</td> <td class="nbHitsCovered"> 6674</td> <td class="src"><pre class="src">  <span class="keyword">return</span> returnValue;</pre></td></tr> +<tr> <td class="numLineCover"> 50</td> <td class="nbHitsCovered"> 6675</td> <td class="src"><pre class="src">  T returnValue = next;</pre></td></tr> +<tr> <td class="numLineCover"> 51</td> <td class="nbHitsCovered"> 6675</td> <td class="src"><pre class="src">  toNext();</pre></td></tr> +<tr> <td class="numLineCover"> 52</td> <td class="nbHitsCovered"> 6675</td> <td class="src"><pre class="src">  <span class="keyword">return</span> returnValue;</pre></td></tr> <tr> <td class="numLine"> 53</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 54</td> <td class="nbHits"> </td> @@ -122,14 +122,14 @@ <tr> <td class="numLine"> 59</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">void</span> toNext() {</pre></td></tr> <tr> <td class="numLineCover"> 60</td> <td class="nbHitsCovered"> 8558</td> <td class="src"><pre class="src">  next = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 61</td> <td class="nbHitsCovered"><a title="Line 61: Conditional coverage 100% (2/2)."> 12714</a></td> <td class="src"><pre class="src"> <a title="Line 61: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (iterator.hasNext()) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 62</td> <td class="nbHitsCovered"> 11221</td> <td class="src"><pre class="src">  T item = iterator.next();</pre></td></tr> -<tr> <td class="numLineCover"> 63</td> <td class="nbHitsUncovered"><a title="Line 63: Conditional coverage 75% (3/4) [each condition: 50%, 100%]."> 11221</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 63: Conditional coverage 75% (3/4) [each condition: 50%, 100%]."> <span class="keyword">if</span> (item != <span class="keyword">null</span> && passes(item)) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 64</td> <td class="nbHitsCovered"> 7065</td> <td class="src"><pre class="src">  next = item;</pre></td></tr> -<tr> <td class="numLineCover"> 65</td> <td class="nbHitsCovered"> 7065</td> <td class="src"><pre class="src">  <span class="keyword">break</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 61</td> <td class="nbHitsCovered"><a title="Line 61: Conditional coverage 100% (2/2)."> 12702</a></td> <td class="src"><pre class="src"> <a title="Line 61: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (iterator.hasNext()) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 62</td> <td class="nbHitsCovered"> 11211</td> <td class="src"><pre class="src">  T item = iterator.next();</pre></td></tr> +<tr> <td class="numLineCover"> 63</td> <td class="nbHitsUncovered"><a title="Line 63: Conditional coverage 75% (3/4) [each condition: 50%, 100%]."> 11211</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 63: Conditional coverage 75% (3/4) [each condition: 50%, 100%]."> <span class="keyword">if</span> (item != <span class="keyword">null</span> && passes(item)) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 64</td> <td class="nbHitsCovered"> 7067</td> <td class="src"><pre class="src">  next = item;</pre></td></tr> +<tr> <td class="numLineCover"> 65</td> <td class="nbHitsCovered"> 7067</td> <td class="src"><pre class="src">  <span class="keyword">break</span>;</pre></td></tr> <tr> <td class="numLine"> 66</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 67</td> <td class="nbHitsCovered"> 4156</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 67</td> <td class="nbHitsCovered"> 4144</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLineCover"> 68</td> <td class="nbHitsCovered"> 8558</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 69</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> @@ -137,6 +137,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.InvalidSettingException.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.InvalidSettingException.html index fcc6552b6..37bb8a26f 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.InvalidSettingException.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.InvalidSettingException.html @@ -149,6 +149,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.LogFilter.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.LogFilter.html index e850e375c..bb737bae5 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.LogFilter.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.LogFilter.html @@ -104,6 +104,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.LogUtils.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.LogUtils.html index c620fe247..8a96d7ee7 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.LogUtils.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.LogUtils.html @@ -172,6 +172,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.NonClosingStream.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.NonClosingStream.html index b29a6e57e..db63f83a1 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.NonClosingStream.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.NonClosingStream.html @@ -114,6 +114,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.Settings.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.Settings.html index e1674efe9..549d95bd7 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.Settings.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.Settings.html @@ -12,8 +12,8 @@ <div class="separator"> </div> <table class="report"> <thead><tr> <td class="heading">Classes in this File</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead> - <tr><td><a href="org.owasp.dependencycheck.utils.Settings.html">Settings</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">60%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:60px"><span class="text">49/81</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">42%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:42px"><span class="text">6/14</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.2941176470588234;</span>2.294</td></tr> - <tr><td><a href="org.owasp.dependencycheck.utils.Settings.html">Settings$KEYS</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/2</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.2941176470588234;</span>2.294</td></tr> + <tr><td><a href="org.owasp.dependencycheck.utils.Settings.html">Settings</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">61%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:61px"><span class="text">52/85</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">43%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:43px"><span class="text">7/16</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.3333333333333335;</span>2.333</td></tr> + <tr><td><a href="org.owasp.dependencycheck.utils.Settings.html">Settings$KEYS</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/2</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.3333333333333335;</span>2.333</td></tr> </table> <div class="separator"> </div> @@ -167,347 +167,347 @@ <tr> <td class="numLine"> 75</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 76</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * The properties key for the path where the CPE Lucene Index will be</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * The properties key for the path where the CVE H2 database will be</span></pre></td></tr> <tr> <td class="numLine"> 77</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * stored.</span></pre></td></tr> <tr> <td class="numLine"> 78</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 79</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String CPE_DATA_DIRECTORY = <span class="string">"data.cpe"</span>;</pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String CVE_DATA_DIRECTORY = <span class="string">"data.cve"</span>;</pre></td></tr> <tr> <td class="numLine"> 80</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 81</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * The properties key for the path where the CVE H2 database will be</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * The properties key for the URL to retrieve the "meta" data from about</span></pre></td></tr> <tr> <td class="numLine"> 82</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * stored.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * the CVE entries.</span></pre></td></tr> <tr> <td class="numLine"> 83</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 84</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String CVE_DATA_DIRECTORY = <span class="string">"data.cve"</span>;</pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String CVE_META_URL = <span class="string">"cve.url.meta"</span>;</pre></td></tr> <tr> <td class="numLine"> 85</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 86</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * The properties key for the URL to retrieve the "meta" data from about</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * The properties key for the URL to retrieve the recently modified and</span></pre></td></tr> <tr> <td class="numLine"> 87</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * the CVE entries.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * added CVE entries (last 8 days) using the 2.0 schema.</span></pre></td></tr> <tr> <td class="numLine"> 88</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 89</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String CVE_META_URL = <span class="string">"cve.url.meta"</span>;</pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String CVE_MODIFIED_20_URL = <span class="string">"cve.url-2.0.modified"</span>;</pre></td></tr> <tr> <td class="numLine"> 90</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 91</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * The properties key for the URL to retrieve the recently modified and</span></pre></td></tr> <tr> <td class="numLine"> 92</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * added CVE entries (last 8 days) using the 2.0 schema.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * added CVE entries (last 8 days) using the 1.2 schema.</span></pre></td></tr> <tr> <td class="numLine"> 93</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 94</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String CVE_MODIFIED_20_URL = <span class="string">"cve.url-2.0.modified"</span>;</pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String CVE_MODIFIED_12_URL = <span class="string">"cve.url-1.2.modified"</span>;</pre></td></tr> <tr> <td class="numLine"> 95</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 96</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * The properties key for the URL to retrieve the recently modified and</span></pre></td></tr> <tr> <td class="numLine"> 97</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * added CVE entries (last 8 days) using the 1.2 schema.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * added CVE entries (last 8 days).</span></pre></td></tr> <tr> <td class="numLine"> 98</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 99</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String CVE_MODIFIED_12_URL = <span class="string">"cve.url-1.2.modified"</span>;</pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String CVE_MODIFIED_VALID_FOR_DAYS = <span class="string">"cve.url.modified.validfordays"</span>;</pre></td></tr> <tr> <td class="numLine"> 100</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 101</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * The properties key for the URL to retrieve the recently modified and</span></pre></td></tr> -<tr> <td class="numLine"> 102</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * added CVE entries (last 8 days).</span></pre></td></tr> -<tr> <td class="numLine"> 103</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 104</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String CVE_MODIFIED_VALID_FOR_DAYS = <span class="string">"cve.url.modified.validfordays"</span>;</pre></td></tr> -<tr> <td class="numLine"> 105</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 106</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * The properties key for the telling us how many cvr.url.* URLs exists.</span></pre></td></tr> -<tr> <td class="numLine"> 107</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 102</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * This is used in combination with CVE_BASE_URL to be able to retrieve</span></pre></td></tr> -<tr> <td class="numLine"> 108</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 103</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * the URLs for all of the files that make up the NVD CVE listing.</span></pre></td></tr> -<tr> <td class="numLine"> 109</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 104</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 110</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 105</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String CVE_START_YEAR = <span class="string">"cve.startyear"</span>;</pre></td></tr> -<tr> <td class="numLine"> 111</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 106</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 112</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 107</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * The properties key for the CVE schema version 1.2.</span></pre></td></tr> -<tr> <td class="numLine"> 113</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 108</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 114</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 109</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String CVE_SCHEMA_1_2 = <span class="string">"cve.url-1.2.base"</span>;</pre></td></tr> -<tr> <td class="numLine"> 115</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 110</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 116</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 111</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * The properties key for the CVE schema version 2.0.</span></pre></td></tr> -<tr> <td class="numLine"> 117</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 112</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 118</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 113</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String CVE_SCHEMA_2_0 = <span class="string">"cve.url-2.0.base"</span>;</pre></td></tr> -<tr> <td class="numLine"> 119</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 114</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 120</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 115</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * The properties key for the proxy url.</span></pre></td></tr> +<tr> <td class="numLine"> 116</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 117</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String PROXY_URL = <span class="string">"proxy.url"</span>;</pre></td></tr> +<tr> <td class="numLine"> 118</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 119</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * The properties key for the proxy port - this must be an integer</span></pre></td></tr> +<tr> <td class="numLine"> 120</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * value.</span></pre></td></tr> <tr> <td class="numLine"> 121</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 122</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String PROXY_URL = <span class="string">"proxy.url"</span>;</pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String PROXY_PORT = <span class="string">"proxy.port"</span>;</pre></td></tr> <tr> <td class="numLine"> 123</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 124</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * The properties key for the proxy port - this must be an integer</span></pre></td></tr> -<tr> <td class="numLine"> 125</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * value.</span></pre></td></tr> -<tr> <td class="numLine"> 126</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 127</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String PROXY_PORT = <span class="string">"proxy.port"</span>;</pre></td></tr> -<tr> <td class="numLine"> 128</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 129</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * The properties key for the proxy username.</span></pre></td></tr> -<tr> <td class="numLine"> 130</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 125</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 131</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 126</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String PROXY_USERNAME = <span class="string">"proxy.username"</span>;</pre></td></tr> -<tr> <td class="numLine"> 132</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 127</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 133</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 128</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * The properties key for the proxy password.</span></pre></td></tr> -<tr> <td class="numLine"> 134</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 129</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 135</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 130</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String PROXY_PASSWORD = <span class="string">"proxy.password"</span>;</pre></td></tr> -<tr> <td class="numLine"> 136</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 131</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 137</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 132</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * The properties key for the connection timeout.</span></pre></td></tr> -<tr> <td class="numLine"> 138</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 133</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 139</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 134</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String CONNECTION_TIMEOUT = <span class="string">"connection.timeout"</span>;</pre></td></tr> -<tr> <td class="numLine"> 140</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 135</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 141</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 136</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * The location of the temporary directory.</span></pre></td></tr> -<tr> <td class="numLine"> 142</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 137</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 143</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 138</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String TEMP_DIRECTORY = <span class="string">"temp.directory"</span>;</pre></td></tr> +<tr> <td class="numLine"> 139</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 140</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * The maximum number of threads to allocate when downloading files.</span></pre></td></tr> +<tr> <td class="numLine"> 141</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 142</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String MAX_DOWNLOAD_THREAD_POOL_SIZE = <span class="string">"max.download.threads"</span>;</pre></td></tr> +<tr> <td class="numLine"> 143</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 144</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * The key for a list of suppression files.</span></pre></td></tr> <tr> <td class="numLine"> 145</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 146</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * The properties file location.</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String SUPPRESSION_FILE = <span class="string">"suppression.file"</span>;</pre></td></tr> <tr> <td class="numLine"> 147</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 148</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> String PROPERTIES_FILE = <span class="string">"dependencycheck.properties"</span>;</pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 149</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * The properties file location.</span></pre></td></tr> <tr> <td class="numLine"> 150</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * The singleton instance variable.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 151</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 152</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> Settings INSTANCE = <span class="keyword">new</span> Settings();</pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> String PROPERTIES_FILE = <span class="string">"dependencycheck.properties"</span>;</pre></td></tr> +<tr> <td class="numLine"> 152</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 153</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * The singleton instance variable.</span></pre></td></tr> <tr> <td class="numLine"> 154</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * The properties.</span></pre></td></tr> -<tr> <td class="numLine"> 155</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 156</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">private</span> Properties props = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 155</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> Settings INSTANCE = <span class="keyword">new</span> Settings();</pre></td></tr> +<tr> <td class="numLine"> 156</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 157</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * The properties.</span></pre></td></tr> <tr> <td class="numLine"> 158</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 159</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Private constructor for the Settings class. This class loads the</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLineCover"> 159</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">private</span> Properties props = <span class="keyword">null</span>;</pre></td></tr> <tr> <td class="numLine"> 160</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * properties files.</span></pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 161</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 162</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Private constructor for the Settings class. This class loads the</span></pre></td></tr> +<tr> <td class="numLine"> 163</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * properties files.</span></pre></td></tr> +<tr> <td class="numLine"> 164</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLineCover"> 162</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">private</span> Settings() {</pre></td></tr> -<tr> <td class="numLineCover"> 163</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  InputStream in = <span class="keyword">null</span>;</pre></td></tr> -<tr> <td class="numLineCover"> 164</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  props = <span class="keyword">new</span> Properties();</pre></td></tr> -<tr> <td class="numLine"> 165</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 165</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">private</span> Settings() {</pre></td></tr> +<tr> <td class="numLineCover"> 166</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  InputStream in = <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLineCover"> 167</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  props = <span class="keyword">new</span> Properties();</pre></td></tr> +<tr> <td class="numLine"> 168</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 166</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  in = <span class="keyword">this</span>.getClass().getClassLoader().getResourceAsStream(PROPERTIES_FILE);</pre></td></tr> -<tr> <td class="numLineCover"> 167</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  props.load(in);</pre></td></tr> -<tr> <td class="numLineCover"> 168</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 169</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Settings.<span class="keyword">class</span>.getName()).log(Level.SEVERE, <span class="string">"Unable to load default settings."</span>);</span></pre></td></tr> -<tr> <td class="numLineCover"> 170</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Settings.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="keyword">null</span>, ex);</span></pre></td></tr> -<tr> <td class="numLine"> 171</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 169</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  in = <span class="keyword">this</span>.getClass().getClassLoader().getResourceAsStream(PROPERTIES_FILE);</pre></td></tr> +<tr> <td class="numLineCover"> 170</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  props.load(in);</pre></td></tr> +<tr> <td class="numLineCover"> 171</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 172</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Settings.<span class="keyword">class</span>.getName()).log(Level.SEVERE, <span class="string">"Unable to load default settings."</span>);</span></pre></td></tr> +<tr> <td class="numLineCover"> 173</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Settings.<span class="keyword">class</span>.getName()).log(Level.FINE, <span class="keyword">null</span>, ex);</span></pre></td></tr> +<tr> <td class="numLine"> 174</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  } <span class="keyword">finally</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 172</td> <td class="nbHitsUncovered"><a title="Line 172: Conditional coverage 50% (1/2)."> 1</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 172: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (in != <span class="keyword">null</span>) {</a></span></pre></td></tr> -<tr> <td class="numLine"> 173</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 175</td> <td class="nbHitsUncovered"><a title="Line 175: Conditional coverage 50% (1/2)."> 1</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 175: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (in != <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLine"> 176</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 174</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  in.close();</pre></td></tr> -<tr> <td class="numLineCover"> 175</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 176</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Settings.<span class="keyword">class</span>.getName()).log(Level.FINEST, <span class="keyword">null</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 177</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 178</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 179</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 180</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 177</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  in.close();</pre></td></tr> +<tr> <td class="numLineCover"> 178</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (IOException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 179</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Settings.<span class="keyword">class</span>.getName()).log(Level.FINEST, <span class="keyword">null</span>, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 180</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 181</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 182</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 183</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Sets a property value.</span></pre></td></tr> -<tr> <td class="numLine"> 184</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 185</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param key the key for the property</span></pre></td></tr> -<tr> <td class="numLine"> 186</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param value the value for the property</span></pre></td></tr> -<tr> <td class="numLine"> 187</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 188</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> setString(String key, String value) {</pre></td></tr> -<tr> <td class="numLineCover"> 189</td> <td class="nbHitsCovered"> 17</td> <td class="src"><pre class="src">  INSTANCE.props.setProperty(key, value);</pre></td></tr> -<tr> <td class="numLineCover"> 190</td> <td class="nbHitsCovered"> 17</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 191</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 192</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 193</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Sets a property value.</span></pre></td></tr> -<tr> <td class="numLine"> 194</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 195</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param key the key for the property</span></pre></td></tr> -<tr> <td class="numLine"> 196</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param value the value for the property</span></pre></td></tr> -<tr> <td class="numLine"> 197</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 198</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> setBoolean(String key, <span class="keyword">boolean</span> value) {</pre></td></tr> -<tr> <td class="numLineCover"> 199</td> <td class="nbHitsUncovered"><a title="Line 199: Conditional coverage 50% (1/2)."> 5</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 199: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (value) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 200</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  INSTANCE.props.setProperty(key, Boolean.TRUE.toString());</span></pre></td></tr> -<tr> <td class="numLine"> 201</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 202</td> <td class="nbHitsCovered"> 5</td> <td class="src"><pre class="src">  INSTANCE.props.setProperty(key, Boolean.FALSE.toString());</pre></td></tr> -<tr> <td class="numLine"> 203</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 204</td> <td class="nbHitsCovered"> 5</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 205</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 183</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 184</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 185</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 186</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Sets a property value.</span></pre></td></tr> +<tr> <td class="numLine"> 187</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 188</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param key the key for the property</span></pre></td></tr> +<tr> <td class="numLine"> 189</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param value the value for the property</span></pre></td></tr> +<tr> <td class="numLine"> 190</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 191</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> setString(String key, String value) {</pre></td></tr> +<tr> <td class="numLineCover"> 192</td> <td class="nbHitsCovered"> 17</td> <td class="src"><pre class="src">  INSTANCE.props.setProperty(key, value);</pre></td></tr> +<tr> <td class="numLineCover"> 193</td> <td class="nbHitsCovered"> 17</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 194</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 195</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 196</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Sets a property value.</span></pre></td></tr> +<tr> <td class="numLine"> 197</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 198</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param key the key for the property</span></pre></td></tr> +<tr> <td class="numLine"> 199</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param value the value for the property</span></pre></td></tr> +<tr> <td class="numLine"> 200</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 201</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> setBoolean(String key, <span class="keyword">boolean</span> value) {</pre></td></tr> +<tr> <td class="numLineCover"> 202</td> <td class="nbHitsUncovered"><a title="Line 202: Conditional coverage 50% (1/2)."> 5</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 202: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (value) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 203</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  INSTANCE.props.setProperty(key, Boolean.TRUE.toString());</span></pre></td></tr> +<tr> <td class="numLine"> 204</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 205</td> <td class="nbHitsCovered"> 5</td> <td class="src"><pre class="src">  INSTANCE.props.setProperty(key, Boolean.FALSE.toString());</pre></td></tr> <tr> <td class="numLine"> 206</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 207</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Merges a new properties file into the current properties. This method</span></pre></td></tr> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 207</td> <td class="nbHitsCovered"> 5</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 208</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * allows for the loading of a user provided properties file.<br/><br/></span></pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 209</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Note: even if using this method - system properties will be loaded before</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 210</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * properties loaded from files.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * Merges a new properties file into the current properties. This method</span></pre></td></tr> <tr> <td class="numLine"> 211</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * allows for the loading of a user provided properties file.<br/><br/></span></pre></td></tr> <tr> <td class="numLine"> 212</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param filePath the path to the properties file to merge.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * Note: even if using this method - system properties will be loaded before</span></pre></td></tr> <tr> <td class="numLine"> 213</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws FileNotFoundException is thrown when the filePath points to a</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * properties loaded from files.</span></pre></td></tr> <tr> <td class="numLine"> 214</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * non-existent file</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 215</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws IOException is thrown when there is an exception loading/merging</span></pre></td></tr> -<tr> <td class="numLine"> 216</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * the properties</span></pre></td></tr> -<tr> <td class="numLine"> 217</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 218</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> mergeProperties(File filePath) <span class="keyword">throws</span> FileNotFoundException, IOException {</pre></td></tr> -<tr> <td class="numLineCover"> 219</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> FileInputStream fis = <span class="keyword">new</span> FileInputStream(filePath);</span></pre></td></tr> -<tr> <td class="numLineCover"> 220</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  mergeProperties(fis);</span></pre></td></tr> -<tr> <td class="numLineCover"> 221</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLine"> 222</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 223</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 224</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Merges a new properties file into the current properties. This method</span></pre></td></tr> -<tr> <td class="numLine"> 225</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * allows for the loading of a user provided properties file.<br/><br/></span></pre></td></tr> -<tr> <td class="numLine"> 226</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Note: even if using this method - system properties will be loaded before</span></pre></td></tr> -<tr> <td class="numLine"> 227</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * properties loaded from files.</span></pre></td></tr> -<tr> <td class="numLine"> 228</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 229</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param filePath the path to the properties file to merge.</span></pre></td></tr> -<tr> <td class="numLine"> 230</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 216</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws FileNotFoundException is thrown when the filePath points to a</span></pre></td></tr> -<tr> <td class="numLine"> 231</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 217</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * non-existent file</span></pre></td></tr> -<tr> <td class="numLine"> 232</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 218</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws IOException is thrown when there is an exception loading/merging</span></pre></td></tr> -<tr> <td class="numLine"> 233</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 219</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * the properties</span></pre></td></tr> -<tr> <td class="numLine"> 234</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 220</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 235</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> mergeProperties(String filePath) <span class="keyword">throws</span> FileNotFoundException, IOException {</pre></td></tr> -<tr> <td class="numLineCover"> 236</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">final</span> FileInputStream fis = <span class="keyword">new</span> FileInputStream(filePath);</pre></td></tr> -<tr> <td class="numLineCover"> 237</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  mergeProperties(fis);</pre></td></tr> -<tr> <td class="numLineCover"> 238</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 239</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 221</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> mergeProperties(File filePath) <span class="keyword">throws</span> FileNotFoundException, IOException {</pre></td></tr> +<tr> <td class="numLineCover"> 222</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> FileInputStream fis = <span class="keyword">new</span> FileInputStream(filePath);</span></pre></td></tr> +<tr> <td class="numLineCover"> 223</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  mergeProperties(fis);</span></pre></td></tr> +<tr> <td class="numLineCover"> 224</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLine"> 225</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 240</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 226</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 241</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 227</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Merges a new properties file into the current properties. This method</span></pre></td></tr> -<tr> <td class="numLine"> 242</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 228</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * allows for the loading of a user provided properties file.<br/><br/></span></pre></td></tr> -<tr> <td class="numLine"> 243</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 229</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Note: even if using this method - system properties will be loaded before</span></pre></td></tr> -<tr> <td class="numLine"> 244</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 230</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * properties loaded from files.</span></pre></td></tr> -<tr> <td class="numLine"> 245</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 231</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 246</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param stream an Input Stream pointing at a properties file to merge</span></pre></td></tr> -<tr> <td class="numLine"> 247</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 232</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param filePath the path to the properties file to merge.</span></pre></td></tr> +<tr> <td class="numLine"> 233</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @throws FileNotFoundException is thrown when the filePath points to a</span></pre></td></tr> +<tr> <td class="numLine"> 234</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * non-existent file</span></pre></td></tr> +<tr> <td class="numLine"> 235</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws IOException is thrown when there is an exception loading/merging</span></pre></td></tr> -<tr> <td class="numLine"> 248</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 236</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * the properties</span></pre></td></tr> -<tr> <td class="numLine"> 249</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 237</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 250</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> mergeProperties(InputStream stream) <span class="keyword">throws</span> IOException {</pre></td></tr> -<tr> <td class="numLineCover"> 251</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  INSTANCE.props.load(stream);</pre></td></tr> -<tr> <td class="numLineCover"> 252</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 253</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 238</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> mergeProperties(String filePath) <span class="keyword">throws</span> FileNotFoundException, IOException {</pre></td></tr> +<tr> <td class="numLineCover"> 239</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">final</span> FileInputStream fis = <span class="keyword">new</span> FileInputStream(filePath);</pre></td></tr> +<tr> <td class="numLineCover"> 240</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  mergeProperties(fis);</pre></td></tr> +<tr> <td class="numLineCover"> 241</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 242</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 254</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 243</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 255</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Returns a value from the properties file as a File object. If the value</span></pre></td></tr> -<tr> <td class="numLine"> 256</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * was specified as a system property or passed in via the -Dprop=value</span></pre></td></tr> -<tr> <td class="numLine"> 257</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * argument - this method will return the value from the system properties</span></pre></td></tr> -<tr> <td class="numLine"> 258</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * before the values in the contained configuration file.</span></pre></td></tr> -<tr> <td class="numLine"> 259</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 244</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Merges a new properties file into the current properties. This method</span></pre></td></tr> +<tr> <td class="numLine"> 245</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * allows for the loading of a user provided properties file.<br/><br/></span></pre></td></tr> +<tr> <td class="numLine"> 246</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Note: even if using this method - system properties will be loaded before</span></pre></td></tr> +<tr> <td class="numLine"> 247</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * properties loaded from files.</span></pre></td></tr> +<tr> <td class="numLine"> 248</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 249</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param stream an Input Stream pointing at a properties file to merge</span></pre></td></tr> +<tr> <td class="numLine"> 250</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @throws IOException is thrown when there is an exception loading/merging</span></pre></td></tr> +<tr> <td class="numLine"> 251</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * the properties</span></pre></td></tr> +<tr> <td class="numLine"> 252</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 253</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> mergeProperties(InputStream stream) <span class="keyword">throws</span> IOException {</pre></td></tr> +<tr> <td class="numLineCover"> 254</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  INSTANCE.props.load(stream);</pre></td></tr> +<tr> <td class="numLineCover"> 255</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 256</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 257</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 258</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Returns a value from the properties file as a File object. If the value</span></pre></td></tr> +<tr> <td class="numLine"> 259</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * was specified as a system property or passed in via the -Dprop=value</span></pre></td></tr> <tr> <td class="numLine"> 260</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * This method will also replace a leading "[JAR]\" sequence with the path</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * argument - this method will return the value from the system properties</span></pre></td></tr> <tr> <td class="numLine"> 261</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * to the folder containing the JAR file containing this class.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * before the values in the contained configuration file.</span></pre></td></tr> <tr> <td class="numLine"> 262</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 263</td> <td class="nbHits"> </td> @@ -518,133 +518,131 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 266</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> File getFile(String key) {</pre></td></tr> -<tr> <td class="numLineCover"> 267</td> <td class="nbHitsCovered"> 79</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String file = getString(key);</pre></td></tr> -<tr> <td class="numLineCover"> 268</td> <td class="nbHitsCovered"> 79</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String baseDir = getString(Settings.KEYS.DATA_DIRECTORY);</pre></td></tr> -<tr> <td class="numLineCover"> 269</td> <td class="nbHitsUncovered"><a title="Line 269: Conditional coverage 50% (1/2)."> 79</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 269: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (baseDir != <span class="keyword">null</span>) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 270</td> <td class="nbHitsUncovered"><a title="Line 270: Conditional coverage 50% (1/2)."> 79</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 270: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (baseDir.startsWith(<span class="string">"[JAR]/"</span>)) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 271</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> File jarPath = getJarPath();</span></pre></td></tr> -<tr> <td class="numLineCover"> 272</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> File newBase = <span class="keyword">new</span> File(jarPath, baseDir.substring(6));</span></pre></td></tr> -<tr> <td class="numLineCover"> 273</td> <td class="nbHitsUncovered"><a title="Line 273: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 273: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (Settings.KEYS.DATA_DIRECTORY.equals(key)) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 274</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> newBase;</span></pre></td></tr> +<tr> <td class="numLineCover"> 267</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String file = getString(key);</pre></td></tr> +<tr> <td class="numLineCover"> 268</td> <td class="nbHitsUncovered"><a title="Line 268: Conditional coverage 50% (1/2)."> 6</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 268: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (file == <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 269</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">null</span>;</pre></td></tr> +<tr> <td class="numLine"> 270</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 271</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">new</span> File(file);</span></pre></td></tr> +<tr> <td class="numLine"> 272</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 273</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 274</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 275</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 276</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">new</span> File(newBase, file);</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * Returns a value from the properties file as a File object. If the value</span></pre></td></tr> +<tr> <td class="numLine"> 276</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * was specified as a system property or passed in via the -Dprop=value</span></pre></td></tr> <tr> <td class="numLine"> 277</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 278</td> <td class="nbHitsCovered"><a title="Line 278: Conditional coverage 100% (2/2)."> 79</a></td> <td class="src"><pre class="src"> <a title="Line 278: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (Settings.KEYS.DATA_DIRECTORY.equals(key)) {</a></pre></td></tr> -<tr> <td class="numLineCover"> 279</td> <td class="nbHitsCovered"> 35</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">new</span> File(baseDir);</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * argument - this method will return the value from the system properties</span></pre></td></tr> +<tr> <td class="numLine"> 278</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * before the values in the contained configuration file.</span></pre></td></tr> +<tr> <td class="numLine"> 279</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 280</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 281</td> <td class="nbHitsCovered"> 44</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">new</span> File(baseDir, file);</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * This method will check the configured base directory and will use this as</span></pre></td></tr> +<tr> <td class="numLine"> 281</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * the base of the file path. Additionally, if the base directory begins</span></pre></td></tr> <tr> <td class="numLine"> 282</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 283</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">new</span> File(file);</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * with a leading "[JAR]\" sequence with the path to the folder containing</span></pre></td></tr> +<tr> <td class="numLine"> 283</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * the JAR file containing this class.</span></pre></td></tr> <tr> <td class="numLine"> 284</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 285</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * @param key the key to lookup within the properties file</span></pre></td></tr> <tr> <td class="numLine"> 286</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * @return the property from the properties file converted to a File object</span></pre></td></tr> <tr> <td class="numLine"> 287</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Attempts to retrieve the folder containing the Jar file containing the</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 288</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Settings class.</span></pre></td></tr> -<tr> <td class="numLine"> 289</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 290</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @return a File object</span></pre></td></tr> -<tr> <td class="numLine"> 291</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 292</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">static</span> File getJarPath() {</pre></td></tr> -<tr> <td class="numLineCover"> 293</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String jarPath = Settings.<span class="keyword">class</span>.getProtectionDomain().getCodeSource().getLocation().getPath();</span></pre></td></tr> -<tr> <td class="numLineCover"> 294</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  String decodedPath = <span class="string">"."</span>;</span></pre></td></tr> -<tr> <td class="numLine"> 295</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 296</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  decodedPath = URLDecoder.decode(jarPath, <span class="string">"UTF-8"</span>);</span></pre></td></tr> -<tr> <td class="numLineCover"> 297</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (UnsupportedEncodingException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 298</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Settings.<span class="keyword">class</span>.getName()).log(Level.FINEST, <span class="keyword">null</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 299</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLine"> 300</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLineCover"> 301</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> File path = <span class="keyword">new</span> File(decodedPath);</span></pre></td></tr> -<tr> <td class="numLineCover"> 302</td> <td class="nbHitsUncovered"><a title="Line 302: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 302: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (path.getName().toLowerCase().endsWith(<span class="string">".jar"</span>)) {</a></span></pre></td></tr> -<tr> <td class="numLineCover"> 303</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> path.getParentFile();</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> File getDataFile(String key) {</pre></td></tr> +<tr> <td class="numLineCover"> 289</td> <td class="nbHitsCovered"> 60</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String file = getString(key);</pre></td></tr> +<tr> <td class="numLineCover"> 290</td> <td class="nbHitsCovered"> 60</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String baseDir = getString(Settings.KEYS.DATA_DIRECTORY);</pre></td></tr> +<tr> <td class="numLineCover"> 291</td> <td class="nbHitsUncovered"><a title="Line 291: Conditional coverage 50% (1/2)."> 60</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 291: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (baseDir != <span class="keyword">null</span>) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 292</td> <td class="nbHitsUncovered"><a title="Line 292: Conditional coverage 50% (1/2)."> 60</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 292: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (baseDir.startsWith(<span class="string">"[JAR]/"</span>)) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 293</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> File jarPath = getJarPath();</span></pre></td></tr> +<tr> <td class="numLineCover"> 294</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> File newBase = <span class="keyword">new</span> File(jarPath, baseDir.substring(6));</span></pre></td></tr> +<tr> <td class="numLineCover"> 295</td> <td class="nbHitsUncovered"><a title="Line 295: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 295: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (Settings.KEYS.DATA_DIRECTORY.equals(key)) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 296</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> newBase;</span></pre></td></tr> +<tr> <td class="numLine"> 297</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 298</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">new</span> File(newBase, file);</span></pre></td></tr> +<tr> <td class="numLine"> 299</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 300</td> <td class="nbHitsCovered"><a title="Line 300: Conditional coverage 100% (2/2)."> 60</a></td> <td class="src"><pre class="src"> <a title="Line 300: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (Settings.KEYS.DATA_DIRECTORY.equals(key)) {</a></pre></td></tr> +<tr> <td class="numLineCover"> 301</td> <td class="nbHitsCovered"> 34</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">new</span> File(baseDir);</pre></td></tr> +<tr> <td class="numLine"> 302</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 303</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">new</span> File(baseDir, file);</pre></td></tr> <tr> <td class="numLine"> 304</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 305</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">new</span> File(<span class="string">"."</span>);</span></pre></td></tr> -<tr> <td class="numLine"> 306</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 305</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">new</span> File(file);</span></pre></td></tr> +<tr> <td class="numLine"> 306</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 307</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 308</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 309</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * Attempts to retrieve the folder containing the Jar file containing the</span></pre></td></tr> <tr> <td class="numLine"> 310</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Returns a value from the properties file. If the value was specified as a</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * Settings class.</span></pre></td></tr> <tr> <td class="numLine"> 311</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * system property or passed in via the -Dprop=value argument - this method</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 312</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * will return the value from the system properties before the values in the</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * @return a File object</span></pre></td></tr> <tr> <td class="numLine"> 313</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * contained configuration file.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 314</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 315</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param key the key to lookup within the properties file</span></pre></td></tr> -<tr> <td class="numLine"> 316</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param defaultValue the default value for the requested property</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">private</span> <span class="keyword">static</span> File getJarPath() {</pre></td></tr> +<tr> <td class="numLineCover"> 315</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> String jarPath = Settings.<span class="keyword">class</span>.getProtectionDomain().getCodeSource().getLocation().getPath();</span></pre></td></tr> +<tr> <td class="numLineCover"> 316</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  String decodedPath = <span class="string">"."</span>;</span></pre></td></tr> <tr> <td class="numLine"> 317</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @return the property from the properties file</span></pre></td></tr> -<tr> <td class="numLine"> 318</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 319</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> String getString(String key, String defaultValue) {</pre></td></tr> -<tr> <td class="numLineCover"> 320</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String str = System.getProperty(key, INSTANCE.props.getProperty(key, defaultValue));</pre></td></tr> -<tr> <td class="numLineCover"> 321</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  <span class="keyword">return</span> str;</pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 318</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  decodedPath = URLDecoder.decode(jarPath, <span class="string">"UTF-8"</span>);</span></pre></td></tr> +<tr> <td class="numLineCover"> 319</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (UnsupportedEncodingException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 320</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  Logger.getLogger(Settings.<span class="keyword">class</span>.getName()).log(Level.FINEST, <span class="keyword">null</span>, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 321</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> <tr> <td class="numLine"> 322</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 323</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 324</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 325</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Returns the temporary directory.</span></pre></td></tr> +<tr> <td class="numLineCover"> 323</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">final</span> File path = <span class="keyword">new</span> File(decodedPath);</span></pre></td></tr> +<tr> <td class="numLineCover"> 324</td> <td class="nbHitsUncovered"><a title="Line 324: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 324: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> (path.getName().toLowerCase().endsWith(<span class="string">".jar"</span>)) {</a></span></pre></td></tr> +<tr> <td class="numLineCover"> 325</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> path.getParentFile();</span></pre></td></tr> <tr> <td class="numLine"> 326</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 327</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @return the temporary directory</span></pre></td></tr> + <td class="src"><pre class="src">  } <span class="keyword">else</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 327</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">return</span> <span class="keyword">new</span> File(<span class="string">"."</span>);</span></pre></td></tr> <tr> <td class="numLine"> 328</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 329</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> File getTempDirectory() {</pre></td></tr> -<tr> <td class="numLineCover"> 330</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">new</span> File(Settings.getString(Settings.KEYS.TEMP_DIRECTORY, System.getProperty(<span class="string">"java.io.tmpdir"</span>)));</pre></td></tr> -<tr> <td class="numLine"> 331</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 332</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 330</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 333</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 331</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 334</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 332</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * Returns a value from the properties file. If the value was specified as a</span></pre></td></tr> -<tr> <td class="numLine"> 335</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 333</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * system property or passed in via the -Dprop=value argument - this method</span></pre></td></tr> -<tr> <td class="numLine"> 336</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 334</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * will return the value from the system properties before the values in the</span></pre></td></tr> -<tr> <td class="numLine"> 337</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 335</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * contained configuration file.</span></pre></td></tr> -<tr> <td class="numLine"> 338</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 336</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 339</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 337</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param key the key to lookup within the properties file</span></pre></td></tr> -<tr> <td class="numLine"> 340</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 338</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param defaultValue the default value for the requested property</span></pre></td></tr> +<tr> <td class="numLine"> 339</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return the property from the properties file</span></pre></td></tr> -<tr> <td class="numLine"> 341</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 340</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 342</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> String getString(String key) {</pre></td></tr> -<tr> <td class="numLineCover"> 343</td> <td class="nbHitsCovered"> 184</td> <td class="src"><pre class="src">  <span class="keyword">return</span> System.getProperty(key, INSTANCE.props.getProperty(key));</pre></td></tr> +<tr> <td class="numLine"> 341</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> String getString(String key, String defaultValue) {</pre></td></tr> +<tr> <td class="numLineCover"> 342</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String str = System.getProperty(key, INSTANCE.props.getProperty(key, defaultValue));</pre></td></tr> +<tr> <td class="numLineCover"> 343</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src">  <span class="keyword">return</span> str;</pre></td></tr> <tr> <td class="numLine"> 344</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 345</td> <td class="nbHits"> </td> @@ -652,146 +650,149 @@ <tr> <td class="numLine"> 346</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 347</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Removes a property from the local properties collection. This is mainly</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * Returns the temporary directory.</span></pre></td></tr> <tr> <td class="numLine"> 348</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * used in test cases.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 349</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * @return the temporary directory</span></pre></td></tr> <tr> <td class="numLine"> 350</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param key the property key to remove</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 351</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 352</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> removeProperty(String key) {</pre></td></tr> -<tr> <td class="numLineCover"> 353</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  INSTANCE.props.remove(key);</pre></td></tr> -<tr> <td class="numLineCover"> 354</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  }</pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> File getTempDirectory() {</pre></td></tr> +<tr> <td class="numLineCover"> 352</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src">  <span class="keyword">return</span> <span class="keyword">new</span> File(Settings.getString(Settings.KEYS.TEMP_DIRECTORY, System.getProperty(<span class="string">"java.io.tmpdir"</span>)));</pre></td></tr> +<tr> <td class="numLine"> 353</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 354</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 355</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 356</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * Returns a value from the properties file. If the value was specified as a</span></pre></td></tr> <tr> <td class="numLine"> 357</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Returns an int value from the properties file. If the value was specified</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * system property or passed in via the -Dprop=value argument - this method</span></pre></td></tr> <tr> <td class="numLine"> 358</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * as a system property or passed in via the -Dprop=value argument - this</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * will return the value from the system properties before the values in the</span></pre></td></tr> <tr> <td class="numLine"> 359</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * method will return the value from the system properties before the values</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * contained configuration file.</span></pre></td></tr> <tr> <td class="numLine"> 360</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * in the contained configuration file.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 361</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * @param key the key to lookup within the properties file</span></pre></td></tr> <tr> <td class="numLine"> 362</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param key the key to lookup within the properties file</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * @return the property from the properties file</span></pre></td></tr> <tr> <td class="numLine"> 363</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @return the property from the properties file</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 364</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @throws InvalidSettingException is thrown if there is an error retrieving</span></pre></td></tr> -<tr> <td class="numLine"> 365</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * the setting</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> String getString(String key) {</pre></td></tr> +<tr> <td class="numLineCover"> 365</td> <td class="nbHitsCovered"> 152</td> <td class="src"><pre class="src">  <span class="keyword">return</span> System.getProperty(key, INSTANCE.props.getProperty(key));</pre></td></tr> <tr> <td class="numLine"> 366</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> + <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 367</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">int</span> getInt(String key) <span class="keyword">throws</span> InvalidSettingException {</pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 368</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">int</span> value;</pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 369</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 370</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  value = Integer.parseInt(Settings.getString(key));</pre></td></tr> -<tr> <td class="numLineCover"> 371</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (NumberFormatException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 372</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> InvalidSettingException(<span class="string">"Could not convert property '"</span> + key + <span class="string">"' to an int."</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 373</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 374</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">return</span> value;</pre></td></tr> -<tr> <td class="numLine"> 375</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 376</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * Removes a property from the local properties collection. This is mainly</span></pre></td></tr> +<tr> <td class="numLine"> 370</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * used in test cases.</span></pre></td></tr> +<tr> <td class="numLine"> 371</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 372</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param key the property key to remove</span></pre></td></tr> +<tr> <td class="numLine"> 373</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 374</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> removeProperty(String key) {</pre></td></tr> +<tr> <td class="numLineCover"> 375</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  INSTANCE.props.remove(key);</pre></td></tr> +<tr> <td class="numLineCover"> 376</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 377</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 378</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Returns an int value from the properties file. If the value was specified</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 379</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * as a system property or passed in via the -Dprop=value argument - this</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * Returns an int value from the properties file. If the value was specified</span></pre></td></tr> <tr> <td class="numLine"> 380</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * method will return the value from the system properties before the values</span></pre></td></tr> -<tr> <td class="numLine"> 381</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * in the contained configuration file.</span></pre></td></tr> -<tr> <td class="numLine"> 382</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 383</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param key the key to lookup within the properties file</span></pre></td></tr> -<tr> <td class="numLine"> 384</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @param defaultValue the default value to return</span></pre></td></tr> -<tr> <td class="numLine"> 385</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * @return the property from the properties file or the defaultValue if the</span></pre></td></tr> -<tr> <td class="numLine"> 386</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * property does not exist or cannot be converted to an integer</span></pre></td></tr> -<tr> <td class="numLine"> 387</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 388</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">int</span> getInt(String key, <span class="keyword">int</span> defaultValue) {</pre></td></tr> -<tr> <td class="numLine"> 389</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">int</span> value;</pre></td></tr> -<tr> <td class="numLine"> 390</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 391</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  value = Integer.parseInt(Settings.getString(key));</pre></td></tr> -<tr> <td class="numLineCover"> 392</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  } <span class="keyword">catch</span> (NumberFormatException ex) {</pre></td></tr> -<tr> <td class="numLineCover"> 393</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String msg = String.format(<span class="string">"Could not convert property '%s' to an int."</span>, key);</pre></td></tr> -<tr> <td class="numLineCover"> 394</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  Logger.getLogger(Settings.<span class="keyword">class</span>.getName()).log(Level.FINEST, msg, ex);</pre></td></tr> -<tr> <td class="numLineCover"> 395</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  value = defaultValue;</pre></td></tr> -<tr> <td class="numLineCover"> 396</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> -<tr> <td class="numLineCover"> 397</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">return</span> value;</pre></td></tr> -<tr> <td class="numLine"> 398</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 399</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 400</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> -<tr> <td class="numLine"> 401</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Returns a long value from the properties file. If the value was specified</span></pre></td></tr> -<tr> <td class="numLine"> 402</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * as a system property or passed in via the -Dprop=value argument - this</span></pre></td></tr> -<tr> <td class="numLine"> 403</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 381</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * method will return the value from the system properties before the values</span></pre></td></tr> -<tr> <td class="numLine"> 404</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 382</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * in the contained configuration file.</span></pre></td></tr> -<tr> <td class="numLine"> 405</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 383</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> -<tr> <td class="numLine"> 406</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 384</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @param key the key to lookup within the properties file</span></pre></td></tr> -<tr> <td class="numLine"> 407</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 385</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @return the property from the properties file</span></pre></td></tr> -<tr> <td class="numLine"> 408</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 386</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * @throws InvalidSettingException is thrown if there is an error retrieving</span></pre></td></tr> -<tr> <td class="numLine"> 409</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 387</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> * the setting</span></pre></td></tr> -<tr> <td class="numLine"> 410</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 388</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> -<tr> <td class="numLine"> 411</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">long</span> getLong(String key) <span class="keyword">throws</span> InvalidSettingException {</pre></td></tr> -<tr> <td class="numLine"> 412</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">long</span> value;</pre></td></tr> -<tr> <td class="numLine"> 413</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 389</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">int</span> getInt(String key) <span class="keyword">throws</span> InvalidSettingException {</pre></td></tr> +<tr> <td class="numLine"> 390</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">int</span> value;</pre></td></tr> +<tr> <td class="numLine"> 391</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 414</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  value = Long.parseLong(Settings.getString(key));</pre></td></tr> -<tr> <td class="numLineCover"> 415</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (NumberFormatException ex) {</span></pre></td></tr> -<tr> <td class="numLineCover"> 416</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> InvalidSettingException(<span class="string">"Could not convert property '"</span> + key + <span class="string">"' to an int."</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 417</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 418</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">return</span> value;</pre></td></tr> -<tr> <td class="numLine"> 419</td> <td class="nbHits"> </td> +<tr> <td class="numLineCover"> 392</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  value = Integer.parseInt(Settings.getString(key));</pre></td></tr> +<tr> <td class="numLineCover"> 393</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (NumberFormatException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 394</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> InvalidSettingException(<span class="string">"Could not convert property '"</span> + key + <span class="string">"' to an int."</span>, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 395</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 396</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">return</span> value;</pre></td></tr> +<tr> <td class="numLine"> 397</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLine"> 420</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 398</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> </pre></td></tr> -<tr> <td class="numLine"> 421</td> <td class="nbHits"> </td> +<tr> <td class="numLine"> 399</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 400</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Returns an int value from the properties file. If the value was specified</span></pre></td></tr> +<tr> <td class="numLine"> 401</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * as a system property or passed in via the -Dprop=value argument - this</span></pre></td></tr> +<tr> <td class="numLine"> 402</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * method will return the value from the system properties before the values</span></pre></td></tr> +<tr> <td class="numLine"> 403</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * in the contained configuration file.</span></pre></td></tr> +<tr> <td class="numLine"> 404</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 405</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param key the key to lookup within the properties file</span></pre></td></tr> +<tr> <td class="numLine"> 406</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param defaultValue the default value to return</span></pre></td></tr> +<tr> <td class="numLine"> 407</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @return the property from the properties file or the defaultValue if the</span></pre></td></tr> +<tr> <td class="numLine"> 408</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * property does not exist or cannot be converted to an integer</span></pre></td></tr> +<tr> <td class="numLine"> 409</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 410</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">int</span> getInt(String key, <span class="keyword">int</span> defaultValue) {</pre></td></tr> +<tr> <td class="numLine"> 411</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">int</span> value;</pre></td></tr> +<tr> <td class="numLine"> 412</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 413</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  value = Integer.parseInt(Settings.getString(key));</pre></td></tr> +<tr> <td class="numLineCover"> 414</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  } <span class="keyword">catch</span> (NumberFormatException ex) {</pre></td></tr> +<tr> <td class="numLineCover"> 415</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">final</span> String msg = String.format(<span class="string">"Could not convert property '%s' to an int."</span>, key);</pre></td></tr> +<tr> <td class="numLineCover"> 416</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  Logger.getLogger(Settings.<span class="keyword">class</span>.getName()).log(Level.FINEST, msg, ex);</pre></td></tr> +<tr> <td class="numLineCover"> 417</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  value = defaultValue;</pre></td></tr> +<tr> <td class="numLineCover"> 418</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  }</span></pre></td></tr> +<tr> <td class="numLineCover"> 419</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">return</span> value;</pre></td></tr> +<tr> <td class="numLine"> 420</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 421</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> <tr> <td class="numLine"> 422</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * Returns a boolean value from the properties file. If the value was</span></pre></td></tr> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> <tr> <td class="numLine"> 423</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * specified as a system property or passed in via the</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * Returns a long value from the properties file. If the value was specified</span></pre></td></tr> <tr> <td class="numLine"> 424</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * <code>-Dprop=value</code> argument this method will return the value from</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * as a system property or passed in via the -Dprop=value argument - this</span></pre></td></tr> <tr> <td class="numLine"> 425</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * the system properties before the values in the contained configuration</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * method will return the value from the system properties before the values</span></pre></td></tr> <tr> <td class="numLine"> 426</td> <td class="nbHits"> </td> - <td class="src"><pre class="src"> <span class="comment"> * file.</span></pre></td></tr> + <td class="src"><pre class="src"> <span class="comment"> * in the contained configuration file.</span></pre></td></tr> <tr> <td class="numLine"> 427</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> <tr> <td class="numLine"> 428</td> <td class="nbHits"> </td> @@ -805,22 +806,61 @@ <tr> <td class="numLine"> 432</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 433</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">boolean</span> getBoolean(String key) <span class="keyword">throws</span> InvalidSettingException {</pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">long</span> getLong(String key) <span class="keyword">throws</span> InvalidSettingException {</pre></td></tr> <tr> <td class="numLine"> 434</td> <td class="nbHits"> </td> - <td class="src"><pre class="src">  <span class="keyword">boolean</span> value;</pre></td></tr> + <td class="src"><pre class="src">  <span class="keyword">long</span> value;</pre></td></tr> <tr> <td class="numLine"> 435</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> -<tr> <td class="numLineCover"> 436</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src">  value = Boolean.parseBoolean(Settings.getString(key));</pre></td></tr> +<tr> <td class="numLineCover"> 436</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  value = Long.parseLong(Settings.getString(key));</pre></td></tr> <tr> <td class="numLineCover"> 437</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (NumberFormatException ex) {</span></pre></td></tr> <tr> <td class="numLineCover"> 438</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> InvalidSettingException(<span class="string">"Could not convert property '"</span> + key + <span class="string">"' to an int."</span>, ex);</span></pre></td></tr> -<tr> <td class="numLineCover"> 439</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src">  }</pre></td></tr> -<tr> <td class="numLineCover"> 440</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src">  <span class="keyword">return</span> value;</pre></td></tr> +<tr> <td class="numLineCover"> 439</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 440</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src">  <span class="keyword">return</span> value;</pre></td></tr> <tr> <td class="numLine"> 441</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 442</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> </pre></td></tr> +<tr> <td class="numLine"> 443</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="comment">/**</span></pre></td></tr> +<tr> <td class="numLine"> 444</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * Returns a boolean value from the properties file. If the value was</span></pre></td></tr> +<tr> <td class="numLine"> 445</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * specified as a system property or passed in via the</span></pre></td></tr> +<tr> <td class="numLine"> 446</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * <code>-Dprop=value</code> argument this method will return the value from</span></pre></td></tr> +<tr> <td class="numLine"> 447</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * the system properties before the values in the contained configuration</span></pre></td></tr> +<tr> <td class="numLine"> 448</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * file.</span></pre></td></tr> +<tr> <td class="numLine"> 449</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr> +<tr> <td class="numLine"> 450</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @param key the key to lookup within the properties file</span></pre></td></tr> +<tr> <td class="numLine"> 451</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @return the property from the properties file</span></pre></td></tr> +<tr> <td class="numLine"> 452</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * @throws InvalidSettingException is thrown if there is an error retrieving</span></pre></td></tr> +<tr> <td class="numLine"> 453</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> * the setting</span></pre></td></tr> +<tr> <td class="numLine"> 454</td> <td class="nbHits"> </td> + <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> +<tr> <td class="numLine"> 455</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">boolean</span> getBoolean(String key) <span class="keyword">throws</span> InvalidSettingException {</pre></td></tr> +<tr> <td class="numLine"> 456</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">boolean</span> value;</pre></td></tr> +<tr> <td class="numLine"> 457</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  <span class="keyword">try</span> {</pre></td></tr> +<tr> <td class="numLineCover"> 458</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src">  value = Boolean.parseBoolean(Settings.getString(key));</pre></td></tr> +<tr> <td class="numLineCover"> 459</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  } <span class="keyword">catch</span> (NumberFormatException ex) {</span></pre></td></tr> +<tr> <td class="numLineCover"> 460</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered">  <span class="keyword">throw</span> <span class="keyword">new</span> InvalidSettingException(<span class="string">"Could not convert property '"</span> + key + <span class="string">"' to an int."</span>, ex);</span></pre></td></tr> +<tr> <td class="numLineCover"> 461</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLineCover"> 462</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src">  <span class="keyword">return</span> value;</pre></td></tr> +<tr> <td class="numLine"> 463</td> <td class="nbHits"> </td> + <td class="src"><pre class="src">  }</pre></td></tr> +<tr> <td class="numLine"> 464</td> <td class="nbHits"> </td> <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.UrlStringUtils.html b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.UrlStringUtils.html index f1a96cf39..7a9161525 100644 --- a/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.UrlStringUtils.html +++ b/dependency-check-core/cobertura/org.owasp.dependencycheck.utils.UrlStringUtils.html @@ -125,7 +125,7 @@ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr> <tr> <td class="numLine"> 56</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">boolean</span> containsUrl(String text) {</pre></td></tr> -<tr> <td class="numLineCover"> 57</td> <td class="nbHitsCovered"> 25671</td> <td class="src"><pre class="src">  <span class="keyword">return</span> CONTAINS_URL_TEST.matcher(text).matches();</pre></td></tr> +<tr> <td class="numLineCover"> 57</td> <td class="nbHitsCovered"> 21169</td> <td class="src"><pre class="src">  <span class="keyword">return</span> CONTAINS_URL_TEST.matcher(text).matches();</pre></td></tr> <tr> <td class="numLine"> 58</td> <td class="nbHits"> </td> <td class="src"><pre class="src">  }</pre></td></tr> <tr> <td class="numLine"> 59</td> <td class="nbHits"> </td> @@ -220,6 +220,6 @@ <td class="src"><pre class="src"> }</pre></td></tr> </table> -<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 11/16/13 1:26 PM.</div> +<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9.4.1 on 12/1/13 8:06 AM.</div> </body> </html> diff --git a/dependency-check-core/cpd.html b/dependency-check-core/cpd.html index ec3907fcb..7036f40b6 100644 --- a/dependency-check-core/cpd.html +++ b/dependency-check-core/cpd.html @@ -1,13 +1,13 @@ <!DOCTYPE html> <!-- - | Generated by Apache Maven Doxia at 2013-11-16 + | Generated by Apache Maven Doxia at 2013-12-01 | Rendered using Apache Maven Fluido Skin 1.3.0 --> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <meta name="Date-Revision-yyyymmdd" content="20131116" /> + <meta name="Date-Revision-yyyymmdd" content="20131201" /> <meta http-equiv="Content-Language" content="en" /> <title>dependency-check-core - CPD Results @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -220,28 +220,7 @@

    The following document contains the results of PMD's CPD 5.0.2.

    Duplications

    - - - - - - - - - - -
    FileLine
    org\owasp\dependencycheck\data\cpe\CpeIndexWriter.java78
    org\owasp\dependencycheck\data\cpe\CpeIndexWriter.java105
    -
    -
                    indexWriter.close(true);
    -            } catch (CorruptIndexException ex) {
    -                final String msg = "Unable to update database, there is a corrupt index.";
    -                Logger.getLogger(CpeIndexWriter.class.getName()).log(Level.SEVERE, msg);
    -                Logger.getLogger(CpeIndexWriter.class.getName()).log(Level.FINE, null, ex);
    -            } catch (IOException ex) {
    -                final String msg = "Unable to update database due to an IO error.";
    -                Logger.getLogger(CpeIndexWriter.class.getName()).log(Level.SEVERE, msg);
    -                Logger.getLogger(CpeIndexWriter.class.getName()).log(Level.FINE, null, ex);
    -            } finally {
    +

    CPD found no problems in your source code.

    diff --git a/dependency-check-core/dependency-updates-report.html b/dependency-check-core/dependency-updates-report.html index 71546ad81..edb9b07db 100644 --- a/dependency-check-core/dependency-updates-report.html +++ b/dependency-check-core/dependency-updates-report.html @@ -1,13 +1,13 @@ - + dependency-check-core - Dependency Updates Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -405,37 +405,37 @@

    org.apache.lucene lucene-analyzers-common4.3.14.5.1 compile jar 4.4.04.6.0
    org.apache.lucene lucene-core4.3.14.5.1 compile jar 4.4.04.6.0
    org.apache.lucene lucene-queryparser4.3.14.5.1 compile jar 4.4.04.6.0
    jar
    Newer versions2.5.1 Next Incremental
    2.6 Next Minor
    2.6.1
    2.6.2
    2.6.3
    2.6.4
    3.0-RC1
    3.0-RC2 Latest Minor
    3.0 Next Major
    3.0.1
    3.0.2
    3.0.3
    3.1
    3.1.1 Latest Major
    +2.5.1 Next Incremental
    2.6 Next Minor
    2.6.1
    2.6.2
    2.6.3
    2.6.4
    2.6.5
    3.0-RC1
    3.0-RC2 Latest Minor
    3.0 Next Major
    3.0.1
    3.0.2
    3.0.3
    3.1
    3.1.1
    3.1.2 Latest Major

    commons-cli:commons-cli

    @@ -898,7 +898,7 @@ - + @@ -910,7 +910,7 @@ -
    lucene-analyzers-common
    Current Version4.3.1
    4.5.1
    Scope compile
    jar
    Newer versions4.4.0 Next Minor
    4.5.0
    4.5.1 Latest Minor
    +4.6.0 Next Minor

    org.apache.lucene:lucene-core

    @@ -925,7 +925,7 @@ - + @@ -937,7 +937,7 @@ -
    lucene-core
    Current Version4.3.1
    4.5.1
    Scope compile
    jar
    Newer versions4.4.0 Next Minor
    4.5.0
    4.5.1 Latest Minor
    +4.6.0 Next Minor

    org.apache.lucene:lucene-queryparser

    @@ -952,7 +952,7 @@ - + @@ -964,7 +964,7 @@ -
    lucene-queryparser
    Current Version4.3.1
    4.5.1
    Scope compile
    jar
    Newer versions4.4.0 Next Minor
    4.5.0
    4.5.1 Latest Minor
    +4.6.0 Next Minor

    org.apache.lucene:lucene-test-framework

    @@ -991,7 +991,7 @@ -
    jar
    Newer versions4.4.0 Next Minor
    4.5.0
    4.5.1 Latest Minor
    +4.4.0 Next Minor
    4.5.0
    4.5.1
    4.6.0 Latest Minor

    org.apache.maven.scm:maven-scm-provider-cvsexe

    diff --git a/dependency-check-core/failsafe-report.html b/dependency-check-core/failsafe-report.html index d39396fc3..e96486561 100644 --- a/dependency-check-core/failsafe-report.html +++ b/dependency-check-core/failsafe-report.html @@ -1,13 +1,13 @@ - + dependency-check-core - Surefire Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -246,12 +246,12 @@ function toggleDisplay(elementId) { - + -
    Success Rate Time
    86 0 0 0 100%111.043

    +315.529

    Note: failures are anticipated and checked for with assertions while errors are unanticipated.


    Package List

    @@ -272,7 +272,7 @@ function toggleDisplay(elementId) { 0 0 100% -14.649 +176.186 org.owasp.dependencycheck.utils 2 @@ -280,7 +280,7 @@ function toggleDisplay(elementId) { 0 0 100% -4.162 +3.221 org.owasp.dependencycheck.data.update 3 @@ -288,15 +288,7 @@ function toggleDisplay(elementId) { 0 0 100% -92.226 - -org.owasp.dependencycheck.data.cpe -2 -0 -0 -0 -100% -0.006
    +136.122

    Note: package statistics are not computed recursively, they only sum up all of its testsuites numbers.

    org.owasp.dependencycheck

    @@ -318,7 +310,7 @@ function toggleDisplay(elementId) { 0 0 100% -14.649
    +176.186

    org.owasp.dependencycheck.utils

    @@ -339,7 +331,7 @@ function toggleDisplay(elementId) { -
    0 0 100%4.162
    +3.221

    org.owasp.dependencycheck.data.update

    @@ -360,7 +352,7 @@ function toggleDisplay(elementId) { - + @@ -369,78 +361,46 @@ function toggleDisplay(elementId) { -
    0 0 100%91.86
    135.694
    StandardUpdateTaskIntegrationTest0 0 100%0.366
    -
    -

    org.owasp.dependencycheck.data.cpe

    - - - - - - - - - - - - - - - - - - -
    ClassTestsErrors FailuresSkippedSuccess RateTime
    IndexIntegrationTest2000100%0.006

    +0.428

    Test Cases

    [Summary] [Package List] [Test Cases]

    -

    IndexIntegrationTest

    - - - - - - - - -
    testUpdateNeeded0.006
    testUpdate0
    -

    DatabaseUpdaterIntegrationTest

    -
    testUpdate91.86
    +135.694

    StandardUpdateTaskIntegrationTest

    - + -
    testUpdatesNeeded0.327
    0.361
    testUpdate0.039
    +0.067

    EngineIntegrationTest

    -
    testScan14.649
    +176.186

    DownloaderIntegrationTest

    - + -
    testGetLastModified0.035
    0.407
    testFetchFile4.127

    +2.814
    diff --git a/dependency-check-core/findbugs.html b/dependency-check-core/findbugs.html index 72decd033..f08ecd14c 100644 --- a/dependency-check-core/findbugs.html +++ b/dependency-check-core/findbugs.html @@ -1,13 +1,13 @@ - + dependency-check-core - FindBugs Bug Detector Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -230,8 +230,8 @@ Errors Missing Classes -184 -7 +194 +8 0 0

    org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer

    - + - + - + @@ -279,13 +282,13 @@

    org.owasp.dependencycheck.analyzer.JavaScriptAnalyzer

    Bug Category Details Line Priority
    Possible null pointer dereference of currentVersion in org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer.removeSpuriousCPE(Dependency) CORRECTNESS NP_NULL_ON_SOME_PATH 166 Medium
    Possible null pointer dereference of nextVersion on branch that might be infeasible in org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer.removeSpuriousCPE(Dependency) STYLE NP_NULL_ON_SOME_PATH_MIGHT_BE_INFEASIBLE
    - + - + @@ -294,28 +297,43 @@

    org.owasp.dependencycheck.concurrency.DirectorySpinLock

    Bug Category Details Line Priority
    Dead store to extractComments in org.owasp.dependencycheck.analyzer.JavaScriptAnalyzer.analyze(Dependency, Engine) STYLE DLS_DEAD_LOCAL_STORE
    - + - + -
    Bug Category Details Line Priority
    exceptional return value of java.io.File.delete() ignored in org.owasp.dependencycheck.concurrency.DirectorySpinLock.close() BAD_PRACTICE RV_RETURN_VALUE_IGNORED_BAD_PRACTICE 247Medium
    +Medium
    -

    org.owasp.dependencycheck.utils.Downloader

    +

    org.owasp.dependencycheck.data.nvdcve.CveDB

    - + + + + + + +
    Bug Category Details Line Priority
    org.owasp.dependencycheck.data.nvdcve.CveDB.getVendorProductList() may fail to close PreparedStatementBAD_PRACTICEODR_OPEN_DATABASE_RESOURCE177Medium
    +
    +

    org.owasp.dependencycheck.utils.Downloader

    + + + + + + + @@ -324,13 +342,13 @@

    org.owasp.dependencycheck.utils.LogUtils

    BugCategoryDetailsLinePriority
    Redundant nullcheck of conn which is known to be null in org.owasp.dependencycheck.utils.Downloader.getConnection(URL) STYLE RCN_REDUNDANT_NULLCHECK_OF_NULL_VALUE
    - + - + diff --git a/dependency-check-core/index.html b/dependency-check-core/index.html index c89232ee4..8ad5d842a 100644 --- a/dependency-check-core/index.html +++ b/dependency-check-core/index.html @@ -1,13 +1,13 @@ - + dependency-check-core - @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • diff --git a/dependency-check-core/license.html b/dependency-check-core/license.html index 6a040824d..08e910913 100644 --- a/dependency-check-core/license.html +++ b/dependency-check-core/license.html @@ -1,13 +1,13 @@ - + dependency-check-core - Project License @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • diff --git a/dependency-check-core/plugin-updates-report.html b/dependency-check-core/plugin-updates-report.html index c64b935ab..551d5d8e5 100644 --- a/dependency-check-core/plugin-updates-report.html +++ b/dependency-check-core/plugin-updates-report.html @@ -1,13 +1,13 @@ - + dependency-check-core - Plugin Updates Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -242,7 +242,7 @@ -
    Bug Category Details Line Priority
    Changes to logger could be lost in org.owasp.dependencycheck.utils.LogUtils.prepareLogger(InputStream, String) EXPERIMENTAL LG_LOST_LOGGER_DUE_TO_WEAK_REFERENCE
    # of plugins where a dependencies section containes a dependency with an updated version0
    +1

    Plugin Management

    @@ -420,7 +420,7 @@ - + @@ -428,7 +428,7 @@ - + @@ -741,7 +741,7 @@ - + @@ -749,7 +749,7 @@ - + @@ -767,7 +767,7 @@
    org.apache.maven.plugins maven-site-plugin 3.3
    org.apache.maven.pluginsNext Minor Next Major
    org.apache.maven.doxia doxia-module-markdown 1.4jar 1.5
    Status
    - + @@ -782,7 +782,10 @@ -
    Status No newer versions available.
     There is at least one newer minor version available. Minor updates are sometimes passive.
    Group Id org.apache.maven.doxia
    Typejar
    +jar + +Newer versions +1.5 Next Minor

    Plugin org.apache.maven.plugins:maven-surefire-plugin

    diff --git a/dependency-check-core/pmd.html b/dependency-check-core/pmd.html index 57cac26e2..5e6c1dd46 100644 --- a/dependency-check-core/pmd.html +++ b/dependency-check-core/pmd.html @@ -1,13 +1,13 @@ - + dependency-check-core - PMD Results @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -240,115 +240,118 @@ - - - - - - - + - + -
    Line
    Useless parentheses.136
    Useless parentheses.207
    These nested if statements could be combined588 - 593
    191
    These nested if statements could be combined589 - 592
    572 - 577
    These nested if statements could be combined598 - 601
    +573 - 576 + +These nested if statements could be combined +582 - 585

    org/owasp/dependencycheck/analyzer/DependencyBundlingAnalyzer.java

    - + - + - +
    Violation Line
    Invoke equals() on the object you've already ensured is not null 221
    These nested if statements could be combined 235 - 237

    org/owasp/dependencycheck/analyzer/FalsePositiveAnalyzer.java

    - + - +
    Violation Line
    These nested if statements could be combined 154 - 175

    org/owasp/dependencycheck/analyzer/JarAnalyzer.java

    - + - - - - + + + +
    Violation Line
    Useless parentheses.337
    Useless parentheses.834
    337
    Useless parentheses.834
    Avoid unused method parameters such as 'classes'. 972

    org/owasp/dependencycheck/analyzer/JavaScriptAnalyzer.java

    - + - +
    Violation Line
    Avoid unused local variables such as 'extractComments'. 99

    org/owasp/dependencycheck/analyzer/NvdCveAnalyzer.java

    - + - +
    Violation Line
    Useless parentheses. 78

    org/owasp/dependencycheck/concurrency/DirectorySpinLock.java

    - + - +
    Violation Line
    These nested if statements could be combined 243 - 248
    -

    org/owasp/dependencycheck/data/cpe/BaseIndex.java

    +

    org/owasp/dependencycheck/data/BaseDB.java

    - + - + -
    Violation Line
    These nested if statements could be combined111 - 113
    +183 - 185

    org/owasp/dependencycheck/data/cpe/IndexEntry.java

    - + - + - +
    Violation Line
    Useless parentheses. 171
    Useless parentheses. 174

    org/owasp/dependencycheck/data/nvdcve/CveDB.java

    - + - - - -
    Violation Line
    These nested if statements could be combined517 - 519
    Useless parentheses.664
    +494 +
    +

    org/owasp/dependencycheck/data/update/StandardUpdateTask.java

    + + + + + + +
    ViolationLine
    Useless parentheses.100

    org/owasp/dependencycheck/dependency/Dependency.java

    @@ -440,6 +443,15 @@
    Useless parentheses. 184
    +

    org/owasp/dependencycheck/suppression/PropertyType.java

    + + + + + + +
    ViolationLine
    Useless parentheses.164
    +

    org/owasp/dependencycheck/utils/Checksum.java

    diff --git a/dependency-check-core/project-info.html b/dependency-check-core/project-info.html index ed07d244a..fb4d45423 100644 --- a/dependency-check-core/project-info.html +++ b/dependency-check-core/project-info.html @@ -1,13 +1,13 @@ - + dependency-check-core - Project Information @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • diff --git a/dependency-check-core/project-reports.html b/dependency-check-core/project-reports.html index 07ef73b60..cd549418a 100644 --- a/dependency-check-core/project-reports.html +++ b/dependency-check-core/project-reports.html @@ -1,13 +1,13 @@ - + dependency-check-core - Generated Reports @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • diff --git a/dependency-check-core/project-summary.html b/dependency-check-core/project-summary.html index fc987835c..89a10d358 100644 --- a/dependency-check-core/project-summary.html +++ b/dependency-check-core/project-summary.html @@ -1,13 +1,13 @@ - + dependency-check-core - Project Summary @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -188,7 +188,7 @@ - + diff --git a/dependency-check-core/surefire-report.html b/dependency-check-core/surefire-report.html index 1025e7835..a1f6eac09 100644 --- a/dependency-check-core/surefire-report.html +++ b/dependency-check-core/surefire-report.html @@ -1,13 +1,13 @@ - + dependency-check-core - Surefire Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -246,12 +246,12 @@ function toggleDisplay(elementId) { - + -
    dependency-check-core
    Version1.0.5
    1.0.6
    Type jar
    Success Rate Time
    125158 0 0 0 100%59.712

    +253.446

    Note: failures are anticipated and checked for with assertions while errors are unanticipated.


    Package List

    @@ -272,7 +272,7 @@ function toggleDisplay(elementId) { 0 0 100% -28.466 +23.082 org.owasp.dependencycheck.data.cwe 1 @@ -288,7 +288,7 @@ function toggleDisplay(elementId) { 0 0 100% -0.001 +0.029 org.owasp.dependencycheck.utils 29 @@ -296,7 +296,7 @@ function toggleDisplay(elementId) { 0 0 100% -0.082 +0.028 org.owasp.dependencycheck.concurrency 3 @@ -304,15 +304,15 @@ function toggleDisplay(elementId) { 0 0 100% -9.507 +9.553 org.owasp.dependencycheck.analyzer -29 +28 0 0 0 100% -15.018 +157.314 org.owasp.dependencycheck.data.update 21 @@ -320,7 +320,7 @@ function toggleDisplay(elementId) { 0 0 100% -3.779 +6.287 org.owasp.dependencycheck.data.nvdcve 5 @@ -328,18 +328,26 @@ function toggleDisplay(elementId) { 0 0 100% -1.502 +56.13 +org.owasp.dependencycheck.suppression +35 +0 +0 +0 +100% +0.012 + org.owasp.dependencycheck.data.lucene 10 0 0 0 100% -1.357 - +1.011 + org.owasp.dependencycheck.data.cpe -2 +1 0 0 0 @@ -366,7 +374,7 @@ function toggleDisplay(elementId) { 0 0 100% -28.466
    +23.082

    org.owasp.dependencycheck.data.cwe

    @@ -408,7 +416,7 @@ function toggleDisplay(elementId) { - + @@ -417,7 +425,7 @@ function toggleDisplay(elementId) { -
    0 0 100%0
    0.029
    VulnerableSoftwareTest0 0 100%0.001
    +0

    org.owasp.dependencycheck.utils

    @@ -438,7 +446,7 @@ function toggleDisplay(elementId) { - + @@ -447,7 +455,7 @@ function toggleDisplay(elementId) { - + @@ -513,7 +521,7 @@ function toggleDisplay(elementId) { -
    0 0 100%0.042
    0.028
    DependencyVersionTest0 0 100%0.04
    0
    DependencyVersionUtilTest0 0 100%9.507
    +9.553

    org.owasp.dependencycheck.analyzer

    @@ -534,7 +542,7 @@ function toggleDisplay(elementId) { - + @@ -543,7 +551,7 @@ function toggleDisplay(elementId) { - + @@ -552,16 +560,16 @@ function toggleDisplay(elementId) { - + - + - + @@ -570,7 +578,7 @@ function toggleDisplay(elementId) { - + @@ -579,7 +587,7 @@ function toggleDisplay(elementId) { -
    0 0 100%0.024
    0.053
    AnalyzerServiceTest0 0 100%0.516
    0.631
    ArchiveAnalyzerTest0 0 100%5.631
    83.382
    CPEAnalyzerTest54 0 0 0 100%7.492
    72.213
    FileNameAnalyzerTest0 0 100%0.037
    0.004
    JarAnalyzerTest0 0 100%1.318
    +1.031

    org.owasp.dependencycheck.data.update

    @@ -600,7 +608,7 @@ function toggleDisplay(elementId) { - + @@ -609,7 +617,7 @@ function toggleDisplay(elementId) { - + @@ -618,7 +626,7 @@ function toggleDisplay(elementId) { - + @@ -657,7 +665,7 @@ function toggleDisplay(elementId) { - + @@ -666,7 +674,7 @@ function toggleDisplay(elementId) { - + @@ -675,7 +683,55 @@ function toggleDisplay(elementId) { -
    0 0 100%0.252
    2.888
    BatchUpdateTaskTest0 0 100%3.527
    3.396
    DataStoreMetaInfoTest0 0 100%0
    0.003
    NvdCveInfoTest0 0 100%1.154
    55.822
    NvdCve_1_2_HandlerTest0 0 100%0.052
    0.054
    NvdCve_2_0_HandlerTest0 0 100%0.296
    +0.254 +
    +

    org.owasp.dependencycheck.suppression

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ClassTestsErrors FailuresSkippedSuccess RateTime
    PropertyTypeTest4000100%0
    SuppressionHandlerTest1000100%0.01
    SuppressionParserTest1000100%0
    SuppressionRuleTest29000100%0.002

    org.owasp.dependencycheck.data.lucene

    @@ -696,7 +752,7 @@ function toggleDisplay(elementId) { - + @@ -714,7 +770,7 @@ function toggleDisplay(elementId) { - + @@ -723,7 +779,7 @@ function toggleDisplay(elementId) { -
    0 0 100%0.104
    0
    LuceneUtilsTest0 0 100%0.059
    0.063
    UrlTokenizingFilterTest0 0 100%1.194
    +0.948

    org.owasp.dependencycheck.data.cpe

    @@ -737,15 +793,6 @@ function toggleDisplay(elementId) { - - - - - - - - - @@ -763,87 +810,83 @@ function toggleDisplay(elementId) { -
    Success Rate Time
    BaseIndexTest1000100%0
    IndexEntryTest 1
    testNewHashSet0.024
    +0.053

    AnalyzerServiceTest

    -
    testGetAnalyzers0.516
    +0.631

    ArchiveAnalyzerTest

    - + - + - + - + - + - + - + - + - + -
    testAnalyzeTar0.256
    3.631
    testAnalyzeTgz2.259
    29.487
    testAnalyze0.279
    3.657
    testGetAnalysisPhase0.001
    3.515
    testGetName0
    3.42
    testAnalyze_badZip0.008
    3.807
    testInitialize0
    4.017
    testAnalyzeTarGz2.828
    25.255
    testSupportsExtension0
    3.218
    testGetSupportedExtensions0
    +3.375

    CPEAnalyzerTest

    - + - + - - - - - - + + -
    testSearchCPE1.636
    21.684
    testDetermineCPE1.769
    17.131
    testOpen0.163
    testDetermineCPE_full3.923
    29.983
    testBuildSearch0.001
    +3.415

    FileNameAnalyzerTest

    - + @@ -863,56 +906,49 @@ function toggleDisplay(elementId) { - + -
    testAnalyze0.036
    0.003
    testClose
    testSupportsExtension0
    0.001
    testGetSupportedExtensions0.001
    +0

    JarAnalyzerTest

    - + - + - + - + -
    testAnalyze0.289
    0.285
    testGetName0.213
    0.168
    testInterpolateString0.349
    0.169
    testSupportsExtension0.245
    0.171
    testGetSupportedExtensions0.222
    +0.238

    DirectorySpinLockTest

    - + - + -
    testObtainSharedLock2.003
    2.01
    testObtainSharedLock_withContention6.001
    6.029
    testObtainExclusiveLock1.503
    -
    -

    BaseIndexTest

    - - - - -
    testGetDataDirectory0
    +1.514

    IndexEntryTest

    @@ -933,7 +969,7 @@ function toggleDisplay(elementId) { -
    testAnalyzers0.104
    +0

    LuceneUtilsTest

    @@ -959,85 +995,85 @@ function toggleDisplay(elementId) { - + -
    testClear0.041
    0.063
    testExamples0.018
    +0

    UrlTokenizingFilterTest

    - - + + - + - -
    testRandomStrings1.194
    testEmptyTerm0.04
    testExamples0
    0.052
    testEmptyTerm0
    +testRandomStrings +0.856

    CveDBTest

    - + - + -
    testOpen0.356
    19.965
    testGetCPEs0.267
    15.795
    testGetVulnerabilities0.531
    +20.062

    NvdCve_1_2_HandlerTest

    -
    testParse0.052
    +0.054

    NvdCve_2_0_HandlerTest

    -
    testParse0.296
    +0.254

    AbstractUpdateTaskTest

    - + - + - + -
    testOpenDataStores0.197
    2.83
    testSetDeleteAndRecreate0
    0.001
    testWithinRange0.001
    0
    testDeleteExistingData0.054
    +0.057

    BatchUpdateTaskTest

    - + -
    testSetDoBatchUpdate0.194
    0.22
    testUpdate3.333
    +3.176

    DataStoreMetaInfoTest

    @@ -1048,7 +1084,7 @@ function toggleDisplay(elementId) { - + @@ -1060,7 +1096,7 @@ function toggleDisplay(elementId) { -
    testSave0
    0.002
    testGetPropertiesFile
    testIsEmpty0
    +0.001

    NvdCveInfoTest

    @@ -1117,7 +1153,7 @@ function toggleDisplay(elementId) { - + @@ -1165,7 +1201,7 @@ function toggleDisplay(elementId) { - + @@ -1173,7 +1209,7 @@ function toggleDisplay(elementId) { - + @@ -1204,25 +1240,177 @@ function toggleDisplay(elementId) { -
    testGetSha1sum0
    0.008
    testGetProductEvidence
    testGetFileExtension0
    0.001
    testSetMd5sum
    testGetMd5sum0
    0.02
    testGetEvidence
    testEquals0.001
    +0

    ReportGeneratorTest

    - +
    testGenerateXMLReport28.466
    23.082
    testGenerateReport 0
    +

    PropertyTypeTest

    + + + + + + + + + + + + + + + + +
    testSetGetValue0
    testMatches0
    testIsRegex0
    testIsCaseSensitive0
    +
    +

    SuppressionHandlerTest

    + + + + +
    testHandler0.01
    +
    +

    SuppressionParserTest

    + + + + +
    testParseSuppressionRules0
    +
    +

    SuppressionRuleTest

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    testCpeHasNoVersion0
    testCpe0
    testCve0
    testCwe0.001
    testSha10
    testCpeMatches0
    testHasCvssBelow0
    testProcess0
    testGetSha10
    testAddCvssBelow0
    testFilePath0
    testGetCvssBelow0
    testSetFilePath0
    testGetFilePath0
    testAddCpe0
    testAddCve0
    testAddCwe0
    testGetCpe0
    testGetCve0
    testGetCwe0
    testHasCpe0
    testHasCve0
    testHasCwe0
    testSetCvssBelow0
    testSetSha10
    testSetCpe0
    testSetCve0
    testSetCwe0.001
    testCountCharacter0
    +

    ChecksumTest

    - + @@ -1257,7 +1445,7 @@ function toggleDisplay(elementId) { - + @@ -1319,7 +1507,7 @@ function toggleDisplay(elementId) { - + diff --git a/dependency-check-core/taglist.html b/dependency-check-core/taglist.html index dbe5417b0..330a74e55 100644 --- a/dependency-check-core/taglist.html +++ b/dependency-check-core/taglist.html @@ -1,13 +1,13 @@ - + dependency-check-core - Tag List report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -225,12 +225,12 @@ - +
    testGetChecksum_NoSuchAlgorithm0.042
    0.028
    testGetChecksum
    testCompareTo0.04
    0
    testParseVersion0
    testGetFiletestGetDataFile 0
    Tag strings used by tag class
    Todo Work3229 todo, FIXME

    Each tag is detailed below:

    Todo Work

    -

    Number of occurrences found in the code: 32

    +

    Number of occurrences found in the code: 29

    @@ -243,19 +243,19 @@ - + - + - + - + @@ -308,24 +308,6 @@ - - - - - - - - - - - - - - - - - - @@ -348,13 +330,13 @@ - + - + @@ -362,6 +344,12 @@ + + + + + + diff --git a/dependency-check-core/xref-test/allclasses-frame.html b/dependency-check-core/xref-test/allclasses-frame.html index ae566932b..a000b6c90 100644 --- a/dependency-check-core/xref-test/allclasses-frame.html +++ b/dependency-check-core/xref-test/allclasses-frame.html @@ -28,9 +28,6 @@
  • BaseDBTestCase -
  • -
  • - BaseIndexTest
  • BaseIndexTestCase @@ -91,9 +88,6 @@
  • IndexEntryTest -
  • -
  • - IndexIntegrationTest
  • JarAnalyzerTest @@ -109,6 +103,9 @@
  • NvdCve_2_0_HandlerTest +
  • +
  • + PropertyTypeTest
  • ReportGeneratorTest @@ -121,6 +118,15 @@
  • StandardUpdateTaskIntegrationTest +
  • +
  • + SuppressionHandlerTest +
  • +
  • + SuppressionParserTest +
  • +
  • + SuppressionRuleTest
  • TokenPairConcatenatingFilterTest diff --git a/dependency-check-core/xref-test/index.html b/dependency-check-core/xref-test/index.html index 4d9435a62..507b53bb5 100644 --- a/dependency-check-core/xref-test/index.html +++ b/dependency-check-core/xref-test/index.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference + Dependency-Check Core 1.0.6 Reference diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/analyzer/CPEAnalyzerTest.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/analyzer/CPEAnalyzerTest.html index a8f779674..b92f58f6d 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/analyzer/CPEAnalyzerTest.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/analyzer/CPEAnalyzerTest.html @@ -112,18 +112,18 @@ 102 } 103 104 /** -105 * Test of open method, of class CPEAnalyzer. +105 * Test of determineCPE method, of class CPEAnalyzer. 106 * 107 * @throws Exception is thrown when an exception occurs 108 */ 109 @Test -110 public void testOpen() throws Exception { -111 CPEAnalyzer instance = new CPEAnalyzer(); -112 Assert.assertFalse(instance.isOpen()); -113 instance.open(); -114 Assert.assertTrue(instance.isOpen()); -115 instance.close(); -116 Assert.assertFalse(instance.isOpen()); +110 public void testDetermineCPE_full() throws Exception { +111 callDetermineCPE_full("hazelcast-2.5.jar", null); +112 callDetermineCPE_full("spring-context-support-2.5.5.jar", "cpe:/a:vmware:springsource_spring_framework:2.5.5"); +113 callDetermineCPE_full("spring-core-3.0.0.RELEASE.jar", "cpe:/a:vmware:springsource_spring_framework:3.0.0"); +114 callDetermineCPE_full("org.mortbay.jetty.jar", "cpe:/a:mortbay_jetty:jetty:4.2"); +115 callDetermineCPE_full("jaxb-xercesImpl-1.5.jar", null); +116 callDetermineCPE_full("ehcache-core-2.2.0.jar", null); 117 } 118 119 /** @@ -131,140 +131,125 @@ 121 * 122 * @throws Exception is thrown when an exception occurs 123 */ -124 @Test -125 public void testDetermineCPE_full() throws Exception { -126 callDetermineCPE_full("hazelcast-2.5.jar", null); -127 callDetermineCPE_full("spring-context-support-2.5.5.jar", "cpe:/a:vmware:springsource_spring_framework:2.5.5"); -128 callDetermineCPE_full("spring-core-3.0.0.RELEASE.jar", "cpe:/a:vmware:springsource_spring_framework:3.0.0"); -129 callDetermineCPE_full("org.mortbay.jetty.jar", "cpe:/a:mortbay_jetty:jetty:4.2"); -130 callDetermineCPE_full("jaxb-xercesImpl-1.5.jar", null); -131 callDetermineCPE_full("ehcache-core-2.2.0.jar", null); -132 } -133 -134 /** -135 * Test of determineCPE method, of class CPEAnalyzer. -136 * -137 * @throws Exception is thrown when an exception occurs -138 */ -139 public void callDetermineCPE_full(String depName, String expResult) throws Exception { -140 -141 File file = new File(this.getClass().getClassLoader().getResource(depName).getPath()); -142 -143 Dependency dep = new Dependency(file); -144 -145 FileNameAnalyzer fnAnalyzer = new FileNameAnalyzer(); -146 fnAnalyzer.analyze(dep, null); -147 -148 JarAnalyzer jarAnalyzer = new JarAnalyzer(); -149 jarAnalyzer.analyze(dep, null); -150 HintAnalyzer hAnalyzer = new HintAnalyzer(); -151 hAnalyzer.analyze(dep, null); -152 -153 -154 CPEAnalyzer instance = new CPEAnalyzer(); -155 instance.open(); -156 instance.analyze(dep, null); -157 instance.close(); -158 FalsePositiveAnalyzer fp = new FalsePositiveAnalyzer(); -159 fp.analyze(dep, null); -160 -161 // for (Identifier i : dep.getIdentifiers()) { -162 // System.out.println(i.getValue()); -163 // } -164 if (expResult != null) { -165 Identifier expIdentifier = new Identifier("cpe", expResult, expResult); -166 Assert.assertTrue("Incorrect match: { dep:'" + dep.getFileName() + "' }", dep.getIdentifiers().contains(expIdentifier)); -167 } else if (dep.getIdentifiers().isEmpty()) { -168 Assert.assertTrue("Match found when an Identifier should not have been found: { dep:'" + dep.getFileName() + "' }", dep.getIdentifiers().isEmpty()); -169 } else { -170 Assert.assertTrue("Match found when an Identifier should not have been found: { dep:'" + dep.getFileName() + "', identifier:'" + dep.getIdentifiers().iterator().next().getValue() + "' }", dep.getIdentifiers().isEmpty()); -171 } -172 } -173 -174 /** -175 * Test of determineCPE method, of class CPEAnalyzer. -176 * -177 * @throws Exception is thrown when an exception occurs -178 */ -179 @Test -180 public void testDetermineCPE() throws Exception { -181 File file = new File(this.getClass().getClassLoader().getResource("struts2-core-2.1.2.jar").getPath()); -182 //File file = new File(this.getClass().getClassLoader().getResource("axis2-adb-1.4.1.jar").getPath()); -183 Dependency struts = new Dependency(file); +124 public void callDetermineCPE_full(String depName, String expResult) throws Exception { +125 +126 File file = new File(this.getClass().getClassLoader().getResource(depName).getPath()); +127 +128 Dependency dep = new Dependency(file); +129 +130 FileNameAnalyzer fnAnalyzer = new FileNameAnalyzer(); +131 fnAnalyzer.analyze(dep, null); +132 +133 JarAnalyzer jarAnalyzer = new JarAnalyzer(); +134 jarAnalyzer.analyze(dep, null); +135 HintAnalyzer hAnalyzer = new HintAnalyzer(); +136 hAnalyzer.analyze(dep, null); +137 +138 +139 CPEAnalyzer instance = new CPEAnalyzer(); +140 instance.open(); +141 instance.analyze(dep, null); +142 instance.close(); +143 FalsePositiveAnalyzer fp = new FalsePositiveAnalyzer(); +144 fp.analyze(dep, null); +145 +146 // for (Identifier i : dep.getIdentifiers()) { +147 // System.out.println(i.getValue()); +148 // } +149 if (expResult != null) { +150 Identifier expIdentifier = new Identifier("cpe", expResult, expResult); +151 Assert.assertTrue("Incorrect match: { dep:'" + dep.getFileName() + "' }", dep.getIdentifiers().contains(expIdentifier)); +152 } else if (dep.getIdentifiers().isEmpty()) { +153 Assert.assertTrue("Match found when an Identifier should not have been found: { dep:'" + dep.getFileName() + "' }", dep.getIdentifiers().isEmpty()); +154 } else { +155 Assert.assertTrue("Match found when an Identifier should not have been found: { dep:'" + dep.getFileName() + "', identifier:'" + dep.getIdentifiers().iterator().next().getValue() + "' }", dep.getIdentifiers().isEmpty()); +156 } +157 } +158 +159 /** +160 * Test of determineCPE method, of class CPEAnalyzer. +161 * +162 * @throws Exception is thrown when an exception occurs +163 */ +164 @Test +165 public void testDetermineCPE() throws Exception { +166 File file = new File(this.getClass().getClassLoader().getResource("struts2-core-2.1.2.jar").getPath()); +167 //File file = new File(this.getClass().getClassLoader().getResource("axis2-adb-1.4.1.jar").getPath()); +168 Dependency struts = new Dependency(file); +169 +170 FileNameAnalyzer fnAnalyzer = new FileNameAnalyzer(); +171 fnAnalyzer.analyze(struts, null); +172 +173 JarAnalyzer jarAnalyzer = new JarAnalyzer(); +174 jarAnalyzer.analyze(struts, null); +175 +176 +177 File fileCommonValidator = new File(this.getClass().getClassLoader().getResource("commons-validator-1.4.0.jar").getPath()); +178 Dependency commonValidator = new Dependency(fileCommonValidator); +179 jarAnalyzer.analyze(commonValidator, null); +180 +181 File fileSpring = new File(this.getClass().getClassLoader().getResource("spring-core-2.5.5.jar").getPath()); +182 Dependency spring = new Dependency(fileSpring); +183 jarAnalyzer.analyze(spring, null); 184 -185 FileNameAnalyzer fnAnalyzer = new FileNameAnalyzer(); -186 fnAnalyzer.analyze(struts, null); -187 -188 JarAnalyzer jarAnalyzer = new JarAnalyzer(); -189 jarAnalyzer.analyze(struts, null); -190 -191 -192 File fileCommonValidator = new File(this.getClass().getClassLoader().getResource("commons-validator-1.4.0.jar").getPath()); -193 Dependency commonValidator = new Dependency(fileCommonValidator); -194 jarAnalyzer.analyze(commonValidator, null); -195 -196 File fileSpring = new File(this.getClass().getClassLoader().getResource("spring-core-2.5.5.jar").getPath()); -197 Dependency spring = new Dependency(fileSpring); -198 jarAnalyzer.analyze(spring, null); -199 -200 File fileSpring3 = new File(this.getClass().getClassLoader().getResource("spring-core-3.0.0.RELEASE.jar").getPath()); -201 Dependency spring3 = new Dependency(fileSpring3); -202 jarAnalyzer.analyze(spring3, null); -203 -204 CPEAnalyzer instance = new CPEAnalyzer(); -205 instance.open(); -206 instance.determineCPE(commonValidator); -207 instance.determineCPE(struts); -208 instance.determineCPE(spring); -209 instance.determineCPE(spring3); -210 instance.close(); -211 -212 String expResult = "cpe:/a:apache:struts:2.1.2"; -213 Identifier expIdentifier = new Identifier("cpe", expResult, expResult); -214 String expResultSpring = "cpe:/a:springsource:spring_framework:2.5.5"; -215 String expResultSpring3 = "cpe:/a:vmware:springsource_spring_framework:3.0.0"; -216 -217 Assert.assertTrue("Apache Common Validator - found an identifier?", commonValidator.getIdentifiers().isEmpty()); -218 Assert.assertTrue("Incorrect match size - struts", struts.getIdentifiers().size() >= 1); -219 Assert.assertTrue("Incorrect match - struts", struts.getIdentifiers().contains(expIdentifier)); -220 Assert.assertTrue("Incorrect match size - spring3 - " + spring3.getIdentifiers().size(), spring3.getIdentifiers().size() >= 1); -221 -222 //the following two only work if the HintAnalyzer is used. -223 //Assert.assertTrue("Incorrect match size - spring", spring.getIdentifiers().size() == 1); -224 //Assert.assertTrue("Incorrect match - spring", spring.getIdentifiers().get(0).getValue().equals(expResultSpring)); -225 -226 } +185 File fileSpring3 = new File(this.getClass().getClassLoader().getResource("spring-core-3.0.0.RELEASE.jar").getPath()); +186 Dependency spring3 = new Dependency(fileSpring3); +187 jarAnalyzer.analyze(spring3, null); +188 +189 CPEAnalyzer instance = new CPEAnalyzer(); +190 instance.open(); +191 instance.determineCPE(commonValidator); +192 instance.determineCPE(struts); +193 instance.determineCPE(spring); +194 instance.determineCPE(spring3); +195 instance.close(); +196 +197 String expResult = "cpe:/a:apache:struts:2.1.2"; +198 Identifier expIdentifier = new Identifier("cpe", expResult, expResult); +199 String expResultSpring = "cpe:/a:springsource:spring_framework:2.5.5"; +200 String expResultSpring3 = "cpe:/a:vmware:springsource_spring_framework:3.0.0"; +201 +202 Assert.assertTrue("Apache Common Validator - found an identifier?", commonValidator.getIdentifiers().isEmpty()); +203 Assert.assertTrue("Incorrect match size - struts", struts.getIdentifiers().size() >= 1); +204 Assert.assertTrue("Incorrect match - struts", struts.getIdentifiers().contains(expIdentifier)); +205 Assert.assertTrue("Incorrect match size - spring3 - " + spring3.getIdentifiers().size(), spring3.getIdentifiers().size() >= 1); +206 +207 //the following two only work if the HintAnalyzer is used. +208 //Assert.assertTrue("Incorrect match size - spring", spring.getIdentifiers().size() == 1); +209 //Assert.assertTrue("Incorrect match - spring", spring.getIdentifiers().get(0).getValue().equals(expResultSpring)); +210 +211 } +212 +213 /** +214 * Test of searchCPE method, of class CPEAnalyzer. +215 * +216 * @throws Exception is thrown when an exception occurs +217 */ +218 @Test +219 public void testSearchCPE() throws Exception { +220 String vendor = "apache software foundation"; +221 String product = "struts 2 core"; +222 String version = "2.1.2"; +223 String expResult = "cpe:/a:apache:struts:2.1.2"; +224 +225 CPEAnalyzer instance = new CPEAnalyzer(); +226 instance.open(); 227 -228 /** -229 * Test of searchCPE method, of class CPEAnalyzer. -230 * -231 * @throws Exception is thrown when an exception occurs -232 */ -233 @Test -234 public void testSearchCPE() throws Exception { -235 String vendor = "apache software foundation"; -236 String product = "struts 2 core"; -237 String version = "2.1.2"; -238 String expResult = "cpe:/a:apache:struts:2.1.2"; +228 //TODO - yeah, not a very good test as the results are the same with or without weighting... +229 Set<String> productWeightings = new HashSet<String>(1); +230 productWeightings.add("struts2"); +231 +232 Set<String> vendorWeightings = new HashSet<String>(1); +233 vendorWeightings.add("apache"); +234 +235 List<IndexEntry> result = instance.searchCPE(vendor, product, productWeightings, vendorWeightings); +236 //TODO fix this assert +237 //Assert.assertEquals(expResult, result.get(0).getName()); +238 239 -240 CPEAnalyzer instance = new CPEAnalyzer(); -241 instance.open(); -242 -243 //TODO - yeah, not a very good test as the results are the same with or without weighting... -244 Set<String> productWeightings = new HashSet<String>(1); -245 productWeightings.add("struts2"); -246 -247 Set<String> vendorWeightings = new HashSet<String>(1); -248 vendorWeightings.add("apache"); -249 -250 List<IndexEntry> result = instance.searchCPE(vendor, product, productWeightings, vendorWeightings); -251 //TODO fix this assert -252 //Assert.assertEquals(expResult, result.get(0).getName()); -253 -254 -255 instance.close(); -256 } -257 } +240 instance.close(); +241 } +242 }
    diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/analyzer/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/analyzer/package-frame.html index f072d79c6..69781c1b1 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/analyzer/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/analyzer/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.analyzer + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.analyzer diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/analyzer/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/analyzer/package-summary.html index 65aeee09f..5442830fe 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/analyzer/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/analyzer/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.analyzer + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.analyzer diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/concurrency/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/concurrency/package-frame.html index ff8225fa2..7db50abea 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/concurrency/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/concurrency/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.concurrency + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.concurrency diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/concurrency/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/concurrency/package-summary.html index 24d5a9e3b..332dd2474 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/concurrency/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/concurrency/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.concurrency + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.concurrency diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cpe/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cpe/package-frame.html index 1b5bd54d1..dfb41321c 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cpe/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cpe/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.data.cpe + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.data.cpe @@ -16,16 +16,10 @@ diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cpe/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cpe/package-summary.html index 2e073ecbf..999ca7de3 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cpe/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cpe/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.data.cpe + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.data.cpe @@ -36,11 +36,6 @@
  • - - - @@ -49,11 +44,6 @@ - - -
    org.owasp.dependencycheck.analyzer.ArchiveAnalyzerLine
    - likely need to change the split... not sure if this will work for CPE with special chars446
    430
    the following isn't quite right is it? need to think about this guessing game a bit more.585
    569
    org.owasp.dependencycheck.analyzer.CPEAnalyzerTest Line
    - yeah, not a very good test as the results are the same with or without weighting...243
    228
    fix this assert Assert.assertEquals(expResult, result.get(0).getName());251
    236
    org.owasp.dependencycheck.analyzer.FalsePositiveAnalyzer Line
    uncomment this once support for 1.6 is dropped. if (lock != null) { try { lock.close(); } catch (IOException ex) { Logger.getLogger(DirectorySpinLock.class.getName()).log(Level.FINEST, "Unable to close file lock due to IO Exception", ex); } } 227
    org.owasp.dependencycheck.data.cpe.CpeIndexReaderLine
    add spinlock (shared)80
    remove spinlock (shared)93
    org.owasp.dependencycheck.data.cpe.CpeIndexWriterLine
    add spinlock62
    remove spinlock74
    org.owasp.dependencycheck.data.lucene.SearchVersionAnalyzer Line
    Line
    consider utilizing the matchThreeVersion method to get additional results. However, this might also introduce false positives.674
    504
    org.owasp.dependencycheck.data.update.BatchUpdateTask Line
    add FTP?112
    114
    org.owasp.dependencycheck.data.update.BatchUpdateTaskTest Line
    add some actual asserts to check things. 119
    org.owasp.dependencycheck.data.update.StandardUpdateTaskLine
    - remove this172
    org.owasp.dependencycheck.data.update.StandardUpdateTaskIntegrationTest Line
    - BaseIndexTest -
    BaseIndexTestCase IndexEntryTest
    - IndexIntegrationTest -
    diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cwe/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cwe/package-frame.html index fdd35f112..dfffb2935 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cwe/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cwe/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.data.cwe + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.data.cwe diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cwe/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cwe/package-summary.html index b6bf72b3c..e85a2f3fb 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cwe/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/cwe/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.data.cwe + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.data.cwe diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/FieldAnalyzerTest.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/FieldAnalyzerTest.html index 7f4e16c32..44ff77037 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/FieldAnalyzerTest.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/FieldAnalyzerTest.html @@ -82,7 +82,7 @@ 72 @Test 73 public void testAnalyzers() throws Exception { 74 -75 Analyzer analyzer = new FieldAnalyzer(Version.LUCENE_43); +75 Analyzer analyzer = new FieldAnalyzer(LuceneUtils.CURRENT_VERSION); 76 Directory index = new RAMDirectory(); 77 78 String field1 = "product"; @@ -93,16 +93,16 @@ 83 84 createIndex(analyzer, index, field1, text1, field2, text2); 85 -86 //Analyzer searchingAnalyzer = new SearchFieldAnalyzer(Version.LUCENE_43); +86 //Analyzer searchingAnalyzer = new SearchFieldAnalyzer(LuceneUtils.CURRENT_VERSION); 87 String querystr = "product:\"(Spring Framework Core)\" vendor:(SpringSource)"; 88 -89 SearchFieldAnalyzer searchAnalyzerProduct = new SearchFieldAnalyzer(Version.LUCENE_43); -90 SearchFieldAnalyzer searchAnalyzerVendor = new SearchFieldAnalyzer(Version.LUCENE_43); +89 SearchFieldAnalyzer searchAnalyzerProduct = new SearchFieldAnalyzer(LuceneUtils.CURRENT_VERSION); +90 SearchFieldAnalyzer searchAnalyzerVendor = new SearchFieldAnalyzer(LuceneUtils.CURRENT_VERSION); 91 HashMap<String, Analyzer> map = new HashMap<String, Analyzer>(); 92 map.put(field1, searchAnalyzerProduct); 93 map.put(field2, searchAnalyzerVendor); -94 PerFieldAnalyzerWrapper wrapper = new PerFieldAnalyzerWrapper(new StandardAnalyzer(Version.LUCENE_43), map); -95 QueryParser parser = new QueryParser(Version.LUCENE_43, field1, wrapper); +94 PerFieldAnalyzerWrapper wrapper = new PerFieldAnalyzerWrapper(new StandardAnalyzer(LuceneUtils.CURRENT_VERSION), map); +95 QueryParser parser = new QueryParser(LuceneUtils.CURRENT_VERSION, field1, wrapper); 96 97 Query q = parser.parse(querystr); 98 //System.out.println(q.toString()); @@ -126,7 +126,7 @@ 116 } 117 118 private void createIndex(Analyzer analyzer, Directory index, String field1, String text1, String field2, String text2) throws IOException { -119 IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_43, analyzer); +119 IndexWriterConfig config = new IndexWriterConfig(LuceneUtils.CURRENT_VERSION, analyzer); 120 IndexWriter w = new IndexWriter(index, config); 121 addDoc(w, field1, text1, field2, text2); 122 w.close(); diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/TokenPairConcatenatingFilterTest.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/TokenPairConcatenatingFilterTest.html index 24f91738e..ddfb30c4d 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/TokenPairConcatenatingFilterTest.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/TokenPairConcatenatingFilterTest.html @@ -63,7 +63,7 @@ 53 * test some examples 54 */ 55 public void testExamples() throws IOException { -56 Tokenizer wsTokenizer = new WhitespaceTokenizer(Version.LUCENE_43, new StringReader("one two three")); +56 Tokenizer wsTokenizer = new WhitespaceTokenizer(LuceneUtils.CURRENT_VERSION, new StringReader("one two three")); 57 TokenStream filter = new TokenPairConcatenatingFilter(wsTokenizer); 58 assertTokenStreamContents(filter, 59 new String[]{"one", "onetwo", "two", "twothree", "three"}); @@ -75,7 +75,7 @@ 65 @Test 66 public void testClear() throws IOException { 67 -68 TokenStream ts = new WhitespaceTokenizer(Version.LUCENE_43, new StringReader("one two three")); +68 TokenStream ts = new WhitespaceTokenizer(LuceneUtils.CURRENT_VERSION, new StringReader("one two three")); 69 TokenPairConcatenatingFilter filter = new TokenPairConcatenatingFilter(ts); 70 assertTokenStreamContents(filter, new String[]{"one", "onetwo", "two", "twothree", "three"}); 71 diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/package-frame.html index 0b8e51e6b..f73c283fa 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.data.lucene + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.data.lucene diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/package-summary.html index 088c203b5..8854901c5 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/lucene/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.data.lucene + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.data.lucene diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/BaseDBTestCase.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/BaseDBTestCase.html index fa5864f33..e0ccea2b0 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/BaseDBTestCase.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/BaseDBTestCase.html @@ -59,7 +59,7 @@ 49 50 public static void ensureDBExists() throws Exception { 51 -52 java.io.File dataPath = Settings.getFile(Settings.KEYS.DATA_DIRECTORY); +52 java.io.File dataPath = Settings.getDataFile(Settings.KEYS.DATA_DIRECTORY); 53 if (!dataPath.exists() || (dataPath.isDirectory() && dataPath.listFiles().length < 3)) { 54 dataPath.mkdirs(); 55 FileInputStream fis = null; diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/package-frame.html index e1a2be449..a4ab9ea4a 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.data.nvdcve + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.data.nvdcve diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/package-summary.html index 2d2f64915..e1e20a2d6 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/nvdcve/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.data.nvdcve + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.data.nvdcve diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/package-frame.html index 02172aab6..2ebf7d42d 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.data.update + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.data.update diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/package-summary.html index 0c8def890..b3cef30f2 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/data/update/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.data.update + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.data.update diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/dependency/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/dependency/package-frame.html index d679122cb..75aa5f5ff 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/dependency/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/dependency/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.dependency + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.dependency diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/dependency/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/dependency/package-summary.html index 31d9871c8..c1e35b6c6 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/dependency/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/dependency/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.dependency + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.dependency diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/package-frame.html index 55306ce2a..1b88301fb 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/package-summary.html index a05b6887b..4d0f80534 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/reporting/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/reporting/package-frame.html index 3506f8b82..31255a0ae 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/reporting/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/reporting/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.reporting + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.reporting diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/reporting/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/reporting/package-summary.html index a30757e7d..b2685612c 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/reporting/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/reporting/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.reporting + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.reporting diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/utils/SettingsTest.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/utils/SettingsTest.html index 238af27a9..a972ddeab 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/utils/SettingsTest.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/utils/SettingsTest.html @@ -67,23 +67,23 @@ 57 */ 58 @Test 59 public void testGetString() { -60 String key = Settings.KEYS.CPE_DATA_DIRECTORY; -61 String expResult = "cpe"; +60 String key = Settings.KEYS.CVE_DATA_DIRECTORY; +61 String expResult = "cve"; 62 String result = Settings.getString(key); 63 Assert.assertTrue(result.endsWith(expResult)); 64 } 65 66 /** -67 * Test of getFile method, of class Settings. +67 * Test of getDataFile method, of class Settings. 68 */ 69 @Test -70 public void testGetFile() throws IOException { -71 String key = Settings.KEYS.CPE_DATA_DIRECTORY; -72 String expResult = "data" + File.separator + "cpe"; -73 File result = Settings.getFile(key); +70 public void testGetDataFile() throws IOException { +71 String key = Settings.KEYS.CVE_DATA_DIRECTORY; +72 String expResult = "data" + File.separator + "cve"; +73 File result = Settings.getDataFile(key); 74 Assert.assertTrue(result.getAbsolutePath().endsWith(expResult)); 75 -76 result = Settings.getFile(Settings.KEYS.DATA_DIRECTORY); +76 result = Settings.getDataFile(Settings.KEYS.DATA_DIRECTORY); 77 String path = result.getPath(); 78 Assert.assertTrue(path.endsWith("data") || path.endsWith("data" + File.separator)); 79 } diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/utils/package-frame.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/utils/package-frame.html index e61dab4d6..de21ea64f 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/utils/package-frame.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/utils/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.utils + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.utils diff --git a/dependency-check-core/xref-test/org/owasp/dependencycheck/utils/package-summary.html b/dependency-check-core/xref-test/org/owasp/dependencycheck/utils/package-summary.html index 2097ff62f..535bde58f 100644 --- a/dependency-check-core/xref-test/org/owasp/dependencycheck/utils/package-summary.html +++ b/dependency-check-core/xref-test/org/owasp/dependencycheck/utils/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.utils + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.utils diff --git a/dependency-check-core/xref-test/overview-frame.html b/dependency-check-core/xref-test/overview-frame.html index 83663a412..b8166a187 100644 --- a/dependency-check-core/xref-test/overview-frame.html +++ b/dependency-check-core/xref-test/overview-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference + Dependency-Check Core 1.0.6 Reference @@ -44,6 +44,9 @@
  • org.owasp.dependencycheck.reporting +
  • +
  • + org.owasp.dependencycheck.suppression
  • org.owasp.dependencycheck.utils diff --git a/dependency-check-core/xref-test/overview-summary.html b/dependency-check-core/xref-test/overview-summary.html index c65e789fc..8cce59938 100644 --- a/dependency-check-core/xref-test/overview-summary.html +++ b/dependency-check-core/xref-test/overview-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference + Dependency-Check Core 1.0.6 Reference @@ -24,7 +24,7 @@
  • -

    Dependency-Check Core 1.0.5 Reference

    +

    Dependency-Check Core 1.0.6 Reference

    @@ -82,6 +82,11 @@ + + + + + + + + + + + +
    org.owasp.dependencycheck.reporting
    + org.owasp.dependencycheck.suppression +
    diff --git a/dependency-check-core/xref/allclasses-frame.html b/dependency-check-core/xref/allclasses-frame.html index 3d793ed95..b4a6ed009 100644 --- a/dependency-check-core/xref/allclasses-frame.html +++ b/dependency-check-core/xref/allclasses-frame.html @@ -13,6 +13,9 @@
    • AbstractAnalyzer +
    • +
    • + AbstractSuppressionAnalyzer
    • AbstractTokenizingFilter @@ -54,7 +57,7 @@ ArchiveExtractionException
    • - BaseIndex + BaseDB
    • BatchUpdateTask @@ -70,6 +73,9 @@
    • CachedWebDataSource +
    • +
    • + CallableDownloadTask
    • Checksum @@ -96,10 +102,10 @@ CorruptDatabaseException
    • - CpeIndexReader + CpeMemoryIndex
    • - CpeIndexWriter + CpeSuppressionAnalyzer
    • CveDB @@ -244,6 +250,9 @@
    • IndexEntry +
    • +
    • + IndexException
    • InvalidDataException @@ -358,6 +367,9 @@
    • Properties +
    • +
    • + PropertyType
    • Reference @@ -418,6 +430,21 @@
    • StandardUpdateTask +
    • +
    • + SuppressionErrorHandler +
    • +
    • + SuppressionHandler +
    • +
    • + SuppressionParseException +
    • +
    • + SuppressionParser +
    • +
    • + SuppressionRule
    • TestResources @@ -460,6 +487,9 @@
    • VulnerabilityComparator +
    • +
    • + VulnerabilitySuppressionAnalyzer
    • VulnerableSoftware diff --git a/dependency-check-core/xref/index.html b/dependency-check-core/xref/index.html index 4d9435a62..507b53bb5 100644 --- a/dependency-check-core/xref/index.html +++ b/dependency-check-core/xref/index.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference + Dependency-Check Core 1.0.6 Reference diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/Engine.html b/dependency-check-core/xref/org/owasp/dependencycheck/Engine.html index c0e2e6c7b..4cc5239ed 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/Engine.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/Engine.html @@ -31,428 +31,431 @@ 21 import java.util.EnumMap; 22 import java.io.File; 23 import java.io.IOException; -24 import java.util.ArrayList; -25 import java.util.HashSet; -26 import java.util.Iterator; -27 import java.util.List; -28 import java.util.Set; -29 import java.util.logging.Level; -30 import java.util.logging.Logger; -31 import org.owasp.dependencycheck.analyzer.AnalysisException; -32 import org.owasp.dependencycheck.analyzer.AnalysisPhase; -33 import org.owasp.dependencycheck.analyzer.Analyzer; -34 import org.owasp.dependencycheck.analyzer.AnalyzerService; -35 import org.owasp.dependencycheck.data.CachedWebDataSource; -36 import org.owasp.dependencycheck.data.NoDataException; -37 import org.owasp.dependencycheck.data.UpdateException; -38 import org.owasp.dependencycheck.data.UpdateService; -39 import org.owasp.dependencycheck.data.cpe.CpeIndexReader; -40 import org.owasp.dependencycheck.dependency.Dependency; -41 import org.owasp.dependencycheck.utils.FileUtils; -42 import org.owasp.dependencycheck.utils.InvalidSettingException; -43 import org.owasp.dependencycheck.utils.Settings; -44 -45 /** -46 * Scans files, directories, etc. for Dependencies. Analyzers are loaded and -47 * used to process the files found by the scan, if a file is encountered and an -48 * Analyzer is associated with the file type then the file is turned into a -49 * dependency. -50 * -51 * @author Jeremy Long (jeremy.long@owasp.org) -52 */ -53 public class Engine { -54 -55 /** -56 * The list of dependencies. -57 */ -58 private final List<Dependency> dependencies = new ArrayList<Dependency>(); +24 import java.sql.SQLException; +25 import java.util.ArrayList; +26 import java.util.HashSet; +27 import java.util.Iterator; +28 import java.util.List; +29 import java.util.Set; +30 import java.util.logging.Level; +31 import java.util.logging.Logger; +32 import org.owasp.dependencycheck.analyzer.AnalysisException; +33 import org.owasp.dependencycheck.analyzer.AnalysisPhase; +34 import org.owasp.dependencycheck.analyzer.Analyzer; +35 import org.owasp.dependencycheck.analyzer.AnalyzerService; +36 import org.owasp.dependencycheck.data.CachedWebDataSource; +37 import org.owasp.dependencycheck.data.NoDataException; +38 import org.owasp.dependencycheck.data.UpdateException; +39 import org.owasp.dependencycheck.data.UpdateService; +40 import org.owasp.dependencycheck.data.cpe.CpeMemoryIndex; +41 import org.owasp.dependencycheck.data.cpe.IndexException; +42 import org.owasp.dependencycheck.data.nvdcve.CveDB; +43 import org.owasp.dependencycheck.data.nvdcve.DatabaseException; +44 import org.owasp.dependencycheck.dependency.Dependency; +45 import org.owasp.dependencycheck.utils.FileUtils; +46 import org.owasp.dependencycheck.utils.InvalidSettingException; +47 import org.owasp.dependencycheck.utils.Settings; +48 +49 /** +50 * Scans files, directories, etc. for Dependencies. Analyzers are loaded and +51 * used to process the files found by the scan, if a file is encountered and an +52 * Analyzer is associated with the file type then the file is turned into a +53 * dependency. +54 * +55 * @author Jeremy Long (jeremy.long@owasp.org) +56 */ +57 public class Engine { +58 59 /** -60 * A Map of analyzers grouped by Analysis phase. +60 * The list of dependencies. 61 */ -62 private final EnumMap<AnalysisPhase, List<Analyzer>> analyzers = -63 new EnumMap<AnalysisPhase, List<Analyzer>>(AnalysisPhase.class); -64 /** -65 * A set of extensions supported by the analyzers. -66 */ -67 private final Set<String> extensions = new HashSet<String>(); -68 -69 /** -70 * Creates a new Engine. -71 */ -72 public Engine() { -73 boolean autoUpdate = true; -74 try { -75 autoUpdate = Settings.getBoolean(Settings.KEYS.AUTO_UPDATE); -76 } catch (InvalidSettingException ex) { -77 Logger.getLogger(Engine.class.getName()).log(Level.FINE, "Invalid setting for auto-update; using true."); -78 } -79 if (autoUpdate) { -80 doUpdates(); -81 } -82 loadAnalyzers(); -83 } -84 -85 /** -86 * Creates a new Engine. -87 * -88 * @param autoUpdate indicates whether or not data should be updated from -89 * the Internet -90 * @deprecated This function should no longer be used; the autoupdate flag -91 * should be set using: -92 * <code>Settings.setBoolean(Settings.KEYS.AUTO_UPDATE, value);</code> -93 */ -94 @Deprecated -95 public Engine(boolean autoUpdate) { -96 if (autoUpdate) { -97 doUpdates(); -98 } -99 loadAnalyzers(); -100 } -101 -102 /** -103 * Loads the analyzers specified in the configuration file (or system -104 * properties). -105 */ -106 private void loadAnalyzers() { -107 -108 for (AnalysisPhase phase : AnalysisPhase.values()) { -109 analyzers.put(phase, new ArrayList<Analyzer>()); -110 } +62 private final List<Dependency> dependencies = new ArrayList<Dependency>(); +63 /** +64 * A Map of analyzers grouped by Analysis phase. +65 */ +66 private final EnumMap<AnalysisPhase, List<Analyzer>> analyzers = +67 new EnumMap<AnalysisPhase, List<Analyzer>>(AnalysisPhase.class); +68 /** +69 * A set of extensions supported by the analyzers. +70 */ +71 private final Set<String> extensions = new HashSet<String>(); +72 +73 /** +74 * Creates a new Engine. +75 */ +76 public Engine() { +77 boolean autoUpdate = true; +78 try { +79 autoUpdate = Settings.getBoolean(Settings.KEYS.AUTO_UPDATE); +80 } catch (InvalidSettingException ex) { +81 Logger.getLogger(Engine.class.getName()).log(Level.FINE, "Invalid setting for auto-update; using true."); +82 } +83 if (autoUpdate) { +84 doUpdates(); +85 } +86 loadAnalyzers(); +87 } +88 +89 /** +90 * Creates a new Engine. +91 * +92 * @param autoUpdate indicates whether or not data should be updated from +93 * the Internet +94 * @deprecated This function should no longer be used; the autoupdate flag +95 * should be set using: +96 * <code>Settings.setBoolean(Settings.KEYS.AUTO_UPDATE, value);</code> +97 */ +98 @Deprecated +99 public Engine(boolean autoUpdate) { +100 if (autoUpdate) { +101 doUpdates(); +102 } +103 loadAnalyzers(); +104 } +105 +106 /** +107 * Loads the analyzers specified in the configuration file (or system +108 * properties). +109 */ +110 private void loadAnalyzers() { 111 -112 final AnalyzerService service = AnalyzerService.getInstance(); -113 final Iterator<Analyzer> iterator = service.getAnalyzers(); -114 while (iterator.hasNext()) { -115 final Analyzer a = iterator.next(); -116 analyzers.get(a.getAnalysisPhase()).add(a); -117 if (a.getSupportedExtensions() != null) { -118 extensions.addAll(a.getSupportedExtensions()); -119 } -120 } -121 } -122 -123 /** -124 * Get the List of the analyzers for a specific phase of analysis. -125 * -126 * @param phase the phase to get the configured analyzers. -127 * @return the analyzers loaded -128 */ -129 public List<Analyzer> getAnalyzers(AnalysisPhase phase) { -130 return analyzers.get(phase); -131 } -132 -133 /** -134 * Get the dependencies identified. -135 * -136 * @return the dependencies identified -137 */ -138 public List<Dependency> getDependencies() { -139 return dependencies; -140 } -141 -142 /** -143 * Scans an array of files or directories. If a directory is specified, it -144 * will be scanned recursively. Any dependencies identified are added to the -145 * dependency collection. -146 * -147 * @since v0.3.2.5 -148 * -149 * @param paths an array of paths to files or directories to be analyzed. -150 */ -151 public void scan(String[] paths) { -152 for (String path : paths) { -153 final File file = new File(path); -154 scan(file); -155 } -156 } -157 -158 /** -159 * Scans a given file or directory. If a directory is specified, it will be -160 * scanned recursively. Any dependencies identified are added to the -161 * dependency collection. -162 * -163 * @param path the path to a file or directory to be analyzed. -164 */ -165 public void scan(String path) { -166 final File file = new File(path); -167 scan(file); -168 } -169 -170 /** -171 * Scans an array of files or directories. If a directory is specified, it -172 * will be scanned recursively. Any dependencies identified are added to the -173 * dependency collection. -174 * -175 * @since v0.3.2.5 -176 * -177 * @param files an array of paths to files or directories to be analyzed. -178 */ -179 public void scan(File[] files) { -180 for (File file : files) { -181 scan(file); -182 } -183 } -184 -185 /** -186 * Scans a list of files or directories. If a directory is specified, it -187 * will be scanned recursively. Any dependencies identified are added to the -188 * dependency collection. -189 * -190 * @since v0.3.2.5 -191 * -192 * @param files a set of paths to files or directories to be analyzed. -193 */ -194 public void scan(Set<File> files) { -195 for (File file : files) { -196 scan(file); -197 } -198 } -199 -200 /** -201 * Scans a list of files or directories. If a directory is specified, it -202 * will be scanned recursively. Any dependencies identified are added to the -203 * dependency collection. -204 * -205 * @since v0.3.2.5 -206 * -207 * @param files a set of paths to files or directories to be analyzed. -208 */ -209 public void scan(List<File> files) { -210 for (File file : files) { -211 scan(file); -212 } -213 } -214 -215 /** -216 * Scans a given file or directory. If a directory is specified, it will be -217 * scanned recursively. Any dependencies identified are added to the -218 * dependency collection. -219 * -220 * @since v0.3.2.4 -221 * -222 * @param file the path to a file or directory to be analyzed. -223 */ -224 public void scan(File file) { -225 if (file.exists()) { -226 if (file.isDirectory()) { -227 scanDirectory(file); -228 } else { -229 scanFile(file); -230 } -231 } -232 } -233 -234 /** -235 * Recursively scans files and directories. Any dependencies identified are -236 * added to the dependency collection. -237 * -238 * @param dir the directory to scan. -239 */ -240 protected void scanDirectory(File dir) { -241 final File[] files = dir.listFiles(); -242 if (files != null) { -243 for (File f : files) { -244 if (f.isDirectory()) { -245 scanDirectory(f); -246 } else { -247 scanFile(f); -248 } -249 } -250 } -251 } -252 -253 /** -254 * Scans a specified file. If a dependency is identified it is added to the -255 * dependency collection. -256 * -257 * @param file The file to scan. -258 */ -259 protected void scanFile(File file) { -260 if (!file.isFile()) { -261 final String msg = String.format("Path passed to scanFile(File) is not a file: %s. Skipping the file.", file.toString()); -262 Logger.getLogger(Engine.class.getName()).log(Level.FINE, msg); -263 return; -264 } -265 final String fileName = file.getName(); -266 final String extension = FileUtils.getFileExtension(fileName); -267 if (extension != null) { -268 if (extensions.contains(extension)) { -269 final Dependency dependency = new Dependency(file); -270 dependencies.add(dependency); -271 } -272 } else { -273 final String msg = String.format("No file extension found on file '%s'. The file was not analyzed.", -274 file.toString()); -275 Logger.getLogger(Engine.class.getName()).log(Level.FINEST, msg); -276 } -277 } -278 -279 /** -280 * Runs the analyzers against all of the dependencies. -281 */ -282 public void analyzeDependencies() { -283 //need to ensure that data exists -284 try { -285 ensureDataExists(); -286 } catch (NoDataException ex) { -287 final String msg = String.format("%n%n%s%n%nUnable to continue dependency-check analysis.", ex.getMessage()); -288 Logger.getLogger(Engine.class.getName()).log(Level.SEVERE, msg); -289 Logger.getLogger(Engine.class.getName()).log(Level.FINE, null, ex); -290 return; -291 } -292 -293 //phase one initialize -294 for (AnalysisPhase phase : AnalysisPhase.values()) { -295 final List<Analyzer> analyzerList = analyzers.get(phase); -296 for (Analyzer a : analyzerList) { -297 try { -298 final String msg = String.format("Initializing %s", a.getName()); -299 Logger.getLogger(Engine.class.getName()).log(Level.FINE, msg); -300 a.initialize(); -301 } catch (Exception ex) { -302 final String msg = String.format("Exception occurred initializing %s.", a.getName()); -303 Logger.getLogger(Engine.class.getName()).log(Level.SEVERE, msg); -304 Logger.getLogger(Engine.class.getName()).log(Level.INFO, null, ex); -305 try { -306 a.close(); -307 } catch (Exception ex1) { -308 Logger.getLogger(Engine.class.getName()).log(Level.FINEST, null, ex1); -309 } -310 } -311 } -312 } -313 -314 // analysis phases -315 for (AnalysisPhase phase : AnalysisPhase.values()) { -316 final List<Analyzer> analyzerList = analyzers.get(phase); +112 for (AnalysisPhase phase : AnalysisPhase.values()) { +113 analyzers.put(phase, new ArrayList<Analyzer>()); +114 } +115 +116 final AnalyzerService service = AnalyzerService.getInstance(); +117 final Iterator<Analyzer> iterator = service.getAnalyzers(); +118 while (iterator.hasNext()) { +119 final Analyzer a = iterator.next(); +120 analyzers.get(a.getAnalysisPhase()).add(a); +121 if (a.getSupportedExtensions() != null) { +122 extensions.addAll(a.getSupportedExtensions()); +123 } +124 } +125 } +126 +127 /** +128 * Get the List of the analyzers for a specific phase of analysis. +129 * +130 * @param phase the phase to get the configured analyzers. +131 * @return the analyzers loaded +132 */ +133 public List<Analyzer> getAnalyzers(AnalysisPhase phase) { +134 return analyzers.get(phase); +135 } +136 +137 /** +138 * Get the dependencies identified. +139 * +140 * @return the dependencies identified +141 */ +142 public List<Dependency> getDependencies() { +143 return dependencies; +144 } +145 +146 /** +147 * Scans an array of files or directories. If a directory is specified, it +148 * will be scanned recursively. Any dependencies identified are added to the +149 * dependency collection. +150 * +151 * @since v0.3.2.5 +152 * +153 * @param paths an array of paths to files or directories to be analyzed. +154 */ +155 public void scan(String[] paths) { +156 for (String path : paths) { +157 final File file = new File(path); +158 scan(file); +159 } +160 } +161 +162 /** +163 * Scans a given file or directory. If a directory is specified, it will be +164 * scanned recursively. Any dependencies identified are added to the +165 * dependency collection. +166 * +167 * @param path the path to a file or directory to be analyzed. +168 */ +169 public void scan(String path) { +170 final File file = new File(path); +171 scan(file); +172 } +173 +174 /** +175 * Scans an array of files or directories. If a directory is specified, it +176 * will be scanned recursively. Any dependencies identified are added to the +177 * dependency collection. +178 * +179 * @since v0.3.2.5 +180 * +181 * @param files an array of paths to files or directories to be analyzed. +182 */ +183 public void scan(File[] files) { +184 for (File file : files) { +185 scan(file); +186 } +187 } +188 +189 /** +190 * Scans a list of files or directories. If a directory is specified, it +191 * will be scanned recursively. Any dependencies identified are added to the +192 * dependency collection. +193 * +194 * @since v0.3.2.5 +195 * +196 * @param files a set of paths to files or directories to be analyzed. +197 */ +198 public void scan(Set<File> files) { +199 for (File file : files) { +200 scan(file); +201 } +202 } +203 +204 /** +205 * Scans a list of files or directories. If a directory is specified, it +206 * will be scanned recursively. Any dependencies identified are added to the +207 * dependency collection. +208 * +209 * @since v0.3.2.5 +210 * +211 * @param files a set of paths to files or directories to be analyzed. +212 */ +213 public void scan(List<File> files) { +214 for (File file : files) { +215 scan(file); +216 } +217 } +218 +219 /** +220 * Scans a given file or directory. If a directory is specified, it will be +221 * scanned recursively. Any dependencies identified are added to the +222 * dependency collection. +223 * +224 * @since v0.3.2.4 +225 * +226 * @param file the path to a file or directory to be analyzed. +227 */ +228 public void scan(File file) { +229 if (file.exists()) { +230 if (file.isDirectory()) { +231 scanDirectory(file); +232 } else { +233 scanFile(file); +234 } +235 } +236 } +237 +238 /** +239 * Recursively scans files and directories. Any dependencies identified are +240 * added to the dependency collection. +241 * +242 * @param dir the directory to scan. +243 */ +244 protected void scanDirectory(File dir) { +245 final File[] files = dir.listFiles(); +246 if (files != null) { +247 for (File f : files) { +248 if (f.isDirectory()) { +249 scanDirectory(f); +250 } else { +251 scanFile(f); +252 } +253 } +254 } +255 } +256 +257 /** +258 * Scans a specified file. If a dependency is identified it is added to the +259 * dependency collection. +260 * +261 * @param file The file to scan. +262 */ +263 protected void scanFile(File file) { +264 if (!file.isFile()) { +265 final String msg = String.format("Path passed to scanFile(File) is not a file: %s. Skipping the file.", file.toString()); +266 Logger.getLogger(Engine.class.getName()).log(Level.FINE, msg); +267 return; +268 } +269 final String fileName = file.getName(); +270 final String extension = FileUtils.getFileExtension(fileName); +271 if (extension != null) { +272 if (extensions.contains(extension)) { +273 final Dependency dependency = new Dependency(file); +274 dependencies.add(dependency); +275 } +276 } else { +277 final String msg = String.format("No file extension found on file '%s'. The file was not analyzed.", +278 file.toString()); +279 Logger.getLogger(Engine.class.getName()).log(Level.FINEST, msg); +280 } +281 } +282 +283 /** +284 * Runs the analyzers against all of the dependencies. +285 */ +286 public void analyzeDependencies() { +287 //need to ensure that data exists +288 try { +289 ensureDataExists(); +290 } catch (NoDataException ex) { +291 final String msg = String.format("%n%n%s%n%nUnable to continue dependency-check analysis.", ex.getMessage()); +292 Logger.getLogger(Engine.class.getName()).log(Level.SEVERE, msg); +293 Logger.getLogger(Engine.class.getName()).log(Level.FINE, null, ex); +294 return; +295 } +296 +297 //phase one initialize +298 for (AnalysisPhase phase : AnalysisPhase.values()) { +299 final List<Analyzer> analyzerList = analyzers.get(phase); +300 for (Analyzer a : analyzerList) { +301 try { +302 final String msg = String.format("Initializing %s", a.getName()); +303 Logger.getLogger(Engine.class.getName()).log(Level.FINE, msg); +304 a.initialize(); +305 } catch (Exception ex) { +306 final String msg = String.format("Exception occurred initializing %s.", a.getName()); +307 Logger.getLogger(Engine.class.getName()).log(Level.SEVERE, msg); +308 Logger.getLogger(Engine.class.getName()).log(Level.INFO, null, ex); +309 try { +310 a.close(); +311 } catch (Exception ex1) { +312 Logger.getLogger(Engine.class.getName()).log(Level.FINEST, null, ex1); +313 } +314 } +315 } +316 } 317 -318 for (Analyzer a : analyzerList) { -319 /* need to create a copy of the collection because some of the -320 * analyzers may modify it. This prevents ConcurrentModificationExceptions. -321 * This is okay for adds/deletes because it happens per analyzer. -322 */ -323 final String msg = String.format("Begin Analyzer '%s'", a.getName()); -324 Logger.getLogger(Engine.class.getName()).log(Level.FINE, msg); -325 final Set<Dependency> dependencySet = new HashSet<Dependency>(); -326 dependencySet.addAll(dependencies); -327 for (Dependency d : dependencySet) { -328 final String msgFile = String.format("Begin Analysis of '%s'", d.getActualFilePath()); -329 Logger.getLogger(Engine.class.getName()).log(Level.FINE, msgFile); -330 if (a.supportsExtension(d.getFileExtension())) { -331 try { -332 a.analyze(d, this); -333 } catch (AnalysisException ex) { -334 d.addAnalysisException(ex); -335 } -336 } -337 } -338 } -339 } -340 -341 //close/cleanup -342 for (AnalysisPhase phase : AnalysisPhase.values()) { -343 final List<Analyzer> analyzerList = analyzers.get(phase); -344 for (Analyzer a : analyzerList) { -345 final String msg = String.format("Closing Analyzer '%s'", a.getName()); -346 Logger.getLogger(Engine.class.getName()).log(Level.FINE, msg); -347 try { -348 a.close(); -349 } catch (Exception ex) { -350 Logger.getLogger(Engine.class.getName()).log(Level.FINEST, null, ex); -351 } -352 } -353 } -354 } -355 -356 /** -357 * Cycles through the cached web data sources and calls update on all of -358 * them. -359 */ -360 private void doUpdates() { -361 final UpdateService service = UpdateService.getInstance(); -362 final Iterator<CachedWebDataSource> iterator = service.getDataSources(); -363 while (iterator.hasNext()) { -364 final CachedWebDataSource source = iterator.next(); -365 try { -366 source.update(); -367 } catch (UpdateException ex) { -368 Logger.getLogger(Engine.class.getName()).log(Level.WARNING, -369 "Unable to update Cached Web DataSource, using local data instead. Results may not include recent vulnerabilities."); -370 Logger.getLogger(Engine.class.getName()).log(Level.FINE, -371 String.format("Unable to update details for %s", source.getClass().getName()), ex); -372 } -373 } -374 } -375 -376 /** -377 * Returns a full list of all of the analyzers. This is useful for reporting -378 * which analyzers where used. -379 * -380 * @return a list of Analyzers -381 */ -382 public List<Analyzer> getAnalyzers() { -383 final List<Analyzer> ret = new ArrayList<Analyzer>(); -384 for (AnalysisPhase phase : AnalysisPhase.values()) { -385 final List<Analyzer> analyzerList = analyzers.get(phase); -386 ret.addAll(analyzerList); -387 } -388 return ret; -389 } -390 -391 /** -392 * Checks all analyzers to see if an extension is supported. -393 * -394 * @param ext a file extension -395 * @return true or false depending on whether or not the file extension is -396 * supported -397 */ -398 public boolean supportsExtension(String ext) { -399 if (ext == null) { -400 return false; -401 } -402 for (AnalysisPhase phase : AnalysisPhase.values()) { -403 final List<Analyzer> analyzerList = analyzers.get(phase); -404 for (Analyzer a : analyzerList) { -405 if (a.getSupportedExtensions() != null && a.supportsExtension(ext)) { -406 return true; -407 } -408 } -409 } -410 return false; -411 } -412 -413 /** -414 * Checks the CPE Index to ensure documents exists. If none exist a -415 * NoDataException is thrown. -416 * -417 * @throws NoDataException thrown if no data exists in the CPE Index -418 */ -419 private void ensureDataExists() throws NoDataException { -420 CpeIndexReader cpe = null; -421 boolean noDataExists = false; -422 try { -423 cpe = new CpeIndexReader(); -424 cpe.open(); -425 if (cpe.numDocs() <= 0) { -426 noDataExists = true; -427 } -428 } catch (IOException ex) { -429 noDataExists = true; -430 } catch (NullPointerException ex) { -431 noDataExists = true; -432 } finally { -433 if (cpe != null) { -434 cpe.close(); -435 } -436 } -437 if (noDataExists) { -438 throw new NoDataException("No data exists in the data store. Please check that you are able to connect " -439 + "to the Internet and re-run dependency-check. If the problem persists determine whether you need " -440 + "to set a proxy url and port.\\n\\nIf you are unable to solve this problem please contact the mailing " -441 + "list for help: dependency-check@googlegroups.com"); -442 -443 } -444 } -445 } +318 // analysis phases +319 for (AnalysisPhase phase : AnalysisPhase.values()) { +320 final List<Analyzer> analyzerList = analyzers.get(phase); +321 +322 for (Analyzer a : analyzerList) { +323 /* need to create a copy of the collection because some of the +324 * analyzers may modify it. This prevents ConcurrentModificationExceptions. +325 * This is okay for adds/deletes because it happens per analyzer. +326 */ +327 final String msg = String.format("Begin Analyzer '%s'", a.getName()); +328 Logger.getLogger(Engine.class.getName()).log(Level.FINE, msg); +329 final Set<Dependency> dependencySet = new HashSet<Dependency>(); +330 dependencySet.addAll(dependencies); +331 for (Dependency d : dependencySet) { +332 final String msgFile = String.format("Begin Analysis of '%s'", d.getActualFilePath()); +333 Logger.getLogger(Engine.class.getName()).log(Level.FINE, msgFile); +334 if (a.supportsExtension(d.getFileExtension())) { +335 try { +336 a.analyze(d, this); +337 } catch (AnalysisException ex) { +338 d.addAnalysisException(ex); +339 } +340 } +341 } +342 } +343 } +344 +345 //close/cleanup +346 for (AnalysisPhase phase : AnalysisPhase.values()) { +347 final List<Analyzer> analyzerList = analyzers.get(phase); +348 for (Analyzer a : analyzerList) { +349 final String msg = String.format("Closing Analyzer '%s'", a.getName()); +350 Logger.getLogger(Engine.class.getName()).log(Level.FINE, msg); +351 try { +352 a.close(); +353 } catch (Exception ex) { +354 Logger.getLogger(Engine.class.getName()).log(Level.FINEST, null, ex); +355 } +356 } +357 } +358 } +359 +360 /** +361 * Cycles through the cached web data sources and calls update on all of +362 * them. +363 */ +364 private void doUpdates() { +365 final UpdateService service = UpdateService.getInstance(); +366 final Iterator<CachedWebDataSource> iterator = service.getDataSources(); +367 while (iterator.hasNext()) { +368 final CachedWebDataSource source = iterator.next(); +369 try { +370 source.update(); +371 } catch (UpdateException ex) { +372 Logger.getLogger(Engine.class.getName()).log(Level.WARNING, +373 "Unable to update Cached Web DataSource, using local data instead. Results may not include recent vulnerabilities."); +374 Logger.getLogger(Engine.class.getName()).log(Level.FINE, +375 String.format("Unable to update details for %s", source.getClass().getName()), ex); +376 } +377 } +378 } +379 +380 /** +381 * Returns a full list of all of the analyzers. This is useful for reporting +382 * which analyzers where used. +383 * +384 * @return a list of Analyzers +385 */ +386 public List<Analyzer> getAnalyzers() { +387 final List<Analyzer> ret = new ArrayList<Analyzer>(); +388 for (AnalysisPhase phase : AnalysisPhase.values()) { +389 final List<Analyzer> analyzerList = analyzers.get(phase); +390 ret.addAll(analyzerList); +391 } +392 return ret; +393 } +394 +395 /** +396 * Checks all analyzers to see if an extension is supported. +397 * +398 * @param ext a file extension +399 * @return true or false depending on whether or not the file extension is +400 * supported +401 */ +402 public boolean supportsExtension(String ext) { +403 if (ext == null) { +404 return false; +405 } +406 for (AnalysisPhase phase : AnalysisPhase.values()) { +407 final List<Analyzer> analyzerList = analyzers.get(phase); +408 for (Analyzer a : analyzerList) { +409 if (a.getSupportedExtensions() != null && a.supportsExtension(ext)) { +410 return true; +411 } +412 } +413 } +414 return false; +415 } +416 +417 /** +418 * Checks the CPE Index to ensure documents exists. If none exist a +419 * NoDataException is thrown. +420 * +421 * @throws NoDataException thrown if no data exists in the CPE Index +422 */ +423 private void ensureDataExists() throws NoDataException { +424 final CpeMemoryIndex cpe = CpeMemoryIndex.getInstance(); +425 final CveDB cve = new CveDB(); +426 +427 try { +428 cve.open(); +429 cpe.open(cve); +430 } catch (IndexException ex) { +431 throw new NoDataException(ex); +432 } catch (IOException ex) { +433 throw new NoDataException(ex); +434 } catch (SQLException ex) { +435 throw new NoDataException(ex); +436 } catch (DatabaseException ex) { +437 throw new NoDataException(ex); +438 } catch (ClassNotFoundException ex) { +439 throw new NoDataException(ex); +440 } finally { +441 cve.close(); +442 } +443 if (cpe.numDocs() <= 0) { +444 cpe.close(); +445 throw new NoDataException(); +446 } +447 } +448 }
      diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/AnalysisException.html b/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/AnalysisException.html index 7dbf1b8e2..d918bedb6 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/AnalysisException.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/AnalysisException.html @@ -66,7 +66,7 @@ 56 } 57 58 /** -59 * Creates a new DownloadFailedException. +59 * Creates a new AnalysisException. 60 * 61 * @param msg a message for the exception. 62 * @param ex the cause of the failure. diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/ArchiveExtractionException.html b/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/ArchiveExtractionException.html index 87f5252c6..ba859648c 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/ArchiveExtractionException.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/ArchiveExtractionException.html @@ -29,7 +29,7 @@ 19 package org.owasp.dependencycheck.analyzer; 20 21 /** -22 * An exception thrown when the analysis of a dependency fails. +22 * An exception thrown when files in an archive cannot be extracted. 23 * 24 * @author Jeremy Long (jeremy.long@owasp.org) 25 */ @@ -41,14 +41,14 @@ 31 private static final long serialVersionUID = 1L; 32 33 /** -34 * Creates a new AnalysisException. +34 * Creates a new ArchiveExtractionException. 35 */ 36 public ArchiveExtractionException() { 37 super(); 38 } 39 40 /** -41 * Creates a new AnalysisException. +41 * Creates a new ArchiveExtractionException. 42 * 43 * @param msg a message for the exception. 44 */ @@ -57,7 +57,7 @@ 47 } 48 49 /** -50 * Creates a new AnalysisException. +50 * Creates a new ArchiveExtractionException. 51 * 52 * @param ex the cause of the failure. 53 */ @@ -66,7 +66,7 @@ 56 } 57 58 /** -59 * Creates a new DownloadFailedException. +59 * Creates a new ArchiveExtractionException. 60 * 61 * @param msg a message for the exception. 62 * @param ex the cause of the failure. diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/CPEAnalyzer.html b/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/CPEAnalyzer.html index e13a3c3d1..0498a9d58 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/CPEAnalyzer.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/CPEAnalyzer.html @@ -50,767 +50,751 @@ 40 import org.owasp.dependencycheck.dependency.Evidence; 41 import org.owasp.dependencycheck.dependency.Evidence.Confidence; 42 import org.owasp.dependencycheck.dependency.EvidenceCollection; -43 import org.owasp.dependencycheck.data.cpe.CpeIndexReader; +43 import org.owasp.dependencycheck.data.cpe.CpeMemoryIndex; 44 import org.owasp.dependencycheck.data.cpe.Fields; 45 import org.owasp.dependencycheck.data.cpe.IndexEntry; -46 import org.owasp.dependencycheck.data.nvdcve.CveDB; -47 import org.owasp.dependencycheck.data.nvdcve.DatabaseException; -48 import org.owasp.dependencycheck.dependency.Identifier; -49 import org.owasp.dependencycheck.dependency.VulnerableSoftware; -50 import org.owasp.dependencycheck.utils.DependencyVersion; -51 import org.owasp.dependencycheck.utils.DependencyVersionUtil; -52 -53 /** -54 * CPEAnalyzer is a utility class that takes a project dependency and attempts -55 * to discern if there is an associated CPE. It uses the evidence contained -56 * within the dependency to search the Lucene index. -57 * -58 * @author Jeremy Long (jeremy.long@owasp.org) -59 */ -60 public class CPEAnalyzer implements Analyzer { -61 -62 /** -63 * The maximum number of query results to return. -64 */ -65 static final int MAX_QUERY_RESULTS = 25; -66 /** -67 * The weighting boost to give terms when constructing the Lucene query. -68 */ -69 static final String WEIGHTING_BOOST = "^5"; -70 /** -71 * A string representation of a regular expression defining characters -72 * utilized within the CPE Names. -73 */ -74 static final String CLEANSE_CHARACTER_RX = "[^A-Za-z0-9 ._-]"; -75 /** -76 * A string representation of a regular expression used to remove all but -77 * alpha characters. -78 */ -79 static final String CLEANSE_NONALPHA_RX = "[^A-Za-z]*"; -80 /** -81 * The additional size to add to a new StringBuilder to account for extra -82 * data that will be written into the string. -83 */ -84 static final int STRING_BUILDER_BUFFER = 20; -85 /** -86 * The CPE Index Reader. -87 */ -88 private CpeIndexReader cpe; -89 /** -90 * The CVE Database. -91 */ -92 private CveDB cve; -93 -94 /** -95 * Opens the data source. -96 * -97 * @throws IOException when the Lucene directory to be queried does not -98 * exist or is corrupt. -99 * @throws DatabaseException when the database throws an exception. This -100 * usually occurs when the database is in use by another process. -101 */ -102 public void open() throws IOException, DatabaseException { -103 cpe = new CpeIndexReader(); -104 cpe.open(); -105 cve = new CveDB(); -106 try { -107 cve.open(); -108 } catch (SQLException ex) { -109 Logger.getLogger(CPEAnalyzer.class.getName()).log(Level.FINE, null, ex); -110 throw new DatabaseException("Unable to open the cve db", ex); -111 } catch (ClassNotFoundException ex) { -112 Logger.getLogger(CPEAnalyzer.class.getName()).log(Level.FINE, null, ex); -113 throw new DatabaseException("Unable to open the cve db", ex); -114 } -115 } -116 -117 /** -118 * Closes the data source. -119 */ -120 @Override -121 public void close() { -122 if (cpe != null) { -123 cpe.close(); -124 } -125 if (cve != null) { -126 cve.close(); -127 } -128 } -129 -130 /** -131 * Returns the status of the data source - is the index open. -132 * -133 * @return true or false. -134 */ -135 public boolean isOpen() { -136 return (cpe != null) && cpe.isOpen(); -137 } -138 -139 /** -140 * Ensures that the Lucene index is closed. -141 * -142 * @throws Throwable when a throwable is thrown. -143 */ -144 @Override -145 protected void finalize() throws Throwable { -146 super.finalize(); -147 if (isOpen()) { -148 close(); -149 } -150 } -151 -152 /** -153 * Searches the data store of CPE entries, trying to identify the CPE for -154 * the given dependency based on the evidence contained within. The -155 * dependency passed in is updated with any identified CPE values. -156 * -157 * @param dependency the dependency to search for CPE entries on. -158 * @throws CorruptIndexException is thrown when the Lucene index is corrupt. -159 * @throws IOException is thrown when an IOException occurs. -160 * @throws ParseException is thrown when the Lucene query cannot be parsed. -161 */ -162 protected void determineCPE(Dependency dependency) throws CorruptIndexException, IOException, ParseException { -163 Confidence vendorConf = Confidence.HIGHEST; -164 Confidence productConf = Confidence.HIGHEST; -165 -166 String vendors = addEvidenceWithoutDuplicateTerms("", dependency.getVendorEvidence(), vendorConf); -167 String products = addEvidenceWithoutDuplicateTerms("", dependency.getProductEvidence(), productConf); -168 -169 int ctr = 0; -170 do { -171 if (!vendors.isEmpty() && !products.isEmpty()) { -172 final List<IndexEntry> entries = searchCPE(vendors, products, dependency.getProductEvidence().getWeighting(), -173 dependency.getVendorEvidence().getWeighting()); -174 -175 for (IndexEntry e : entries) { -176 if (verifyEntry(e, dependency)) { -177 final String vendor = e.getVendor(); -178 final String product = e.getProduct(); -179 determineIdentifiers(dependency, vendor, product); -180 } -181 } -182 } -183 vendorConf = reduceConfidence(vendorConf); -184 if (dependency.getVendorEvidence().contains(vendorConf)) { -185 vendors = addEvidenceWithoutDuplicateTerms(vendors, dependency.getVendorEvidence(), vendorConf); -186 } -187 productConf = reduceConfidence(productConf); -188 if (dependency.getProductEvidence().contains(productConf)) { -189 products = addEvidenceWithoutDuplicateTerms(products, dependency.getProductEvidence(), productConf); -190 } -191 } while ((++ctr) < 4); -192 } -193 -194 /** -195 * Returns the text created by concatenating the text and the values from -196 * the EvidenceCollection (filtered for a specific confidence). This -197 * attempts to prevent duplicate terms from being added.<br/<br/> Note, if -198 * the evidence is longer then 200 characters it will be truncated. -199 * -200 * @param text the base text. -201 * @param ec an EvidenceCollection -202 * @param confidenceFilter a Confidence level to filter the evidence by. -203 * @return the new evidence text -204 */ -205 private String addEvidenceWithoutDuplicateTerms(final String text, final EvidenceCollection ec, Confidence confidenceFilter) { -206 final String txt = (text == null) ? "" : text; -207 final StringBuilder sb = new StringBuilder(txt.length() + (20 * ec.size())); -208 sb.append(' ').append(txt).append(' '); -209 for (Evidence e : ec.iterator(confidenceFilter)) { -210 String value = e.getValue(); -211 -212 //hack to get around the fact that lucene does a really good job of recognizing domains and not -213 // splitting them. TODO - put together a better lucene analyzer specific to the domain. -214 if (value.startsWith("http://")) { -215 value = value.substring(7).replaceAll("\\.", " "); -216 } -217 if (value.startsWith("https://")) { -218 value = value.substring(8).replaceAll("\\.", " "); -219 } -220 if (sb.indexOf(" " + value + " ") < 0) { -221 sb.append(value).append(' '); -222 } -223 } -224 return sb.toString().trim(); -225 } -226 -227 /** -228 * Reduces the given confidence by one level. This returns LOW if the -229 * confidence passed in is not HIGH. -230 * -231 * @param c the confidence to reduce. -232 * @return One less then the confidence passed in. -233 */ -234 private Confidence reduceConfidence(final Confidence c) { -235 if (c == Confidence.HIGHEST) { -236 return Confidence.HIGH; -237 } else if (c == Confidence.HIGH) { -238 return Confidence.MEDIUM; -239 } else { -240 return Confidence.LOW; -241 } -242 } -243 -244 /** -245 * <p>Searches the Lucene CPE index to identify possible CPE entries -246 * associated with the supplied vendor, product, and version.</p> -247 * -248 * <p>If either the vendorWeightings or productWeightings lists have been -249 * populated this data is used to add weighting factors to the search.</p> -250 * -251 * @param vendor the text used to search the vendor field -252 * @param product the text used to search the product field -253 * @param vendorWeightings a list of strings to use to add weighting factors -254 * to the vendor field -255 * @param productWeightings Adds a list of strings that will be used to add -256 * weighting factors to the product search -257 * @return a list of possible CPE values -258 * @throws CorruptIndexException when the Lucene index is corrupt -259 * @throws IOException when the Lucene index is not found -260 * @throws ParseException when the generated query is not valid -261 */ -262 protected List<IndexEntry> searchCPE(String vendor, String product, -263 Set<String> vendorWeightings, Set<String> productWeightings) -264 throws CorruptIndexException, IOException, ParseException { -265 final ArrayList<IndexEntry> ret = new ArrayList<IndexEntry>(MAX_QUERY_RESULTS); -266 -267 final String searchString = buildSearch(vendor, product, vendorWeightings, productWeightings); -268 if (searchString == null) { -269 return ret; -270 } -271 -272 final TopDocs docs = cpe.search(searchString, MAX_QUERY_RESULTS); -273 for (ScoreDoc d : docs.scoreDocs) { -274 if (d.score >= 0.08) { -275 final Document doc = cpe.getDocument(d.doc); -276 final IndexEntry entry = new IndexEntry(); -277 entry.setVendor(doc.get(Fields.VENDOR)); -278 entry.setProduct(doc.get(Fields.PRODUCT)); -279 // if (d.score < 0.08) { -280 // System.out.print(entry.getVendor()); -281 // System.out.print(":"); -282 // System.out.print(entry.getProduct()); -283 // System.out.print(":"); -284 // System.out.println(d.score); -285 // } -286 entry.setSearchScore(d.score); -287 if (!ret.contains(entry)) { -288 ret.add(entry); -289 } -290 } -291 } -292 return ret; -293 } -294 -295 /** -296 * <p>Builds a Lucene search string by properly escaping data and -297 * constructing a valid search query.</p> -298 * -299 * <p>If either the possibleVendor or possibleProducts lists have been -300 * populated this data is used to add weighting factors to the search string -301 * generated.</p> -302 * -303 * @param vendor text to search the vendor field -304 * @param product text to search the product field -305 * @param vendorWeighting a list of strings to apply to the vendor to boost -306 * the terms weight -307 * @param productWeightings a list of strings to apply to the product to -308 * boost the terms weight -309 * @return the Lucene query -310 */ -311 protected String buildSearch(String vendor, String product, -312 Set<String> vendorWeighting, Set<String> productWeightings) { -313 final String v = vendor; //.replaceAll("[^\\w\\d]", " "); -314 final String p = product; //.replaceAll("[^\\w\\d]", " "); -315 final StringBuilder sb = new StringBuilder(v.length() + p.length() -316 + Fields.PRODUCT.length() + Fields.VENDOR.length() + STRING_BUILDER_BUFFER); -317 -318 if (!appendWeightedSearch(sb, Fields.PRODUCT, p, productWeightings)) { -319 return null; -320 } -321 sb.append(" AND "); -322 if (!appendWeightedSearch(sb, Fields.VENDOR, v, vendorWeighting)) { -323 return null; -324 } -325 return sb.toString(); -326 } -327 -328 /** -329 * This method constructs a Lucene query for a given field. The searchText -330 * is split into separate words and if the word is within the list of -331 * weighted words then an additional weighting is applied to the term as it -332 * is appended into the query. -333 * -334 * @param sb a StringBuilder that the query text will be appended to. -335 * @param field the field within the Lucene index that the query is -336 * searching. -337 * @param searchText text used to construct the query. -338 * @param weightedText a list of terms that will be considered higher -339 * importance when searching. -340 * @return if the append was successful. -341 */ -342 private boolean appendWeightedSearch(StringBuilder sb, String field, String searchText, Set<String> weightedText) { -343 sb.append(" ").append(field).append(":( "); -344 -345 final String cleanText = cleanseText(searchText); -346 -347 if ("".equals(cleanText)) { -348 return false; -349 } -350 -351 if (weightedText == null || weightedText.isEmpty()) { -352 LuceneUtils.appendEscapedLuceneQuery(sb, cleanText); -353 } else { -354 final StringTokenizer tokens = new StringTokenizer(cleanText); -355 while (tokens.hasMoreElements()) { -356 final String word = tokens.nextToken(); -357 String temp = null; -358 for (String weighted : weightedText) { -359 final String weightedStr = cleanseText(weighted); -360 if (equalsIgnoreCaseAndNonAlpha(word, weightedStr)) { -361 temp = LuceneUtils.escapeLuceneQuery(word) + WEIGHTING_BOOST; -362 if (!word.equalsIgnoreCase(weightedStr)) { -363 temp += " " + LuceneUtils.escapeLuceneQuery(weightedStr) + WEIGHTING_BOOST; -364 } -365 } -366 } -367 if (temp == null) { -368 temp = LuceneUtils.escapeLuceneQuery(word); -369 } -370 sb.append(" ").append(temp); -371 } -372 } -373 sb.append(" ) "); -374 return true; -375 } -376 -377 /** -378 * Removes characters from the input text that are not used within the CPE -379 * index. -380 * -381 * @param text is the text to remove the characters from. -382 * @return the text having removed some characters. -383 */ -384 private String cleanseText(String text) { -385 return text.replaceAll(CLEANSE_CHARACTER_RX, " "); -386 } -387 -388 /** -389 * Compares two strings after lower casing them and removing the non-alpha -390 * characters. -391 * -392 * @param l string one to compare. -393 * @param r string two to compare. -394 * @return whether or not the two strings are similar. -395 */ -396 private boolean equalsIgnoreCaseAndNonAlpha(String l, String r) { -397 if (l == null || r == null) { -398 return false; -399 } -400 -401 final String left = l.replaceAll(CLEANSE_NONALPHA_RX, ""); -402 final String right = r.replaceAll(CLEANSE_NONALPHA_RX, ""); -403 return left.equalsIgnoreCase(right); -404 } -405 -406 /** -407 * Ensures that the CPE Identified matches the dependency. This validates -408 * that the product, vendor, and version information for the CPE are -409 * contained within the dependencies evidence. -410 * -411 * @param entry a CPE entry. -412 * @param dependency the dependency that the CPE entries could be for. -413 * @return whether or not the entry is valid. -414 */ -415 private boolean verifyEntry(final IndexEntry entry, final Dependency dependency) { -416 boolean isValid = false; -417 -418 if (collectionContainsString(dependency.getProductEvidence(), entry.getProduct()) -419 && collectionContainsString(dependency.getVendorEvidence(), entry.getVendor())) { -420 //&& collectionContainsVersion(dependency.getVersionEvidence(), entry.getVersion()) -421 isValid = true; -422 } -423 return isValid; -424 } -425 -426 /** -427 * Used to determine if the EvidenceCollection contains a specific string. -428 * -429 * @param ec an EvidenceCollection -430 * @param text the text to search for -431 * @return whether or not the EvidenceCollection contains the string -432 */ -433 private boolean collectionContainsString(EvidenceCollection ec, String text) { -434 -435 //<editor-fold defaultstate="collapsed" desc="This code fold contains an old version of the code, delete once more testing is done"> -436 // String[] splitText = text.split("[\\s_-]"); -437 // -438 // for (String search : splitText) { -439 // //final String search = text.replaceAll("[\\s_-]", "").toLowerCase(); -440 // if (ec.containsUsedString(search)) { -441 // return true; -442 // } -443 // } -444 //</editor-fold> -445 -446 //TODO - likely need to change the split... not sure if this will work for CPE with special chars -447 if (text == null) { -448 return false; -449 } -450 final String[] words = text.split("[\\s_-]"); -451 final List<String> list = new ArrayList<String>(); -452 String tempWord = null; -453 for (String word : words) { -454 //single letter words should be concatonated with the next word. -455 // so { "m", "core", "sample" } -> { "mcore", "sample" } -456 if (tempWord != null) { -457 list.add(tempWord + word); -458 tempWord = null; -459 } else if (word.length() <= 2) { -460 tempWord = word; -461 } else { -462 list.add(word); -463 } -464 } -465 if (tempWord != null && !list.isEmpty()) { -466 final String tmp = list.get(list.size() - 1) + tempWord; -467 list.add(tmp); -468 } -469 boolean contains = true; -470 for (String word : list) { -471 contains &= ec.containsUsedString(word); -472 } -473 return contains; -474 } -475 -476 /** -477 * Analyzes a dependency and attempts to determine if there are any CPE -478 * identifiers for this dependency. -479 * -480 * @param dependency The Dependency to analyze. -481 * @param engine The analysis engine -482 * @throws AnalysisException is thrown if there is an issue analyzing the -483 * dependency. -484 */ -485 @Override -486 public void analyze(Dependency dependency, Engine engine) throws AnalysisException { -487 try { -488 determineCPE(dependency); -489 } catch (CorruptIndexException ex) { -490 throw new AnalysisException("CPE Index is corrupt.", ex); -491 } catch (IOException ex) { -492 throw new AnalysisException("Failure opening the CPE Index.", ex); -493 } catch (ParseException ex) { -494 throw new AnalysisException("Unable to parse the generated Lucene query for this dependency.", ex); -495 } -496 } -497 -498 /** -499 * Returns true because this analyzer supports all dependency types. -500 * -501 * @return true. -502 */ -503 @Override -504 public Set<String> getSupportedExtensions() { -505 return null; -506 } -507 -508 /** -509 * Returns the name of this analyzer. -510 * -511 * @return the name of this analyzer. -512 */ -513 @Override -514 public String getName() { -515 return "CPE Analyzer"; -516 } -517 -518 /** -519 * Returns true because this analyzer supports all dependency types. -520 * -521 * @param extension the file extension of the dependency being analyzed. -522 * @return true. -523 */ -524 @Override -525 public boolean supportsExtension(String extension) { -526 return true; -527 } -528 -529 /** -530 * Returns the analysis phase that this analyzer should run in. -531 * -532 * @return the analysis phase that this analyzer should run in. -533 */ -534 @Override -535 public AnalysisPhase getAnalysisPhase() { -536 return AnalysisPhase.IDENTIFIER_ANALYSIS; -537 } -538 -539 /** -540 * Opens the CPE Lucene Index. -541 * -542 * @throws Exception is thrown if there is an issue opening the index. -543 */ -544 @Override -545 public void initialize() throws Exception { -546 this.open(); -547 } -548 -549 /** -550 * Retrieves a list of CPE values from the CveDB based on the vendor and -551 * product passed in. The list is then validated to find only CPEs that are -552 * valid for the given dependency. It is possible that the CPE identified is -553 * a best effort "guess" based on the vendor, product, and version -554 * information. -555 * -556 * @param dependency the Dependency being analyzed -557 * @param vendor the vendor for the CPE being analyzed -558 * @param product the product for the CPE being analyzed -559 * @throws UnsupportedEncodingException is thrown if UTF-8 is not supported -560 */ -561 private void determineIdentifiers(Dependency dependency, String vendor, String product) throws UnsupportedEncodingException { -562 final Set<VulnerableSoftware> cpes = cve.getCPEs(vendor, product); -563 DependencyVersion bestGuess = new DependencyVersion("-"); -564 Confidence bestGuessConf = null; -565 final List<IdentifierMatch> collected = new ArrayList<IdentifierMatch>(); -566 for (Confidence conf : Confidence.values()) { -567 for (Evidence evidence : dependency.getVersionEvidence().iterator(conf)) { -568 final DependencyVersion evVer = DependencyVersionUtil.parseVersion(evidence.getValue()); -569 if (evVer == null) { -570 continue; -571 } -572 for (VulnerableSoftware vs : cpes) { -573 DependencyVersion dbVer; -574 if (vs.getRevision() != null && !vs.getRevision().isEmpty()) { -575 dbVer = DependencyVersionUtil.parseVersion(vs.getVersion() + "." + vs.getRevision()); -576 } else { -577 dbVer = DependencyVersionUtil.parseVersion(vs.getVersion()); -578 } -579 if (dbVer == null //special case, no version specified - everything is vulnerable -580 || evVer.equals(dbVer)) { //woot exect match -581 final String url = String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(vs.getName(), "UTF-8")); -582 final IdentifierMatch match = new IdentifierMatch("cpe", vs.getName(), url, IdentifierConfidence.EXACT_MATCH, conf); -583 collected.add(match); -584 } else { -585 //TODO the following isn't quite right is it? need to think about this guessing game a bit more. -586 if (evVer.getVersionParts().size() <= dbVer.getVersionParts().size() -587 && evVer.matchesAtLeastThreeLevels(dbVer)) { -588 if (bestGuessConf == null || bestGuessConf.compareTo(conf) > 0) { -589 if (bestGuess.getVersionParts().size() < dbVer.getVersionParts().size()) { -590 bestGuess = dbVer; -591 bestGuessConf = conf; -592 } -593 } -594 } -595 } -596 } -597 if (bestGuessConf == null || bestGuessConf.compareTo(conf) > 0) { -598 if (bestGuess.getVersionParts().size() < evVer.getVersionParts().size()) { -599 bestGuess = evVer; -600 bestGuessConf = conf; -601 } -602 } -603 } -604 } -605 final String cpeName = String.format("cpe:/a:%s:%s:%s", vendor, product, bestGuess.toString()); -606 final String url = null; //String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(cpeName, "UTF-8")); -607 if (bestGuessConf == null) { -608 bestGuessConf = Confidence.LOW; -609 } -610 final IdentifierMatch match = new IdentifierMatch("cpe", cpeName, url, IdentifierConfidence.BEST_GUESS, bestGuessConf); -611 collected.add(match); +46 import org.owasp.dependencycheck.data.cpe.IndexException; +47 import org.owasp.dependencycheck.data.nvdcve.CveDB; +48 import org.owasp.dependencycheck.data.nvdcve.DatabaseException; +49 import org.owasp.dependencycheck.dependency.Identifier; +50 import org.owasp.dependencycheck.dependency.VulnerableSoftware; +51 import org.owasp.dependencycheck.utils.DependencyVersion; +52 import org.owasp.dependencycheck.utils.DependencyVersionUtil; +53 +54 /** +55 * CPEAnalyzer is a utility class that takes a project dependency and attempts +56 * to discern if there is an associated CPE. It uses the evidence contained +57 * within the dependency to search the Lucene index. +58 * +59 * @author Jeremy Long (jeremy.long@owasp.org) +60 */ +61 public class CPEAnalyzer implements Analyzer { +62 +63 /** +64 * The maximum number of query results to return. +65 */ +66 static final int MAX_QUERY_RESULTS = 25; +67 /** +68 * The weighting boost to give terms when constructing the Lucene query. +69 */ +70 static final String WEIGHTING_BOOST = "^5"; +71 /** +72 * A string representation of a regular expression defining characters +73 * utilized within the CPE Names. +74 */ +75 static final String CLEANSE_CHARACTER_RX = "[^A-Za-z0-9 ._-]"; +76 /** +77 * A string representation of a regular expression used to remove all but +78 * alpha characters. +79 */ +80 static final String CLEANSE_NONALPHA_RX = "[^A-Za-z]*"; +81 /** +82 * The additional size to add to a new StringBuilder to account for extra +83 * data that will be written into the string. +84 */ +85 static final int STRING_BUILDER_BUFFER = 20; +86 /** +87 * The CPE in memory index. +88 */ +89 private CpeMemoryIndex cpe; +90 /** +91 * The CVE Database. +92 */ +93 private CveDB cve; +94 +95 /** +96 * Opens the data source. +97 * +98 * @throws IOException when the Lucene directory to be queried does not +99 * exist or is corrupt. +100 * @throws DatabaseException when the database throws an exception. This +101 * usually occurs when the database is in use by another process. +102 */ +103 public void open() throws IOException, DatabaseException { +104 cve = new CveDB(); +105 try { +106 cve.open(); +107 } catch (SQLException ex) { +108 Logger.getLogger(CPEAnalyzer.class.getName()).log(Level.FINE, null, ex); +109 throw new DatabaseException("Unable to open the cve db", ex); +110 } catch (ClassNotFoundException ex) { +111 Logger.getLogger(CPEAnalyzer.class.getName()).log(Level.FINE, null, ex); +112 throw new DatabaseException("Unable to open the cve db", ex); +113 } +114 cpe = CpeMemoryIndex.getInstance(); +115 try { +116 cpe.open(cve); +117 } catch (IndexException ex) { +118 Logger.getLogger(CPEAnalyzer.class.getName()).log(Level.SEVERE, null, ex); +119 throw new DatabaseException(ex); +120 } +121 } +122 +123 /** +124 * Closes the data sources. +125 */ +126 @Override +127 public void close() { +128 if (cpe != null) { +129 cpe.close(); +130 } +131 if (cve != null) { +132 cve.close(); +133 } +134 } +135 +136 /** +137 * Searches the data store of CPE entries, trying to identify the CPE for +138 * the given dependency based on the evidence contained within. The +139 * dependency passed in is updated with any identified CPE values. +140 * +141 * @param dependency the dependency to search for CPE entries on. +142 * @throws CorruptIndexException is thrown when the Lucene index is corrupt. +143 * @throws IOException is thrown when an IOException occurs. +144 * @throws ParseException is thrown when the Lucene query cannot be parsed. +145 */ +146 protected void determineCPE(Dependency dependency) throws CorruptIndexException, IOException, ParseException { +147 Confidence vendorConf = Confidence.HIGHEST; +148 Confidence productConf = Confidence.HIGHEST; +149 +150 String vendors = addEvidenceWithoutDuplicateTerms("", dependency.getVendorEvidence(), vendorConf); +151 String products = addEvidenceWithoutDuplicateTerms("", dependency.getProductEvidence(), productConf); +152 +153 int ctr = 0; +154 do { +155 if (!vendors.isEmpty() && !products.isEmpty()) { +156 final List<IndexEntry> entries = searchCPE(vendors, products, dependency.getProductEvidence().getWeighting(), +157 dependency.getVendorEvidence().getWeighting()); +158 +159 for (IndexEntry e : entries) { +160 if (verifyEntry(e, dependency)) { +161 final String vendor = e.getVendor(); +162 final String product = e.getProduct(); +163 determineIdentifiers(dependency, vendor, product); +164 } +165 } +166 } +167 vendorConf = reduceConfidence(vendorConf); +168 if (dependency.getVendorEvidence().contains(vendorConf)) { +169 vendors = addEvidenceWithoutDuplicateTerms(vendors, dependency.getVendorEvidence(), vendorConf); +170 } +171 productConf = reduceConfidence(productConf); +172 if (dependency.getProductEvidence().contains(productConf)) { +173 products = addEvidenceWithoutDuplicateTerms(products, dependency.getProductEvidence(), productConf); +174 } +175 } while ((++ctr) < 4); +176 } +177 +178 /** +179 * Returns the text created by concatenating the text and the values from +180 * the EvidenceCollection (filtered for a specific confidence). This +181 * attempts to prevent duplicate terms from being added.<br/<br/> Note, if +182 * the evidence is longer then 200 characters it will be truncated. +183 * +184 * @param text the base text. +185 * @param ec an EvidenceCollection +186 * @param confidenceFilter a Confidence level to filter the evidence by. +187 * @return the new evidence text +188 */ +189 private String addEvidenceWithoutDuplicateTerms(final String text, final EvidenceCollection ec, Confidence confidenceFilter) { +190 final String txt = (text == null) ? "" : text; +191 final StringBuilder sb = new StringBuilder(txt.length() + (20 * ec.size())); +192 sb.append(' ').append(txt).append(' '); +193 for (Evidence e : ec.iterator(confidenceFilter)) { +194 String value = e.getValue(); +195 +196 //hack to get around the fact that lucene does a really good job of recognizing domains and not +197 // splitting them. TODO - put together a better lucene analyzer specific to the domain. +198 if (value.startsWith("http://")) { +199 value = value.substring(7).replaceAll("\\.", " "); +200 } +201 if (value.startsWith("https://")) { +202 value = value.substring(8).replaceAll("\\.", " "); +203 } +204 if (sb.indexOf(" " + value + " ") < 0) { +205 sb.append(value).append(' '); +206 } +207 } +208 return sb.toString().trim(); +209 } +210 +211 /** +212 * Reduces the given confidence by one level. This returns LOW if the +213 * confidence passed in is not HIGH. +214 * +215 * @param c the confidence to reduce. +216 * @return One less then the confidence passed in. +217 */ +218 private Confidence reduceConfidence(final Confidence c) { +219 if (c == Confidence.HIGHEST) { +220 return Confidence.HIGH; +221 } else if (c == Confidence.HIGH) { +222 return Confidence.MEDIUM; +223 } else { +224 return Confidence.LOW; +225 } +226 } +227 +228 /** +229 * <p>Searches the Lucene CPE index to identify possible CPE entries +230 * associated with the supplied vendor, product, and version.</p> +231 * +232 * <p>If either the vendorWeightings or productWeightings lists have been +233 * populated this data is used to add weighting factors to the search.</p> +234 * +235 * @param vendor the text used to search the vendor field +236 * @param product the text used to search the product field +237 * @param vendorWeightings a list of strings to use to add weighting factors +238 * to the vendor field +239 * @param productWeightings Adds a list of strings that will be used to add +240 * weighting factors to the product search +241 * @return a list of possible CPE values +242 * @throws CorruptIndexException when the Lucene index is corrupt +243 * @throws IOException when the Lucene index is not found +244 * @throws ParseException when the generated query is not valid +245 */ +246 protected List<IndexEntry> searchCPE(String vendor, String product, +247 Set<String> vendorWeightings, Set<String> productWeightings) +248 throws CorruptIndexException, IOException, ParseException { +249 final ArrayList<IndexEntry> ret = new ArrayList<IndexEntry>(MAX_QUERY_RESULTS); +250 +251 final String searchString = buildSearch(vendor, product, vendorWeightings, productWeightings); +252 if (searchString == null) { +253 return ret; +254 } +255 +256 final TopDocs docs = cpe.search(searchString, MAX_QUERY_RESULTS); +257 for (ScoreDoc d : docs.scoreDocs) { +258 if (d.score >= 0.08) { +259 final Document doc = cpe.getDocument(d.doc); +260 final IndexEntry entry = new IndexEntry(); +261 entry.setVendor(doc.get(Fields.VENDOR)); +262 entry.setProduct(doc.get(Fields.PRODUCT)); +263 // if (d.score < 0.08) { +264 // System.out.print(entry.getVendor()); +265 // System.out.print(":"); +266 // System.out.print(entry.getProduct()); +267 // System.out.print(":"); +268 // System.out.println(d.score); +269 // } +270 entry.setSearchScore(d.score); +271 if (!ret.contains(entry)) { +272 ret.add(entry); +273 } +274 } +275 } +276 return ret; +277 } +278 +279 /** +280 * <p>Builds a Lucene search string by properly escaping data and +281 * constructing a valid search query.</p> +282 * +283 * <p>If either the possibleVendor or possibleProducts lists have been +284 * populated this data is used to add weighting factors to the search string +285 * generated.</p> +286 * +287 * @param vendor text to search the vendor field +288 * @param product text to search the product field +289 * @param vendorWeighting a list of strings to apply to the vendor to boost +290 * the terms weight +291 * @param productWeightings a list of strings to apply to the product to +292 * boost the terms weight +293 * @return the Lucene query +294 */ +295 protected String buildSearch(String vendor, String product, +296 Set<String> vendorWeighting, Set<String> productWeightings) { +297 final String v = vendor; //.replaceAll("[^\\w\\d]", " "); +298 final String p = product; //.replaceAll("[^\\w\\d]", " "); +299 final StringBuilder sb = new StringBuilder(v.length() + p.length() +300 + Fields.PRODUCT.length() + Fields.VENDOR.length() + STRING_BUILDER_BUFFER); +301 +302 if (!appendWeightedSearch(sb, Fields.PRODUCT, p, productWeightings)) { +303 return null; +304 } +305 sb.append(" AND "); +306 if (!appendWeightedSearch(sb, Fields.VENDOR, v, vendorWeighting)) { +307 return null; +308 } +309 return sb.toString(); +310 } +311 +312 /** +313 * This method constructs a Lucene query for a given field. The searchText +314 * is split into separate words and if the word is within the list of +315 * weighted words then an additional weighting is applied to the term as it +316 * is appended into the query. +317 * +318 * @param sb a StringBuilder that the query text will be appended to. +319 * @param field the field within the Lucene index that the query is +320 * searching. +321 * @param searchText text used to construct the query. +322 * @param weightedText a list of terms that will be considered higher +323 * importance when searching. +324 * @return if the append was successful. +325 */ +326 private boolean appendWeightedSearch(StringBuilder sb, String field, String searchText, Set<String> weightedText) { +327 sb.append(" ").append(field).append(":( "); +328 +329 final String cleanText = cleanseText(searchText); +330 +331 if ("".equals(cleanText)) { +332 return false; +333 } +334 +335 if (weightedText == null || weightedText.isEmpty()) { +336 LuceneUtils.appendEscapedLuceneQuery(sb, cleanText); +337 } else { +338 final StringTokenizer tokens = new StringTokenizer(cleanText); +339 while (tokens.hasMoreElements()) { +340 final String word = tokens.nextToken(); +341 String temp = null; +342 for (String weighted : weightedText) { +343 final String weightedStr = cleanseText(weighted); +344 if (equalsIgnoreCaseAndNonAlpha(word, weightedStr)) { +345 temp = LuceneUtils.escapeLuceneQuery(word) + WEIGHTING_BOOST; +346 if (!word.equalsIgnoreCase(weightedStr)) { +347 temp += " " + LuceneUtils.escapeLuceneQuery(weightedStr) + WEIGHTING_BOOST; +348 } +349 } +350 } +351 if (temp == null) { +352 temp = LuceneUtils.escapeLuceneQuery(word); +353 } +354 sb.append(" ").append(temp); +355 } +356 } +357 sb.append(" ) "); +358 return true; +359 } +360 +361 /** +362 * Removes characters from the input text that are not used within the CPE +363 * index. +364 * +365 * @param text is the text to remove the characters from. +366 * @return the text having removed some characters. +367 */ +368 private String cleanseText(String text) { +369 return text.replaceAll(CLEANSE_CHARACTER_RX, " "); +370 } +371 +372 /** +373 * Compares two strings after lower casing them and removing the non-alpha +374 * characters. +375 * +376 * @param l string one to compare. +377 * @param r string two to compare. +378 * @return whether or not the two strings are similar. +379 */ +380 private boolean equalsIgnoreCaseAndNonAlpha(String l, String r) { +381 if (l == null || r == null) { +382 return false; +383 } +384 +385 final String left = l.replaceAll(CLEANSE_NONALPHA_RX, ""); +386 final String right = r.replaceAll(CLEANSE_NONALPHA_RX, ""); +387 return left.equalsIgnoreCase(right); +388 } +389 +390 /** +391 * Ensures that the CPE Identified matches the dependency. This validates +392 * that the product, vendor, and version information for the CPE are +393 * contained within the dependencies evidence. +394 * +395 * @param entry a CPE entry. +396 * @param dependency the dependency that the CPE entries could be for. +397 * @return whether or not the entry is valid. +398 */ +399 private boolean verifyEntry(final IndexEntry entry, final Dependency dependency) { +400 boolean isValid = false; +401 +402 if (collectionContainsString(dependency.getProductEvidence(), entry.getProduct()) +403 && collectionContainsString(dependency.getVendorEvidence(), entry.getVendor())) { +404 //&& collectionContainsVersion(dependency.getVersionEvidence(), entry.getVersion()) +405 isValid = true; +406 } +407 return isValid; +408 } +409 +410 /** +411 * Used to determine if the EvidenceCollection contains a specific string. +412 * +413 * @param ec an EvidenceCollection +414 * @param text the text to search for +415 * @return whether or not the EvidenceCollection contains the string +416 */ +417 private boolean collectionContainsString(EvidenceCollection ec, String text) { +418 +419 //<editor-fold defaultstate="collapsed" desc="This code fold contains an old version of the code, delete once more testing is done"> +420 // String[] splitText = text.split("[\\s_-]"); +421 // +422 // for (String search : splitText) { +423 // //final String search = text.replaceAll("[\\s_-]", "").toLowerCase(); +424 // if (ec.containsUsedString(search)) { +425 // return true; +426 // } +427 // } +428 //</editor-fold> +429 +430 //TODO - likely need to change the split... not sure if this will work for CPE with special chars +431 if (text == null) { +432 return false; +433 } +434 final String[] words = text.split("[\\s_-]"); +435 final List<String> list = new ArrayList<String>(); +436 String tempWord = null; +437 for (String word : words) { +438 //single letter words should be concatonated with the next word. +439 // so { "m", "core", "sample" } -> { "mcore", "sample" } +440 if (tempWord != null) { +441 list.add(tempWord + word); +442 tempWord = null; +443 } else if (word.length() <= 2) { +444 tempWord = word; +445 } else { +446 list.add(word); +447 } +448 } +449 if (tempWord != null && !list.isEmpty()) { +450 final String tmp = list.get(list.size() - 1) + tempWord; +451 list.add(tmp); +452 } +453 boolean contains = true; +454 for (String word : list) { +455 contains &= ec.containsUsedString(word); +456 } +457 return contains; +458 } +459 +460 /** +461 * Analyzes a dependency and attempts to determine if there are any CPE +462 * identifiers for this dependency. +463 * +464 * @param dependency The Dependency to analyze. +465 * @param engine The analysis engine +466 * @throws AnalysisException is thrown if there is an issue analyzing the +467 * dependency. +468 */ +469 @Override +470 public void analyze(Dependency dependency, Engine engine) throws AnalysisException { +471 try { +472 determineCPE(dependency); +473 } catch (CorruptIndexException ex) { +474 throw new AnalysisException("CPE Index is corrupt.", ex); +475 } catch (IOException ex) { +476 throw new AnalysisException("Failure opening the CPE Index.", ex); +477 } catch (ParseException ex) { +478 throw new AnalysisException("Unable to parse the generated Lucene query for this dependency.", ex); +479 } +480 } +481 +482 /** +483 * Returns true because this analyzer supports all dependency types. +484 * +485 * @return true. +486 */ +487 @Override +488 public Set<String> getSupportedExtensions() { +489 return null; +490 } +491 +492 /** +493 * Returns the name of this analyzer. +494 * +495 * @return the name of this analyzer. +496 */ +497 @Override +498 public String getName() { +499 return "CPE Analyzer"; +500 } +501 +502 /** +503 * Returns true because this analyzer supports all dependency types. +504 * +505 * @param extension the file extension of the dependency being analyzed. +506 * @return true. +507 */ +508 @Override +509 public boolean supportsExtension(String extension) { +510 return true; +511 } +512 +513 /** +514 * Returns the analysis phase that this analyzer should run in. +515 * +516 * @return the analysis phase that this analyzer should run in. +517 */ +518 @Override +519 public AnalysisPhase getAnalysisPhase() { +520 return AnalysisPhase.IDENTIFIER_ANALYSIS; +521 } +522 +523 /** +524 * Opens the CPE Lucene Index. +525 * +526 * @throws Exception is thrown if there is an issue opening the index. +527 */ +528 @Override +529 public void initialize() throws Exception { +530 this.open(); +531 } +532 +533 /** +534 * Retrieves a list of CPE values from the CveDB based on the vendor and +535 * product passed in. The list is then validated to find only CPEs that are +536 * valid for the given dependency. It is possible that the CPE identified is +537 * a best effort "guess" based on the vendor, product, and version +538 * information. +539 * +540 * @param dependency the Dependency being analyzed +541 * @param vendor the vendor for the CPE being analyzed +542 * @param product the product for the CPE being analyzed +543 * @throws UnsupportedEncodingException is thrown if UTF-8 is not supported +544 */ +545 private void determineIdentifiers(Dependency dependency, String vendor, String product) throws UnsupportedEncodingException { +546 final Set<VulnerableSoftware> cpes = cve.getCPEs(vendor, product); +547 DependencyVersion bestGuess = new DependencyVersion("-"); +548 Confidence bestGuessConf = null; +549 final List<IdentifierMatch> collected = new ArrayList<IdentifierMatch>(); +550 for (Confidence conf : Confidence.values()) { +551 for (Evidence evidence : dependency.getVersionEvidence().iterator(conf)) { +552 final DependencyVersion evVer = DependencyVersionUtil.parseVersion(evidence.getValue()); +553 if (evVer == null) { +554 continue; +555 } +556 for (VulnerableSoftware vs : cpes) { +557 DependencyVersion dbVer; +558 if (vs.getRevision() != null && !vs.getRevision().isEmpty()) { +559 dbVer = DependencyVersionUtil.parseVersion(vs.getVersion() + "." + vs.getRevision()); +560 } else { +561 dbVer = DependencyVersionUtil.parseVersion(vs.getVersion()); +562 } +563 if (dbVer == null //special case, no version specified - everything is vulnerable +564 || evVer.equals(dbVer)) { //woot exect match +565 final String url = String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(vs.getName(), "UTF-8")); +566 final IdentifierMatch match = new IdentifierMatch("cpe", vs.getName(), url, IdentifierConfidence.EXACT_MATCH, conf); +567 collected.add(match); +568 } else { +569 //TODO the following isn't quite right is it? need to think about this guessing game a bit more. +570 if (evVer.getVersionParts().size() <= dbVer.getVersionParts().size() +571 && evVer.matchesAtLeastThreeLevels(dbVer)) { +572 if (bestGuessConf == null || bestGuessConf.compareTo(conf) > 0) { +573 if (bestGuess.getVersionParts().size() < dbVer.getVersionParts().size()) { +574 bestGuess = dbVer; +575 bestGuessConf = conf; +576 } +577 } +578 } +579 } +580 } +581 if (bestGuessConf == null || bestGuessConf.compareTo(conf) > 0) { +582 if (bestGuess.getVersionParts().size() < evVer.getVersionParts().size()) { +583 bestGuess = evVer; +584 bestGuessConf = conf; +585 } +586 } +587 } +588 } +589 final String cpeName = String.format("cpe:/a:%s:%s:%s", vendor, product, bestGuess.toString()); +590 final String url = null; //String.format("http://web.nvd.nist.gov/view/vuln/search?cpe=%s", URLEncoder.encode(cpeName, "UTF-8")); +591 if (bestGuessConf == null) { +592 bestGuessConf = Confidence.LOW; +593 } +594 final IdentifierMatch match = new IdentifierMatch("cpe", cpeName, url, IdentifierConfidence.BEST_GUESS, bestGuessConf); +595 collected.add(match); +596 +597 Collections.sort(collected); +598 final IdentifierConfidence bestIdentifierQuality = collected.get(0).getConfidence(); +599 final Confidence bestEvidenceQuality = collected.get(0).getEvidenceConfidence(); +600 for (IdentifierMatch m : collected) { +601 if (bestIdentifierQuality.equals(m.getConfidence()) +602 && bestEvidenceQuality.equals(m.getEvidenceConfidence())) { +603 dependency.addIdentifier(m.getIdentifier()); +604 } +605 } +606 } +607 +608 /** +609 * The confidence whether the identifier is an exact match, or a best guess. +610 */ +611 private enum IdentifierConfidence { 612 -613 Collections.sort(collected); -614 final IdentifierConfidence bestIdentifierQuality = collected.get(0).getConfidence(); -615 final Confidence bestEvidenceQuality = collected.get(0).getEvidenceConfidence(); -616 for (IdentifierMatch m : collected) { -617 if (bestIdentifierQuality.equals(m.getConfidence()) -618 && bestEvidenceQuality.equals(m.getEvidenceConfidence())) { -619 dependency.addIdentifier(m.getIdentifier()); -620 } -621 } -622 } -623 -624 /** -625 * The confidence whether the identifier is an exact match, or a best guess. +613 /** +614 * An exact match for the CPE. +615 */ +616 EXACT_MATCH, +617 /** +618 * A best guess for the CPE. +619 */ +620 BEST_GUESS +621 } +622 +623 /** +624 * A simple object to hold an identifier and carry information about the +625 * confidence in the identifier. 626 */ -627 private enum IdentifierConfidence { +627 private static class IdentifierMatch implements Comparable<IdentifierMatch> { 628 629 /** -630 * An exact match for the CPE. -631 */ -632 EXACT_MATCH, -633 /** -634 * A best guess for the CPE. -635 */ -636 BEST_GUESS -637 } -638 -639 /** -640 * A simple object to hold an identifier and carry information about the -641 * confidence in the identifier. -642 */ -643 private static class IdentifierMatch implements Comparable<IdentifierMatch> { -644 -645 /** -646 * Constructs an IdentiferMatch. -647 * -648 * @param type the type of identifier (such as CPE) -649 * @param value the value of the identifier -650 * @param url the URL of the identifier -651 * @param identifierConfidence the confidence in the identifier: best -652 * guess or exact match -653 * @param evidenceConfidence the confidence of the evidence used to find -654 * the identifier +630 * Constructs an IdentiferMatch. +631 * +632 * @param type the type of identifier (such as CPE) +633 * @param value the value of the identifier +634 * @param url the URL of the identifier +635 * @param identifierConfidence the confidence in the identifier: best +636 * guess or exact match +637 * @param evidenceConfidence the confidence of the evidence used to find +638 * the identifier +639 */ +640 IdentifierMatch(String type, String value, String url, IdentifierConfidence identifierConfidence, Confidence evidenceConfidence) { +641 this.identifier = new Identifier(type, value, url); +642 this.confidence = identifierConfidence; +643 this.evidenceConfidence = evidenceConfidence; +644 } +645 //<editor-fold defaultstate="collapsed" desc="Property implementations: evidenceConfidence, confidence, identifier"> +646 /** +647 * The confidence in the evidence used to identify this match. +648 */ +649 private Confidence evidenceConfidence; +650 +651 /** +652 * Get the value of evidenceConfidence +653 * +654 * @return the value of evidenceConfidence 655 */ -656 IdentifierMatch(String type, String value, String url, IdentifierConfidence identifierConfidence, Confidence evidenceConfidence) { -657 this.identifier = new Identifier(type, value, url); -658 this.confidence = identifierConfidence; -659 this.evidenceConfidence = evidenceConfidence; -660 } -661 //<editor-fold defaultstate="collapsed" desc="Property implementations: evidenceConfidence, confidence, identifier"> -662 /** -663 * The confidence in the evidence used to identify this match. +656 public Confidence getEvidenceConfidence() { +657 return evidenceConfidence; +658 } +659 +660 /** +661 * Set the value of evidenceConfidence +662 * +663 * @param evidenceConfidence new value of evidenceConfidence 664 */ -665 private Confidence evidenceConfidence; -666 -667 /** -668 * Get the value of evidenceConfidence -669 * -670 * @return the value of evidenceConfidence -671 */ -672 public Confidence getEvidenceConfidence() { -673 return evidenceConfidence; -674 } -675 -676 /** -677 * Set the value of evidenceConfidence -678 * -679 * @param evidenceConfidence new value of evidenceConfidence -680 */ -681 public void setEvidenceConfidence(Confidence evidenceConfidence) { -682 this.evidenceConfidence = evidenceConfidence; -683 } -684 /** -685 * The confidence whether this is an exact match, or a best guess. +665 public void setEvidenceConfidence(Confidence evidenceConfidence) { +666 this.evidenceConfidence = evidenceConfidence; +667 } +668 /** +669 * The confidence whether this is an exact match, or a best guess. +670 */ +671 private IdentifierConfidence confidence; +672 +673 /** +674 * Get the value of confidence. +675 * +676 * @return the value of confidence +677 */ +678 public IdentifierConfidence getConfidence() { +679 return confidence; +680 } +681 +682 /** +683 * Set the value of confidence. +684 * +685 * @param confidence new value of confidence 686 */ -687 private IdentifierConfidence confidence; -688 -689 /** -690 * Get the value of confidence. -691 * -692 * @return the value of confidence -693 */ -694 public IdentifierConfidence getConfidence() { -695 return confidence; -696 } -697 -698 /** -699 * Set the value of confidence. -700 * -701 * @param confidence new value of confidence -702 */ -703 public void setConfidence(IdentifierConfidence confidence) { -704 this.confidence = confidence; -705 } -706 /** -707 * The CPE identifier. +687 public void setConfidence(IdentifierConfidence confidence) { +688 this.confidence = confidence; +689 } +690 /** +691 * The CPE identifier. +692 */ +693 private Identifier identifier; +694 +695 /** +696 * Get the value of identifier. +697 * +698 * @return the value of identifier +699 */ +700 public Identifier getIdentifier() { +701 return identifier; +702 } +703 +704 /** +705 * Set the value of identifier. +706 * +707 * @param identifier new value of identifier 708 */ -709 private Identifier identifier; -710 -711 /** -712 * Get the value of identifier. -713 * -714 * @return the value of identifier -715 */ -716 public Identifier getIdentifier() { -717 return identifier; -718 } -719 -720 /** -721 * Set the value of identifier. -722 * -723 * @param identifier new value of identifier -724 */ -725 public void setIdentifier(Identifier identifier) { -726 this.identifier = identifier; -727 } -728 //</editor-fold> -729 //<editor-fold defaultstate="collapsed" desc="Standard implementations of toString, hashCode, and equals"> -730 -731 /** -732 * Standard toString() implementation. -733 * -734 * @return the string representation of the object -735 */ -736 @Override -737 public String toString() { -738 return "IdentifierMatch{" + "evidenceConfidence=" + evidenceConfidence -739 + ", confidence=" + confidence + ", identifier=" + identifier + '}'; -740 } -741 -742 /** -743 * Standard hashCode() implementation. -744 * -745 * @return the hashCode -746 */ -747 @Override -748 public int hashCode() { -749 int hash = 5; -750 hash = 97 * hash + (this.evidenceConfidence != null ? this.evidenceConfidence.hashCode() : 0); -751 hash = 97 * hash + (this.confidence != null ? this.confidence.hashCode() : 0); -752 hash = 97 * hash + (this.identifier != null ? this.identifier.hashCode() : 0); -753 return hash; -754 } -755 -756 /** -757 * Standard equals implementation. -758 * -759 * @param obj the object to compare -760 * @return true if the objects are equal, otherwise false -761 */ -762 @Override -763 public boolean equals(Object obj) { -764 if (obj == null) { -765 return false; -766 } -767 if (getClass() != obj.getClass()) { -768 return false; -769 } -770 final IdentifierMatch other = (IdentifierMatch) obj; -771 if (this.evidenceConfidence != other.evidenceConfidence) { -772 return false; -773 } -774 if (this.confidence != other.confidence) { -775 return false; -776 } -777 if (this.identifier != other.identifier && (this.identifier == null || !this.identifier.equals(other.identifier))) { -778 return false; -779 } -780 return true; -781 } -782 //</editor-fold> -783 -784 /** -785 * Standard implementation of compareTo that compares identifier -786 * confidence, evidence confidence, and then the identifier. -787 * -788 * @param o the IdentifierMatch to compare to -789 * @return the natural ordering of IdentifierMatch -790 */ -791 @Override -792 public int compareTo(IdentifierMatch o) { -793 int conf = this.confidence.compareTo(o.confidence); -794 if (conf == 0) { -795 conf = this.evidenceConfidence.compareTo(o.evidenceConfidence); -796 if (conf == 0) { -797 conf = identifier.compareTo(o.identifier); -798 } -799 } -800 return conf; -801 } -802 } -803 } +709 public void setIdentifier(Identifier identifier) { +710 this.identifier = identifier; +711 } +712 //</editor-fold> +713 //<editor-fold defaultstate="collapsed" desc="Standard implementations of toString, hashCode, and equals"> +714 +715 /** +716 * Standard toString() implementation. +717 * +718 * @return the string representation of the object +719 */ +720 @Override +721 public String toString() { +722 return "IdentifierMatch{" + "evidenceConfidence=" + evidenceConfidence +723 + ", confidence=" + confidence + ", identifier=" + identifier + '}'; +724 } +725 +726 /** +727 * Standard hashCode() implementation. +728 * +729 * @return the hashCode +730 */ +731 @Override +732 public int hashCode() { +733 int hash = 5; +734 hash = 97 * hash + (this.evidenceConfidence != null ? this.evidenceConfidence.hashCode() : 0); +735 hash = 97 * hash + (this.confidence != null ? this.confidence.hashCode() : 0); +736 hash = 97 * hash + (this.identifier != null ? this.identifier.hashCode() : 0); +737 return hash; +738 } +739 +740 /** +741 * Standard equals implementation. +742 * +743 * @param obj the object to compare +744 * @return true if the objects are equal, otherwise false +745 */ +746 @Override +747 public boolean equals(Object obj) { +748 if (obj == null) { +749 return false; +750 } +751 if (getClass() != obj.getClass()) { +752 return false; +753 } +754 final IdentifierMatch other = (IdentifierMatch) obj; +755 if (this.evidenceConfidence != other.evidenceConfidence) { +756 return false; +757 } +758 if (this.confidence != other.confidence) { +759 return false; +760 } +761 if (this.identifier != other.identifier && (this.identifier == null || !this.identifier.equals(other.identifier))) { +762 return false; +763 } +764 return true; +765 } +766 //</editor-fold> +767 +768 /** +769 * Standard implementation of compareTo that compares identifier +770 * confidence, evidence confidence, and then the identifier. +771 * +772 * @param o the IdentifierMatch to compare to +773 * @return the natural ordering of IdentifierMatch +774 */ +775 @Override +776 public int compareTo(IdentifierMatch o) { +777 int conf = this.confidence.compareTo(o.confidence); +778 if (conf == 0) { +779 conf = this.evidenceConfidence.compareTo(o.evidenceConfidence); +780 if (conf == 0) { +781 conf = identifier.compareTo(o.identifier); +782 } +783 } +784 return conf; +785 } +786 } +787 }
      diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/package-frame.html index d005cee14..154a8bb5c 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.analyzer + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.analyzer @@ -17,6 +17,9 @@ diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/package-summary.html index ced8c3225..a5c9eab87 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/analyzer/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.analyzer + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.analyzer @@ -39,6 +39,11 @@
    AbstractAnalyzer
    + AbstractSuppressionAnalyzer +
    @@ -79,6 +84,11 @@ ClassNameInformation
    + CpeSuppressionAnalyzer +
    @@ -124,6 +134,11 @@ NvdCveAnalyzer
    + VulnerabilitySuppressionAnalyzer +
    diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/concurrency/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/concurrency/package-frame.html index 9136b0bbb..c9c3a8274 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/concurrency/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/concurrency/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.concurrency + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.concurrency diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/concurrency/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/concurrency/package-summary.html index 01e86cc14..c95666689 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/concurrency/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/concurrency/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.concurrency + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.concurrency diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/package-frame.html index 94269af36..583f01bc9 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.data.cpe + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.data.cpe @@ -16,19 +16,16 @@ diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/package-summary.html index f0fcdefd2..a7ef081e7 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/cpe/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.data.cpe + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.data.cpe @@ -37,17 +37,7 @@ - BaseIndex - - - - - CpeIndexReader - - - - - CpeIndexWriter + CpeMemoryIndex @@ -59,6 +49,11 @@ IndexEntry + + + + IndexException + diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/cwe/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/cwe/package-frame.html index bcd5cc147..20b0ecf3b 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/cwe/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/cwe/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.data.cwe + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.data.cwe diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/cwe/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/cwe/package-summary.html index 1139e0080..740eb5364 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/cwe/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/cwe/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.data.cwe + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.data.cwe diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/LuceneUtils.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/LuceneUtils.html index 750471260..5dd92a588 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/LuceneUtils.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/LuceneUtils.html @@ -28,89 +28,97 @@ 18 */ 19 package org.owasp.dependencycheck.data.lucene; 20 -21 /** -22 * <p>Lucene utils is a set of utilize written to make constructing Lucene -23 * queries simpler.</p> -24 * -25 * @author Jeremy Long (jeremy.long@owasp.org) -26 */ -27 public final class LuceneUtils { -28 -29 /** -30 * Private constructor as this is a utility class. -31 */ -32 private LuceneUtils() { -33 } -34 -35 /** -36 * Appends the text to the supplied StringBuilder escaping Lucene control -37 * characters in the process. -38 * -39 * @param buf a StringBuilder to append the escaped text to -40 * @param text the data to be escaped -41 */ -42 @SuppressWarnings("fallthrough") -43 @edu.umd.cs.findbugs.annotations.SuppressWarnings( -44 value = "SF_SWITCH_NO_DEFAULT", -45 justification = "The switch below does have a default.") -46 public static void appendEscapedLuceneQuery(StringBuilder buf, -47 final CharSequence text) { -48 -49 if (text == null || buf == null) { -50 return; -51 } -52 -53 for (int i = 0; i < text.length(); i++) { -54 final char c = text.charAt(i); -55 switch (c) { -56 case '+': -57 case '-': -58 case '&': -59 case '|': -60 case '!': -61 case '(': -62 case ')': -63 case '{': -64 case '}': -65 case '[': -66 case ']': -67 case '^': -68 case '"': -69 case '~': -70 case '*': -71 case '?': -72 case ':': -73 case '\\': //it is supposed to fall through here -74 buf.append('\\'); -75 default: -76 buf.append(c); -77 break; -78 } -79 } -80 } -81 -82 /** -83 * Escapes the text passed in so that it is treated as data instead of -84 * control characters. -85 * -86 * @param text data to be escaped -87 * @return the escaped text. -88 */ -89 public static String escapeLuceneQuery(final CharSequence text) { -90 -91 if (text == null) { -92 return null; -93 } -94 -95 int size = text.length(); -96 size = size >> 1; -97 final StringBuilder buf = new StringBuilder(size); +21 import org.apache.lucene.util.Version; +22 +23 /** +24 * <p>Lucene utils is a set of utilize written to make constructing Lucene +25 * queries simpler.</p> +26 * +27 * @author Jeremy Long (jeremy.long@owasp.org) +28 */ +29 public final class LuceneUtils { +30 +31 /** +32 * The current version of Lucene being used. Declaring this one place so an +33 * upgrade doesn't require hunting through the code base. +34 */ +35 public static final Version CURRENT_VERSION = Version.LUCENE_45; +36 +37 /** +38 * Private constructor as this is a utility class. +39 */ +40 private LuceneUtils() { +41 } +42 +43 /** +44 * Appends the text to the supplied StringBuilder escaping Lucene control +45 * characters in the process. +46 * +47 * @param buf a StringBuilder to append the escaped text to +48 * @param text the data to be escaped +49 */ +50 @SuppressWarnings("fallthrough") +51 @edu.umd.cs.findbugs.annotations.SuppressWarnings( +52 value = "SF_SWITCH_NO_DEFAULT", +53 justification = "The switch below does have a default.") +54 public static void appendEscapedLuceneQuery(StringBuilder buf, +55 final CharSequence text) { +56 +57 if (text == null || buf == null) { +58 return; +59 } +60 +61 for (int i = 0; i < text.length(); i++) { +62 final char c = text.charAt(i); +63 switch (c) { +64 case '+': +65 case '-': +66 case '&': +67 case '|': +68 case '!': +69 case '(': +70 case ')': +71 case '{': +72 case '}': +73 case '[': +74 case ']': +75 case '^': +76 case '"': +77 case '~': +78 case '*': +79 case '?': +80 case ':': +81 case '\\': //it is supposed to fall through here +82 buf.append('\\'); +83 default: +84 buf.append(c); +85 break; +86 } +87 } +88 } +89 +90 /** +91 * Escapes the text passed in so that it is treated as data instead of +92 * control characters. +93 * +94 * @param text data to be escaped +95 * @return the escaped text. +96 */ +97 public static String escapeLuceneQuery(final CharSequence text) { 98 -99 appendEscapedLuceneQuery(buf, text); -100 -101 return buf.toString(); -102 } -103 } +99 if (text == null) { +100 return null; +101 } +102 +103 int size = text.length(); +104 size = size >> 1; +105 final StringBuilder buf = new StringBuilder(size); +106 +107 appendEscapedLuceneQuery(buf, text); +108 +109 return buf.toString(); +110 } +111 }
    diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/package-frame.html index db4759dbc..0685099bf 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.data.lucene + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.data.lucene diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/package-summary.html index 090ffce05..9afd31c7c 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/lucene/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.data.lucene + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.data.lucene diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/CveDB.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/CveDB.html index b118bd1fc..dfcdbdd1a 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/CveDB.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/CveDB.html @@ -28,706 +28,536 @@ 18 */ 19 package org.owasp.dependencycheck.data.nvdcve; 20 -21 import java.io.BufferedReader; -22 import java.io.File; -23 import java.io.IOException; -24 import java.io.InputStream; -25 import java.io.InputStreamReader; -26 import java.io.UnsupportedEncodingException; -27 import java.sql.Connection; -28 import java.sql.DriverManager; -29 import java.sql.PreparedStatement; -30 import java.sql.ResultSet; -31 import java.sql.SQLException; -32 import java.sql.Statement; -33 import java.util.ArrayList; -34 import java.util.HashSet; -35 import java.util.List; -36 import java.util.Set; -37 import java.util.logging.Level; -38 import java.util.logging.Logger; -39 import org.owasp.dependencycheck.data.cwe.CweDB; -40 import org.owasp.dependencycheck.dependency.Reference; -41 import org.owasp.dependencycheck.dependency.Vulnerability; -42 import org.owasp.dependencycheck.dependency.VulnerableSoftware; -43 import org.owasp.dependencycheck.utils.DependencyVersion; -44 import org.owasp.dependencycheck.utils.DependencyVersionUtil; -45 import org.owasp.dependencycheck.utils.Settings; +21 import java.io.UnsupportedEncodingException; +22 import java.sql.PreparedStatement; +23 import java.sql.ResultSet; +24 import java.sql.SQLException; +25 import java.sql.Statement; +26 import java.util.ArrayList; +27 import java.util.HashSet; +28 import java.util.List; +29 import java.util.Set; +30 import java.util.logging.Level; +31 import java.util.logging.Logger; +32 import org.owasp.dependencycheck.data.BaseDB; +33 import org.owasp.dependencycheck.data.cwe.CweDB; +34 import org.owasp.dependencycheck.dependency.Reference; +35 import org.owasp.dependencycheck.dependency.Vulnerability; +36 import org.owasp.dependencycheck.dependency.VulnerableSoftware; +37 import org.owasp.dependencycheck.utils.DependencyVersion; +38 import org.owasp.dependencycheck.utils.DependencyVersionUtil; +39 +40 /** +41 * The database holding information about the NVD CVE data. +42 * +43 * @author Jeremy Long (jeremy.long@owasp.org) +44 */ +45 public class CveDB extends BaseDB { 46 -47 /** -48 * The database holding information about the NVD CVE data. -49 * -50 * @author Jeremy Long (jeremy.long@owasp.org) -51 */ -52 public class CveDB { -53 -54 /** -55 * Resource location for SQL file used to create the database schema. -56 */ -57 public static final String DB_STRUCTURE_RESOURCE = "data/initialize.sql"; -58 /** -59 * The version of the current DB Schema. -60 */ -61 public static final String DB_SCHEMA_VERSION = "2.6"; -62 /** -63 * Database connection +47 //<editor-fold defaultstate="collapsed" desc="Constants to create, maintain, and retrieve data from the CVE Database"> +48 /** +49 * SQL Statement to delete references by vulnerability ID. +50 */ +51 private static final String DELETE_REFERENCE = "DELETE FROM reference WHERE cveid = ?"; +52 /** +53 * SQL Statement to delete software by vulnerability ID. +54 */ +55 private static final String DELETE_SOFTWARE = "DELETE FROM software WHERE cveid = ?"; +56 /** +57 * SQL Statement to delete a vulnerability by CVE. +58 */ +59 private static final String DELETE_VULNERABILITY = "DELETE FROM vulnerability WHERE id = ?"; +60 /** +61 * SQL Statement to cleanup orphan entries. Yes, the db schema could be a +62 * little tighter, but what we have works well to keep the data file size +63 * down a bit. 64 */ -65 private Connection conn; -66 //<editor-fold defaultstate="collapsed" desc="Constants to create, maintain, and retrieve data from the CVE Database"> -67 /** -68 * SQL Statement to delete references by vulnerability ID. -69 */ -70 public static final String DELETE_REFERENCE = "DELETE FROM reference WHERE cveid = ?"; -71 /** -72 * SQL Statement to delete software by vulnerability ID. -73 */ -74 public static final String DELETE_SOFTWARE = "DELETE FROM software WHERE cveid = ?"; -75 /** -76 * SQL Statement to delete a vulnerability by CVE. -77 */ -78 public static final String DELETE_VULNERABILITY = "DELETE FROM vulnerability WHERE cve = ?"; -79 /** -80 * SQL Statement to cleanup orphan entries. Yes, the db schema could be a -81 * little tighter, but what we have works well to keep the data file size -82 * down a bit. -83 */ -84 public static final String CLEANUP_ORPHANS = "DELETE FROM CpeEntry WHERE id not in (SELECT CPEEntryId FROM Software); "; -85 /** -86 * SQL Statement to insert a new reference. -87 */ -88 public static final String INSERT_REFERENCE = "INSERT INTO reference (cveid, name, url, source) VALUES (?, ?, ?, ?)"; -89 /** -90 * SQL Statement to insert a new software. -91 */ -92 public static final String INSERT_SOFTWARE = "INSERT INTO software (cveid, cpeEntryId, previousVersion) VALUES (?, ?, ?)"; -93 /** -94 * SQL Statement to insert a new cpe. -95 */ -96 public static final String INSERT_CPE = "INSERT INTO cpeEntry (cpe, vendor, product) VALUES (?, ?, ?)"; -97 /** -98 * SQL Statement to get a CPEProductID. -99 */ -100 public static final String SELECT_CPE_ID = "SELECT id FROM cpeEntry WHERE cpe = ?"; -101 /** -102 * SQL Statement to insert a new vulnerability. -103 */ -104 public static final String INSERT_VULNERABILITY = "INSERT INTO vulnerability (cve, description, cwe, cvssScore, cvssAccessVector, " -105 + "cvssAccessComplexity, cvssAuthentication, cvssConfidentialityImpact, cvssIntegrityImpact, cvssAvailabilityImpact) " -106 + "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; -107 /** -108 * SQL Statement to update a vulnerability. -109 */ -110 public static final String UPDATE_VULNERABILITY = "UPDATE vulnerability SET description=?, cwe=?, cvssScore=?, cvssAccessVector=?, " -111 + "cvssAccessComplexity=?, cvssAuthentication=?, cvssConfidentialityImpact=?, cvssIntegrityImpact=?, cvssAvailabilityImpact=? " -112 + "WHERE id=?"; -113 /** -114 * SQL Statement to find CVE entries based on CPE data. -115 */ -116 public static final String SELECT_CVE_FROM_SOFTWARE = "SELECT cve, cpe, previousVersion " -117 + "FROM software INNER JOIN vulnerability ON vulnerability.id = software.cveId " -118 + "INNER JOIN cpeEntry ON cpeEntry.id = software.cpeEntryId " -119 + "WHERE vendor = ? AND product = ?"; -120 //unfortunately, the version info is too complicated to do in a select. Need to filter this afterwards -121 // + " AND (version = '-' OR previousVersion IS NOT NULL OR version=?)"; -122 // -123 /** -124 * SQL Statement to find the CPE entry based on the vendor and product. -125 */ -126 public static final String SELECT_CPE_ENTRIES = "SELECT cpe FROM cpeEntry WHERE vendor = ? AND product = ?"; -127 /** -128 * SQL Statement to select references by CVEID. -129 */ -130 public static final String SELECT_REFERENCE = "SELECT source, name, url FROM reference WHERE cveid = ?"; -131 /** -132 * SQL Statement to select software by CVEID. -133 */ -134 public static final String SELECT_SOFTWARE = "SELECT cpe, previousVersion " -135 + "FROM software INNER JOIN cpeEntry ON software.cpeEntryId = cpeEntry.id WHERE cveid = ?"; -136 // public static final String SELECT_SOFTWARE = "SELECT part, vendor, product, version, revision, previousVersion " -137 // + "FROM software INNER JOIN cpeProduct ON cpeProduct.id = software.cpeProductId LEFT JOIN cpeVersion ON " -138 // + "software.cpeVersionId = cpeVersion.id LEFT JOIN Version ON cpeVersion.versionId = version.id WHERE cveid = ?"; -139 /** -140 * SQL Statement to select a vulnerability by CVEID. -141 */ -142 public static final String SELECT_VULNERABILITY = "SELECT id, description, cwe, cvssScore, cvssAccessVector, cvssAccessComplexity, " -143 + "cvssAuthentication, cvssConfidentialityImpact, cvssIntegrityImpact, cvssAvailabilityImpact FROM vulnerability WHERE cve = ?"; -144 /** -145 * SQL Statement to select a vulnerability's primary key. -146 */ -147 public static final String SELECT_VULNERABILITY_ID = "SELECT id FROM vulnerability WHERE cve = ?"; -148 //</editor-fold> -149 -150 /** -151 * Opens the database connection. If the database does not exist, it will -152 * create a new one. -153 * -154 * @throws IOException thrown if there is an IO Exception -155 * @throws SQLException thrown if there is a SQL Exception -156 * @throws DatabaseException thrown if there is an error initializing a new -157 * database -158 * @throws ClassNotFoundException thrown if the h2 database driver cannot be -159 * loaded -160 */ -161 @edu.umd.cs.findbugs.annotations.SuppressWarnings( -162 value = "DMI_EMPTY_DB_PASSWORD", -163 justification = "Yes, I know... Blank password.") -164 public void open() throws IOException, SQLException, DatabaseException, ClassNotFoundException { -165 final String fileName = CveDB.getDataDirectory().getCanonicalPath(); -166 final File f = new File(fileName, "cve." + DB_SCHEMA_VERSION); -167 final File check = new File(f.getAbsolutePath() + ".h2.db"); -168 final boolean createTables = !check.exists(); -169 final String connStr = String.format("jdbc:h2:file:%s;AUTO_SERVER=TRUE", f.getAbsolutePath()); -170 Class.forName("org.h2.Driver"); -171 conn = DriverManager.getConnection(connStr, "sa", ""); -172 if (createTables) { -173 createTables(); -174 } -175 } -176 -177 /** -178 * Commits all completed transactions. -179 * -180 * @throws SQLException thrown if a SQL Exception occurs -181 */ -182 public void commit() throws SQLException { -183 if (conn != null) { -184 conn.commit(); -185 } -186 } -187 -188 /** -189 * Cleans up the object and ensures that "close" has been called. -190 * -191 * @throws Throwable thrown if there is a problem -192 */ -193 @Override -194 protected void finalize() throws Throwable { -195 close(); -196 super.finalize(); //not necessary if extending Object. -197 } -198 -199 /** -200 * Closes the DB4O database. Close should be called on this object when it -201 * is done being used. -202 */ -203 public void close() { -204 if (conn != null) { -205 try { -206 conn.close(); -207 } catch (SQLException ex) { -208 final String msg = "There was an error attempting to close the CveDB, see the log for more details."; -209 Logger.getLogger(CveDB.class.getName()).log(Level.SEVERE, msg, ex); -210 Logger.getLogger(CveDB.class.getName()).log(Level.FINE, null, ex); -211 } -212 conn = null; -213 } -214 } -215 -216 /** -217 * Searches the CPE entries in the database and retrieves all entries for a -218 * given vendor and product combination. The returned list will include all -219 * versions of the product that are registered in the NVD CVE data. -220 * -221 * @param vendor the identified vendor name of the dependency being analyzed -222 * @param product the identified name of the product of the dependency being -223 * analyzed -224 * @return a set of vulnerable software -225 */ -226 public Set<VulnerableSoftware> getCPEs(String vendor, String product) { -227 final Set<VulnerableSoftware> cpe = new HashSet<VulnerableSoftware>(); -228 ResultSet rs = null; -229 PreparedStatement ps = null; -230 try { -231 ps = conn.prepareStatement(SELECT_CPE_ENTRIES); -232 ps.setString(1, vendor); -233 ps.setString(2, product); -234 rs = ps.executeQuery(); -235 -236 while (rs.next()) { -237 final VulnerableSoftware vs = new VulnerableSoftware(); -238 vs.setCpe(rs.getString(1)); -239 cpe.add(vs); -240 } -241 } catch (SQLException ex) { -242 Logger.getLogger(CveDB.class.getName()).log(Level.SEVERE, null, ex); -243 } finally { -244 closeResultSet(rs); -245 closeStatement(ps); -246 } -247 return cpe; -248 } -249 -250 /** -251 * Retrieves the vulnerabilities associated with the specified CPE. -252 * -253 * @param cpeStr the CPE name -254 * @return a list of Vulnerabilities -255 * @throws DatabaseException thrown if there is an exception retrieving data -256 */ -257 public List<Vulnerability> getVulnerabilities(String cpeStr) throws DatabaseException { -258 ResultSet rs = null; -259 final VulnerableSoftware cpe = new VulnerableSoftware(); -260 try { -261 cpe.parseName(cpeStr); -262 } catch (UnsupportedEncodingException ex) { -263 Logger.getLogger(CveDB.class.getName()).log(Level.FINEST, null, ex); -264 } -265 final DependencyVersion detectedVersion = parseDependencyVersion(cpe); -266 final List<Vulnerability> vulnerabilities = new ArrayList<Vulnerability>(); -267 -268 PreparedStatement ps; -269 final HashSet<String> cveEntries = new HashSet<String>(); -270 try { -271 ps = conn.prepareStatement(SELECT_CVE_FROM_SOFTWARE); -272 ps.setString(1, cpe.getVendor()); -273 ps.setString(2, cpe.getProduct()); -274 rs = ps.executeQuery(); -275 while (rs.next()) { -276 final String cveId = rs.getString(1); -277 final String cpeId = rs.getString(2); -278 final String previous = rs.getString(3); -279 if (!cveEntries.contains(cveId) && isAffected(cpe.getVendor(), cpe.getProduct(), detectedVersion, cpeId, previous)) { -280 cveEntries.add(cveId); -281 } -282 } -283 closeResultSet(rs); -284 closeStatement(ps); -285 for (String cve : cveEntries) { -286 final Vulnerability v = getVulnerability(cve); -287 vulnerabilities.add(v); -288 } -289 -290 } catch (SQLException ex) { -291 throw new DatabaseException("Exception retrieving vulnerability for " + cpeStr, ex); -292 } finally { -293 closeResultSet(rs); -294 } -295 return vulnerabilities; -296 } -297 -298 /** -299 * Gets a vulnerability for the provided CVE. -300 * -301 * @param cve the CVE to lookup -302 * @return a vulnerability object -303 * @throws DatabaseException if an exception occurs -304 */ -305 private Vulnerability getVulnerability(String cve) throws DatabaseException { -306 PreparedStatement psV = null; -307 PreparedStatement psR = null; -308 PreparedStatement psS = null; -309 ResultSet rsV = null; -310 ResultSet rsR = null; -311 ResultSet rsS = null; -312 Vulnerability vuln = null; -313 try { -314 psV = conn.prepareStatement(SELECT_VULNERABILITY); -315 psV.setString(1, cve); -316 rsV = psV.executeQuery(); -317 if (rsV.next()) { -318 vuln = new Vulnerability(); -319 vuln.setName(cve); -320 vuln.setDescription(rsV.getString(2)); -321 String cwe = rsV.getString(3); -322 if (cwe != null) { -323 final String name = CweDB.getCweName(cwe); -324 if (name != null) { -325 cwe += " " + name; -326 } -327 } -328 final int cveId = rsV.getInt(1); -329 vuln.setCwe(cwe); -330 vuln.setCvssScore(rsV.getFloat(4)); -331 vuln.setCvssAccessVector(rsV.getString(5)); -332 vuln.setCvssAccessComplexity(rsV.getString(6)); -333 vuln.setCvssAuthentication(rsV.getString(7)); -334 vuln.setCvssConfidentialityImpact(rsV.getString(8)); -335 vuln.setCvssIntegrityImpact(rsV.getString(9)); -336 vuln.setCvssAvailabilityImpact(rsV.getString(10)); -337 -338 psR = conn.prepareStatement(SELECT_REFERENCE); -339 psR.setInt(1, cveId); -340 rsR = psR.executeQuery(); -341 while (rsR.next()) { -342 vuln.addReference(rsR.getString(1), rsR.getString(2), rsR.getString(3)); -343 } -344 psS = conn.prepareStatement(SELECT_SOFTWARE); -345 psS.setInt(1, cveId); -346 rsS = psS.executeQuery(); -347 while (rsS.next()) { -348 final String cpe = rsS.getString(1); -349 final String prevVersion = rsS.getString(2); -350 if (prevVersion == null) { -351 vuln.addVulnerableSoftware(cpe); -352 } else { -353 vuln.addVulnerableSoftware(cpe, prevVersion); -354 } -355 } -356 } -357 } catch (SQLException ex) { -358 throw new DatabaseException("Error retrieving " + cve, ex); -359 } finally { -360 closeResultSet(rsV); -361 closeResultSet(rsR); -362 closeResultSet(rsS); -363 closeStatement(psV); -364 closeStatement(psR); -365 closeStatement(psS); -366 } -367 return vuln; -368 } -369 -370 /** -371 * Updates the vulnerability within the database. If the vulnerability does -372 * not exist it will be added. -373 * -374 * @param vuln the vulnerability to add to the database -375 * @throws DatabaseException is thrown if the database -376 */ -377 public void updateVulnerability(Vulnerability vuln) throws DatabaseException { -378 PreparedStatement selectVulnerabilityId = null; -379 PreparedStatement deleteReferences = null; -380 PreparedStatement deleteSoftware = null; -381 PreparedStatement updateVulnerability = null; -382 PreparedStatement insertVulnerability = null; -383 PreparedStatement insertReference = null; -384 PreparedStatement selectCpeId = null; -385 PreparedStatement insertCpe = null; -386 PreparedStatement insertSoftware = null; -387 -388 try { -389 selectVulnerabilityId = conn.prepareStatement(SELECT_VULNERABILITY_ID); -390 deleteReferences = conn.prepareStatement(DELETE_REFERENCE); -391 deleteSoftware = conn.prepareStatement(DELETE_SOFTWARE); -392 updateVulnerability = conn.prepareStatement(UPDATE_VULNERABILITY); -393 insertVulnerability = conn.prepareStatement(INSERT_VULNERABILITY, Statement.RETURN_GENERATED_KEYS); -394 insertReference = conn.prepareStatement(INSERT_REFERENCE); -395 selectCpeId = conn.prepareStatement(SELECT_CPE_ID); -396 insertCpe = conn.prepareStatement(INSERT_CPE, Statement.RETURN_GENERATED_KEYS); -397 insertSoftware = conn.prepareStatement(INSERT_SOFTWARE); -398 int vulnerabilityId = 0; -399 selectVulnerabilityId.setString(1, vuln.getName()); -400 ResultSet rs = selectVulnerabilityId.executeQuery(); -401 if (rs.next()) { -402 vulnerabilityId = rs.getInt(1); -403 // first delete any existing vulnerability info. We don't know what was updated. yes, slower but atm easier. -404 deleteReferences.setInt(1, vulnerabilityId); -405 deleteReferences.execute(); -406 deleteSoftware.setInt(1, vulnerabilityId); -407 deleteSoftware.execute(); -408 } -409 closeResultSet(rs); -410 rs = null; -411 if (vulnerabilityId != 0) { -412 updateVulnerability.setString(1, vuln.getDescription()); -413 updateVulnerability.setString(2, vuln.getCwe()); -414 updateVulnerability.setFloat(3, vuln.getCvssScore()); -415 updateVulnerability.setString(4, vuln.getCvssAccessVector()); -416 updateVulnerability.setString(5, vuln.getCvssAccessComplexity()); -417 updateVulnerability.setString(6, vuln.getCvssAuthentication()); -418 updateVulnerability.setString(7, vuln.getCvssConfidentialityImpact()); -419 updateVulnerability.setString(8, vuln.getCvssIntegrityImpact()); -420 updateVulnerability.setString(9, vuln.getCvssAvailabilityImpact()); -421 updateVulnerability.setInt(10, vulnerabilityId); -422 updateVulnerability.executeUpdate(); -423 } else { -424 insertVulnerability.setString(1, vuln.getName()); -425 insertVulnerability.setString(2, vuln.getDescription()); -426 insertVulnerability.setString(3, vuln.getCwe()); -427 insertVulnerability.setFloat(4, vuln.getCvssScore()); -428 insertVulnerability.setString(5, vuln.getCvssAccessVector()); -429 insertVulnerability.setString(6, vuln.getCvssAccessComplexity()); -430 insertVulnerability.setString(7, vuln.getCvssAuthentication()); -431 insertVulnerability.setString(8, vuln.getCvssConfidentialityImpact()); -432 insertVulnerability.setString(9, vuln.getCvssIntegrityImpact()); -433 insertVulnerability.setString(10, vuln.getCvssAvailabilityImpact()); -434 insertVulnerability.execute(); -435 try { -436 rs = insertVulnerability.getGeneratedKeys(); -437 rs.next(); -438 vulnerabilityId = rs.getInt(1); -439 } catch (SQLException ex) { -440 final String msg = String.format("Unable to retrieve id for new vulnerability for '%s'", vuln.getName()); -441 throw new DatabaseException(msg, ex); -442 } finally { -443 closeResultSet(rs); -444 rs = null; -445 } -446 } -447 insertReference.setInt(1, vulnerabilityId); -448 for (Reference r : vuln.getReferences()) { -449 insertReference.setString(2, r.getName()); -450 insertReference.setString(3, r.getUrl()); -451 insertReference.setString(4, r.getSource()); -452 insertReference.execute(); -453 } -454 for (VulnerableSoftware s : vuln.getVulnerableSoftware()) { -455 int cpeProductId = 0; -456 selectCpeId.setString(1, s.getName()); -457 try { -458 rs = selectCpeId.executeQuery(); -459 if (rs.next()) { -460 cpeProductId = rs.getInt(1); -461 } -462 } catch (SQLException ex) { -463 throw new DatabaseException("Unable to get primary key for new cpe: " + s.getName(), ex); -464 } finally { -465 closeResultSet(rs); -466 rs = null; -467 } +65 private static final String CLEANUP_ORPHANS = "DELETE FROM CpeEntry WHERE id not in (SELECT CPEEntryId FROM Software); "; +66 /** +67 * SQL Statement to insert a new reference. +68 */ +69 private static final String INSERT_REFERENCE = "INSERT INTO reference (cveid, name, url, source) VALUES (?, ?, ?, ?)"; +70 /** +71 * SQL Statement to insert a new software. +72 */ +73 private static final String INSERT_SOFTWARE = "INSERT INTO software (cveid, cpeEntryId, previousVersion) VALUES (?, ?, ?)"; +74 /** +75 * SQL Statement to insert a new cpe. +76 */ +77 private static final String INSERT_CPE = "INSERT INTO cpeEntry (cpe, vendor, product) VALUES (?, ?, ?)"; +78 /** +79 * SQL Statement to get a CPEProductID. +80 */ +81 private static final String SELECT_CPE_ID = "SELECT id FROM cpeEntry WHERE cpe = ?"; +82 /** +83 * SQL Statement to insert a new vulnerability. +84 */ +85 private static final String INSERT_VULNERABILITY = "INSERT INTO vulnerability (cve, description, cwe, cvssScore, cvssAccessVector, " +86 + "cvssAccessComplexity, cvssAuthentication, cvssConfidentialityImpact, cvssIntegrityImpact, cvssAvailabilityImpact) " +87 + "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; +88 /** +89 * SQL Statement to update a vulnerability. +90 */ +91 private static final String UPDATE_VULNERABILITY = "UPDATE vulnerability SET description=?, cwe=?, cvssScore=?, cvssAccessVector=?, " +92 + "cvssAccessComplexity=?, cvssAuthentication=?, cvssConfidentialityImpact=?, cvssIntegrityImpact=?, cvssAvailabilityImpact=? " +93 + "WHERE id=?"; +94 /** +95 * SQL Statement to find CVE entries based on CPE data. +96 */ +97 private static final String SELECT_CVE_FROM_SOFTWARE = "SELECT cve, cpe, previousVersion " +98 + "FROM software INNER JOIN vulnerability ON vulnerability.id = software.cveId " +99 + "INNER JOIN cpeEntry ON cpeEntry.id = software.cpeEntryId " +100 + "WHERE vendor = ? AND product = ?"; +101 //unfortunately, the version info is too complicated to do in a select. Need to filter this afterwards +102 // + " AND (version = '-' OR previousVersion IS NOT NULL OR version=?)"; +103 // +104 /** +105 * SQL Statement to find the CPE entry based on the vendor and product. +106 */ +107 private static final String SELECT_CPE_ENTRIES = "SELECT cpe FROM cpeEntry WHERE vendor = ? AND product = ?"; +108 /** +109 * SQL Statement to select references by CVEID. +110 */ +111 private static final String SELECT_REFERENCE = "SELECT source, name, url FROM reference WHERE cveid = ?"; +112 /** +113 * SQL Statement to select vendor and product for lucene index. +114 */ +115 private static final String SELECT_VENDOR_PRODUCT_LIST = "SELECT vendor, product FROM cpeEntry GROUP BY vendor, product"; +116 /** +117 * SQL Statement to select software by CVEID. +118 */ +119 private static final String SELECT_SOFTWARE = "SELECT cpe, previousVersion " +120 + "FROM software INNER JOIN cpeEntry ON software.cpeEntryId = cpeEntry.id WHERE cveid = ?"; +121 // public static final String SELECT_SOFTWARE = "SELECT part, vendor, product, version, revision, previousVersion " +122 // + "FROM software INNER JOIN cpeProduct ON cpeProduct.id = software.cpeProductId LEFT JOIN cpeVersion ON " +123 // + "software.cpeVersionId = cpeVersion.id LEFT JOIN Version ON cpeVersion.versionId = version.id WHERE cveid = ?"; +124 /** +125 * SQL Statement to select a vulnerability by CVEID. +126 */ +127 private static final String SELECT_VULNERABILITY = "SELECT id, description, cwe, cvssScore, cvssAccessVector, cvssAccessComplexity, " +128 + "cvssAuthentication, cvssConfidentialityImpact, cvssIntegrityImpact, cvssAvailabilityImpact FROM vulnerability WHERE cve = ?"; +129 /** +130 * SQL Statement to select a vulnerability's primary key. +131 */ +132 private static final String SELECT_VULNERABILITY_ID = "SELECT id FROM vulnerability WHERE cve = ?"; +133 //</editor-fold> +134 +135 /** +136 * Searches the CPE entries in the database and retrieves all entries for a +137 * given vendor and product combination. The returned list will include all +138 * versions of the product that are registered in the NVD CVE data. +139 * +140 * @param vendor the identified vendor name of the dependency being analyzed +141 * @param product the identified name of the product of the dependency being +142 * analyzed +143 * @return a set of vulnerable software +144 */ +145 public Set<VulnerableSoftware> getCPEs(String vendor, String product) { +146 final Set<VulnerableSoftware> cpe = new HashSet<VulnerableSoftware>(); +147 ResultSet rs = null; +148 PreparedStatement ps = null; +149 try { +150 ps = getConnection().prepareStatement(SELECT_CPE_ENTRIES); +151 ps.setString(1, vendor); +152 ps.setString(2, product); +153 rs = ps.executeQuery(); +154 +155 while (rs.next()) { +156 final VulnerableSoftware vs = new VulnerableSoftware(); +157 vs.setCpe(rs.getString(1)); +158 cpe.add(vs); +159 } +160 } catch (SQLException ex) { +161 Logger.getLogger(CveDB.class.getName()).log(Level.SEVERE, null, ex); +162 } finally { +163 closeResultSet(rs); +164 closeStatement(ps); +165 } +166 return cpe; +167 } +168 +169 /** +170 * Returns the entire list of vendor/product combinations. +171 * +172 * @return the entire list of vendor/product combinations. +173 */ +174 public ResultSet getVendorProductList() { +175 ResultSet rs = null; +176 try { +177 final PreparedStatement ps = getConnection().prepareStatement(SELECT_VENDOR_PRODUCT_LIST); +178 rs = ps.executeQuery(); +179 } catch (SQLException ex) { +180 Logger.getLogger(CveDB.class.getName()).log(Level.SEVERE, null, ex); +181 } // can't close the statement in the PS as the resultset is returned, closing PS would close the resultset +182 return rs; +183 } +184 +185 /** +186 * Retrieves the vulnerabilities associated with the specified CPE. +187 * +188 * @param cpeStr the CPE name +189 * @return a list of Vulnerabilities +190 * @throws DatabaseException thrown if there is an exception retrieving data +191 */ +192 public List<Vulnerability> getVulnerabilities(String cpeStr) throws DatabaseException { +193 ResultSet rs = null; +194 final VulnerableSoftware cpe = new VulnerableSoftware(); +195 try { +196 cpe.parseName(cpeStr); +197 } catch (UnsupportedEncodingException ex) { +198 Logger.getLogger(CveDB.class.getName()).log(Level.FINEST, null, ex); +199 } +200 final DependencyVersion detectedVersion = parseDependencyVersion(cpe); +201 final List<Vulnerability> vulnerabilities = new ArrayList<Vulnerability>(); +202 +203 PreparedStatement ps; +204 final HashSet<String> cveEntries = new HashSet<String>(); +205 try { +206 ps = getConnection().prepareStatement(SELECT_CVE_FROM_SOFTWARE); +207 ps.setString(1, cpe.getVendor()); +208 ps.setString(2, cpe.getProduct()); +209 rs = ps.executeQuery(); +210 while (rs.next()) { +211 final String cveId = rs.getString(1); +212 final String cpeId = rs.getString(2); +213 final String previous = rs.getString(3); +214 if (!cveEntries.contains(cveId) && isAffected(cpe.getVendor(), cpe.getProduct(), detectedVersion, cpeId, previous)) { +215 cveEntries.add(cveId); +216 } +217 } +218 closeResultSet(rs); +219 closeStatement(ps); +220 for (String cve : cveEntries) { +221 final Vulnerability v = getVulnerability(cve); +222 vulnerabilities.add(v); +223 } +224 +225 } catch (SQLException ex) { +226 throw new DatabaseException("Exception retrieving vulnerability for " + cpeStr, ex); +227 } finally { +228 closeResultSet(rs); +229 } +230 return vulnerabilities; +231 } +232 +233 /** +234 * Gets a vulnerability for the provided CVE. +235 * +236 * @param cve the CVE to lookup +237 * @return a vulnerability object +238 * @throws DatabaseException if an exception occurs +239 */ +240 private Vulnerability getVulnerability(String cve) throws DatabaseException { +241 PreparedStatement psV = null; +242 PreparedStatement psR = null; +243 PreparedStatement psS = null; +244 ResultSet rsV = null; +245 ResultSet rsR = null; +246 ResultSet rsS = null; +247 Vulnerability vuln = null; +248 try { +249 psV = getConnection().prepareStatement(SELECT_VULNERABILITY); +250 psV.setString(1, cve); +251 rsV = psV.executeQuery(); +252 if (rsV.next()) { +253 vuln = new Vulnerability(); +254 vuln.setName(cve); +255 vuln.setDescription(rsV.getString(2)); +256 String cwe = rsV.getString(3); +257 if (cwe != null) { +258 final String name = CweDB.getCweName(cwe); +259 if (name != null) { +260 cwe += " " + name; +261 } +262 } +263 final int cveId = rsV.getInt(1); +264 vuln.setCwe(cwe); +265 vuln.setCvssScore(rsV.getFloat(4)); +266 vuln.setCvssAccessVector(rsV.getString(5)); +267 vuln.setCvssAccessComplexity(rsV.getString(6)); +268 vuln.setCvssAuthentication(rsV.getString(7)); +269 vuln.setCvssConfidentialityImpact(rsV.getString(8)); +270 vuln.setCvssIntegrityImpact(rsV.getString(9)); +271 vuln.setCvssAvailabilityImpact(rsV.getString(10)); +272 +273 psR = getConnection().prepareStatement(SELECT_REFERENCE); +274 psR.setInt(1, cveId); +275 rsR = psR.executeQuery(); +276 while (rsR.next()) { +277 vuln.addReference(rsR.getString(1), rsR.getString(2), rsR.getString(3)); +278 } +279 psS = getConnection().prepareStatement(SELECT_SOFTWARE); +280 psS.setInt(1, cveId); +281 rsS = psS.executeQuery(); +282 while (rsS.next()) { +283 final String cpe = rsS.getString(1); +284 final String prevVersion = rsS.getString(2); +285 if (prevVersion == null) { +286 vuln.addVulnerableSoftware(cpe); +287 } else { +288 vuln.addVulnerableSoftware(cpe, prevVersion); +289 } +290 } +291 } +292 } catch (SQLException ex) { +293 throw new DatabaseException("Error retrieving " + cve, ex); +294 } finally { +295 closeResultSet(rsV); +296 closeResultSet(rsR); +297 closeResultSet(rsS); +298 closeStatement(psV); +299 closeStatement(psR); +300 closeStatement(psS); +301 } +302 return vuln; +303 } +304 +305 /** +306 * Updates the vulnerability within the database. If the vulnerability does +307 * not exist it will be added. +308 * +309 * @param vuln the vulnerability to add to the database +310 * @throws DatabaseException is thrown if the database +311 */ +312 public void updateVulnerability(Vulnerability vuln) throws DatabaseException { +313 PreparedStatement selectVulnerabilityId = null; +314 PreparedStatement deleteVulnerability = null; +315 PreparedStatement deleteReferences = null; +316 PreparedStatement deleteSoftware = null; +317 PreparedStatement updateVulnerability = null; +318 PreparedStatement insertVulnerability = null; +319 PreparedStatement insertReference = null; +320 PreparedStatement selectCpeId = null; +321 PreparedStatement insertCpe = null; +322 PreparedStatement insertSoftware = null; +323 +324 try { +325 selectVulnerabilityId = getConnection().prepareStatement(SELECT_VULNERABILITY_ID); +326 deleteVulnerability = getConnection().prepareStatement(DELETE_VULNERABILITY); +327 deleteReferences = getConnection().prepareStatement(DELETE_REFERENCE); +328 deleteSoftware = getConnection().prepareStatement(DELETE_SOFTWARE); +329 updateVulnerability = getConnection().prepareStatement(UPDATE_VULNERABILITY); +330 insertVulnerability = getConnection().prepareStatement(INSERT_VULNERABILITY, Statement.RETURN_GENERATED_KEYS); +331 insertReference = getConnection().prepareStatement(INSERT_REFERENCE); +332 selectCpeId = getConnection().prepareStatement(SELECT_CPE_ID); +333 insertCpe = getConnection().prepareStatement(INSERT_CPE, Statement.RETURN_GENERATED_KEYS); +334 insertSoftware = getConnection().prepareStatement(INSERT_SOFTWARE); +335 int vulnerabilityId = 0; +336 selectVulnerabilityId.setString(1, vuln.getName()); +337 ResultSet rs = selectVulnerabilityId.executeQuery(); +338 if (rs.next()) { +339 vulnerabilityId = rs.getInt(1); +340 // first delete any existing vulnerability info. We don't know what was updated. yes, slower but atm easier. +341 deleteReferences.setInt(1, vulnerabilityId); +342 deleteReferences.execute(); +343 deleteSoftware.setInt(1, vulnerabilityId); +344 deleteSoftware.execute(); +345 } +346 closeResultSet(rs); +347 rs = null; +348 if (vulnerabilityId != 0) { +349 if (vuln.getDescription().contains("** REJECT **")) { +350 deleteVulnerability.setInt(1, vulnerabilityId); +351 deleteVulnerability.executeUpdate(); +352 } else { +353 updateVulnerability.setString(1, vuln.getDescription()); +354 updateVulnerability.setString(2, vuln.getCwe()); +355 updateVulnerability.setFloat(3, vuln.getCvssScore()); +356 updateVulnerability.setString(4, vuln.getCvssAccessVector()); +357 updateVulnerability.setString(5, vuln.getCvssAccessComplexity()); +358 updateVulnerability.setString(6, vuln.getCvssAuthentication()); +359 updateVulnerability.setString(7, vuln.getCvssConfidentialityImpact()); +360 updateVulnerability.setString(8, vuln.getCvssIntegrityImpact()); +361 updateVulnerability.setString(9, vuln.getCvssAvailabilityImpact()); +362 updateVulnerability.setInt(10, vulnerabilityId); +363 updateVulnerability.executeUpdate(); +364 } +365 } else { +366 insertVulnerability.setString(1, vuln.getName()); +367 insertVulnerability.setString(2, vuln.getDescription()); +368 insertVulnerability.setString(3, vuln.getCwe()); +369 insertVulnerability.setFloat(4, vuln.getCvssScore()); +370 insertVulnerability.setString(5, vuln.getCvssAccessVector()); +371 insertVulnerability.setString(6, vuln.getCvssAccessComplexity()); +372 insertVulnerability.setString(7, vuln.getCvssAuthentication()); +373 insertVulnerability.setString(8, vuln.getCvssConfidentialityImpact()); +374 insertVulnerability.setString(9, vuln.getCvssIntegrityImpact()); +375 insertVulnerability.setString(10, vuln.getCvssAvailabilityImpact()); +376 insertVulnerability.execute(); +377 try { +378 rs = insertVulnerability.getGeneratedKeys(); +379 rs.next(); +380 vulnerabilityId = rs.getInt(1); +381 } catch (SQLException ex) { +382 final String msg = String.format("Unable to retrieve id for new vulnerability for '%s'", vuln.getName()); +383 throw new DatabaseException(msg, ex); +384 } finally { +385 closeResultSet(rs); +386 rs = null; +387 } +388 } +389 insertReference.setInt(1, vulnerabilityId); +390 for (Reference r : vuln.getReferences()) { +391 insertReference.setString(2, r.getName()); +392 insertReference.setString(3, r.getUrl()); +393 insertReference.setString(4, r.getSource()); +394 insertReference.execute(); +395 } +396 for (VulnerableSoftware s : vuln.getVulnerableSoftware()) { +397 int cpeProductId = 0; +398 selectCpeId.setString(1, s.getName()); +399 try { +400 rs = selectCpeId.executeQuery(); +401 if (rs.next()) { +402 cpeProductId = rs.getInt(1); +403 } +404 } catch (SQLException ex) { +405 throw new DatabaseException("Unable to get primary key for new cpe: " + s.getName(), ex); +406 } finally { +407 closeResultSet(rs); +408 rs = null; +409 } +410 +411 if (cpeProductId == 0) { +412 insertCpe.setString(1, s.getName()); +413 insertCpe.setString(2, s.getVendor()); +414 insertCpe.setString(3, s.getProduct()); +415 insertCpe.executeUpdate(); +416 cpeProductId = getGeneratedKey(insertCpe); +417 } +418 if (cpeProductId == 0) { +419 throw new DatabaseException("Unable to retrieve cpeProductId - no data returned"); +420 } +421 +422 insertSoftware.setInt(1, vulnerabilityId); +423 insertSoftware.setInt(2, cpeProductId); +424 if (s.getPreviousVersion() == null) { +425 insertSoftware.setNull(3, java.sql.Types.VARCHAR); +426 } else { +427 insertSoftware.setString(3, s.getPreviousVersion()); +428 } +429 insertSoftware.execute(); +430 } +431 +432 } catch (SQLException ex) { +433 final String msg = String.format("Error updating '%s'", vuln.getName()); +434 Logger.getLogger(CveDB.class.getName()).log(Level.FINE, null, ex); +435 throw new DatabaseException(msg, ex); +436 } finally { +437 closeStatement(selectVulnerabilityId); +438 closeStatement(deleteReferences); +439 closeStatement(deleteSoftware); +440 closeStatement(updateVulnerability); +441 closeStatement(deleteVulnerability); +442 closeStatement(insertVulnerability); +443 closeStatement(insertReference); +444 closeStatement(selectCpeId); +445 closeStatement(insertCpe); +446 closeStatement(insertSoftware); +447 } +448 } +449 +450 /** +451 * It is possible that orphaned rows may be generated during database +452 * updates. This should be called after all updates have been completed to +453 * ensure orphan entries are removed. +454 */ +455 public void cleanupDatabase() { +456 PreparedStatement ps = null; +457 try { +458 ps = getConnection().prepareStatement(CLEANUP_ORPHANS); +459 if (ps != null) { +460 ps.executeUpdate(); +461 } +462 } catch (SQLException ex) { +463 Logger.getLogger(CveDB.class.getName()).log(Level.SEVERE, null, ex); +464 } finally { +465 closeStatement(ps); +466 } +467 } 468 -469 if (cpeProductId == 0) { -470 insertCpe.setString(1, s.getName()); -471 insertCpe.setString(2, s.getVendor()); -472 insertCpe.setString(3, s.getProduct()); -473 insertCpe.executeUpdate(); -474 cpeProductId = getGeneratedKey(insertCpe); -475 } -476 if (cpeProductId == 0) { -477 throw new DatabaseException("Unable to retrieve cpeProductId - no data returned"); -478 } -479 -480 insertSoftware.setInt(1, vulnerabilityId); -481 insertSoftware.setInt(2, cpeProductId); -482 if (s.getPreviousVersion() == null) { -483 insertSoftware.setNull(3, java.sql.Types.VARCHAR); -484 } else { -485 insertSoftware.setString(3, s.getPreviousVersion()); -486 } -487 insertSoftware.execute(); -488 } -489 -490 } catch (SQLException ex) { -491 final String msg = String.format("Error updating '%s'", vuln.getName()); -492 Logger.getLogger(CveDB.class.getName()).log(Level.FINE, null, ex); -493 throw new DatabaseException(msg, ex); -494 } finally { -495 closeStatement(selectVulnerabilityId); -496 closeStatement(deleteReferences); -497 closeStatement(deleteSoftware); -498 closeStatement(updateVulnerability); -499 closeStatement(insertVulnerability); -500 closeStatement(insertReference); -501 closeStatement(selectCpeId); -502 closeStatement(insertCpe); -503 closeStatement(insertSoftware); -504 } -505 } -506 -507 /** -508 * Retrieves the directory that the JAR file exists in so that we can ensure -509 * we always use a common data directory. -510 * -511 * @return the data directory for this index. -512 * @throws IOException is thrown if an IOException occurs of course... -513 */ -514 public static File getDataDirectory() throws IOException { -515 final File path = Settings.getFile(Settings.KEYS.CVE_DATA_DIRECTORY); -516 if (!path.exists()) { -517 if (!path.mkdirs()) { -518 throw new IOException("Unable to create NVD CVE Data directory"); -519 } -520 } -521 return path; -522 } -523 -524 /** -525 * It is possible that orphaned rows may be generated during database -526 * updates. This should be called after all updates have been completed to -527 * ensure orphan entries are removed. -528 */ -529 public void cleanupDatabase() { -530 PreparedStatement ps = null; -531 try { -532 ps = conn.prepareStatement(CLEANUP_ORPHANS); -533 if (ps != null) { -534 ps.executeUpdate(); -535 } -536 } catch (SQLException ex) { -537 Logger.getLogger(CveDB.class.getName()).log(Level.SEVERE, null, ex); -538 } finally { -539 closeStatement(ps); -540 } -541 } -542 -543 /** -544 * Creates the database structure (tables and indexes) to store the CVE data -545 * -546 * @throws SQLException thrown if there is a sql exception -547 * @throws DatabaseException thrown if there is a database exception -548 */ -549 protected void createTables() throws SQLException, DatabaseException { -550 InputStream is; -551 InputStreamReader reader; -552 BufferedReader in = null; -553 try { -554 is = this.getClass().getClassLoader().getResourceAsStream(DB_STRUCTURE_RESOURCE); -555 reader = new InputStreamReader(is, "UTF-8"); -556 in = new BufferedReader(reader); -557 final StringBuilder sb = new StringBuilder(2110); -558 String tmp; -559 while ((tmp = in.readLine()) != null) { -560 sb.append(tmp); -561 } -562 Statement statement = null; -563 try { -564 statement = conn.createStatement(); -565 statement.execute(sb.toString()); -566 } finally { -567 closeStatement(statement); -568 } -569 } catch (IOException ex) { -570 throw new DatabaseException("Unable to create database schema", ex); -571 } finally { -572 if (in != null) { -573 try { -574 in.close(); -575 } catch (IOException ex) { -576 Logger.getLogger(CveDB.class -577 .getName()).log(Level.FINEST, null, ex); -578 } -579 } -580 } -581 } -582 -583 /** -584 * Closes the given statement object ignoring any exceptions that occur. -585 * -586 * @param statement a Statement object -587 */ -588 private void closeStatement(Statement statement) { -589 if (statement != null) { -590 try { -591 statement.close(); -592 } catch (SQLException ex) { -593 Logger.getLogger(CveDB.class -594 .getName()).log(Level.FINEST, statement.toString(), ex); -595 } -596 } -597 } -598 -599 /** -600 * Closes the result set capturing and ignoring any SQLExceptions that -601 * occur. -602 * -603 * @param rs a ResultSet to close -604 */ -605 private void closeResultSet(ResultSet rs) { -606 if (rs != null) { -607 try { -608 rs.close(); -609 } catch (SQLException ex) { -610 Logger.getLogger(CveDB.class -611 .getName()).log(Level.FINEST, rs.toString(), ex); -612 } -613 } -614 } -615 -616 /** -617 * Returns the generated integer primary key for a newly inserted row. -618 * -619 * @param statement a prepared statement that just executed an insert -620 * @return a primary key -621 * @throws DatabaseException thrown if there is an exception obtaining the -622 * key -623 */ -624 private int getGeneratedKey(PreparedStatement statement) throws DatabaseException { -625 ResultSet rs = null; -626 int id = 0; -627 try { -628 rs = statement.getGeneratedKeys(); -629 rs.next(); -630 id = rs.getInt(1); -631 } catch (SQLException ex) { -632 throw new DatabaseException("Unable to get primary key for inserted row"); -633 } finally { -634 closeResultSet(rs); -635 } -636 return id; -637 } -638 -639 /** -640 * Determines if the given identifiedVersion is affected by the given cpeId -641 * and previous version flag. A non-null, non-empty string passed to the -642 * previous version argument indicates that all previous versions are -643 * affected. -644 * -645 * @param vendor the vendor of the dependency being analyzed -646 * @param product the product name of the dependency being analyzed -647 * @param identifiedVersion the identified version of the dependency being -648 * analyzed -649 * @param cpeId the cpe identifier of software that has a known -650 * vulnerability -651 * @param previous a flag indicating if previous versions of the product are -652 * vulnerable -653 * @return true if the identified version is affected, otherwise false -654 */ -655 private boolean isAffected(String vendor, String product, DependencyVersion identifiedVersion, String cpeId, String previous) { -656 boolean affected = false; -657 final boolean isStruts = "apache".equals(vendor) && "struts".equals(product); -658 final DependencyVersion v = parseDependencyVersion(cpeId); -659 final boolean prevAffected = previous == null ? false : !previous.isEmpty(); -660 if (identifiedVersion == null || "-".equals(identifiedVersion.toString())) { -661 if (v == null || "-".equals(v.toString())) { -662 affected = true; -663 } -664 } else if (identifiedVersion.equals(v) || (prevAffected && identifiedVersion.compareTo(v) < 0)) { -665 if (isStruts) { //struts 2 vulns don't affect struts 1 -666 if (identifiedVersion.getVersionParts().get(0).equals(v.getVersionParts().get(0))) { -667 affected = true; -668 } -669 } else { -670 affected = true; -671 } -672 } -673 /* -674 * TODO consider utilizing the matchThreeVersion method to get additional results. However, this -675 * might also introduce false positives. -676 */ -677 return affected; -678 } -679 -680 /** -681 * Parses the version (including revision) from a CPE identifier. If no -682 * version is identified then a '-' is returned. -683 * -684 * @param cpeStr a cpe identifier -685 * @return a dependency version -686 */ -687 private DependencyVersion parseDependencyVersion(String cpeStr) { -688 final VulnerableSoftware cpe = new VulnerableSoftware(); -689 try { -690 cpe.parseName(cpeStr); -691 } catch (UnsupportedEncodingException ex) { -692 //never going to happen. -693 Logger.getLogger(CveDB.class.getName()).log(Level.FINEST, null, ex); -694 } -695 return parseDependencyVersion(cpe); -696 } -697 -698 /** -699 * Takes a CPE and parses out the version number. If no version is -700 * identified then a '-' is returned. -701 * -702 * @param cpe a cpe object -703 * @return a dependency version -704 */ -705 private DependencyVersion parseDependencyVersion(VulnerableSoftware cpe) { -706 DependencyVersion cpeVersion; -707 if (cpe.getVersion() != null && cpe.getVersion().length() > 0) { -708 String versionText; -709 if (cpe.getRevision() != null && cpe.getRevision().length() > 0) { -710 versionText = String.format("%s.%s", cpe.getVersion(), cpe.getRevision()); -711 } else { -712 versionText = cpe.getVersion(); -713 } -714 cpeVersion = DependencyVersionUtil.parseVersion(versionText); -715 } else { -716 cpeVersion = new DependencyVersion("-"); -717 } -718 return cpeVersion; -719 } -720 } +469 /** +470 * Determines if the given identifiedVersion is affected by the given cpeId +471 * and previous version flag. A non-null, non-empty string passed to the +472 * previous version argument indicates that all previous versions are +473 * affected. +474 * +475 * @param vendor the vendor of the dependency being analyzed +476 * @param product the product name of the dependency being analyzed +477 * @param identifiedVersion the identified version of the dependency being +478 * analyzed +479 * @param cpeId the cpe identifier of software that has a known +480 * vulnerability +481 * @param previous a flag indicating if previous versions of the product are +482 * vulnerable +483 * @return true if the identified version is affected, otherwise false +484 */ +485 private boolean isAffected(String vendor, String product, DependencyVersion identifiedVersion, String cpeId, String previous) { +486 boolean affected = false; +487 final boolean isStruts = "apache".equals(vendor) && "struts".equals(product); +488 final DependencyVersion v = parseDependencyVersion(cpeId); +489 final boolean prevAffected = previous == null ? false : !previous.isEmpty(); +490 if (identifiedVersion == null || "-".equals(identifiedVersion.toString())) { +491 if (v == null || "-".equals(v.toString())) { +492 affected = true; +493 } +494 } else if (identifiedVersion.equals(v) || (prevAffected && identifiedVersion.compareTo(v) < 0)) { +495 if (isStruts) { //struts 2 vulns don't affect struts 1 +496 if (identifiedVersion.getVersionParts().get(0).equals(v.getVersionParts().get(0))) { +497 affected = true; +498 } +499 } else { +500 affected = true; +501 } +502 } +503 /* +504 * TODO consider utilizing the matchThreeVersion method to get additional results. However, this +505 * might also introduce false positives. +506 */ +507 return affected; +508 } +509 +510 /** +511 * Parses the version (including revision) from a CPE identifier. If no +512 * version is identified then a '-' is returned. +513 * +514 * @param cpeStr a cpe identifier +515 * @return a dependency version +516 */ +517 private DependencyVersion parseDependencyVersion(String cpeStr) { +518 final VulnerableSoftware cpe = new VulnerableSoftware(); +519 try { +520 cpe.parseName(cpeStr); +521 } catch (UnsupportedEncodingException ex) { +522 //never going to happen. +523 Logger.getLogger(CveDB.class.getName()).log(Level.FINEST, null, ex); +524 } +525 return parseDependencyVersion(cpe); +526 } +527 +528 /** +529 * Takes a CPE and parses out the version number. If no version is +530 * identified then a '-' is returned. +531 * +532 * @param cpe a cpe object +533 * @return a dependency version +534 */ +535 private DependencyVersion parseDependencyVersion(VulnerableSoftware cpe) { +536 DependencyVersion cpeVersion; +537 if (cpe.getVersion() != null && cpe.getVersion().length() > 0) { +538 String versionText; +539 if (cpe.getRevision() != null && cpe.getRevision().length() > 0) { +540 versionText = String.format("%s.%s", cpe.getVersion(), cpe.getRevision()); +541 } else { +542 versionText = cpe.getVersion(); +543 } +544 cpeVersion = DependencyVersionUtil.parseVersion(versionText); +545 } else { +546 cpeVersion = new DependencyVersion("-"); +547 } +548 return cpeVersion; +549 } +550 }
    diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/DatabaseException.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/DatabaseException.html index 01df7fe62..d0e7448bb 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/DatabaseException.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/DatabaseException.html @@ -52,13 +52,22 @@ 42 /** 43 * Creates an DatabaseException. 44 * -45 * @param msg the exception message -46 * @param ex the cause of the exception -47 */ -48 public DatabaseException(String msg, Exception ex) { -49 super(msg, ex); -50 } -51 } +45 * @param ex the cause of the exception +46 */ +47 public DatabaseException(Throwable ex) { +48 super(ex); +49 } +50 +51 /** +52 * Creates an DatabaseException. +53 * +54 * @param msg the exception message +55 * @param ex the cause of the exception +56 */ +57 public DatabaseException(String msg, Throwable ex) { +58 super(msg, ex); +59 } +60 }
    diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/NvdCve20Handler.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/NvdCve20Handler.html index f28fd286f..32d04081a 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/NvdCve20Handler.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/NvdCve20Handler.html @@ -34,490 +34,474 @@ 24 import java.util.logging.Level; 25 import java.util.logging.Logger; 26 import org.apache.lucene.index.CorruptIndexException; -27 import org.owasp.dependencycheck.data.cpe.CpeIndexWriter; -28 import org.owasp.dependencycheck.dependency.Reference; -29 import org.owasp.dependencycheck.dependency.Vulnerability; -30 import org.owasp.dependencycheck.dependency.VulnerableSoftware; -31 import org.xml.sax.Attributes; -32 import org.xml.sax.SAXException; -33 import org.xml.sax.SAXNotSupportedException; -34 import org.xml.sax.helpers.DefaultHandler; -35 -36 /** -37 * A SAX Handler that will parse the NVD CVE XML (schema version 2.0). -38 * -39 * @author Jeremy Long (jeremy.long@owasp.org) -40 */ -41 public class NvdCve20Handler extends DefaultHandler { -42 -43 /** -44 * the current supported schema version. -45 */ -46 private static final String CURRENT_SCHEMA_VERSION = "2.0"; -47 /** -48 * the current element. -49 */ -50 private final Element current = new Element(); -51 /** -52 * the text of the node. -53 */ -54 private StringBuilder nodeText; -55 /** -56 * the vulnerability. -57 */ -58 private Vulnerability vulnerability; -59 /** -60 * a reference for the cve. -61 */ -62 private Reference reference; -63 /** -64 * flag indicating whether the application has a cpe. -65 */ -66 private boolean hasApplicationCpe = false; -67 /** -68 * The total number of entries parsed. -69 */ -70 private int totalNumberOfEntries; -71 -72 /** -73 * Get the value of totalNumberOfEntries. -74 * -75 * @return the value of totalNumberOfEntries -76 */ -77 public int getTotalNumberOfEntries() { -78 return totalNumberOfEntries; -79 } -80 /** -81 * The total number of application entries parsed. -82 */ -83 private int totalNumberOfApplicationEntries; -84 -85 /** -86 * Get the value of totalNumberOfApplicationEntries. -87 * -88 * @return the value of totalNumberOfApplicationEntries -89 */ -90 public int getTotalNumberOfApplicationEntries() { -91 return totalNumberOfApplicationEntries; -92 } -93 -94 @Override -95 public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { -96 current.setNode(qName); -97 if (current.isEntryNode()) { -98 hasApplicationCpe = false; -99 vulnerability = new Vulnerability(); -100 vulnerability.setName(attributes.getValue("id")); -101 } else if (current.isVulnProductNode()) { -102 nodeText = new StringBuilder(100); -103 } else if (current.isVulnReferencesNode()) { -104 final String lang = attributes.getValue("xml:lang"); -105 if ("en".equals(lang)) { -106 reference = new Reference(); -107 } else { -108 reference = null; -109 } -110 } else if (reference != null && current.isVulnReferenceNode()) { -111 reference.setUrl(attributes.getValue("href")); -112 nodeText = new StringBuilder(130); -113 } else if (reference != null && current.isVulnSourceNode()) { -114 nodeText = new StringBuilder(30); -115 } else if (current.isVulnSummaryNode()) { -116 nodeText = new StringBuilder(500); -117 } else if (current.isNVDNode()) { -118 final String nvdVer = attributes.getValue("nvd_xml_version"); -119 if (!CURRENT_SCHEMA_VERSION.equals(nvdVer)) { -120 throw new SAXNotSupportedException("Schema version " + nvdVer + " is not supported"); -121 } -122 } else if (current.isVulnCWENode()) { -123 vulnerability.setCwe(attributes.getValue("id")); -124 } else if (current.isCVSSScoreNode()) { -125 nodeText = new StringBuilder(5); -126 } else if (current.isCVSSAccessVectorNode()) { -127 nodeText = new StringBuilder(20); -128 } else if (current.isCVSSAccessComplexityNode()) { -129 nodeText = new StringBuilder(20); -130 } else if (current.isCVSSAuthenticationNode()) { -131 nodeText = new StringBuilder(20); -132 } else if (current.isCVSSAvailabilityImpactNode()) { -133 nodeText = new StringBuilder(20); -134 } else if (current.isCVSSConfidentialityImpactNode()) { -135 nodeText = new StringBuilder(20); -136 } else if (current.isCVSSIntegrityImpactNode()) { -137 nodeText = new StringBuilder(20); -138 } -139 } -140 -141 @Override -142 public void characters(char[] ch, int start, int length) throws SAXException { -143 if (nodeText != null) { -144 nodeText.append(ch, start, length); -145 } -146 } -147 -148 @Override -149 public void endElement(String uri, String localName, String qName) throws SAXException { -150 current.setNode(qName); -151 if (current.isEntryNode()) { -152 totalNumberOfEntries += 1; -153 if (hasApplicationCpe) { -154 totalNumberOfApplicationEntries += 1; -155 try { -156 saveEntry(vulnerability); -157 } catch (DatabaseException ex) { -158 throw new SAXException(ex); -159 } catch (CorruptIndexException ex) { -160 throw new SAXException(ex); -161 } catch (IOException ex) { -162 throw new SAXException(ex); -163 } -164 } -165 vulnerability = null; -166 } else if (current.isCVSSScoreNode()) { -167 try { -168 final float score = Float.parseFloat(nodeText.toString()); -169 vulnerability.setCvssScore(score); -170 } catch (NumberFormatException ex) { -171 Logger.getLogger(NvdCve20Handler.class.getName()).log(Level.SEVERE, "Error parsing CVSS Score."); -172 Logger.getLogger(NvdCve20Handler.class.getName()).log(Level.FINE, null, ex); -173 } -174 nodeText = null; -175 } else if (current.isCVSSAccessVectorNode()) { -176 vulnerability.setCvssAccessVector(nodeText.toString()); -177 nodeText = null; -178 } else if (current.isCVSSAccessComplexityNode()) { -179 vulnerability.setCvssAccessComplexity(nodeText.toString()); -180 nodeText = null; -181 } else if (current.isCVSSAuthenticationNode()) { -182 vulnerability.setCvssAuthentication(nodeText.toString()); -183 nodeText = null; -184 } else if (current.isCVSSAvailabilityImpactNode()) { -185 vulnerability.setCvssAvailabilityImpact(nodeText.toString()); -186 nodeText = null; -187 } else if (current.isCVSSConfidentialityImpactNode()) { -188 vulnerability.setCvssConfidentialityImpact(nodeText.toString()); -189 nodeText = null; -190 } else if (current.isCVSSIntegrityImpactNode()) { -191 vulnerability.setCvssIntegrityImpact(nodeText.toString()); -192 nodeText = null; -193 } else if (current.isVulnProductNode()) { -194 final String cpe = nodeText.toString(); -195 if (cpe.startsWith("cpe:/a:")) { -196 hasApplicationCpe = true; -197 vulnerability.addVulnerableSoftware(cpe); -198 } -199 nodeText = null; -200 } else if (reference != null && current.isVulnReferencesNode()) { -201 vulnerability.addReference(reference); -202 reference = null; -203 } else if (reference != null && current.isVulnReferenceNode()) { -204 reference.setName(nodeText.toString()); -205 nodeText = null; -206 } else if (reference != null && current.isVulnSourceNode()) { -207 reference.setSource(nodeText.toString()); -208 nodeText = null; -209 } else if (current.isVulnSummaryNode()) { -210 vulnerability.setDescription(nodeText.toString()); -211 nodeText = null; -212 } -213 } -214 /** -215 * the cve database. -216 */ -217 private CveDB cveDB; -218 -219 /** -220 * Sets the cveDB. -221 * -222 * @param db a reference to the CveDB -223 */ -224 public void setCveDB(CveDB db) { -225 cveDB = db; -226 } -227 /** -228 * A list of CVE entries and associated VulnerableSoftware entries that -229 * contain previous entries. -230 */ -231 private Map<String, List<VulnerableSoftware>> prevVersionVulnMap; -232 -233 /** -234 * Sets the prevVersionVulnMap. -235 * -236 * @param map the map of vulnerable software with previous versions being -237 * vulnerable -238 */ -239 public void setPrevVersionVulnMap(Map<String, List<VulnerableSoftware>> map) { -240 prevVersionVulnMap = map; -241 } -242 -243 /** -244 * Saves a vulnerability to the CVE Database. -245 * -246 * @param vuln the vulnerability to store in the database -247 * @throws DatabaseException thrown if there is an error writing to the -248 * database -249 * @throws CorruptIndexException is thrown if the CPE Index is corrupt -250 * @throws IOException thrown if there is an IOException with the CPE Index -251 */ -252 private void saveEntry(Vulnerability vuln) throws DatabaseException, CorruptIndexException, IOException { -253 if (cveDB == null) { -254 return; -255 } -256 final String cveName = vuln.getName(); -257 if (prevVersionVulnMap.containsKey(cveName)) { -258 final List<VulnerableSoftware> vulnSoftware = prevVersionVulnMap.get(cveName); -259 for (VulnerableSoftware vs : vulnSoftware) { -260 vuln.updateVulnerableSoftware(vs); -261 } -262 } -263 for (VulnerableSoftware vs : vuln.getVulnerableSoftware()) { -264 if (cpeIndex != null) { -265 cpeIndex.saveEntry(vs); -266 } -267 } -268 cveDB.updateVulnerability(vuln); -269 } -270 /** -271 * the cpe index. +27 import org.owasp.dependencycheck.dependency.Reference; +28 import org.owasp.dependencycheck.dependency.Vulnerability; +29 import org.owasp.dependencycheck.dependency.VulnerableSoftware; +30 import org.xml.sax.Attributes; +31 import org.xml.sax.SAXException; +32 import org.xml.sax.SAXNotSupportedException; +33 import org.xml.sax.helpers.DefaultHandler; +34 +35 /** +36 * A SAX Handler that will parse the NVD CVE XML (schema version 2.0). +37 * +38 * @author Jeremy Long (jeremy.long@owasp.org) +39 */ +40 public class NvdCve20Handler extends DefaultHandler { +41 +42 /** +43 * the current supported schema version. +44 */ +45 private static final String CURRENT_SCHEMA_VERSION = "2.0"; +46 /** +47 * the current element. +48 */ +49 private final Element current = new Element(); +50 /** +51 * the text of the node. +52 */ +53 private StringBuilder nodeText; +54 /** +55 * the vulnerability. +56 */ +57 private Vulnerability vulnerability; +58 /** +59 * a reference for the cve. +60 */ +61 private Reference reference; +62 /** +63 * flag indicating whether the application has a cpe. +64 */ +65 private boolean hasApplicationCpe = false; +66 /** +67 * The total number of entries parsed. +68 */ +69 private int totalNumberOfEntries; +70 +71 /** +72 * Get the value of totalNumberOfEntries. +73 * +74 * @return the value of totalNumberOfEntries +75 */ +76 public int getTotalNumberOfEntries() { +77 return totalNumberOfEntries; +78 } +79 /** +80 * The total number of application entries parsed. +81 */ +82 private int totalNumberOfApplicationEntries; +83 +84 /** +85 * Get the value of totalNumberOfApplicationEntries. +86 * +87 * @return the value of totalNumberOfApplicationEntries +88 */ +89 public int getTotalNumberOfApplicationEntries() { +90 return totalNumberOfApplicationEntries; +91 } +92 +93 @Override +94 public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { +95 current.setNode(qName); +96 if (current.isEntryNode()) { +97 hasApplicationCpe = false; +98 vulnerability = new Vulnerability(); +99 vulnerability.setName(attributes.getValue("id")); +100 } else if (current.isVulnProductNode()) { +101 nodeText = new StringBuilder(100); +102 } else if (current.isVulnReferencesNode()) { +103 final String lang = attributes.getValue("xml:lang"); +104 if ("en".equals(lang)) { +105 reference = new Reference(); +106 } else { +107 reference = null; +108 } +109 } else if (reference != null && current.isVulnReferenceNode()) { +110 reference.setUrl(attributes.getValue("href")); +111 nodeText = new StringBuilder(130); +112 } else if (reference != null && current.isVulnSourceNode()) { +113 nodeText = new StringBuilder(30); +114 } else if (current.isVulnSummaryNode()) { +115 nodeText = new StringBuilder(500); +116 } else if (current.isNVDNode()) { +117 final String nvdVer = attributes.getValue("nvd_xml_version"); +118 if (!CURRENT_SCHEMA_VERSION.equals(nvdVer)) { +119 throw new SAXNotSupportedException("Schema version " + nvdVer + " is not supported"); +120 } +121 } else if (current.isVulnCWENode()) { +122 vulnerability.setCwe(attributes.getValue("id")); +123 } else if (current.isCVSSScoreNode()) { +124 nodeText = new StringBuilder(5); +125 } else if (current.isCVSSAccessVectorNode()) { +126 nodeText = new StringBuilder(20); +127 } else if (current.isCVSSAccessComplexityNode()) { +128 nodeText = new StringBuilder(20); +129 } else if (current.isCVSSAuthenticationNode()) { +130 nodeText = new StringBuilder(20); +131 } else if (current.isCVSSAvailabilityImpactNode()) { +132 nodeText = new StringBuilder(20); +133 } else if (current.isCVSSConfidentialityImpactNode()) { +134 nodeText = new StringBuilder(20); +135 } else if (current.isCVSSIntegrityImpactNode()) { +136 nodeText = new StringBuilder(20); +137 } +138 } +139 +140 @Override +141 public void characters(char[] ch, int start, int length) throws SAXException { +142 if (nodeText != null) { +143 nodeText.append(ch, start, length); +144 } +145 } +146 +147 @Override +148 public void endElement(String uri, String localName, String qName) throws SAXException { +149 current.setNode(qName); +150 if (current.isEntryNode()) { +151 totalNumberOfEntries += 1; +152 if (hasApplicationCpe) { +153 totalNumberOfApplicationEntries += 1; +154 try { +155 saveEntry(vulnerability); +156 } catch (DatabaseException ex) { +157 throw new SAXException(ex); +158 } catch (CorruptIndexException ex) { +159 throw new SAXException(ex); +160 } catch (IOException ex) { +161 throw new SAXException(ex); +162 } +163 } +164 vulnerability = null; +165 } else if (current.isCVSSScoreNode()) { +166 try { +167 final float score = Float.parseFloat(nodeText.toString()); +168 vulnerability.setCvssScore(score); +169 } catch (NumberFormatException ex) { +170 Logger.getLogger(NvdCve20Handler.class.getName()).log(Level.SEVERE, "Error parsing CVSS Score."); +171 Logger.getLogger(NvdCve20Handler.class.getName()).log(Level.FINE, null, ex); +172 } +173 nodeText = null; +174 } else if (current.isCVSSAccessVectorNode()) { +175 vulnerability.setCvssAccessVector(nodeText.toString()); +176 nodeText = null; +177 } else if (current.isCVSSAccessComplexityNode()) { +178 vulnerability.setCvssAccessComplexity(nodeText.toString()); +179 nodeText = null; +180 } else if (current.isCVSSAuthenticationNode()) { +181 vulnerability.setCvssAuthentication(nodeText.toString()); +182 nodeText = null; +183 } else if (current.isCVSSAvailabilityImpactNode()) { +184 vulnerability.setCvssAvailabilityImpact(nodeText.toString()); +185 nodeText = null; +186 } else if (current.isCVSSConfidentialityImpactNode()) { +187 vulnerability.setCvssConfidentialityImpact(nodeText.toString()); +188 nodeText = null; +189 } else if (current.isCVSSIntegrityImpactNode()) { +190 vulnerability.setCvssIntegrityImpact(nodeText.toString()); +191 nodeText = null; +192 } else if (current.isVulnProductNode()) { +193 final String cpe = nodeText.toString(); +194 if (cpe.startsWith("cpe:/a:")) { +195 hasApplicationCpe = true; +196 vulnerability.addVulnerableSoftware(cpe); +197 } +198 nodeText = null; +199 } else if (reference != null && current.isVulnReferencesNode()) { +200 vulnerability.addReference(reference); +201 reference = null; +202 } else if (reference != null && current.isVulnReferenceNode()) { +203 reference.setName(nodeText.toString()); +204 nodeText = null; +205 } else if (reference != null && current.isVulnSourceNode()) { +206 reference.setSource(nodeText.toString()); +207 nodeText = null; +208 } else if (current.isVulnSummaryNode()) { +209 vulnerability.setDescription(nodeText.toString()); +210 if (nodeText.indexOf("** REJECT **") >= 0) { +211 hasApplicationCpe = true; //ensure we process this to delete the vuln +212 } +213 nodeText = null; +214 } +215 } +216 /** +217 * the cve database. +218 */ +219 private CveDB cveDB; +220 +221 /** +222 * Sets the cveDB. +223 * +224 * @param db a reference to the CveDB +225 */ +226 public void setCveDB(CveDB db) { +227 cveDB = db; +228 } +229 /** +230 * A list of CVE entries and associated VulnerableSoftware entries that +231 * contain previous entries. +232 */ +233 private Map<String, List<VulnerableSoftware>> prevVersionVulnMap; +234 +235 /** +236 * Sets the prevVersionVulnMap. +237 * +238 * @param map the map of vulnerable software with previous versions being +239 * vulnerable +240 */ +241 public void setPrevVersionVulnMap(Map<String, List<VulnerableSoftware>> map) { +242 prevVersionVulnMap = map; +243 } +244 +245 /** +246 * Saves a vulnerability to the CVE Database. +247 * +248 * @param vuln the vulnerability to store in the database +249 * @throws DatabaseException thrown if there is an error writing to the +250 * database +251 * @throws CorruptIndexException is thrown if the CPE Index is corrupt +252 * @throws IOException thrown if there is an IOException with the CPE Index +253 */ +254 private void saveEntry(Vulnerability vuln) throws DatabaseException, CorruptIndexException, IOException { +255 if (cveDB == null) { +256 return; +257 } +258 final String cveName = vuln.getName(); +259 if (prevVersionVulnMap.containsKey(cveName)) { +260 final List<VulnerableSoftware> vulnSoftware = prevVersionVulnMap.get(cveName); +261 for (VulnerableSoftware vs : vulnSoftware) { +262 vuln.updateVulnerableSoftware(vs); +263 } +264 } +265 cveDB.updateVulnerability(vuln); +266 } +267 +268 // <editor-fold defaultstate="collapsed" desc="The Element Class that maintains state information about the current node"> +269 /** +270 * A simple class to maintain information about the current element while +271 * parsing the NVD CVE XML. 272 */ -273 private CpeIndexWriter cpeIndex; +273 protected static class Element { 274 -275 /** -276 * Sets the cpe index writer. -277 * -278 * @param index the CPE Lucene Index -279 */ -280 public void setCpeIndex(CpeIndexWriter index) { -281 cpeIndex = index; -282 } -283 -284 // <editor-fold defaultstate="collapsed" desc="The Element Class that maintains state information about the current node"> -285 /** -286 * A simple class to maintain information about the current element while -287 * parsing the NVD CVE XML. -288 */ -289 protected static class Element { -290 +275 /** +276 * A node type in the NVD CVE Schema 2.0 +277 */ +278 public static final String NVD = "nvd"; +279 /** +280 * A node type in the NVD CVE Schema 2.0 +281 */ +282 public static final String ENTRY = "entry"; +283 /** +284 * A node type in the NVD CVE Schema 2.0 +285 */ +286 public static final String VULN_PRODUCT = "vuln:product"; +287 /** +288 * A node type in the NVD CVE Schema 2.0 +289 */ +290 public static final String VULN_REFERENCES = "vuln:references"; 291 /** 292 * A node type in the NVD CVE Schema 2.0 293 */ -294 public static final String NVD = "nvd"; +294 public static final String VULN_SOURCE = "vuln:source"; 295 /** 296 * A node type in the NVD CVE Schema 2.0 297 */ -298 public static final String ENTRY = "entry"; +298 public static final String VULN_REFERENCE = "vuln:reference"; 299 /** 300 * A node type in the NVD CVE Schema 2.0 301 */ -302 public static final String VULN_PRODUCT = "vuln:product"; +302 public static final String VULN_SUMMARY = "vuln:summary"; 303 /** 304 * A node type in the NVD CVE Schema 2.0 305 */ -306 public static final String VULN_REFERENCES = "vuln:references"; +306 public static final String VULN_CWE = "vuln:cwe"; 307 /** 308 * A node type in the NVD CVE Schema 2.0 309 */ -310 public static final String VULN_SOURCE = "vuln:source"; +310 public static final String CVSS_SCORE = "cvss:score"; 311 /** 312 * A node type in the NVD CVE Schema 2.0 313 */ -314 public static final String VULN_REFERENCE = "vuln:reference"; +314 public static final String CVSS_ACCESS_VECTOR = "cvss:access-vector"; 315 /** 316 * A node type in the NVD CVE Schema 2.0 317 */ -318 public static final String VULN_SUMMARY = "vuln:summary"; +318 public static final String CVSS_ACCESS_COMPLEXITY = "cvss:access-complexity"; 319 /** 320 * A node type in the NVD CVE Schema 2.0 321 */ -322 public static final String VULN_CWE = "vuln:cwe"; +322 public static final String CVSS_AUTHENTICATION = "cvss:authentication"; 323 /** 324 * A node type in the NVD CVE Schema 2.0 325 */ -326 public static final String CVSS_SCORE = "cvss:score"; +326 public static final String CVSS_CONFIDENTIALITY_IMPACT = "cvss:confidentiality-impact"; 327 /** 328 * A node type in the NVD CVE Schema 2.0 329 */ -330 public static final String CVSS_ACCESS_VECTOR = "cvss:access-vector"; +330 public static final String CVSS_INTEGRITY_IMPACT = "cvss:integrity-impact"; 331 /** 332 * A node type in the NVD CVE Schema 2.0 333 */ -334 public static final String CVSS_ACCESS_COMPLEXITY = "cvss:access-complexity"; +334 public static final String CVSS_AVAILABILITY_IMPACT = "cvss:availability-impact"; 335 /** -336 * A node type in the NVD CVE Schema 2.0 +336 * The current node. 337 */ -338 public static final String CVSS_AUTHENTICATION = "cvss:authentication"; -339 /** -340 * A node type in the NVD CVE Schema 2.0 -341 */ -342 public static final String CVSS_CONFIDENTIALITY_IMPACT = "cvss:confidentiality-impact"; -343 /** -344 * A node type in the NVD CVE Schema 2.0 -345 */ -346 public static final String CVSS_INTEGRITY_IMPACT = "cvss:integrity-impact"; -347 /** -348 * A node type in the NVD CVE Schema 2.0 -349 */ -350 public static final String CVSS_AVAILABILITY_IMPACT = "cvss:availability-impact"; -351 /** -352 * The current node. +338 private String node; +339 +340 /** +341 * Gets the value of node. +342 * +343 * @return the value of node +344 */ +345 public String getNode() { +346 return this.node; +347 } +348 +349 /** +350 * Sets the value of node. +351 * +352 * @param node new value of node 353 */ -354 private String node; -355 -356 /** -357 * Gets the value of node. -358 * -359 * @return the value of node -360 */ -361 public String getNode() { -362 return this.node; -363 } -364 -365 /** -366 * Sets the value of node. -367 * -368 * @param node new value of node -369 */ -370 public void setNode(String node) { -371 this.node = node; -372 } -373 -374 /** -375 * Checks if the handler is at the NVD node. -376 * -377 * @return true or false -378 */ -379 public boolean isNVDNode() { -380 return NVD.equals(node); -381 } -382 -383 /** -384 * Checks if the handler is at the ENTRY node. -385 * -386 * @return true or false -387 */ -388 public boolean isEntryNode() { -389 return ENTRY.equals(node); -390 } -391 -392 /** -393 * Checks if the handler is at the VULN_PRODUCT node. -394 * -395 * @return true or false -396 */ -397 public boolean isVulnProductNode() { -398 return VULN_PRODUCT.equals(node); -399 } -400 -401 /** -402 * Checks if the handler is at the REFERENCES node. -403 * -404 * @return true or false -405 */ -406 public boolean isVulnReferencesNode() { -407 return VULN_REFERENCES.equals(node); -408 } -409 -410 /** -411 * Checks if the handler is at the REFERENCE node. -412 * -413 * @return true or false -414 */ -415 public boolean isVulnReferenceNode() { -416 return VULN_REFERENCE.equals(node); -417 } -418 -419 /** -420 * Checks if the handler is at the VULN_SOURCE node. -421 * -422 * @return true or false -423 */ -424 public boolean isVulnSourceNode() { -425 return VULN_SOURCE.equals(node); -426 } -427 -428 /** -429 * Checks if the handler is at the VULN_SUMMARY node. -430 * -431 * @return true or false -432 */ -433 public boolean isVulnSummaryNode() { -434 return VULN_SUMMARY.equals(node); -435 } -436 -437 /** -438 * Checks if the handler is at the VULN_CWE node. -439 * -440 * @return true or false -441 */ -442 public boolean isVulnCWENode() { -443 return VULN_CWE.equals(node); -444 } -445 -446 /** -447 * Checks if the handler is at the CVSS_SCORE node. -448 * -449 * @return true or false -450 */ -451 public boolean isCVSSScoreNode() { -452 return CVSS_SCORE.equals(node); -453 } -454 -455 /** -456 * Checks if the handler is at the CVSS_ACCESS_VECTOR node. -457 * -458 * @return true or false -459 */ -460 public boolean isCVSSAccessVectorNode() { -461 return CVSS_ACCESS_VECTOR.equals(node); -462 } -463 -464 /** -465 * Checks if the handler is at the CVSS_ACCESS_COMPLEXITY node. -466 * -467 * @return true or false -468 */ -469 public boolean isCVSSAccessComplexityNode() { -470 return CVSS_ACCESS_COMPLEXITY.equals(node); -471 } -472 -473 /** -474 * Checks if the handler is at the CVSS_AUTHENTICATION node. -475 * -476 * @return true or false -477 */ -478 public boolean isCVSSAuthenticationNode() { -479 return CVSS_AUTHENTICATION.equals(node); -480 } -481 -482 /** -483 * Checks if the handler is at the CVSS_CONFIDENTIALITY_IMPACT node. -484 * -485 * @return true or false -486 */ -487 public boolean isCVSSConfidentialityImpactNode() { -488 return CVSS_CONFIDENTIALITY_IMPACT.equals(node); -489 } -490 -491 /** -492 * Checks if the handler is at the CVSS_INTEGRITY_IMPACT node. -493 * -494 * @return true or false -495 */ -496 public boolean isCVSSIntegrityImpactNode() { -497 return CVSS_INTEGRITY_IMPACT.equals(node); -498 } -499 -500 /** -501 * Checks if the handler is at the CVSS_AVAILABILITY_IMPACT node. -502 * -503 * @return true or false -504 */ -505 public boolean isCVSSAvailabilityImpactNode() { -506 return CVSS_AVAILABILITY_IMPACT.equals(node); -507 } -508 } -509 // </editor-fold> -510 } +354 public void setNode(String node) { +355 this.node = node; +356 } +357 +358 /** +359 * Checks if the handler is at the NVD node. +360 * +361 * @return true or false +362 */ +363 public boolean isNVDNode() { +364 return NVD.equals(node); +365 } +366 +367 /** +368 * Checks if the handler is at the ENTRY node. +369 * +370 * @return true or false +371 */ +372 public boolean isEntryNode() { +373 return ENTRY.equals(node); +374 } +375 +376 /** +377 * Checks if the handler is at the VULN_PRODUCT node. +378 * +379 * @return true or false +380 */ +381 public boolean isVulnProductNode() { +382 return VULN_PRODUCT.equals(node); +383 } +384 +385 /** +386 * Checks if the handler is at the REFERENCES node. +387 * +388 * @return true or false +389 */ +390 public boolean isVulnReferencesNode() { +391 return VULN_REFERENCES.equals(node); +392 } +393 +394 /** +395 * Checks if the handler is at the REFERENCE node. +396 * +397 * @return true or false +398 */ +399 public boolean isVulnReferenceNode() { +400 return VULN_REFERENCE.equals(node); +401 } +402 +403 /** +404 * Checks if the handler is at the VULN_SOURCE node. +405 * +406 * @return true or false +407 */ +408 public boolean isVulnSourceNode() { +409 return VULN_SOURCE.equals(node); +410 } +411 +412 /** +413 * Checks if the handler is at the VULN_SUMMARY node. +414 * +415 * @return true or false +416 */ +417 public boolean isVulnSummaryNode() { +418 return VULN_SUMMARY.equals(node); +419 } +420 +421 /** +422 * Checks if the handler is at the VULN_CWE node. +423 * +424 * @return true or false +425 */ +426 public boolean isVulnCWENode() { +427 return VULN_CWE.equals(node); +428 } +429 +430 /** +431 * Checks if the handler is at the CVSS_SCORE node. +432 * +433 * @return true or false +434 */ +435 public boolean isCVSSScoreNode() { +436 return CVSS_SCORE.equals(node); +437 } +438 +439 /** +440 * Checks if the handler is at the CVSS_ACCESS_VECTOR node. +441 * +442 * @return true or false +443 */ +444 public boolean isCVSSAccessVectorNode() { +445 return CVSS_ACCESS_VECTOR.equals(node); +446 } +447 +448 /** +449 * Checks if the handler is at the CVSS_ACCESS_COMPLEXITY node. +450 * +451 * @return true or false +452 */ +453 public boolean isCVSSAccessComplexityNode() { +454 return CVSS_ACCESS_COMPLEXITY.equals(node); +455 } +456 +457 /** +458 * Checks if the handler is at the CVSS_AUTHENTICATION node. +459 * +460 * @return true or false +461 */ +462 public boolean isCVSSAuthenticationNode() { +463 return CVSS_AUTHENTICATION.equals(node); +464 } +465 +466 /** +467 * Checks if the handler is at the CVSS_CONFIDENTIALITY_IMPACT node. +468 * +469 * @return true or false +470 */ +471 public boolean isCVSSConfidentialityImpactNode() { +472 return CVSS_CONFIDENTIALITY_IMPACT.equals(node); +473 } +474 +475 /** +476 * Checks if the handler is at the CVSS_INTEGRITY_IMPACT node. +477 * +478 * @return true or false +479 */ +480 public boolean isCVSSIntegrityImpactNode() { +481 return CVSS_INTEGRITY_IMPACT.equals(node); +482 } +483 +484 /** +485 * Checks if the handler is at the CVSS_AVAILABILITY_IMPACT node. +486 * +487 * @return true or false +488 */ +489 public boolean isCVSSAvailabilityImpactNode() { +490 return CVSS_AVAILABILITY_IMPACT.equals(node); +491 } +492 } +493 // </editor-fold> +494 }
    diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/package-frame.html index 76960d2a7..fc2f12d02 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.data.nvdcve + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.data.nvdcve diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/package-summary.html index 8e5baabb6..64da64f07 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/nvdcve/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.data.nvdcve + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.data.nvdcve diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/package-frame.html index 773975e7f..a13fe1f29 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.data + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.data @@ -16,6 +16,9 @@
    • + BaseDB +
    • +
    • CachedWebDataSource
    • diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/package-summary.html index 761e5f803..8d05170dd 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.data + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.data @@ -36,6 +36,11 @@ + + BaseDB + + + CachedWebDataSource diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/AbstractUpdateTask.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/AbstractUpdateTask.html index f9dcb707a..c82014e86 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/AbstractUpdateTask.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/AbstractUpdateTask.html @@ -40,262 +40,234 @@ 30 import javax.xml.parsers.SAXParser; 31 import javax.xml.parsers.SAXParserFactory; 32 import org.owasp.dependencycheck.data.UpdateException; -33 import org.owasp.dependencycheck.data.cpe.CpeIndexWriter; -34 import org.owasp.dependencycheck.data.nvdcve.CveDB; -35 import org.owasp.dependencycheck.utils.FileUtils; -36 import org.owasp.dependencycheck.utils.Settings; -37 import org.owasp.dependencycheck.data.nvdcve.DatabaseException; -38 import org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler; -39 import org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler; -40 import org.owasp.dependencycheck.dependency.VulnerableSoftware; -41 import org.owasp.dependencycheck.utils.DownloadFailedException; -42 import org.xml.sax.SAXException; -43 -44 /** -45 * Class responsible for updating the CPE and NVDCVE data stores. -46 * -47 * @author Jeremy Long (jeremy.long@owasp.org) -48 */ -49 public abstract class AbstractUpdateTask implements UpdateTask { -50 -51 /** -52 * Initializes the AbstractUpdateTask. -53 * -54 * @param properties information about the data store -55 * @throws MalformedURLException thrown if the configuration contains a -56 * malformed url -57 * @throws DownloadFailedException thrown if the timestamp on a file cannot -58 * be checked -59 * @throws UpdateException thrown if the update fails -60 */ -61 public AbstractUpdateTask(DataStoreMetaInfo properties) throws MalformedURLException, DownloadFailedException, UpdateException { -62 this.properties = properties; -63 this.updateable = updatesNeeded(); -64 } -65 /** -66 * A collection of updateable NVD CVE items. -67 */ -68 private Updateable updateable; -69 /** -70 * Utility to read and write meta-data about the data. -71 */ -72 private DataStoreMetaInfo properties = null; -73 -74 /** -75 * Returns the data store properties. -76 * -77 * @return the data store properties -78 */ -79 protected DataStoreMetaInfo getProperties() { -80 return properties; -81 } -82 /** -83 * Reference to the Cve Database. -84 */ -85 private CveDB cveDB = null; -86 -87 /** -88 * Returns the CveDB. -89 * -90 * @return the CveDB -91 */ -92 protected CveDB getCveDB() { -93 return cveDB; -94 } +33 import org.owasp.dependencycheck.data.nvdcve.CveDB; +34 import org.owasp.dependencycheck.utils.FileUtils; +35 import org.owasp.dependencycheck.utils.Settings; +36 import org.owasp.dependencycheck.data.nvdcve.DatabaseException; +37 import org.owasp.dependencycheck.data.nvdcve.NvdCve12Handler; +38 import org.owasp.dependencycheck.data.nvdcve.NvdCve20Handler; +39 import org.owasp.dependencycheck.dependency.VulnerableSoftware; +40 import org.owasp.dependencycheck.utils.DownloadFailedException; +41 import org.xml.sax.SAXException; +42 +43 /** +44 * Class responsible for updating the CPE and NVDCVE data stores. +45 * +46 * @author Jeremy Long (jeremy.long@owasp.org) +47 */ +48 public abstract class AbstractUpdateTask implements UpdateTask { +49 +50 /** +51 * Initializes the AbstractUpdateTask. +52 * +53 * @param properties information about the data store +54 * @throws MalformedURLException thrown if the configuration contains a +55 * malformed url +56 * @throws DownloadFailedException thrown if the timestamp on a file cannot +57 * be checked +58 * @throws UpdateException thrown if the update fails +59 */ +60 public AbstractUpdateTask(DataStoreMetaInfo properties) throws MalformedURLException, DownloadFailedException, UpdateException { +61 this.properties = properties; +62 this.updateable = updatesNeeded(); +63 } +64 /** +65 * A collection of updateable NVD CVE items. +66 */ +67 private Updateable updateable; +68 /** +69 * Utility to read and write meta-data about the data. +70 */ +71 private DataStoreMetaInfo properties = null; +72 +73 /** +74 * Returns the data store properties. +75 * +76 * @return the data store properties +77 */ +78 protected DataStoreMetaInfo getProperties() { +79 return properties; +80 } +81 /** +82 * Reference to the Cve Database. +83 */ +84 private CveDB cveDB = null; +85 +86 /** +87 * Returns the CveDB. +88 * +89 * @return the CveDB +90 */ +91 protected CveDB getCveDB() { +92 return cveDB; +93 } +94 95 /** -96 * Reference to the Cpe Index. -97 */ -98 private CpeIndexWriter cpeIndex = null; -99 -100 /** -101 * Returns the CpeIndex. -102 * -103 * @return the CpeIndex -104 */ -105 protected CpeIndexWriter getCpeIndex() { -106 return cpeIndex; -107 } -108 -109 /** -110 * Gets whether or not an update is needed. -111 * -112 * @return true or false depending on whether an update is needed -113 */ -114 public boolean isUpdateNeeded() { -115 return updateable.isUpdateNeeded(); -116 } -117 -118 /** -119 * Gets the updateable NVD CVE Entries. -120 * -121 * @return an Updateable object containing the NVD CVE entries -122 */ -123 protected Updateable getUpdateable() { -124 return updateable; -125 } -126 -127 /** -128 * Determines if the index needs to be updated. -129 * -130 * @return a collection of updateable resources. -131 * @throws MalformedURLException is thrown if the URL for the NVD CVE Meta -132 * data is incorrect. -133 * @throws DownloadFailedException is thrown if there is an error. -134 * downloading the NVD CVE download data file. -135 * @throws UpdateException Is thrown if there is an issue with the last -136 * updated properties file. -137 */ -138 protected abstract Updateable updatesNeeded() throws MalformedURLException, DownloadFailedException, UpdateException; -139 -140 /** -141 * <p>Updates the data store to the latest version.</p> -142 * -143 * @throws UpdateException is thrown if there is an error updating the -144 * database -145 */ -146 public abstract void update() throws UpdateException; -147 /** -148 * A flag indicating whether or not the current data store should be -149 * deleted. -150 */ -151 private boolean deleteAndRecreate = false; -152 -153 /** -154 * Get the value of deleteAndRecreate. -155 * -156 * @return the value of deleteAndRecreate -157 */ -158 public boolean shouldDeleteAndRecreate() { -159 return deleteAndRecreate; -160 } -161 -162 /** -163 * Set the value of deleteAndRecreate. -164 * -165 * @param deleteAndRecreate new value of deleteAndRecreate -166 */ -167 protected void setDeleteAndRecreate(boolean deleteAndRecreate) { -168 this.deleteAndRecreate = deleteAndRecreate; -169 } -170 -171 /** -172 * Deletes the existing data directories. -173 * -174 * @throws IOException thrown if the directory cannot be deleted +96 * Gets whether or not an update is needed. +97 * +98 * @return true or false depending on whether an update is needed +99 */ +100 public boolean isUpdateNeeded() { +101 return updateable.isUpdateNeeded(); +102 } +103 +104 /** +105 * Gets the updateable NVD CVE Entries. +106 * +107 * @return an Updateable object containing the NVD CVE entries +108 */ +109 protected Updateable getUpdateable() { +110 return updateable; +111 } +112 +113 /** +114 * Determines if the index needs to be updated. +115 * +116 * @return a collection of updateable resources. +117 * @throws MalformedURLException is thrown if the URL for the NVD CVE Meta +118 * data is incorrect. +119 * @throws DownloadFailedException is thrown if there is an error. +120 * downloading the NVD CVE download data file. +121 * @throws UpdateException Is thrown if there is an issue with the last +122 * updated properties file. +123 */ +124 protected abstract Updateable updatesNeeded() throws MalformedURLException, DownloadFailedException, UpdateException; +125 +126 /** +127 * <p>Updates the data store to the latest version.</p> +128 * +129 * @throws UpdateException is thrown if there is an error updating the +130 * database +131 */ +132 public abstract void update() throws UpdateException; +133 /** +134 * A flag indicating whether or not the current data store should be +135 * deleted. +136 */ +137 private boolean deleteAndRecreate = false; +138 +139 /** +140 * Get the value of deleteAndRecreate. +141 * +142 * @return the value of deleteAndRecreate +143 */ +144 public boolean shouldDeleteAndRecreate() { +145 return deleteAndRecreate; +146 } +147 +148 /** +149 * Set the value of deleteAndRecreate. +150 * +151 * @param deleteAndRecreate new value of deleteAndRecreate +152 */ +153 protected void setDeleteAndRecreate(boolean deleteAndRecreate) { +154 this.deleteAndRecreate = deleteAndRecreate; +155 } +156 +157 /** +158 * Deletes the existing data directories. +159 * +160 * @throws IOException thrown if the directory cannot be deleted +161 */ +162 protected void deleteExistingData() throws IOException { +163 File data = Settings.getDataFile(Settings.KEYS.CVE_DATA_DIRECTORY); +164 if (data.exists()) { +165 FileUtils.delete(data); +166 } +167 data = DataStoreMetaInfo.getPropertiesFile(); +168 if (data.exists()) { +169 FileUtils.delete(data); +170 } +171 } +172 +173 /** +174 * Closes the CVE and CPE data stores. 175 */ -176 protected void deleteExistingData() throws IOException { -177 File data = Settings.getFile(Settings.KEYS.CVE_DATA_DIRECTORY); -178 if (data.exists()) { -179 FileUtils.delete(data); -180 } -181 data = Settings.getFile(Settings.KEYS.CPE_DATA_DIRECTORY); -182 if (data.exists()) { -183 FileUtils.delete(data); -184 } -185 data = DataStoreMetaInfo.getPropertiesFile(); -186 if (data.exists()) { -187 FileUtils.delete(data); -188 } -189 } -190 -191 /** -192 * Closes the CVE and CPE data stores. -193 */ -194 protected void closeDataStores() { -195 if (cveDB != null) { -196 try { -197 cveDB.close(); -198 } catch (Exception ignore) { -199 Logger.getLogger(AbstractUpdateTask.class.getName()).log(Level.FINEST, "Error closing the cveDB", ignore); -200 } -201 } -202 if (cpeIndex != null) { -203 try { -204 cpeIndex.close(); -205 } catch (Exception ignore) { -206 Logger.getLogger(AbstractUpdateTask.class.getName()).log(Level.FINEST, "Error closing the cpeIndex", ignore); -207 } -208 } -209 } -210 -211 /** -212 * Opens the CVE and CPE data stores. -213 * -214 * @throws UpdateException thrown if a data store cannot be opened -215 */ -216 protected void openDataStores() throws UpdateException { -217 //open the cve and cpe data stores -218 try { -219 cveDB = new CveDB(); -220 cveDB.open(); -221 cpeIndex = new CpeIndexWriter(); -222 cpeIndex.open(); -223 } catch (IOException ex) { -224 closeDataStores(); -225 Logger.getLogger(AbstractUpdateTask.class.getName()).log(Level.FINE, "IO Error opening databases", ex); -226 throw new UpdateException("Error updating the CPE/CVE data, please see the log file for more details."); -227 } catch (SQLException ex) { -228 closeDataStores(); -229 Logger.getLogger(AbstractUpdateTask.class.getName()).log(Level.FINE, "SQL Exception opening databases", ex); -230 throw new UpdateException("Error updating the CPE/CVE data, please see the log file for more details."); -231 } catch (DatabaseException ex) { -232 closeDataStores(); -233 Logger.getLogger(AbstractUpdateTask.class.getName()).log(Level.FINE, "Database Exception opening databases", ex); -234 throw new UpdateException("Error updating the CPE/CVE data, please see the log file for more details."); -235 } catch (ClassNotFoundException ex) { -236 closeDataStores(); -237 Logger.getLogger(AbstractUpdateTask.class.getName()).log(Level.FINE, "Class not found exception opening databases", ex); -238 throw new UpdateException("Error updating the CPE/CVE data, please see the log file for more details."); -239 } -240 } -241 -242 /** -243 * Determines if the epoch date is within the range specified of the -244 * compareTo epoch time. This takes the (compareTo-date)/1000/60/60/24 to -245 * get the number of days. If the calculated days is less then the range the -246 * date is considered valid. -247 * -248 * @param date the date to be checked. -249 * @param compareTo the date to compare to. -250 * @param range the range in days to be considered valid. -251 * @return whether or not the date is within the range. -252 */ -253 protected boolean withinRange(long date, long compareTo, int range) { -254 final double differenceInDays = (compareTo - date) / 1000.0 / 60.0 / 60.0 / 24.0; -255 return differenceInDays < range; -256 } -257 -258 /** -259 * Imports the NVD CVE XML File into the Lucene Index. -260 * -261 * @param file the file containing the NVD CVE XML -262 * @param oldVersion contains the file containing the NVD CVE XML 1.2 -263 * @throws ParserConfigurationException is thrown if there is a parser -264 * configuration exception -265 * @throws SAXException is thrown if there is a SAXException -266 * @throws IOException is thrown if there is a IO Exception -267 * @throws SQLException is thrown if there is a SQL exception -268 * @throws DatabaseException is thrown if there is a database exception -269 * @throws ClassNotFoundException thrown if the h2 database driver cannot be -270 * loaded -271 */ -272 protected void importXML(File file, File oldVersion) -273 throws ParserConfigurationException, SAXException, IOException, SQLException, DatabaseException, ClassNotFoundException { -274 -275 final SAXParserFactory factory = SAXParserFactory.newInstance(); -276 final SAXParser saxParser = factory.newSAXParser(); -277 -278 final NvdCve12Handler cve12Handler = new NvdCve12Handler(); -279 saxParser.parse(oldVersion, cve12Handler); -280 final Map<String, List<VulnerableSoftware>> prevVersionVulnMap = cve12Handler.getVulnerabilities(); -281 -282 final NvdCve20Handler cve20Handler = new NvdCve20Handler(); -283 cve20Handler.setCveDB(cveDB); -284 cve20Handler.setPrevVersionVulnMap(prevVersionVulnMap); -285 cve20Handler.setCpeIndex(cpeIndex); -286 saxParser.parse(file, cve20Handler); -287 } -288 } +176 protected void closeDataStores() { +177 if (cveDB != null) { +178 try { +179 cveDB.close(); +180 } catch (Exception ignore) { +181 Logger.getLogger(AbstractUpdateTask.class.getName()).log(Level.FINEST, "Error closing the cveDB", ignore); +182 } +183 } +184 } +185 +186 /** +187 * Opens the CVE and CPE data stores. +188 * +189 * @throws UpdateException thrown if a data store cannot be opened +190 */ +191 protected void openDataStores() throws UpdateException { +192 //open the cve and cpe data stores +193 try { +194 cveDB = new CveDB(); +195 cveDB.open(); +196 } catch (IOException ex) { +197 closeDataStores(); +198 Logger.getLogger(AbstractUpdateTask.class.getName()).log(Level.FINE, "IO Error opening databases", ex); +199 throw new UpdateException("Error updating the CPE/CVE data, please see the log file for more details."); +200 } catch (SQLException ex) { +201 closeDataStores(); +202 Logger.getLogger(AbstractUpdateTask.class.getName()).log(Level.FINE, "SQL Exception opening databases", ex); +203 throw new UpdateException("Error updating the CPE/CVE data, please see the log file for more details."); +204 } catch (DatabaseException ex) { +205 closeDataStores(); +206 Logger.getLogger(AbstractUpdateTask.class.getName()).log(Level.FINE, "Database Exception opening databases", ex); +207 throw new UpdateException("Error updating the CPE/CVE data, please see the log file for more details."); +208 } catch (ClassNotFoundException ex) { +209 closeDataStores(); +210 Logger.getLogger(AbstractUpdateTask.class.getName()).log(Level.FINE, "Class not found exception opening databases", ex); +211 throw new UpdateException("Error updating the CPE/CVE data, please see the log file for more details."); +212 } +213 } +214 +215 /** +216 * Determines if the epoch date is within the range specified of the +217 * compareTo epoch time. This takes the (compareTo-date)/1000/60/60/24 to +218 * get the number of days. If the calculated days is less then the range the +219 * date is considered valid. +220 * +221 * @param date the date to be checked. +222 * @param compareTo the date to compare to. +223 * @param range the range in days to be considered valid. +224 * @return whether or not the date is within the range. +225 */ +226 protected boolean withinRange(long date, long compareTo, int range) { +227 final double differenceInDays = (compareTo - date) / 1000.0 / 60.0 / 60.0 / 24.0; +228 return differenceInDays < range; +229 } +230 +231 /** +232 * Imports the NVD CVE XML File into the Lucene Index. +233 * +234 * @param file the file containing the NVD CVE XML +235 * @param oldVersion contains the file containing the NVD CVE XML 1.2 +236 * @throws ParserConfigurationException is thrown if there is a parser +237 * configuration exception +238 * @throws SAXException is thrown if there is a SAXException +239 * @throws IOException is thrown if there is a IO Exception +240 * @throws SQLException is thrown if there is a SQL exception +241 * @throws DatabaseException is thrown if there is a database exception +242 * @throws ClassNotFoundException thrown if the h2 database driver cannot be +243 * loaded +244 */ +245 protected void importXML(File file, File oldVersion) throws ParserConfigurationException, +246 SAXException, IOException, SQLException, DatabaseException, ClassNotFoundException { +247 +248 final SAXParserFactory factory = SAXParserFactory.newInstance(); +249 final SAXParser saxParser = factory.newSAXParser(); +250 +251 final NvdCve12Handler cve12Handler = new NvdCve12Handler(); +252 saxParser.parse(oldVersion, cve12Handler); +253 final Map<String, List<VulnerableSoftware>> prevVersionVulnMap = cve12Handler.getVulnerabilities(); +254 +255 final NvdCve20Handler cve20Handler = new NvdCve20Handler(); +256 cve20Handler.setCveDB(cveDB); +257 cve20Handler.setPrevVersionVulnMap(prevVersionVulnMap); +258 saxParser.parse(file, cve20Handler); +259 } +260 }
      diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/BatchUpdateTask.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/BatchUpdateTask.html index 3e253aa39..36cf86603 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/BatchUpdateTask.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/BatchUpdateTask.html @@ -52,232 +52,234 @@ 42 * Class responsible for updating the CPE and NVDCVE data stores. 43 * 44 * @author Jeremy Long (jeremy.long@owasp.org) -45 */ -46 public class BatchUpdateTask extends AbstractUpdateTask { -47 -48 /** -49 * Constructs a new BatchUpdateTask. -50 * -51 * @param properties information about the data store -52 * @throws MalformedURLException thrown if a configured URL is malformed -53 * @throws DownloadFailedException thrown if a timestamp cannot be checked -54 * on a configured URL -55 * @throws UpdateException thrown if there is an exception generating the -56 * update task -57 */ -58 public BatchUpdateTask(DataStoreMetaInfo properties) throws MalformedURLException, DownloadFailedException, UpdateException { -59 super(properties); -60 } -61 /** -62 * A flag indicating whether or not the batch update should be performed. -63 */ -64 private boolean doBatchUpdate; -65 -66 /** -67 * Get the value of doBatchUpdate -68 * -69 * @return the value of doBatchUpdate -70 */ -71 protected boolean isDoBatchUpdate() { -72 return doBatchUpdate; -73 } -74 -75 /** -76 * Set the value of doBatchUpdate -77 * -78 * @param doBatchUpdate new value of doBatchUpdate -79 */ -80 protected void setDoBatchUpdate(boolean doBatchUpdate) { -81 this.doBatchUpdate = doBatchUpdate; -82 } -83 -84 /** -85 * <p>Downloads the latest NVD CVE XML file from the web and imports it into -86 * the current CVE Database.</p> -87 * -88 * @throws UpdateException is thrown if there is an error updating the -89 * database -90 */ -91 @Override -92 public void update() throws UpdateException { -93 if (getProperties().isBatchUpdateMode() && doBatchUpdate) { -94 final String batchSrc = Settings.getString(Settings.KEYS.BATCH_UPDATE_URL); -95 File tmp = null; -96 try { -97 deleteExistingData(); -98 final File dataDirectory = CveDB.getDataDirectory().getParentFile(); -99 final URL batchUrl = new URL(batchSrc); -100 if ("file".equals(batchUrl.getProtocol())) { -101 try { -102 tmp = new File(batchUrl.toURI()); -103 } catch (URISyntaxException ex) { -104 final String msg = String.format("Invalid batch update URI: %s", batchSrc); -105 throw new UpdateException(msg, ex); -106 } -107 } else if ("http".equals(batchUrl.getProtocol()) -108 || "https".equals(batchUrl.getProtocol())) { -109 tmp = File.createTempFile("batch_", ".zip"); -110 Downloader.fetchFile(batchUrl, tmp); -111 } -112 //TODO add FTP? -113 FileUtils.extractFiles(tmp, dataDirectory); -114 -115 } catch (IOException ex) { -116 final String msg = String.format("IO Exception Occured performing batch update using: %s", batchSrc); -117 throw new UpdateException(msg, ex); -118 } finally { -119 if (tmp != null && !tmp.delete()) { -120 tmp.deleteOnExit(); -121 } -122 } -123 } -124 } -125 -126 /** -127 * Determines if the index needs to be updated. This is done by fetching the -128 * NVD CVE meta data and checking the last update date. If the data needs to -129 * be refreshed this method will return the NvdCveUrl for the files that -130 * need to be updated. -131 * -132 * @return the collection of files that need to be updated -133 * @throws MalformedURLException is thrown if the URL for the NVD CVE Meta -134 * data is incorrect -135 * @throws DownloadFailedException is thrown if there is an error. -136 * downloading the NVD CVE download data file -137 * @throws UpdateException Is thrown if there is an issue with the last -138 * updated properties file -139 */ -140 @Override -141 public Updateable updatesNeeded() throws MalformedURLException, DownloadFailedException, UpdateException { -142 Updateable updates = null; -143 try { -144 updates = retrieveCurrentTimestampsFromWeb(); -145 } catch (InvalidDataException ex) { -146 final String msg = "Unable to retrieve valid timestamp from nvd cve downloads page"; -147 Logger.getLogger(BatchUpdateTask.class.getName()).log(Level.FINE, msg, ex); -148 throw new DownloadFailedException(msg, ex); -149 } catch (InvalidSettingException ex) { -150 Logger.getLogger(BatchUpdateTask.class.getName()).log(Level.FINE, "Invalid setting found when retrieving timestamps", ex); -151 throw new DownloadFailedException("Invalid settings", ex); -152 } -153 -154 if (updates == null) { -155 throw new DownloadFailedException("Unable to retrieve the timestamps of the currently published NVD CVE data"); -156 } -157 final DataStoreMetaInfo properties = getProperties(); -158 if (!properties.isEmpty()) { -159 try { -160 boolean deleteAndRecreate = false; -161 float version; -162 -163 if (properties.getProperty("version") == null) { -164 deleteAndRecreate = true; -165 } else { -166 try { -167 version = Float.parseFloat(properties.getProperty("version")); -168 final float currentVersion = Float.parseFloat(CveDB.DB_SCHEMA_VERSION); -169 if (currentVersion > version) { -170 deleteAndRecreate = true; -171 } -172 } catch (NumberFormatException ex) { -173 deleteAndRecreate = true; -174 } -175 } -176 -177 final NvdCveInfo batchInfo = updates.get(BATCH); -178 if (properties.isBatchUpdateMode() && batchInfo != null) { -179 final long lastUpdated = Long.parseLong(properties.getProperty(DataStoreMetaInfo.BATCH, "0")); -180 if (lastUpdated != batchInfo.getTimestamp()) { -181 deleteAndRecreate = true; -182 } -183 } -184 -185 if (deleteAndRecreate) { -186 setDoBatchUpdate(properties.isBatchUpdateMode()); -187 try { -188 deleteExistingData(); -189 } catch (IOException ex) { -190 final String msg = "Unable to delete existing data"; -191 Logger.getLogger(BatchUpdateTask.class.getName()).log(Level.WARNING, msg); -192 Logger.getLogger(BatchUpdateTask.class.getName()).log(Level.FINE, null, ex); -193 } -194 return updates; -195 } -196 -197 final long lastUpdated = Long.parseLong(properties.getProperty(DataStoreMetaInfo.LAST_UPDATED, "0")); -198 final Date now = new Date(); -199 final int days = Settings.getInt(Settings.KEYS.CVE_MODIFIED_VALID_FOR_DAYS, 7); -200 final int start = Settings.getInt(Settings.KEYS.CVE_START_YEAR, 2002); -201 final int end = Calendar.getInstance().get(Calendar.YEAR); -202 if (lastUpdated == updates.get(MODIFIED).getTimestamp()) { -203 updates.clear(); //we don't need to update anything. -204 setDoBatchUpdate(properties.isBatchUpdateMode()); -205 } else if (withinRange(lastUpdated, now.getTime(), days)) { -206 updates.get(MODIFIED).setNeedsUpdate(true); -207 if (properties.isBatchUpdateMode()) { -208 setDoBatchUpdate(false); -209 } else { -210 for (int i = start; i <= end; i++) { -211 updates.get(String.valueOf(i)).setNeedsUpdate(false); -212 } -213 } -214 } else if (properties.isBatchUpdateMode()) { -215 updates.get(MODIFIED).setNeedsUpdate(true); -216 setDoBatchUpdate(true); -217 } else { //we figure out which of the several XML files need to be downloaded. -218 updates.get(MODIFIED).setNeedsUpdate(false); -219 for (int i = start; i <= end; i++) { -220 final NvdCveInfo cve = updates.get(String.valueOf(i)); -221 long currentTimestamp = 0; -222 try { -223 currentTimestamp = Long.parseLong(properties.getProperty(DataStoreMetaInfo.LAST_UPDATED_BASE + String.valueOf(i), "0")); -224 } catch (NumberFormatException ex) { -225 final String msg = String.format("Error parsing '%s' '%s' from nvdcve.lastupdated", -226 DataStoreMetaInfo.LAST_UPDATED_BASE, String.valueOf(i)); -227 Logger.getLogger(BatchUpdateTask.class.getName()).log(Level.FINE, msg, ex); -228 } -229 if (currentTimestamp == cve.getTimestamp()) { -230 cve.setNeedsUpdate(false); //they default to true. -231 } -232 } -233 } -234 } catch (NumberFormatException ex) { -235 final String msg = "An invalid schema version or timestamp exists in the data.properties file."; -236 Logger.getLogger(BatchUpdateTask.class.getName()).log(Level.WARNING, msg); -237 Logger.getLogger(BatchUpdateTask.class.getName()).log(Level.FINE, null, ex); -238 setDoBatchUpdate(properties.isBatchUpdateMode()); -239 } -240 } -241 return updates; -242 } -243 -244 /** -245 * Retrieves the timestamps from the NVD CVE meta data file. -246 * -247 * @return the timestamp from the currently published nvdcve downloads page -248 * @throws MalformedURLException thrown if the URL for the NVD CCE Meta data -249 * is incorrect. -250 * @throws DownloadFailedException thrown if there is an error downloading -251 * the nvd cve meta data file -252 * @throws InvalidDataException thrown if there is an exception parsing the -253 * timestamps -254 * @throws InvalidSettingException thrown if the settings are invalid -255 */ -256 private Updateable retrieveCurrentTimestampsFromWeb() -257 throws MalformedURLException, DownloadFailedException, InvalidDataException, InvalidSettingException { -258 final Updateable updates = new Updateable(); -259 updates.add(BATCH, Settings.getString(Settings.KEYS.BATCH_UPDATE_URL), -260 null, false); -261 -262 final String url = Settings.getString(Settings.KEYS.CVE_MODIFIED_20_URL, ""); -263 if (!url.isEmpty()) { -264 updates.add(MODIFIED, url, -265 Settings.getString(Settings.KEYS.CVE_MODIFIED_12_URL), -266 false); -267 } -268 return updates; -269 } -270 } +45 * @deprecated batch update mode will no longer be supported. +46 */ +47 @Deprecated +48 public class BatchUpdateTask extends AbstractUpdateTask { +49 +50 /** +51 * Constructs a new BatchUpdateTask. +52 * +53 * @param properties information about the data store +54 * @throws MalformedURLException thrown if a configured URL is malformed +55 * @throws DownloadFailedException thrown if a timestamp cannot be checked +56 * on a configured URL +57 * @throws UpdateException thrown if there is an exception generating the +58 * update task +59 */ +60 public BatchUpdateTask(DataStoreMetaInfo properties) throws MalformedURLException, DownloadFailedException, UpdateException { +61 super(properties); +62 } +63 /** +64 * A flag indicating whether or not the batch update should be performed. +65 */ +66 private boolean doBatchUpdate; +67 +68 /** +69 * Get the value of doBatchUpdate +70 * +71 * @return the value of doBatchUpdate +72 */ +73 protected boolean isDoBatchUpdate() { +74 return doBatchUpdate; +75 } +76 +77 /** +78 * Set the value of doBatchUpdate +79 * +80 * @param doBatchUpdate new value of doBatchUpdate +81 */ +82 protected void setDoBatchUpdate(boolean doBatchUpdate) { +83 this.doBatchUpdate = doBatchUpdate; +84 } +85 +86 /** +87 * <p>Downloads the latest NVD CVE XML file from the web and imports it into +88 * the current CVE Database.</p> +89 * +90 * @throws UpdateException is thrown if there is an error updating the +91 * database +92 */ +93 @Override +94 public void update() throws UpdateException { +95 if (getProperties().isBatchUpdateMode() && doBatchUpdate) { +96 final String batchSrc = Settings.getString(Settings.KEYS.BATCH_UPDATE_URL); +97 File tmp = null; +98 try { +99 deleteExistingData(); +100 final File dataDirectory = CveDB.getDataDirectory().getParentFile(); +101 final URL batchUrl = new URL(batchSrc); +102 if ("file".equals(batchUrl.getProtocol())) { +103 try { +104 tmp = new File(batchUrl.toURI()); +105 } catch (URISyntaxException ex) { +106 final String msg = String.format("Invalid batch update URI: %s", batchSrc); +107 throw new UpdateException(msg, ex); +108 } +109 } else if ("http".equals(batchUrl.getProtocol()) +110 || "https".equals(batchUrl.getProtocol())) { +111 tmp = File.createTempFile("batch_", ".zip"); +112 Downloader.fetchFile(batchUrl, tmp); +113 } +114 //TODO add FTP? +115 FileUtils.extractFiles(tmp, dataDirectory); +116 +117 } catch (IOException ex) { +118 final String msg = String.format("IO Exception Occured performing batch update using: %s", batchSrc); +119 throw new UpdateException(msg, ex); +120 } finally { +121 if (tmp != null && !tmp.delete()) { +122 tmp.deleteOnExit(); +123 } +124 } +125 } +126 } +127 +128 /** +129 * Determines if the index needs to be updated. This is done by fetching the +130 * NVD CVE meta data and checking the last update date. If the data needs to +131 * be refreshed this method will return the NvdCveUrl for the files that +132 * need to be updated. +133 * +134 * @return the collection of files that need to be updated +135 * @throws MalformedURLException is thrown if the URL for the NVD CVE Meta +136 * data is incorrect +137 * @throws DownloadFailedException is thrown if there is an error. +138 * downloading the NVD CVE download data file +139 * @throws UpdateException Is thrown if there is an issue with the last +140 * updated properties file +141 */ +142 @Override +143 public Updateable updatesNeeded() throws MalformedURLException, DownloadFailedException, UpdateException { +144 Updateable updates = null; +145 try { +146 updates = retrieveCurrentTimestampsFromWeb(); +147 } catch (InvalidDataException ex) { +148 final String msg = "Unable to retrieve valid timestamp from nvd cve downloads page"; +149 Logger.getLogger(BatchUpdateTask.class.getName()).log(Level.FINE, msg, ex); +150 throw new DownloadFailedException(msg, ex); +151 } catch (InvalidSettingException ex) { +152 Logger.getLogger(BatchUpdateTask.class.getName()).log(Level.FINE, "Invalid setting found when retrieving timestamps", ex); +153 throw new DownloadFailedException("Invalid settings", ex); +154 } +155 +156 if (updates == null) { +157 throw new DownloadFailedException("Unable to retrieve the timestamps of the currently published NVD CVE data"); +158 } +159 final DataStoreMetaInfo properties = getProperties(); +160 if (!properties.isEmpty()) { +161 try { +162 boolean deleteAndRecreate = false; +163 float version; +164 +165 if (properties.getProperty("version") == null) { +166 deleteAndRecreate = true; +167 } else { +168 try { +169 version = Float.parseFloat(properties.getProperty("version")); +170 final float currentVersion = Float.parseFloat(CveDB.DB_SCHEMA_VERSION); +171 if (currentVersion > version) { +172 deleteAndRecreate = true; +173 } +174 } catch (NumberFormatException ex) { +175 deleteAndRecreate = true; +176 } +177 } +178 +179 final NvdCveInfo batchInfo = updates.get(BATCH); +180 if (properties.isBatchUpdateMode() && batchInfo != null) { +181 final long lastUpdated = Long.parseLong(properties.getProperty(DataStoreMetaInfo.BATCH, "0")); +182 if (lastUpdated != batchInfo.getTimestamp()) { +183 deleteAndRecreate = true; +184 } +185 } +186 +187 if (deleteAndRecreate) { +188 setDoBatchUpdate(properties.isBatchUpdateMode()); +189 try { +190 deleteExistingData(); +191 } catch (IOException ex) { +192 final String msg = "Unable to delete existing data"; +193 Logger.getLogger(BatchUpdateTask.class.getName()).log(Level.WARNING, msg); +194 Logger.getLogger(BatchUpdateTask.class.getName()).log(Level.FINE, null, ex); +195 } +196 return updates; +197 } +198 +199 final long lastUpdated = Long.parseLong(properties.getProperty(DataStoreMetaInfo.LAST_UPDATED, "0")); +200 final Date now = new Date(); +201 final int days = Settings.getInt(Settings.KEYS.CVE_MODIFIED_VALID_FOR_DAYS, 7); +202 final int start = Settings.getInt(Settings.KEYS.CVE_START_YEAR, 2002); +203 final int end = Calendar.getInstance().get(Calendar.YEAR); +204 if (lastUpdated == updates.get(MODIFIED).getTimestamp()) { +205 updates.clear(); //we don't need to update anything. +206 setDoBatchUpdate(properties.isBatchUpdateMode()); +207 } else if (withinRange(lastUpdated, now.getTime(), days)) { +208 updates.get(MODIFIED).setNeedsUpdate(true); +209 if (properties.isBatchUpdateMode()) { +210 setDoBatchUpdate(false); +211 } else { +212 for (int i = start; i <= end; i++) { +213 updates.get(String.valueOf(i)).setNeedsUpdate(false); +214 } +215 } +216 } else if (properties.isBatchUpdateMode()) { +217 updates.get(MODIFIED).setNeedsUpdate(true); +218 setDoBatchUpdate(true); +219 } else { //we figure out which of the several XML files need to be downloaded. +220 updates.get(MODIFIED).setNeedsUpdate(false); +221 for (int i = start; i <= end; i++) { +222 final NvdCveInfo cve = updates.get(String.valueOf(i)); +223 long currentTimestamp = 0; +224 try { +225 currentTimestamp = Long.parseLong(properties.getProperty(DataStoreMetaInfo.LAST_UPDATED_BASE + String.valueOf(i), "0")); +226 } catch (NumberFormatException ex) { +227 final String msg = String.format("Error parsing '%s' '%s' from nvdcve.lastupdated", +228 DataStoreMetaInfo.LAST_UPDATED_BASE, String.valueOf(i)); +229 Logger.getLogger(BatchUpdateTask.class.getName()).log(Level.FINE, msg, ex); +230 } +231 if (currentTimestamp == cve.getTimestamp()) { +232 cve.setNeedsUpdate(false); //they default to true. +233 } +234 } +235 } +236 } catch (NumberFormatException ex) { +237 final String msg = "An invalid schema version or timestamp exists in the data.properties file."; +238 Logger.getLogger(BatchUpdateTask.class.getName()).log(Level.WARNING, msg); +239 Logger.getLogger(BatchUpdateTask.class.getName()).log(Level.FINE, null, ex); +240 setDoBatchUpdate(properties.isBatchUpdateMode()); +241 } +242 } +243 return updates; +244 } +245 +246 /** +247 * Retrieves the timestamps from the NVD CVE meta data file. +248 * +249 * @return the timestamp from the currently published nvdcve downloads page +250 * @throws MalformedURLException thrown if the URL for the NVD CCE Meta data +251 * is incorrect. +252 * @throws DownloadFailedException thrown if there is an error downloading +253 * the nvd cve meta data file +254 * @throws InvalidDataException thrown if there is an exception parsing the +255 * timestamps +256 * @throws InvalidSettingException thrown if the settings are invalid +257 */ +258 private Updateable retrieveCurrentTimestampsFromWeb() +259 throws MalformedURLException, DownloadFailedException, InvalidDataException, InvalidSettingException { +260 final Updateable updates = new Updateable(); +261 updates.add(BATCH, Settings.getString(Settings.KEYS.BATCH_UPDATE_URL), +262 null, false); +263 +264 final String url = Settings.getString(Settings.KEYS.CVE_MODIFIED_20_URL, ""); +265 if (!url.isEmpty()) { +266 updates.add(MODIFIED, url, +267 Settings.getString(Settings.KEYS.CVE_MODIFIED_12_URL), +268 false); +269 } +270 return updates; +271 } +272 }
      diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/DataStoreMetaInfo.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/DataStoreMetaInfo.html index 9d4027c0f..73c983092 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/DataStoreMetaInfo.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/DataStoreMetaInfo.html @@ -244,7 +244,7 @@ 234 * @return the properties file 235 */ 236 public static File getPropertiesFile() { -237 final File dataDirectory = Settings.getFile(Settings.KEYS.DATA_DIRECTORY); +237 final File dataDirectory = Settings.getDataFile(Settings.KEYS.DATA_DIRECTORY); 238 final File file = new File(dataDirectory, UPDATE_PROPERTIES_FILE); 239 return file; 240 } diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/DatabaseUpdater.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/DatabaseUpdater.html index 9fbf9086d..f789cfa28 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/DatabaseUpdater.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/DatabaseUpdater.html @@ -34,97 +34,67 @@ 24 import java.net.MalformedURLException; 25 import java.util.logging.Level; 26 import java.util.logging.Logger; -27 import org.owasp.dependencycheck.concurrency.DirectoryLockException; -28 import org.owasp.dependencycheck.concurrency.DirectorySpinLock; -29 import org.owasp.dependencycheck.concurrency.InvalidDirectoryException; -30 import org.owasp.dependencycheck.data.UpdateException; -31 import org.owasp.dependencycheck.utils.DownloadFailedException; -32 import org.owasp.dependencycheck.utils.FileUtils; -33 import org.owasp.dependencycheck.utils.Settings; -34 -35 /** -36 * Class responsible for updating the CPE and NVDCVE data stores. -37 * -38 * @author Jeremy Long (jeremy.long@owasp.org) -39 */ -40 public class DatabaseUpdater implements CachedWebDataSource { -41 -42 /** -43 * <p>Downloads the latest NVD CVE XML file from the web and imports it into -44 * the current CVE Database.</p> -45 * -46 * @throws UpdateException is thrown if there is an error updating the -47 * database -48 */ -49 @Override -50 public void update() throws UpdateException { -51 final File dataDir = Settings.getFile(Settings.KEYS.DATA_DIRECTORY); -52 DirectorySpinLock lock = null; -53 try { -54 lock = new DirectorySpinLock(dataDir); -55 } catch (InvalidDirectoryException ex) { -56 throw new UpdateException("Unable to obtain lock on the data directory", ex); -57 } catch (DirectoryLockException ex) { -58 throw new UpdateException("Unable to obtain exclusive lock on the data directory", ex); -59 } -60 -61 try { -62 lock.obtainSharedLock(); -63 final UpdateTask task = UpdateTaskFactory.getUpdateTask(); -64 -65 -66 if (task.isUpdateNeeded()) { -67 lock.release(); -68 lock.obtainExclusiveLock(); -69 if (task.shouldDeleteAndRecreate()) { -70 try { -71 deleteExistingData(); -72 } catch (IOException ex) { -73 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.WARNING, "Unable to delete the existing data directory"); -74 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, null, ex); -75 } -76 } -77 task.update(); -78 } -79 } catch (DirectoryLockException ex) { -80 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.WARNING, -81 "Unable to obtain lock on data directory, unable to update the data to use the most current data."); -82 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, null, ex); -83 } catch (MalformedURLException ex) { -84 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.WARNING, -85 "NVD CVE properties files contain an invalid URL, unable to update the data to use the most current data."); -86 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, null, ex); -87 } catch (DownloadFailedException ex) { -88 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.WARNING, -89 "Unable to download the NVD CVE data, unable to update the data to use the most current data."); -90 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, null, ex); -91 } finally { -92 if (lock != null) { -93 lock.release(); -94 } -95 } -96 } -97 -98 /** -99 * Deletes the existing data directories. -100 * -101 * @throws IOException thrown if the directory cannot be deleted -102 */ -103 protected void deleteExistingData() throws IOException { -104 File data = Settings.getFile(Settings.KEYS.CVE_DATA_DIRECTORY); -105 if (data.exists()) { -106 FileUtils.delete(data); -107 } -108 data = Settings.getFile(Settings.KEYS.CPE_DATA_DIRECTORY); -109 if (data.exists()) { -110 FileUtils.delete(data); -111 } -112 data = DataStoreMetaInfo.getPropertiesFile(); -113 if (data.exists()) { -114 FileUtils.delete(data); -115 } -116 } -117 } +27 import org.owasp.dependencycheck.data.UpdateException; +28 import org.owasp.dependencycheck.utils.DownloadFailedException; +29 import org.owasp.dependencycheck.utils.FileUtils; +30 import org.owasp.dependencycheck.utils.Settings; +31 +32 /** +33 * Class responsible for updating the CPE and NVDCVE data stores. +34 * +35 * @author Jeremy Long (jeremy.long@owasp.org) +36 */ +37 public class DatabaseUpdater implements CachedWebDataSource { +38 +39 /** +40 * <p>Downloads the latest NVD CVE XML file from the web and imports it into +41 * the current CVE Database.</p> +42 * +43 * @throws UpdateException is thrown if there is an error updating the +44 * database +45 */ +46 @Override +47 public void update() throws UpdateException { +48 try { +49 final UpdateTask task = UpdateTaskFactory.getUpdateTask(); +50 if (task.isUpdateNeeded()) { +51 if (task.shouldDeleteAndRecreate()) { +52 try { +53 deleteExistingData(); +54 } catch (IOException ex) { +55 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.WARNING, "Unable to delete the existing data directory"); +56 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, null, ex); +57 } +58 } +59 task.update(); +60 } +61 } catch (MalformedURLException ex) { +62 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.WARNING, +63 "NVD CVE properties files contain an invalid URL, unable to update the data to use the most current data."); +64 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, null, ex); +65 } catch (DownloadFailedException ex) { +66 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.WARNING, +67 "Unable to download the NVD CVE data, unable to update the data to use the most current data."); +68 Logger.getLogger(DatabaseUpdater.class.getName()).log(Level.FINE, null, ex); +69 } +70 } +71 +72 /** +73 * Deletes the existing data directories. +74 * +75 * @throws IOException thrown if the directory cannot be deleted +76 */ +77 protected void deleteExistingData() throws IOException { +78 File data = Settings.getDataFile(Settings.KEYS.CVE_DATA_DIRECTORY); +79 if (data.exists()) { +80 FileUtils.delete(data); +81 } +82 data = DataStoreMetaInfo.getPropertiesFile(); +83 if (data.exists()) { +84 FileUtils.delete(data); +85 } +86 } +87 }
      diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/StandardUpdateTask.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/StandardUpdateTask.html index cadd4b7e4..e549f5f39 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/StandardUpdateTask.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/StandardUpdateTask.html @@ -35,273 +35,383 @@ 25 import javax.xml.parsers.ParserConfigurationException; 26 import org.xml.sax.SAXException; 27 import java.net.MalformedURLException; -28 import java.net.URL; -29 import java.sql.SQLException; -30 import java.util.Calendar; -31 import java.util.Date; -32 import java.util.logging.Level; -33 import java.util.logging.Logger; -34 import org.owasp.dependencycheck.data.UpdateException; -35 import org.owasp.dependencycheck.data.nvdcve.CveDB; -36 import org.owasp.dependencycheck.utils.DownloadFailedException; -37 import org.owasp.dependencycheck.utils.Downloader; -38 import org.owasp.dependencycheck.utils.Settings; -39 import org.owasp.dependencycheck.data.nvdcve.DatabaseException; -40 import org.owasp.dependencycheck.utils.InvalidSettingException; -41 import static org.owasp.dependencycheck.data.update.DataStoreMetaInfo.MODIFIED; -42 -43 /** -44 * Class responsible for updating the CPE and NVDCVE data stores. -45 * -46 * @author Jeremy Long (jeremy.long@owasp.org) -47 */ -48 public class StandardUpdateTask extends AbstractUpdateTask { -49 -50 /** -51 * Constructs a new Standard Update Task. -52 * -53 * @param properties information about the data store -54 * @throws MalformedURLException thrown if a configured URL is malformed -55 * @throws DownloadFailedException thrown if a timestamp cannot be checked -56 * on a configured URL -57 * @throws UpdateException thrown if there is an exception generating the -58 * update task -59 */ -60 public StandardUpdateTask(DataStoreMetaInfo properties) throws MalformedURLException, DownloadFailedException, UpdateException { -61 super(properties); -62 } -63 -64 /** -65 * <p>Downloads the latest NVD CVE XML file from the web and imports it into -66 * the current CVE Database.</p> -67 * -68 * @throws UpdateException is thrown if there is an error updating the -69 * database -70 */ -71 @Override -72 public void update() throws UpdateException { -73 try { -74 int maxUpdates = 0; -75 for (NvdCveInfo cve : getUpdateable()) { -76 if (cve.getNeedsUpdate()) { -77 maxUpdates += 1; -78 } -79 } -80 if (maxUpdates > 3) { -81 Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.INFO, -82 "NVD CVE requires several updates; this could take a couple of minutes."); -83 } -84 if (maxUpdates > 0) { -85 openDataStores(); -86 } -87 -88 int count = 0; -89 for (NvdCveInfo cve : getUpdateable()) { -90 if (cve.getNeedsUpdate()) { -91 count += 1; -92 Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.INFO, -93 "Updating NVD CVE ({0} of {1})", new Object[]{count, maxUpdates}); -94 URL url = new URL(cve.getUrl()); -95 File outputPath = null; -96 File outputPath12 = null; -97 try { -98 Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.INFO, -99 "Downloading {0}", cve.getUrl()); -100 outputPath = File.createTempFile("cve" + cve.getId() + "_", ".xml"); -101 Downloader.fetchFile(url, outputPath); -102 -103 url = new URL(cve.getOldSchemaVersionUrl()); -104 outputPath12 = File.createTempFile("cve_1_2_" + cve.getId() + "_", ".xml"); -105 Downloader.fetchFile(url, outputPath12); -106 -107 Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.INFO, -108 "Processing {0}", cve.getUrl()); -109 -110 importXML(outputPath, outputPath12); -111 -112 getCveDB().commit(); -113 getCpeIndex().commit(); -114 getProperties().save(cve); -115 -116 Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.INFO, -117 "Completed update {0} of {1}", new Object[]{count, maxUpdates}); -118 } catch (FileNotFoundException ex) { -119 throw new UpdateException(ex); -120 } catch (ParserConfigurationException ex) { -121 throw new UpdateException(ex); -122 } catch (SAXException ex) { -123 throw new UpdateException(ex); -124 } catch (IOException ex) { -125 throw new UpdateException(ex); -126 } catch (SQLException ex) { -127 throw new UpdateException(ex); -128 } catch (DatabaseException ex) { +28 import java.sql.SQLException; +29 import java.util.Calendar; +30 import java.util.Date; +31 import java.util.HashSet; +32 import java.util.Set; +33 import java.util.concurrent.ExecutionException; +34 import java.util.concurrent.ExecutorService; +35 import java.util.concurrent.Executors; +36 import java.util.concurrent.Future; +37 import java.util.logging.Level; +38 import java.util.logging.Logger; +39 import org.owasp.dependencycheck.data.UpdateException; +40 import org.owasp.dependencycheck.data.nvdcve.CveDB; +41 import org.owasp.dependencycheck.utils.DownloadFailedException; +42 import org.owasp.dependencycheck.utils.Settings; +43 import org.owasp.dependencycheck.data.nvdcve.DatabaseException; +44 import org.owasp.dependencycheck.utils.InvalidSettingException; +45 import static org.owasp.dependencycheck.data.update.DataStoreMetaInfo.MODIFIED; +46 +47 /** +48 * Class responsible for updating the CPE and NVDCVE data stores. +49 * +50 * @author Jeremy Long (jeremy.long@owasp.org) +51 */ +52 public class StandardUpdateTask extends AbstractUpdateTask { +53 +54 /** +55 * The max thread pool size to use when downloading files. +56 */ +57 public static final int MAX_THREAD_POOL_SIZE = Settings.getInt(Settings.KEYS.MAX_DOWNLOAD_THREAD_POOL_SIZE, 3); +58 +59 /** +60 * Constructs a new Standard Update Task. +61 * +62 * @param properties information about the data store +63 * @throws MalformedURLException thrown if a configured URL is malformed +64 * @throws DownloadFailedException thrown if a timestamp cannot be checked +65 * on a configured URL +66 * @throws UpdateException thrown if there is an exception generating the +67 * update task +68 */ +69 public StandardUpdateTask(DataStoreMetaInfo properties) throws MalformedURLException, DownloadFailedException, UpdateException { +70 super(properties); +71 } +72 +73 /** +74 * <p>Downloads the latest NVD CVE XML file from the web and imports it into +75 * the current CVE Database.</p> +76 * +77 * @throws UpdateException is thrown if there is an error updating the +78 * database +79 */ +80 @Override +81 public void update() throws UpdateException { +82 int maxUpdates = 0; +83 try { +84 for (NvdCveInfo cve : getUpdateable()) { +85 if (cve.getNeedsUpdate()) { +86 maxUpdates += 1; +87 } +88 } +89 if (maxUpdates <= 0) { +90 return; +91 } +92 if (maxUpdates > 3) { +93 Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.INFO, +94 "NVD CVE requires several updates; this could take a couple of minutes."); +95 } +96 if (maxUpdates > 0) { +97 openDataStores(); +98 } +99 +100 final int poolSize = (MAX_THREAD_POOL_SIZE > maxUpdates) ? MAX_THREAD_POOL_SIZE : maxUpdates; +101 final ExecutorService executorService = Executors.newFixedThreadPool(poolSize); +102 final Set<Future<CallableDownloadTask>> futures = new HashSet<Future<CallableDownloadTask>>(maxUpdates); +103 +104 for (NvdCveInfo cve : getUpdateable()) { +105 if (cve.getNeedsUpdate()) { +106 final File file1; +107 final File file2; +108 try { +109 file1 = File.createTempFile("cve" + cve.getId() + "_", ".xml"); +110 file2 = File.createTempFile("cve_1_2_" + cve.getId() + "_", ".xml"); +111 } catch (IOException ex) { +112 throw new UpdateException(ex); +113 } +114 final CallableDownloadTask call = new CallableDownloadTask(cve, file1, file2); +115 futures.add(executorService.submit(call)); +116 } +117 } +118 +119 try { +120 for (Future<CallableDownloadTask> future : futures) { +121 final CallableDownloadTask filePair = future.get(); +122 String msg = String.format("Processing Started for NVD CVE - %s", filePair.getNvdCveInfo().getId()); +123 Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.INFO, msg); +124 try { +125 importXML(filePair.getFirst(), filePair.getSecond()); +126 getCveDB().commit(); +127 getProperties().save(filePair.getNvdCveInfo()); +128 } catch (FileNotFoundException ex) { 129 throw new UpdateException(ex); -130 } catch (ClassNotFoundException ex) { +130 } catch (ParserConfigurationException ex) { 131 throw new UpdateException(ex); -132 } finally { -133 boolean deleted = false; -134 try { -135 if (outputPath != null && outputPath.exists()) { -136 deleted = outputPath.delete(); -137 } -138 } finally { -139 if (outputPath != null && (outputPath.exists() || !deleted)) { -140 outputPath.deleteOnExit(); -141 } -142 } -143 try { -144 deleted = false; -145 if (outputPath12 != null && outputPath12.exists()) { -146 deleted = outputPath12.delete(); -147 } -148 } finally { -149 if (outputPath12 != null && (outputPath12.exists() || !deleted)) { -150 outputPath12.deleteOnExit(); -151 } -152 } -153 } -154 } -155 } -156 if (maxUpdates >= 1) { //ensure the modified file date gets written -157 getProperties().save(getUpdateable().get(MODIFIED)); -158 getCveDB().cleanupDatabase(); +132 } catch (SAXException ex) { +133 throw new UpdateException(ex); +134 } catch (IOException ex) { +135 throw new UpdateException(ex); +136 } catch (SQLException ex) { +137 throw new UpdateException(ex); +138 } catch (DatabaseException ex) { +139 throw new UpdateException(ex); +140 } catch (ClassNotFoundException ex) { +141 throw new UpdateException(ex); +142 } finally { +143 filePair.cleanup(); +144 } +145 msg = String.format("Processing Complete for NVD CVE - %s", filePair.getNvdCveInfo().getId()); +146 Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.INFO, msg); +147 } +148 } catch (InterruptedException ex) { +149 executorService.shutdownNow(); +150 Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.FINE, "Thread was interupted", ex); +151 throw new UpdateException(ex); +152 } catch (ExecutionException ex) { +153 executorService.shutdownNow(); +154 Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.SEVERE, null, ex); +155 throw new UpdateException(ex); +156 } finally { +157 //yes, this should likely not be in the finally because of the shutdownNow above. +158 executorService.shutdown(); 159 } -160 } catch (MalformedURLException ex) { -161 throw new UpdateException(ex); -162 } finally { -163 closeDataStores(); -164 } -165 } -166 -167 /** -168 * Determines if the index needs to be updated. This is done by fetching the -169 * NVD CVE meta data and checking the last update date. If the data needs to -170 * be refreshed this method will return the NvdCveUrl for the files that -171 * need to be updated. -172 * -173 * @return the collection of files that need to be updated -174 * @throws MalformedURLException is thrown if the URL for the NVD CVE Meta -175 * data is incorrect -176 * @throws DownloadFailedException is thrown if there is an error. -177 * downloading the NVD CVE download data file -178 * @throws UpdateException Is thrown if there is an issue with the last -179 * updated properties file -180 */ -181 @Override -182 protected Updateable updatesNeeded() throws MalformedURLException, DownloadFailedException, UpdateException { -183 Updateable updates = null; -184 try { -185 updates = retrieveCurrentTimestampsFromWeb(); -186 } catch (InvalidDataException ex) { -187 final String msg = "Unable to retrieve valid timestamp from nvd cve downloads page"; -188 Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.FINE, msg, ex); -189 throw new DownloadFailedException(msg, ex); -190 } catch (InvalidSettingException ex) { -191 Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.FINE, "Invalid setting found when retrieving timestamps", ex); -192 throw new DownloadFailedException("Invalid settings", ex); -193 } -194 -195 if (updates == null) { -196 throw new DownloadFailedException("Unable to retrieve the timestamps of the currently published NVD CVE data"); -197 } -198 final DataStoreMetaInfo properties = getProperties(); -199 if (!properties.isEmpty()) { -200 try { -201 float version; -202 -203 if (properties.getProperty("version") == null) { -204 setDeleteAndRecreate(true); -205 } else { -206 try { -207 version = Float.parseFloat(properties.getProperty("version")); -208 final float currentVersion = Float.parseFloat(CveDB.DB_SCHEMA_VERSION); -209 if (currentVersion > version) { -210 setDeleteAndRecreate(true); -211 } -212 } catch (NumberFormatException ex) { -213 setDeleteAndRecreate(true); -214 } -215 } -216 -217 if (shouldDeleteAndRecreate()) { -218 return updates; -219 } -220 -221 final long lastUpdated = Long.parseLong(properties.getProperty(DataStoreMetaInfo.LAST_UPDATED, "0")); -222 final Date now = new Date(); -223 final int days = Settings.getInt(Settings.KEYS.CVE_MODIFIED_VALID_FOR_DAYS, 7); -224 if (lastUpdated == updates.getTimeStamp(MODIFIED)) { -225 updates.clear(); //we don't need to update anything. -226 } else if (withinRange(lastUpdated, now.getTime(), days)) { -227 for (NvdCveInfo entry : updates) { -228 if (MODIFIED.equals(entry.getId())) { -229 entry.setNeedsUpdate(true); -230 } else { -231 entry.setNeedsUpdate(false); -232 } -233 } -234 } else { //we figure out which of the several XML files need to be downloaded. -235 for (NvdCveInfo entry : updates) { -236 if (MODIFIED.equals(entry.getId())) { -237 entry.setNeedsUpdate(true); -238 } else { -239 long currentTimestamp = 0; -240 try { -241 currentTimestamp = Long.parseLong(properties.getProperty(DataStoreMetaInfo.LAST_UPDATED_BASE + entry.getId(), "0")); -242 } catch (NumberFormatException ex) { -243 final String msg = String.format("Error parsing '%s' '%s' from nvdcve.lastupdated", -244 DataStoreMetaInfo.LAST_UPDATED_BASE, entry.getId()); -245 Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.FINE, msg, ex); -246 } -247 if (currentTimestamp == entry.getTimestamp()) { -248 entry.setNeedsUpdate(false); -249 } -250 } -251 } -252 } -253 } catch (NumberFormatException ex) { -254 final String msg = "An invalid schema version or timestamp exists in the data.properties file."; -255 Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.WARNING, msg); -256 Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.FINE, null, ex); -257 } -258 } -259 return updates; -260 } -261 -262 /** -263 * Retrieves the timestamps from the NVD CVE meta data file. -264 * -265 * @return the timestamp from the currently published nvdcve downloads page -266 * @throws MalformedURLException thrown if the URL for the NVD CCE Meta data -267 * is incorrect. -268 * @throws DownloadFailedException thrown if there is an error downloading -269 * the nvd cve meta data file -270 * @throws InvalidDataException thrown if there is an exception parsing the -271 * timestamps -272 * @throws InvalidSettingException thrown if the settings are invalid -273 */ -274 private Updateable retrieveCurrentTimestampsFromWeb() -275 throws MalformedURLException, DownloadFailedException, InvalidDataException, InvalidSettingException { -276 -277 final Updateable updates = new Updateable(); -278 updates.add(MODIFIED, Settings.getString(Settings.KEYS.CVE_MODIFIED_20_URL), -279 Settings.getString(Settings.KEYS.CVE_MODIFIED_12_URL), -280 false); -281 -282 final int start = Settings.getInt(Settings.KEYS.CVE_START_YEAR); -283 final int end = Calendar.getInstance().get(Calendar.YEAR); -284 final String baseUrl20 = Settings.getString(Settings.KEYS.CVE_SCHEMA_2_0); -285 final String baseUrl12 = Settings.getString(Settings.KEYS.CVE_SCHEMA_1_2); -286 for (int i = start; i <= end; i++) { -287 updates.add(Integer.toString(i), String.format(baseUrl20, i), -288 String.format(baseUrl12, i), -289 true); -290 } -291 -292 return updates; -293 } -294 } +160 +161 if (maxUpdates >= 1) { //ensure the modified file date gets written +162 getProperties().save(getUpdateable().get(MODIFIED)); +163 getCveDB().cleanupDatabase(); +164 } +165 } finally { +166 closeDataStores(); +167 } +168 } +169 +170 //<editor-fold defaultstate="collapsed" desc="OLD version of update() - not multithreaded"> +171 /* +172 * TODO - remove this +173 public void update() throws UpdateException { +174 try { +175 int maxUpdates = 0; +176 for (NvdCveInfo cve : getUpdateable()) { +177 if (cve.getNeedsUpdate()) { +178 maxUpdates += 1; +179 } +180 } +181 if (maxUpdates > 3) { +182 Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.INFO, +183 "NVD CVE requires several updates; this could take a couple of minutes."); +184 } +185 if (maxUpdates > 0) { +186 openDataStores(); +187 } +188 +189 int count = 0; +190 for (NvdCveInfo cve : getUpdateable()) { +191 if (cve.getNeedsUpdate()) { +192 count += 1; +193 Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.INFO, +194 "Updating NVD CVE ({0} of {1})", new Object[]{count, maxUpdates}); +195 URL url = new URL(cve.getUrl()); +196 File outputPath = null; +197 File outputPath12 = null; +198 try { +199 Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.INFO, +200 "Downloading {0}", cve.getUrl()); +201 outputPath = File.createTempFile("cve" + cve.getId() + "_", ".xml"); +202 Downloader.fetchFile(url, outputPath); +203 +204 url = new URL(cve.getOldSchemaVersionUrl()); +205 outputPath12 = File.createTempFile("cve_1_2_" + cve.getId() + "_", ".xml"); +206 Downloader.fetchFile(url, outputPath12); +207 +208 Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.INFO, +209 "Processing {0}", cve.getUrl()); +210 +211 importXML(outputPath, outputPath12); +212 +213 getCveDB().commit(); +214 getProperties().save(cve); +215 +216 Logger.getLogger(StandardUpdateTask.class.getName()).log(Level.INFO, +217 "Completed update {0} of {1}", new Object[]{count, maxUpdates}); +218 } catch (FileNotFoundException ex) { +219 throw new UpdateException(ex); +220 } catch (ParserConfigurationException ex) { +221 throw new UpdateException(ex); +222 } catch (SAXException ex) { +223 throw new UpdateException(ex); +224 } catch (IOException ex) { +225 throw new UpdateException(ex); +226 } catch (SQLException ex) { +227 throw new UpdateException(ex); +228 } catch (DatabaseException ex) { +229 throw new UpdateException(ex); +230 } catch (ClassNotFoundException ex) { +231 throw new UpdateException(ex); +232 } finally { +233 boolean deleted = false; +234 try { +235 if (outputPath != null && outputPath.exists()) { +236 deleted = outputPath.delete(); +237 } +238 } finally { +239 if (outputPath != null && (outputPath.exists() || !deleted)) { +240 outputPath.deleteOnExit(); +241 } +242 } +243 try { +244 deleted = false; +245 if (outputPath12 != null && outputPath12.exists()) { +246 deleted = outputPath12.delete(); +247 } +248 } finally { +249 if (outputPath12 != null && (outputPath12.exists() || !deleted)) { +250 outputPath12.deleteOnExit(); +251 } +252 } +253 } +254 } +255 } +256 if (maxUpdates >= 1) { //ensure the modified file date gets written +257 getProperties().save(getUpdateable().get(MODIFIED)); +258 getCveDB().cleanupDatabase(); +259 } +260 } catch (MalformedURLException ex) { +261 throw new UpdateException(ex); +262 } finally { +263 closeDataStores(); +264 } +265 } +266 */ +267 //</editor-fold> +268 /** +269 * Determines if the index needs to be updated. This is done by fetching the +270 * NVD CVE meta data and checking the last update date. If the data needs to +271 * be refreshed this method will return the NvdCveUrl for the files that +272 * need to be updated. +273 * +274 * @return the collection of files that need to be updated +275 * @throws MalformedURLException is thrown if the URL for the NVD CVE Meta +276 * data is incorrect +277 * @throws DownloadFailedException is thrown if there is an error. +278 * downloading the NVD CVE download data file +279 * @throws UpdateException Is thrown if there is an issue with the last +280 * updated properties file +281 */ +282 @Override +283 protected Updateable updatesNeeded() throws MalformedURLException, DownloadFailedException, UpdateException { +284 Updateable updates = null; +285 try { +286 updates = retrieveCurrentTimestampsFromWeb(); +287 } catch (InvalidDataException ex) { +288 final String msg = "Unable to retrieve valid timestamp from nvd cve downloads page"; +289 Logger +290 .getLogger(StandardUpdateTask.class +291 .getName()).log(Level.FINE, msg, ex); +292 throw new DownloadFailedException(msg, ex); +293 } catch (InvalidSettingException ex) { +294 Logger.getLogger(StandardUpdateTask.class +295 .getName()).log(Level.FINE, "Invalid setting found when retrieving timestamps", ex); +296 throw new DownloadFailedException( +297 "Invalid settings", ex); +298 } +299 +300 if (updates == null) { +301 throw new DownloadFailedException("Unable to retrieve the timestamps of the currently published NVD CVE data"); +302 } +303 final DataStoreMetaInfo properties = getProperties(); +304 if (!properties.isEmpty()) { +305 try { +306 float version; +307 +308 if (properties.getProperty("version") == null) { +309 setDeleteAndRecreate(true); +310 } else { +311 try { +312 version = Float.parseFloat(properties.getProperty("version")); +313 final float currentVersion = Float.parseFloat(CveDB.DB_SCHEMA_VERSION); +314 if (currentVersion > version) { +315 setDeleteAndRecreate(true); +316 } +317 } catch (NumberFormatException ex) { +318 setDeleteAndRecreate(true); +319 } +320 } +321 +322 if (shouldDeleteAndRecreate()) { +323 return updates; +324 } +325 +326 final long lastUpdated = Long.parseLong(properties.getProperty(DataStoreMetaInfo.LAST_UPDATED, "0")); +327 final Date now = new Date(); +328 final int days = Settings.getInt(Settings.KEYS.CVE_MODIFIED_VALID_FOR_DAYS, 7); +329 if (lastUpdated == updates.getTimeStamp(MODIFIED)) { +330 updates.clear(); //we don't need to update anything. +331 } else if (withinRange(lastUpdated, now.getTime(), days)) { +332 for (NvdCveInfo entry : updates) { +333 if (MODIFIED.equals(entry.getId())) { +334 entry.setNeedsUpdate(true); +335 } else { +336 entry.setNeedsUpdate(false); +337 } +338 } +339 } else { //we figure out which of the several XML files need to be downloaded. +340 for (NvdCveInfo entry : updates) { +341 if (MODIFIED.equals(entry.getId())) { +342 entry.setNeedsUpdate(true); +343 } else { +344 long currentTimestamp = 0; +345 try { +346 currentTimestamp = Long.parseLong(properties.getProperty(DataStoreMetaInfo.LAST_UPDATED_BASE + entry.getId(), "0")); +347 } catch (NumberFormatException ex) { +348 final String msg = String.format("Error parsing '%s' '%s' from nvdcve.lastupdated", +349 DataStoreMetaInfo.LAST_UPDATED_BASE, entry.getId()); +350 Logger +351 .getLogger(StandardUpdateTask.class +352 .getName()).log(Level.FINE, msg, ex); +353 } +354 if (currentTimestamp == entry.getTimestamp()) { +355 entry.setNeedsUpdate(false); +356 } +357 } +358 } +359 } +360 } catch (NumberFormatException ex) { +361 final String msg = "An invalid schema version or timestamp exists in the data.properties file."; +362 Logger +363 .getLogger(StandardUpdateTask.class +364 .getName()).log(Level.WARNING, msg); +365 Logger.getLogger(StandardUpdateTask.class +366 .getName()).log(Level.FINE, null, ex); +367 } +368 } +369 return updates; +370 } +371 +372 /** +373 * Retrieves the timestamps from the NVD CVE meta data file. +374 * +375 * @return the timestamp from the currently published nvdcve downloads page +376 * @throws MalformedURLException thrown if the URL for the NVD CCE Meta data +377 * is incorrect. +378 * @throws DownloadFailedException thrown if there is an error downloading +379 * the nvd cve meta data file +380 * @throws InvalidDataException thrown if there is an exception parsing the +381 * timestamps +382 * @throws InvalidSettingException thrown if the settings are invalid +383 */ +384 private Updateable retrieveCurrentTimestampsFromWeb() +385 throws MalformedURLException, DownloadFailedException, InvalidDataException, InvalidSettingException { +386 +387 final Updateable updates = new Updateable(); +388 updates.add(MODIFIED, Settings.getString(Settings.KEYS.CVE_MODIFIED_20_URL), +389 Settings.getString(Settings.KEYS.CVE_MODIFIED_12_URL), +390 false); +391 +392 final int start = Settings.getInt(Settings.KEYS.CVE_START_YEAR); +393 final int end = Calendar.getInstance().get(Calendar.YEAR); +394 final String baseUrl20 = Settings.getString(Settings.KEYS.CVE_SCHEMA_2_0); +395 final String baseUrl12 = Settings.getString(Settings.KEYS.CVE_SCHEMA_1_2); +396 for (int i = start; i <= end; i++) { +397 updates.add(Integer.toString(i), String.format(baseUrl20, i), +398 String.format(baseUrl12, i), +399 true); +400 } +401 +402 return updates; +403 } +404 }
      diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/UpdateTaskFactory.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/UpdateTaskFactory.html index 73d3f9530..22ec9d97e 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/UpdateTaskFactory.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/UpdateTaskFactory.html @@ -60,11 +60,11 @@ 50 public static UpdateTask getUpdateTask() throws MalformedURLException, DownloadFailedException, UpdateException { 51 final UpdateTask task; 52 final DataStoreMetaInfo properties = new DataStoreMetaInfo(); -53 if (properties.isBatchUpdateMode()) { -54 task = new BatchUpdateTask(properties); -55 } else { -56 task = new StandardUpdateTask(properties); -57 } +53 // if (properties.isBatchUpdateMode()) { +54 // task = new BatchUpdateTask(properties); +55 // } else { +56 task = new StandardUpdateTask(properties); +57 // } 58 return task; 59 } 60 } diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/package-frame.html index 0250c3b25..029356918 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.data.update + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.data.update @@ -20,6 +20,9 @@
    • BatchUpdateTask +
    • +
    • + CallableDownloadTask
    • DataStoreMetaInfo diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/package-summary.html index bc3088046..d406a7223 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/data/update/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/data/update/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.data.update + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.data.update @@ -44,6 +44,11 @@ BatchUpdateTask + + + + CallableDownloadTask + diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/dependency/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/dependency/package-frame.html index b4f34ab21..6aab2d62a 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/dependency/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/dependency/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.dependency + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.dependency diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/dependency/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/dependency/package-summary.html index 82d76f7fb..5a02760b5 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/dependency/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/dependency/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.dependency + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.dependency diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/jaxb/pom/generated/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/jaxb/pom/generated/package-frame.html index aab76446e..578ec56f8 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/jaxb/pom/generated/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/jaxb/pom/generated/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.jaxb.pom.generated + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.jaxb.pom.generated diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/jaxb/pom/generated/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/jaxb/pom/generated/package-summary.html index 8fe0695fb..aa283ebdd 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/jaxb/pom/generated/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/jaxb/pom/generated/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.jaxb.pom.generated + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.jaxb.pom.generated diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/jaxb/pom/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/jaxb/pom/package-frame.html index 22020d2ca..d1a43a76a 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/jaxb/pom/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/jaxb/pom/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.jaxb.pom + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.jaxb.pom diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/jaxb/pom/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/jaxb/pom/package-summary.html index 4cfb82964..612b7ed19 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/jaxb/pom/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/jaxb/pom/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.jaxb.pom + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.jaxb.pom diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/package-frame.html index 569fc4cb9..4197ade42 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/package-summary.html index 33b5b7267..0fd7c08cb 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/reporting/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/reporting/package-frame.html index df9656564..9c692ef5c 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/reporting/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/reporting/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.reporting + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.reporting diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/reporting/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/reporting/package-summary.html index cf1eb0e46..33b41c9b2 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/reporting/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/reporting/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.reporting + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.reporting diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/utils/Settings.html b/dependency-check-core/xref/org/owasp/dependencycheck/utils/Settings.html index 2321776ba..0777d4920 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/utils/Settings.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/utils/Settings.html @@ -83,373 +83,395 @@ 73 */ 74 public static final String BATCH_UPDATE_URL = "batch.update.url"; 75 /** -76 * The properties key for the path where the CPE Lucene Index will be +76 * The properties key for the path where the CVE H2 database will be 77 * stored. 78 */ -79 public static final String CPE_DATA_DIRECTORY = "data.cpe"; +79 public static final String CVE_DATA_DIRECTORY = "data.cve"; 80 /** -81 * The properties key for the path where the CVE H2 database will be -82 * stored. +81 * The properties key for the URL to retrieve the "meta" data from about +82 * the CVE entries. 83 */ -84 public static final String CVE_DATA_DIRECTORY = "data.cve"; +84 public static final String CVE_META_URL = "cve.url.meta"; 85 /** -86 * The properties key for the URL to retrieve the "meta" data from about -87 * the CVE entries. +86 * The properties key for the URL to retrieve the recently modified and +87 * added CVE entries (last 8 days) using the 2.0 schema. 88 */ -89 public static final String CVE_META_URL = "cve.url.meta"; +89 public static final String CVE_MODIFIED_20_URL = "cve.url-2.0.modified"; 90 /** 91 * The properties key for the URL to retrieve the recently modified and -92 * added CVE entries (last 8 days) using the 2.0 schema. +92 * added CVE entries (last 8 days) using the 1.2 schema. 93 */ -94 public static final String CVE_MODIFIED_20_URL = "cve.url-2.0.modified"; +94 public static final String CVE_MODIFIED_12_URL = "cve.url-1.2.modified"; 95 /** 96 * The properties key for the URL to retrieve the recently modified and -97 * added CVE entries (last 8 days) using the 1.2 schema. +97 * added CVE entries (last 8 days). 98 */ -99 public static final String CVE_MODIFIED_12_URL = "cve.url-1.2.modified"; +99 public static final String CVE_MODIFIED_VALID_FOR_DAYS = "cve.url.modified.validfordays"; 100 /** -101 * The properties key for the URL to retrieve the recently modified and -102 * added CVE entries (last 8 days). -103 */ -104 public static final String CVE_MODIFIED_VALID_FOR_DAYS = "cve.url.modified.validfordays"; -105 /** -106 * The properties key for the telling us how many cvr.url.* URLs exists. -107 * This is used in combination with CVE_BASE_URL to be able to retrieve -108 * the URLs for all of the files that make up the NVD CVE listing. -109 */ -110 public static final String CVE_START_YEAR = "cve.startyear"; -111 /** -112 * The properties key for the CVE schema version 1.2. -113 */ -114 public static final String CVE_SCHEMA_1_2 = "cve.url-1.2.base"; -115 /** -116 * The properties key for the CVE schema version 2.0. -117 */ -118 public static final String CVE_SCHEMA_2_0 = "cve.url-2.0.base"; -119 /** -120 * The properties key for the proxy url. +101 * The properties key for the telling us how many cvr.url.* URLs exists. +102 * This is used in combination with CVE_BASE_URL to be able to retrieve +103 * the URLs for all of the files that make up the NVD CVE listing. +104 */ +105 public static final String CVE_START_YEAR = "cve.startyear"; +106 /** +107 * The properties key for the CVE schema version 1.2. +108 */ +109 public static final String CVE_SCHEMA_1_2 = "cve.url-1.2.base"; +110 /** +111 * The properties key for the CVE schema version 2.0. +112 */ +113 public static final String CVE_SCHEMA_2_0 = "cve.url-2.0.base"; +114 /** +115 * The properties key for the proxy url. +116 */ +117 public static final String PROXY_URL = "proxy.url"; +118 /** +119 * The properties key for the proxy port - this must be an integer +120 * value. 121 */ -122 public static final String PROXY_URL = "proxy.url"; +122 public static final String PROXY_PORT = "proxy.port"; 123 /** -124 * The properties key for the proxy port - this must be an integer -125 * value. -126 */ -127 public static final String PROXY_PORT = "proxy.port"; -128 /** -129 * The properties key for the proxy username. -130 */ -131 public static final String PROXY_USERNAME = "proxy.username"; -132 /** -133 * The properties key for the proxy password. -134 */ -135 public static final String PROXY_PASSWORD = "proxy.password"; -136 /** -137 * The properties key for the connection timeout. -138 */ -139 public static final String CONNECTION_TIMEOUT = "connection.timeout"; -140 /** -141 * The location of the temporary directory. -142 */ -143 public static final String TEMP_DIRECTORY = "temp.directory"; -144 } -145 /** -146 * The properties file location. -147 */ -148 private static final String PROPERTIES_FILE = "dependencycheck.properties"; -149 /** -150 * The singleton instance variable. -151 */ -152 private static final Settings INSTANCE = new Settings(); -153 /** -154 * The properties. -155 */ -156 private Properties props = null; -157 -158 /** -159 * Private constructor for the Settings class. This class loads the -160 * properties files. -161 */ -162 private Settings() { -163 InputStream in = null; -164 props = new Properties(); -165 try { -166 in = this.getClass().getClassLoader().getResourceAsStream(PROPERTIES_FILE); -167 props.load(in); -168 } catch (IOException ex) { -169 Logger.getLogger(Settings.class.getName()).log(Level.SEVERE, "Unable to load default settings."); -170 Logger.getLogger(Settings.class.getName()).log(Level.FINE, null, ex); -171 } finally { -172 if (in != null) { -173 try { -174 in.close(); -175 } catch (IOException ex) { -176 Logger.getLogger(Settings.class.getName()).log(Level.FINEST, null, ex); -177 } -178 } -179 } -180 } -181 -182 /** -183 * Sets a property value. -184 * -185 * @param key the key for the property -186 * @param value the value for the property -187 */ -188 public static void setString(String key, String value) { -189 INSTANCE.props.setProperty(key, value); -190 } -191 -192 /** -193 * Sets a property value. -194 * -195 * @param key the key for the property -196 * @param value the value for the property -197 */ -198 public static void setBoolean(String key, boolean value) { -199 if (value) { -200 INSTANCE.props.setProperty(key, Boolean.TRUE.toString()); -201 } else { -202 INSTANCE.props.setProperty(key, Boolean.FALSE.toString()); -203 } -204 } -205 -206 /** -207 * Merges a new properties file into the current properties. This method -208 * allows for the loading of a user provided properties file.<br/><br/> -209 * Note: even if using this method - system properties will be loaded before -210 * properties loaded from files. -211 * -212 * @param filePath the path to the properties file to merge. -213 * @throws FileNotFoundException is thrown when the filePath points to a -214 * non-existent file -215 * @throws IOException is thrown when there is an exception loading/merging -216 * the properties -217 */ -218 public static void mergeProperties(File filePath) throws FileNotFoundException, IOException { -219 final FileInputStream fis = new FileInputStream(filePath); -220 mergeProperties(fis); -221 } -222 -223 /** -224 * Merges a new properties file into the current properties. This method -225 * allows for the loading of a user provided properties file.<br/><br/> -226 * Note: even if using this method - system properties will be loaded before -227 * properties loaded from files. -228 * -229 * @param filePath the path to the properties file to merge. -230 * @throws FileNotFoundException is thrown when the filePath points to a -231 * non-existent file -232 * @throws IOException is thrown when there is an exception loading/merging -233 * the properties -234 */ -235 public static void mergeProperties(String filePath) throws FileNotFoundException, IOException { -236 final FileInputStream fis = new FileInputStream(filePath); -237 mergeProperties(fis); -238 } -239 -240 /** -241 * Merges a new properties file into the current properties. This method -242 * allows for the loading of a user provided properties file.<br/><br/> -243 * Note: even if using this method - system properties will be loaded before -244 * properties loaded from files. -245 * -246 * @param stream an Input Stream pointing at a properties file to merge -247 * @throws IOException is thrown when there is an exception loading/merging -248 * the properties -249 */ -250 public static void mergeProperties(InputStream stream) throws IOException { -251 INSTANCE.props.load(stream); -252 } -253 -254 /** -255 * Returns a value from the properties file as a File object. If the value -256 * was specified as a system property or passed in via the -Dprop=value -257 * argument - this method will return the value from the system properties -258 * before the values in the contained configuration file. -259 * -260 * This method will also replace a leading "[JAR]\" sequence with the path -261 * to the folder containing the JAR file containing this class. +124 * The properties key for the proxy username. +125 */ +126 public static final String PROXY_USERNAME = "proxy.username"; +127 /** +128 * The properties key for the proxy password. +129 */ +130 public static final String PROXY_PASSWORD = "proxy.password"; +131 /** +132 * The properties key for the connection timeout. +133 */ +134 public static final String CONNECTION_TIMEOUT = "connection.timeout"; +135 /** +136 * The location of the temporary directory. +137 */ +138 public static final String TEMP_DIRECTORY = "temp.directory"; +139 /** +140 * The maximum number of threads to allocate when downloading files. +141 */ +142 public static final String MAX_DOWNLOAD_THREAD_POOL_SIZE = "max.download.threads"; +143 /** +144 * The key for a list of suppression files. +145 */ +146 public static final String SUPPRESSION_FILE = "suppression.file"; +147 } +148 /** +149 * The properties file location. +150 */ +151 private static final String PROPERTIES_FILE = "dependencycheck.properties"; +152 /** +153 * The singleton instance variable. +154 */ +155 private static final Settings INSTANCE = new Settings(); +156 /** +157 * The properties. +158 */ +159 private Properties props = null; +160 +161 /** +162 * Private constructor for the Settings class. This class loads the +163 * properties files. +164 */ +165 private Settings() { +166 InputStream in = null; +167 props = new Properties(); +168 try { +169 in = this.getClass().getClassLoader().getResourceAsStream(PROPERTIES_FILE); +170 props.load(in); +171 } catch (IOException ex) { +172 Logger.getLogger(Settings.class.getName()).log(Level.SEVERE, "Unable to load default settings."); +173 Logger.getLogger(Settings.class.getName()).log(Level.FINE, null, ex); +174 } finally { +175 if (in != null) { +176 try { +177 in.close(); +178 } catch (IOException ex) { +179 Logger.getLogger(Settings.class.getName()).log(Level.FINEST, null, ex); +180 } +181 } +182 } +183 } +184 +185 /** +186 * Sets a property value. +187 * +188 * @param key the key for the property +189 * @param value the value for the property +190 */ +191 public static void setString(String key, String value) { +192 INSTANCE.props.setProperty(key, value); +193 } +194 +195 /** +196 * Sets a property value. +197 * +198 * @param key the key for the property +199 * @param value the value for the property +200 */ +201 public static void setBoolean(String key, boolean value) { +202 if (value) { +203 INSTANCE.props.setProperty(key, Boolean.TRUE.toString()); +204 } else { +205 INSTANCE.props.setProperty(key, Boolean.FALSE.toString()); +206 } +207 } +208 +209 /** +210 * Merges a new properties file into the current properties. This method +211 * allows for the loading of a user provided properties file.<br/><br/> +212 * Note: even if using this method - system properties will be loaded before +213 * properties loaded from files. +214 * +215 * @param filePath the path to the properties file to merge. +216 * @throws FileNotFoundException is thrown when the filePath points to a +217 * non-existent file +218 * @throws IOException is thrown when there is an exception loading/merging +219 * the properties +220 */ +221 public static void mergeProperties(File filePath) throws FileNotFoundException, IOException { +222 final FileInputStream fis = new FileInputStream(filePath); +223 mergeProperties(fis); +224 } +225 +226 /** +227 * Merges a new properties file into the current properties. This method +228 * allows for the loading of a user provided properties file.<br/><br/> +229 * Note: even if using this method - system properties will be loaded before +230 * properties loaded from files. +231 * +232 * @param filePath the path to the properties file to merge. +233 * @throws FileNotFoundException is thrown when the filePath points to a +234 * non-existent file +235 * @throws IOException is thrown when there is an exception loading/merging +236 * the properties +237 */ +238 public static void mergeProperties(String filePath) throws FileNotFoundException, IOException { +239 final FileInputStream fis = new FileInputStream(filePath); +240 mergeProperties(fis); +241 } +242 +243 /** +244 * Merges a new properties file into the current properties. This method +245 * allows for the loading of a user provided properties file.<br/><br/> +246 * Note: even if using this method - system properties will be loaded before +247 * properties loaded from files. +248 * +249 * @param stream an Input Stream pointing at a properties file to merge +250 * @throws IOException is thrown when there is an exception loading/merging +251 * the properties +252 */ +253 public static void mergeProperties(InputStream stream) throws IOException { +254 INSTANCE.props.load(stream); +255 } +256 +257 /** +258 * Returns a value from the properties file as a File object. If the value +259 * was specified as a system property or passed in via the -Dprop=value +260 * argument - this method will return the value from the system properties +261 * before the values in the contained configuration file. 262 * 263 * @param key the key to lookup within the properties file 264 * @return the property from the properties file converted to a File object 265 */ 266 public static File getFile(String key) { 267 final String file = getString(key); -268 final String baseDir = getString(Settings.KEYS.DATA_DIRECTORY); -269 if (baseDir != null) { -270 if (baseDir.startsWith("[JAR]/")) { -271 final File jarPath = getJarPath(); -272 final File newBase = new File(jarPath, baseDir.substring(6)); -273 if (Settings.KEYS.DATA_DIRECTORY.equals(key)) { -274 return newBase; -275 } -276 return new File(newBase, file); -277 } -278 if (Settings.KEYS.DATA_DIRECTORY.equals(key)) { -279 return new File(baseDir); -280 } -281 return new File(baseDir, file); -282 } -283 return new File(file); -284 } -285 -286 /** -287 * Attempts to retrieve the folder containing the Jar file containing the -288 * Settings class. -289 * -290 * @return a File object -291 */ -292 private static File getJarPath() { -293 final String jarPath = Settings.class.getProtectionDomain().getCodeSource().getLocation().getPath(); -294 String decodedPath = "."; -295 try { -296 decodedPath = URLDecoder.decode(jarPath, "UTF-8"); -297 } catch (UnsupportedEncodingException ex) { -298 Logger.getLogger(Settings.class.getName()).log(Level.FINEST, null, ex); -299 } -300 -301 final File path = new File(decodedPath); -302 if (path.getName().toLowerCase().endsWith(".jar")) { -303 return path.getParentFile(); -304 } else { -305 return new File("."); -306 } -307 } -308 -309 /** -310 * Returns a value from the properties file. If the value was specified as a -311 * system property or passed in via the -Dprop=value argument - this method -312 * will return the value from the system properties before the values in the -313 * contained configuration file. -314 * -315 * @param key the key to lookup within the properties file -316 * @param defaultValue the default value for the requested property -317 * @return the property from the properties file -318 */ -319 public static String getString(String key, String defaultValue) { -320 final String str = System.getProperty(key, INSTANCE.props.getProperty(key, defaultValue)); -321 return str; -322 } -323 -324 /** -325 * Returns the temporary directory. -326 * -327 * @return the temporary directory -328 */ -329 public static File getTempDirectory() { -330 return new File(Settings.getString(Settings.KEYS.TEMP_DIRECTORY, System.getProperty("java.io.tmpdir"))); -331 } -332 -333 /** -334 * Returns a value from the properties file. If the value was specified as a -335 * system property or passed in via the -Dprop=value argument - this method -336 * will return the value from the system properties before the values in the -337 * contained configuration file. -338 * -339 * @param key the key to lookup within the properties file -340 * @return the property from the properties file -341 */ -342 public static String getString(String key) { -343 return System.getProperty(key, INSTANCE.props.getProperty(key)); +268 if (file == null) { +269 return null; +270 } +271 return new File(file); +272 } +273 +274 /** +275 * Returns a value from the properties file as a File object. If the value +276 * was specified as a system property or passed in via the -Dprop=value +277 * argument - this method will return the value from the system properties +278 * before the values in the contained configuration file. +279 * +280 * This method will check the configured base directory and will use this as +281 * the base of the file path. Additionally, if the base directory begins +282 * with a leading "[JAR]\" sequence with the path to the folder containing +283 * the JAR file containing this class. +284 * +285 * @param key the key to lookup within the properties file +286 * @return the property from the properties file converted to a File object +287 */ +288 public static File getDataFile(String key) { +289 final String file = getString(key); +290 final String baseDir = getString(Settings.KEYS.DATA_DIRECTORY); +291 if (baseDir != null) { +292 if (baseDir.startsWith("[JAR]/")) { +293 final File jarPath = getJarPath(); +294 final File newBase = new File(jarPath, baseDir.substring(6)); +295 if (Settings.KEYS.DATA_DIRECTORY.equals(key)) { +296 return newBase; +297 } +298 return new File(newBase, file); +299 } +300 if (Settings.KEYS.DATA_DIRECTORY.equals(key)) { +301 return new File(baseDir); +302 } +303 return new File(baseDir, file); +304 } +305 return new File(file); +306 } +307 +308 /** +309 * Attempts to retrieve the folder containing the Jar file containing the +310 * Settings class. +311 * +312 * @return a File object +313 */ +314 private static File getJarPath() { +315 final String jarPath = Settings.class.getProtectionDomain().getCodeSource().getLocation().getPath(); +316 String decodedPath = "."; +317 try { +318 decodedPath = URLDecoder.decode(jarPath, "UTF-8"); +319 } catch (UnsupportedEncodingException ex) { +320 Logger.getLogger(Settings.class.getName()).log(Level.FINEST, null, ex); +321 } +322 +323 final File path = new File(decodedPath); +324 if (path.getName().toLowerCase().endsWith(".jar")) { +325 return path.getParentFile(); +326 } else { +327 return new File("."); +328 } +329 } +330 +331 /** +332 * Returns a value from the properties file. If the value was specified as a +333 * system property or passed in via the -Dprop=value argument - this method +334 * will return the value from the system properties before the values in the +335 * contained configuration file. +336 * +337 * @param key the key to lookup within the properties file +338 * @param defaultValue the default value for the requested property +339 * @return the property from the properties file +340 */ +341 public static String getString(String key, String defaultValue) { +342 final String str = System.getProperty(key, INSTANCE.props.getProperty(key, defaultValue)); +343 return str; 344 } 345 346 /** -347 * Removes a property from the local properties collection. This is mainly -348 * used in test cases. -349 * -350 * @param key the property key to remove -351 */ -352 public static void removeProperty(String key) { -353 INSTANCE.props.remove(key); -354 } -355 -356 /** -357 * Returns an int value from the properties file. If the value was specified -358 * as a system property or passed in via the -Dprop=value argument - this -359 * method will return the value from the system properties before the values -360 * in the contained configuration file. -361 * -362 * @param key the key to lookup within the properties file -363 * @return the property from the properties file -364 * @throws InvalidSettingException is thrown if there is an error retrieving -365 * the setting -366 */ -367 public static int getInt(String key) throws InvalidSettingException { -368 int value; -369 try { -370 value = Integer.parseInt(Settings.getString(key)); -371 } catch (NumberFormatException ex) { -372 throw new InvalidSettingException("Could not convert property '" + key + "' to an int.", ex); -373 } -374 return value; -375 } -376 -377 /** -378 * Returns an int value from the properties file. If the value was specified -379 * as a system property or passed in via the -Dprop=value argument - this -380 * method will return the value from the system properties before the values -381 * in the contained configuration file. -382 * -383 * @param key the key to lookup within the properties file -384 * @param defaultValue the default value to return -385 * @return the property from the properties file or the defaultValue if the -386 * property does not exist or cannot be converted to an integer -387 */ -388 public static int getInt(String key, int defaultValue) { -389 int value; -390 try { -391 value = Integer.parseInt(Settings.getString(key)); -392 } catch (NumberFormatException ex) { -393 final String msg = String.format("Could not convert property '%s' to an int.", key); -394 Logger.getLogger(Settings.class.getName()).log(Level.FINEST, msg, ex); -395 value = defaultValue; -396 } -397 return value; -398 } -399 -400 /** -401 * Returns a long value from the properties file. If the value was specified -402 * as a system property or passed in via the -Dprop=value argument - this -403 * method will return the value from the system properties before the values -404 * in the contained configuration file. -405 * -406 * @param key the key to lookup within the properties file -407 * @return the property from the properties file -408 * @throws InvalidSettingException is thrown if there is an error retrieving -409 * the setting -410 */ -411 public static long getLong(String key) throws InvalidSettingException { -412 long value; -413 try { -414 value = Long.parseLong(Settings.getString(key)); -415 } catch (NumberFormatException ex) { -416 throw new InvalidSettingException("Could not convert property '" + key + "' to an int.", ex); -417 } -418 return value; -419 } -420 -421 /** -422 * Returns a boolean value from the properties file. If the value was -423 * specified as a system property or passed in via the -424 * <code>-Dprop=value</code> argument this method will return the value from -425 * the system properties before the values in the contained configuration -426 * file. +347 * Returns the temporary directory. +348 * +349 * @return the temporary directory +350 */ +351 public static File getTempDirectory() { +352 return new File(Settings.getString(Settings.KEYS.TEMP_DIRECTORY, System.getProperty("java.io.tmpdir"))); +353 } +354 +355 /** +356 * Returns a value from the properties file. If the value was specified as a +357 * system property or passed in via the -Dprop=value argument - this method +358 * will return the value from the system properties before the values in the +359 * contained configuration file. +360 * +361 * @param key the key to lookup within the properties file +362 * @return the property from the properties file +363 */ +364 public static String getString(String key) { +365 return System.getProperty(key, INSTANCE.props.getProperty(key)); +366 } +367 +368 /** +369 * Removes a property from the local properties collection. This is mainly +370 * used in test cases. +371 * +372 * @param key the property key to remove +373 */ +374 public static void removeProperty(String key) { +375 INSTANCE.props.remove(key); +376 } +377 +378 /** +379 * Returns an int value from the properties file. If the value was specified +380 * as a system property or passed in via the -Dprop=value argument - this +381 * method will return the value from the system properties before the values +382 * in the contained configuration file. +383 * +384 * @param key the key to lookup within the properties file +385 * @return the property from the properties file +386 * @throws InvalidSettingException is thrown if there is an error retrieving +387 * the setting +388 */ +389 public static int getInt(String key) throws InvalidSettingException { +390 int value; +391 try { +392 value = Integer.parseInt(Settings.getString(key)); +393 } catch (NumberFormatException ex) { +394 throw new InvalidSettingException("Could not convert property '" + key + "' to an int.", ex); +395 } +396 return value; +397 } +398 +399 /** +400 * Returns an int value from the properties file. If the value was specified +401 * as a system property or passed in via the -Dprop=value argument - this +402 * method will return the value from the system properties before the values +403 * in the contained configuration file. +404 * +405 * @param key the key to lookup within the properties file +406 * @param defaultValue the default value to return +407 * @return the property from the properties file or the defaultValue if the +408 * property does not exist or cannot be converted to an integer +409 */ +410 public static int getInt(String key, int defaultValue) { +411 int value; +412 try { +413 value = Integer.parseInt(Settings.getString(key)); +414 } catch (NumberFormatException ex) { +415 final String msg = String.format("Could not convert property '%s' to an int.", key); +416 Logger.getLogger(Settings.class.getName()).log(Level.FINEST, msg, ex); +417 value = defaultValue; +418 } +419 return value; +420 } +421 +422 /** +423 * Returns a long value from the properties file. If the value was specified +424 * as a system property or passed in via the -Dprop=value argument - this +425 * method will return the value from the system properties before the values +426 * in the contained configuration file. 427 * 428 * @param key the key to lookup within the properties file 429 * @return the property from the properties file 430 * @throws InvalidSettingException is thrown if there is an error retrieving 431 * the setting 432 */ -433 public static boolean getBoolean(String key) throws InvalidSettingException { -434 boolean value; +433 public static long getLong(String key) throws InvalidSettingException { +434 long value; 435 try { -436 value = Boolean.parseBoolean(Settings.getString(key)); +436 value = Long.parseLong(Settings.getString(key)); 437 } catch (NumberFormatException ex) { 438 throw new InvalidSettingException("Could not convert property '" + key + "' to an int.", ex); 439 } 440 return value; 441 } -442 } +442 +443 /** +444 * Returns a boolean value from the properties file. If the value was +445 * specified as a system property or passed in via the +446 * <code>-Dprop=value</code> argument this method will return the value from +447 * the system properties before the values in the contained configuration +448 * file. +449 * +450 * @param key the key to lookup within the properties file +451 * @return the property from the properties file +452 * @throws InvalidSettingException is thrown if there is an error retrieving +453 * the setting +454 */ +455 public static boolean getBoolean(String key) throws InvalidSettingException { +456 boolean value; +457 try { +458 value = Boolean.parseBoolean(Settings.getString(key)); +459 } catch (NumberFormatException ex) { +460 throw new InvalidSettingException("Could not convert property '" + key + "' to an int.", ex); +461 } +462 return value; +463 } +464 }
      diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/utils/package-frame.html b/dependency-check-core/xref/org/owasp/dependencycheck/utils/package-frame.html index 359a906b7..c8a1ef50e 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/utils/package-frame.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/utils/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.utils + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.utils diff --git a/dependency-check-core/xref/org/owasp/dependencycheck/utils/package-summary.html b/dependency-check-core/xref/org/owasp/dependencycheck/utils/package-summary.html index 9718a3676..12c4ccbb5 100644 --- a/dependency-check-core/xref/org/owasp/dependencycheck/utils/package-summary.html +++ b/dependency-check-core/xref/org/owasp/dependencycheck/utils/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference Package org.owasp.dependencycheck.utils + Dependency-Check Core 1.0.6 Reference Package org.owasp.dependencycheck.utils diff --git a/dependency-check-core/xref/overview-frame.html b/dependency-check-core/xref/overview-frame.html index dcdbc84c4..829ef9dbe 100644 --- a/dependency-check-core/xref/overview-frame.html +++ b/dependency-check-core/xref/overview-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference + Dependency-Check Core 1.0.6 Reference @@ -53,6 +53,9 @@
    • org.owasp.dependencycheck.reporting +
    • +
    • + org.owasp.dependencycheck.suppression
    • org.owasp.dependencycheck.utils diff --git a/dependency-check-core/xref/overview-summary.html b/dependency-check-core/xref/overview-summary.html index 208b34525..1fe55b824 100644 --- a/dependency-check-core/xref/overview-summary.html +++ b/dependency-check-core/xref/overview-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Core 1.0.5 Reference + Dependency-Check Core 1.0.6 Reference @@ -24,7 +24,7 @@
    -

    Dependency-Check Core 1.0.5 Reference

    +

    Dependency-Check Core 1.0.6 Reference

    @@ -97,6 +97,11 @@ + + + - +
    org.owasp.dependencycheck.reporting
    + org.owasp.dependencycheck.suppression +
    diff --git a/dependency-check-jenkins/index.html b/dependency-check-jenkins/index.html index 7938e961f..fb90dc9f2 100644 --- a/dependency-check-jenkins/index.html +++ b/dependency-check-jenkins/index.html @@ -1,13 +1,13 @@ - + dependency-check-jenkins - @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • diff --git a/dependency-check-jenkins/license.html b/dependency-check-jenkins/license.html index 65553c313..f0f10c384 100644 --- a/dependency-check-jenkins/license.html +++ b/dependency-check-jenkins/license.html @@ -1,13 +1,13 @@ - + dependency-check-jenkins - Project License @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • diff --git a/dependency-check-jenkins/project-info.html b/dependency-check-jenkins/project-info.html index 31427a03e..b8f026a53 100644 --- a/dependency-check-jenkins/project-info.html +++ b/dependency-check-jenkins/project-info.html @@ -1,13 +1,13 @@ - + dependency-check-jenkins - Project Information @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • diff --git a/dependency-check-jenkins/project-summary.html b/dependency-check-jenkins/project-summary.html index d70abf372..c5d4f5e9a 100644 --- a/dependency-check-jenkins/project-summary.html +++ b/dependency-check-jenkins/project-summary.html @@ -1,13 +1,13 @@ - + dependency-check-jenkins - Project Summary @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -181,7 +181,7 @@
    dependency-check-jenkins
    Version1.0.5
    1.0.6
    Type pom
    diff --git a/dependency-check-maven/apidocs/allclasses-frame.html b/dependency-check-maven/apidocs/allclasses-frame.html index 7dc9ae9d6..a4dab0fee 100644 --- a/dependency-check-maven/apidocs/allclasses-frame.html +++ b/dependency-check-maven/apidocs/allclasses-frame.html @@ -2,13 +2,13 @@ - + -All Classes (Dependency-Check Maven Plugin 1.0.5 API) +All Classes (Dependency-Check Maven Plugin 1.0.6 API) - + diff --git a/dependency-check-maven/apidocs/allclasses-noframe.html b/dependency-check-maven/apidocs/allclasses-noframe.html index 09bc20346..f9cfb0699 100644 --- a/dependency-check-maven/apidocs/allclasses-noframe.html +++ b/dependency-check-maven/apidocs/allclasses-noframe.html @@ -2,13 +2,13 @@ - + -All Classes (Dependency-Check Maven Plugin 1.0.5 API) +All Classes (Dependency-Check Maven Plugin 1.0.6 API) - + diff --git a/dependency-check-maven/apidocs/constant-values.html b/dependency-check-maven/apidocs/constant-values.html index 934158e0f..92ba16ff2 100644 --- a/dependency-check-maven/apidocs/constant-values.html +++ b/dependency-check-maven/apidocs/constant-values.html @@ -2,13 +2,13 @@ - + -Constant Field Values (Dependency-Check Maven Plugin 1.0.5 API) +Constant Field Values (Dependency-Check Maven Plugin 1.0.6 API) - + @@ -16,7 +16,7 @@ Constant Field Values (Dependency-Check Maven Plugin 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Constant Field Values (Dependency-Check Maven Plugin 1.0.5 API)"; + parent.document.title="Constant Field Values (Dependency-Check Maven Plugin 1.0.6 API)"; } } diff --git a/dependency-check-maven/apidocs/deprecated-list.html b/dependency-check-maven/apidocs/deprecated-list.html index 5a630edb3..b99acf542 100644 --- a/dependency-check-maven/apidocs/deprecated-list.html +++ b/dependency-check-maven/apidocs/deprecated-list.html @@ -2,13 +2,13 @@ - + -Deprecated List (Dependency-Check Maven Plugin 1.0.5 API) +Deprecated List (Dependency-Check Maven Plugin 1.0.6 API) - + @@ -16,7 +16,7 @@ Deprecated List (Dependency-Check Maven Plugin 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Deprecated List (Dependency-Check Maven Plugin 1.0.5 API)"; + parent.document.title="Deprecated List (Dependency-Check Maven Plugin 1.0.6 API)"; } } diff --git a/dependency-check-maven/apidocs/help-doc.html b/dependency-check-maven/apidocs/help-doc.html index c290160dd..91f3d88f1 100644 --- a/dependency-check-maven/apidocs/help-doc.html +++ b/dependency-check-maven/apidocs/help-doc.html @@ -2,13 +2,13 @@ - + -API Help (Dependency-Check Maven Plugin 1.0.5 API) +API Help (Dependency-Check Maven Plugin 1.0.6 API) - + @@ -16,7 +16,7 @@ API Help (Dependency-Check Maven Plugin 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="API Help (Dependency-Check Maven Plugin 1.0.5 API)"; + parent.document.title="API Help (Dependency-Check Maven Plugin 1.0.6 API)"; } } diff --git a/dependency-check-maven/apidocs/index-all.html b/dependency-check-maven/apidocs/index-all.html index 1be579d6e..078efaf3b 100644 --- a/dependency-check-maven/apidocs/index-all.html +++ b/dependency-check-maven/apidocs/index-all.html @@ -2,13 +2,13 @@ - + -Index (Dependency-Check Maven Plugin 1.0.5 API) +Index (Dependency-Check Maven Plugin 1.0.6 API) - + @@ -16,7 +16,7 @@ Index (Dependency-Check Maven Plugin 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Index (Dependency-Check Maven Plugin 1.0.5 API)"; + parent.document.title="Index (Dependency-Check Maven Plugin 1.0.6 API)"; } } diff --git a/dependency-check-maven/apidocs/index.html b/dependency-check-maven/apidocs/index.html index d310d0524..6f45b4438 100644 --- a/dependency-check-maven/apidocs/index.html +++ b/dependency-check-maven/apidocs/index.html @@ -2,10 +2,10 @@ - + -Dependency-Check Maven Plugin 1.0.5 API +Dependency-Check Maven Plugin 1.0.6 API diff --git a/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/HelpMojo.html b/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/HelpMojo.html index 788fd02af..8f982200c 100644 --- a/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/HelpMojo.html +++ b/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/HelpMojo.html @@ -2,13 +2,13 @@ - + -HelpMojo (Dependency-Check Maven Plugin 1.0.5 API) +HelpMojo (Dependency-Check Maven Plugin 1.0.6 API) - + @@ -16,7 +16,7 @@ HelpMojo (Dependency-Check Maven Plugin 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="HelpMojo (Dependency-Check Maven Plugin 1.0.5 API)"; + parent.document.title="HelpMojo (Dependency-Check Maven Plugin 1.0.6 API)"; } } diff --git a/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/class-use/DependencyCheckMojo.html b/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/class-use/DependencyCheckMojo.html index a2e15dc9a..d4d193af8 100644 --- a/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/class-use/DependencyCheckMojo.html +++ b/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/class-use/DependencyCheckMojo.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.maven.DependencyCheckMojo (Dependency-Check Maven Plugin 1.0.5 API) +Uses of Class org.owasp.dependencycheck.maven.DependencyCheckMojo (Dependency-Check Maven Plugin 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.maven.DependencyCheckMojo (Dependency-Ch function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.maven.DependencyCheckMojo (Dependency-Check Maven Plugin 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.maven.DependencyCheckMojo (Dependency-Check Maven Plugin 1.0.6 API)"; } } diff --git a/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/class-use/HelpMojo.html b/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/class-use/HelpMojo.html index 2930070b1..b757eb2ab 100644 --- a/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/class-use/HelpMojo.html +++ b/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/class-use/HelpMojo.html @@ -2,13 +2,13 @@ - + -Uses of Class org.owasp.dependencycheck.maven.HelpMojo (Dependency-Check Maven Plugin 1.0.5 API) +Uses of Class org.owasp.dependencycheck.maven.HelpMojo (Dependency-Check Maven Plugin 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Class org.owasp.dependencycheck.maven.HelpMojo (Dependency-Check Maven P function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Class org.owasp.dependencycheck.maven.HelpMojo (Dependency-Check Maven Plugin 1.0.5 API)"; + parent.document.title="Uses of Class org.owasp.dependencycheck.maven.HelpMojo (Dependency-Check Maven Plugin 1.0.6 API)"; } } diff --git a/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/package-frame.html b/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/package-frame.html index bb548e6c7..46da5c205 100644 --- a/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/package-frame.html +++ b/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/package-frame.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.maven (Dependency-Check Maven Plugin 1.0.5 API) +org.owasp.dependencycheck.maven (Dependency-Check Maven Plugin 1.0.6 API) - + diff --git a/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/package-summary.html b/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/package-summary.html index d8e7eefa8..5ae87a770 100644 --- a/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/package-summary.html +++ b/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/package-summary.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.maven (Dependency-Check Maven Plugin 1.0.5 API) +org.owasp.dependencycheck.maven (Dependency-Check Maven Plugin 1.0.6 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.maven (Dependency-Check Maven Plugin 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.maven (Dependency-Check Maven Plugin 1.0.5 API)"; + parent.document.title="org.owasp.dependencycheck.maven (Dependency-Check Maven Plugin 1.0.6 API)"; } } diff --git a/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/package-tree.html b/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/package-tree.html index 6a0cb347e..adb13dbcc 100644 --- a/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/package-tree.html +++ b/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/package-tree.html @@ -2,13 +2,13 @@ - + -org.owasp.dependencycheck.maven Class Hierarchy (Dependency-Check Maven Plugin 1.0.5 API) +org.owasp.dependencycheck.maven Class Hierarchy (Dependency-Check Maven Plugin 1.0.6 API) - + @@ -16,7 +16,7 @@ org.owasp.dependencycheck.maven Class Hierarchy (Dependency-Check Maven Plugin 1 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="org.owasp.dependencycheck.maven Class Hierarchy (Dependency-Check Maven Plugin 1.0.5 API)"; + parent.document.title="org.owasp.dependencycheck.maven Class Hierarchy (Dependency-Check Maven Plugin 1.0.6 API)"; } } diff --git a/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/package-use.html b/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/package-use.html index c0d59a6a2..fe529ccaf 100644 --- a/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/package-use.html +++ b/dependency-check-maven/apidocs/org/owasp/dependencycheck/maven/package-use.html @@ -2,13 +2,13 @@ - + -Uses of Package org.owasp.dependencycheck.maven (Dependency-Check Maven Plugin 1.0.5 API) +Uses of Package org.owasp.dependencycheck.maven (Dependency-Check Maven Plugin 1.0.6 API) - + @@ -16,7 +16,7 @@ Uses of Package org.owasp.dependencycheck.maven (Dependency-Check Maven Plugin 1 function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Uses of Package org.owasp.dependencycheck.maven (Dependency-Check Maven Plugin 1.0.5 API)"; + parent.document.title="Uses of Package org.owasp.dependencycheck.maven (Dependency-Check Maven Plugin 1.0.6 API)"; } } diff --git a/dependency-check-maven/apidocs/overview-tree.html b/dependency-check-maven/apidocs/overview-tree.html index 9efe7dd28..7f701c2f0 100644 --- a/dependency-check-maven/apidocs/overview-tree.html +++ b/dependency-check-maven/apidocs/overview-tree.html @@ -2,13 +2,13 @@ - + -Class Hierarchy (Dependency-Check Maven Plugin 1.0.5 API) +Class Hierarchy (Dependency-Check Maven Plugin 1.0.6 API) - + @@ -16,7 +16,7 @@ Class Hierarchy (Dependency-Check Maven Plugin 1.0.5 API) function windowTitle() { if (location.href.indexOf('is-external=true') == -1) { - parent.document.title="Class Hierarchy (Dependency-Check Maven Plugin 1.0.5 API)"; + parent.document.title="Class Hierarchy (Dependency-Check Maven Plugin 1.0.6 API)"; } } diff --git a/dependency-check-maven/check-mojo.html b/dependency-check-maven/check-mojo.html index b52c010f5..51e7b6a33 100644 --- a/dependency-check-maven/check-mojo.html +++ b/dependency-check-maven/check-mojo.html @@ -1,13 +1,13 @@ - + dependency-check-maven - dependency-check:check @@ -55,7 +55,7 @@
  • - +
  • /
  • @@ -69,8 +69,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -150,7 +150,7 @@

    Full name:

    -

    org.owasp:dependency-check-maven:1.0.5:check

    +

    org.owasp:dependency-check-maven:1.0.6:check

    Description:

    @@ -378,6 +378,17 @@ Reports page
    Default value is: Dependency-Check.
    Us The name of the site report destination.
    Default value is: dependency-check-report.
    User property is: report-name. + + + +suppressionFile + +String + +- + +The Connection Timeout.
    User property is: suppressionFile. + @@ -587,6 +598,18 @@ Dependency-Check report.
  • User Property: reportOutputDirectory
  • Default: ${project.reporting.outputDirectory}
  • +
    +

    suppressionFile:

    + +
    The Connection Timeout.
    + +
      + +
    • Type: java.lang.String
    • + +
    • Required: No
    • + +
    • User Property: suppressionFile
    diff --git a/dependency-check-maven/checkstyle.html b/dependency-check-maven/checkstyle.html index e41e6b5cc..6b5a1fab1 100644 --- a/dependency-check-maven/checkstyle.html +++ b/dependency-check-maven/checkstyle.html @@ -1,13 +1,13 @@ - + dependency-check-maven - Checkstyle Results @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • diff --git a/dependency-check-maven/cobertura/frame-summary-org.owasp.dependencycheck.maven.html b/dependency-check-maven/cobertura/frame-summary-org.owasp.dependencycheck.maven.html index 3cc2bd56f..c6291e2fb 100644 --- a/dependency-check-maven/cobertura/frame-summary-org.owasp.dependencycheck.maven.html +++ b/dependency-check-maven/cobertura/frame-summary-org.owasp.dependencycheck.maven.html @@ -16,7 +16,7 @@ - +
    Package # Classes Line Coverage Branch Coverage Complexity
    org.owasp.dependencycheck.maven2
    0%
    0/466
    0%
    0/228
    4.143
    org.owasp.dependencycheck.maven2
    0%
    0/469
    0%
    0/232
    4.19
    - + diff --git a/dependency-check-maven/cobertura/frame-summary.html b/dependency-check-maven/cobertura/frame-summary.html index 91c0b9521..7e2c7dbb1 100644 --- a/dependency-check-maven/cobertura/frame-summary.html +++ b/dependency-check-maven/cobertura/frame-summary.html @@ -16,8 +16,8 @@ - - + +
    Package # Classes Line Coverage Branch Coverage Complexity
    All Packages2
    0%
    0/466
    0%
    0/228
    4.143
    org.owasp.dependencycheck.maven2
    0%
    0/466
    0%
    0/228
    4.143
    All Packages2
    0%
    0/469
    0%
    0/232
    4.19
    org.owasp.dependencycheck.maven2
    0%
    0/469
    0%
    0/232
    4.19
    - + diff --git a/dependency-check-maven/cobertura/org.owasp.dependencycheck.maven.DependencyCheckMojo.html b/dependency-check-maven/cobertura/org.owasp.dependencycheck.maven.DependencyCheckMojo.html index e0e8edff7..43e963ba0 100644 --- a/dependency-check-maven/cobertura/org.owasp.dependencycheck.maven.DependencyCheckMojo.html +++ b/dependency-check-maven/cobertura/org.owasp.dependencycheck.maven.DependencyCheckMojo.html @@ -12,7 +12,7 @@
     
    - +
    Classes in this File Line Coverage Branch Coverage Complexity
    DependencyCheckMojo
    0%
    0/318
    0%
    0/122
    3.519
    DependencyCheckMojo
    0%
    0/321
    0%
    0/126
    3.593
     
    @@ -368,769 +368,767 @@  180  
         private String connectionTimeout = null;
     181   -
     
    +
         /**
     182   -
         // </editor-fold>
    +
          * The Connection Timeout.
     183   -
         /**
    -  184   -
          * Executes the Dependency-Check on the dependent libraries.
    +
          */
    +  184  0
         @SuppressWarnings("CanBeFinal")
     185   -
          *
    +
         @Parameter(property = "suppressionFile", defaultValue = "", required = false)
     186   -
          * @return the Engine used to scan the dependencies.
    +
         private String suppressionFile = null;
     187   -
          */
    -  188   -
         private Engine executeDependencyCheck() {
    -  189   -
     
    -  190  0
             final InputStream in = DependencyCheckMojo.class.getClassLoader().getResourceAsStream(LOG_PROPERTIES_FILE);
    -  191  0
             LogUtils.prepareLogger(in, logFile);
    -  192   -
     
    -  193  0
             populateSettings();
    -  194  0
             final Engine engine = new Engine();
    -  195  0
             final Set<Artifact> artifacts = project.getArtifacts();
    -  196  0
             for (Artifact a : artifacts) {
    -  197  0
                 if (!TEST_SCOPE.equals(a.getScope())) {
    -  198  0
                     engine.scan(a.getFile().getAbsolutePath());
    -  199   -
                 }
    -  200   -
             }
    -  201  0
             engine.analyzeDependencies();
    -  202  0
             return engine;
    -  203   -
         }
    -  204   -
     
    -  205   -
         /**
    -  206   -
          * Generates the reports for a given dependency-check engine.
    -  207   -
          *
    -  208   -
          * @param engine a dependency-check engine
    -  209   -
          */
    -  210   -
         private void generateExternalReports(Engine engine) {
    -  211  0
             final ReportGenerator r = new ReportGenerator(project.getName(), engine.getDependencies(), engine.getAnalyzers());
    -  212   -
             try {
    -  213  0
                 r.generateReports(outputDirectory.getCanonicalPath(), format);
    -  214  0
             } catch (IOException ex) {
    -  215  0
                 Logger.getLogger(DependencyCheckMojo.class.getName()).log(Level.SEVERE, null, ex);
    -  216  0
             } catch (Exception ex) {
    -  217  0
                 Logger.getLogger(DependencyCheckMojo.class.getName()).log(Level.SEVERE, null, ex);
    -  218  0
             }
    -  219  0
         }
    -  220   -
     
    -  221   -
         /**
    -  222   -
          * Generates a dependency-check report using the Maven Site format.
    -  223   -
          *
    -  224   -
          * @param engine the engine used to scan the dependencies
    -  225   -
          * @param sink the sink to write the data to
    -  226   -
          */
    -  227   -
         private void generateMavenSiteReport(final Engine engine, Sink sink) {
    -  228  0
             final List<Dependency> dependencies = engine.getDependencies();
    -  229   -
     
    -  230  0
             writeSiteReportHeader(sink, project.getName());
    -  231  0
             writeSiteReportTOC(sink, dependencies);
    -  232   -
     
    -  233  0
             int cnt = 0;
    -  234  0
             for (Dependency d : dependencies) {
    -  235  0
                 writeSiteReportDependencyHeader(sink, d);
    -  236  0
                 cnt = writeSiteReportDependencyAnalysisExceptions(d, cnt, sink);
    -  237  0
                 cnt = writeSiteReportDependencyEvidenceUsed(d, cnt, sink);
    -  238  0
                 cnt = writeSiteReportDependencyRelatedDependencies(d, cnt, sink);
    -  239  0
                 writeSiteReportDependencyIdentifiers(d, sink);
    -  240  0
                 writeSiteReportDependencyVulnerabilities(d, sink, cnt);
    -  241   -
             }
    -  242  0
             sink.body_();
    -  243  0
         }
    -  244   -
     
    -  245   -
         // <editor-fold defaultstate="collapsed" desc="various writeXXXXX methods to generate the Site Report">
    -  246   -
         /**
    -  247   -
          * Writes the vulnerabilities to the site report.
    -  248   -
          *
    -  249   -
          * @param d the dependency
    -  250   -
          * @param sink the sink to write the data to
    -  251   -
          * @param collapsibleHeaderCount the collapsible header count
    -  252   -
          */
    -  253   -
         private void writeSiteReportDependencyVulnerabilities(Dependency d, Sink sink, int collapsibleHeaderCount) {
    -  254  0
             int cnt = collapsibleHeaderCount;
    -  255  0
             if (d.getVulnerabilities() != null && !d.getVulnerabilities().isEmpty()) {
    -  256  0
                 for (Vulnerability v : d.getVulnerabilities()) {
    -  257   -
     
    -  258  0
                     sink.paragraph();
    -  259  0
                     sink.bold();
    -  260   -
                     try {
    -  261  0
                         sink.link("http://web.nvd.nist.gov/view/vuln/detail?vulnId=" + URLEncoder.encode(v.getName(), "US-ASCII"));
    -  262  0
                         sink.text(v.getName());
    -  263  0
                         sink.link_();
    -  264  0
                         sink.bold_();
    -  265  0
                     } catch (UnsupportedEncodingException ex) {
    -  266  0
                         sink.text(v.getName());
    -  267  0
                         sink.bold_();
    -  268  0
                         sink.lineBreak();
    -  269  0
                         sink.text("http://web.nvd.nist.gov/view/vuln/detail?vulnId=" + v.getName());
    -  270  0
                     }
    -  271  0
                     sink.paragraph_();
    -  272  0
                     sink.paragraph();
    -  273  0
                     sink.text("Severity: ");
    -  274  0
                     if (v.getCvssScore() < 4.0) {
    -  275  0
                         sink.text("Low");
    -  276   -
                     } else {
    -  277  0
                         if (v.getCvssScore() >= 7.0) {
    -  278  0
                             sink.text("High");
    -  279   -
                         } else {
    -  280  0
                             sink.text("Medium");
    -  281   -
                         }
    -  282   -
                     }
    -  283  0
                     sink.lineBreak();
    -  284  0
                     sink.text("CVSS Score: " + v.getCvssScore());
    -  285  0
                     if (v.getCwe() != null && !v.getCwe().isEmpty()) {
    -  286  0
                         sink.lineBreak();
    -  287  0
                         sink.text("CWE: ");
    -  288  0
                         sink.text(v.getCwe());
    -  289   -
                     }
    -  290  0
                     sink.paragraph_();
    -  291  0
                     sink.paragraph();
    -  292  0
                     sink.text(v.getDescription());
    -  293  0
                     if (v.getReferences() != null && !v.getReferences().isEmpty()) {
    -  294  0
                         sink.list();
    -  295  0
                         for (Reference ref : v.getReferences()) {
    -  296  0
                             sink.listItem();
    -  297  0
                             sink.text(ref.getSource());
    -  298  0
                             sink.text(" - ");
    -  299  0
                             sink.link(ref.getUrl());
    -  300  0
                             sink.text(ref.getName());
    -  301  0
                             sink.link_();
    -  302  0
                             sink.listItem_();
    -  303   -
                         }
    -  304  0
                         sink.list_();
    -  305   -
                     }
    -  306  0
                     sink.paragraph_();
    -  307  0
                     if (v.getVulnerableSoftware() != null && !v.getVulnerableSoftware().isEmpty()) {
    -  308  0
                         sink.paragraph();
    -  309   -
     
    -  310  0
                         cnt += 1;
    -  311  0
                         sink.rawText("Vulnerable Software <a href=\"javascript:toggleElement(this, 'vulnSoft" + cnt + "')\">[-]</a>");
    -  312  0
                         sink.rawText("<div id=\"vulnSoft" + cnt + "\" style=\"display:block\">");
    -  313  0
                         sink.list();
    -  314  0
                         for (VulnerableSoftware vs : v.getVulnerableSoftware()) {
    -  315  0
                             sink.listItem();
    -  316   -
                             try {
    -  317  0
                                 sink.link("http://web.nvd.nist.gov/view/vuln/search-results?cpe=" + URLEncoder.encode(vs.getName(), "US-ASCII"));
    -  318  0
                                 sink.text(vs.getName());
    -  319  0
                                 sink.link_();
    -  320  0
                                 if (vs.hasPreviousVersion()) {
    -  321  0
                                     sink.text(" and all previous versions.");
    -  322   -
                                 }
    -  323  0
                             } catch (UnsupportedEncodingException ex) {
    -  324  0
                                 sink.text(vs.getName());
    -  325  0
                                 if (vs.hasPreviousVersion()) {
    -  326  0
                                     sink.text(" and all previous versions.");
    -  327   -
                                 }
    -  328  0
                                 sink.text(" (http://web.nvd.nist.gov/view/vuln/search-results?cpe=" + vs.getName() + ")");
    -  329  0
                             }
    -  330   -
     
    -  331  0
                             sink.listItem_();
    -  332   -
                         }
    -  333  0
                         sink.list_();
    -  334  0
                         sink.rawText("</div>");
    -  335  0
                         sink.paragraph_();
    -  336   -
                     }
    -  337   -
                 }
    -  338   -
             }
    -  339  0
         }
    -  340   -
     
    -  341   -
         /**
    -  342   -
          * Writes the identifiers to the site report.
    -  343   -
          *
    -  344   -
          * @param d the dependency
    -  345   -
          * @param sink the sink to write the data to
    -  346   -
          */
    -  347   -
         private void writeSiteReportDependencyIdentifiers(Dependency d, Sink sink) {
    -  348  0
             if (d.getIdentifiers() != null && !d.getIdentifiers().isEmpty()) {
    -  349  0
                 sink.sectionTitle4();
    -  350  0
                 sink.text("Identifiers");
    -  351  0
                 sink.sectionTitle4_();
    -  352  0
                 sink.list();
    -  353  0
                 for (Identifier i : d.getIdentifiers()) {
    -  354  0
                     sink.listItem();
    -  355  0
                     sink.text(i.getType());
    -  356  0
                     sink.text(": ");
    -  357  0
                     if (i.getUrl() != null && i.getUrl().length() > 0) {
    -  358  0
                         sink.link(i.getUrl());
    -  359  0
                         sink.text(i.getValue());
    -  360  0
                         sink.link_();
    -  361   -
                     } else {
    -  362  0
                         sink.text(i.getValue());
    -  363   -
                     }
    -  364  0
                     if (i.getDescription() != null && i.getDescription().length() > 0) {
    -  365  0
                         sink.lineBreak();
    -  366  0
                         sink.text(i.getDescription());
    -  367   -
                     }
    -  368  0
                     sink.listItem_();
    -  369   -
                 }
    -  370  0
                 sink.list_();
    -  371   -
             }
    -  372  0
         }
    -  373   -
     
    -  374   -
         /**
    -  375   -
          * Writes the related dependencies to the site report.
    -  376   -
          *
    -  377   -
          * @param d the dependency
    -  378   -
          * @param sink the sink to write the data to
    -  379   -
          * @param collapsibleHeaderCount the collapsible header count
    -  380   -
          * @return the collapsible header count
    -  381   -
          */
    -  382   -
         private int writeSiteReportDependencyRelatedDependencies(Dependency d, int collapsibleHeaderCount, Sink sink) {
    -  383  0
             int cnt = collapsibleHeaderCount;
    -  384  0
             if (d.getRelatedDependencies() != null && !d.getRelatedDependencies().isEmpty()) {
    -  385  0
                 cnt += 1;
    -  386  0
                 sink.sectionTitle4();
    -  387  0
                 sink.rawText("Related Dependencies <a href=\"javascript:toggleElement(this, 'related" + cnt + "')\">[+]</a>");
    -  388  0
                 sink.sectionTitle4_();
    -  389  0
                 sink.rawText("<div id=\"related" + cnt + "\" style=\"display:none\">");
    -  390  0
                 sink.list();
    -  391  0
                 for (Dependency r : d.getRelatedDependencies()) {
    -  392  0
                     sink.listItem();
    -  393  0
                     sink.text(r.getFileName());
    -  394  0
                     sink.list();
    -  395  0
                     writeListItem(sink, "File Path: " + r.getFilePath());
    -  396  0
                     writeListItem(sink, "SHA1: " + r.getSha1sum());
    -  397  0
                     writeListItem(sink, "MD5: " + r.getMd5sum());
    -  398  0
                     sink.list_();
    -  399  0
                     sink.listItem_();
    -  400   -
                 }
    -  401  0
                 sink.list_();
    -  402  0
                 sink.rawText("</div>");
    -  403   -
             }
    -  404  0
             return cnt;
    -  405   -
         }
    -  406   -
     
    -  407   -
         /**
    -  408   -
          * Writes the evidence used to the site report.
    -  409   -
          *
    -  410   -
          * @param d the dependency
    -  411   -
          * @param sink the sink to write the data to
    -  412   -
          * @param collapsibleHeaderCount the collapsible header count
    -  413   -
          * @return the collapsible header count
    -  414   -
          */
    -  415   -
         private int writeSiteReportDependencyEvidenceUsed(Dependency d, int collapsibleHeaderCount, Sink sink) {
    -  416  0
             int cnt = collapsibleHeaderCount;
    -  417  0
             if (d.getEvidenceUsed() != null && d.getEvidenceUsed().size() > 0) {
    -  418  0
                 cnt += 1;
    -  419  0
                 sink.sectionTitle4();
    -  420  0
                 sink.rawText("Evidence Collected <a href=\"javascript:toggleElement(this, 'evidence" + cnt + "')\">[+]</a>");
    -  421  0
                 sink.sectionTitle4_();
    -  422  0
                 sink.rawText("<div id=\"evidence" + cnt + "\" style=\"display:none\">");
    -  423  0
                 sink.table();
    -  424  0
                 sink.tableRow();
    -  425  0
                 writeTableHeaderCell(sink, "Source");
    -  426  0
                 writeTableHeaderCell(sink, "Name");
    -  427  0
                 writeTableHeaderCell(sink, "Value");
    -  428  0
                 sink.tableRow_();
    -  429  0
                 for (Evidence e : d.getEvidenceUsed()) {
    -  430  0
                     sink.tableRow();
    -  431  0
                     writeTableCell(sink, e.getSource());
    -  432  0
                     writeTableCell(sink, e.getName());
    -  433  0
                     writeTableCell(sink, e.getValue());
    -  434  0
                     sink.tableRow_();
    -  435   -
                 }
    -  436  0
                 sink.table_();
    -  437  0
                 sink.rawText("</div>");
    -  438   -
             }
    -  439  0
             return cnt;
    -  440   -
         }
    -  441   -
     
    -  442   -
         /**
    -  443   -
          * Writes the analysis exceptions generated during analysis to the site
    -  444   -
          * report.
    -  445   -
          *
    -  446   -
          * @param d the dependency
    -  447   -
          * @param sink the sink to write the data to
    -  448   -
          * @param collapsibleHeaderCount the collapsible header count
    -  449   -
          * @return the collapsible header count
    -  450   -
          */
    -  451   -
         private int writeSiteReportDependencyAnalysisExceptions(Dependency d, int collapsibleHeaderCount, Sink sink) {
    -  452  0
             int cnt = collapsibleHeaderCount;
    -  453  0
             if (d.getAnalysisExceptions() != null && !d.getAnalysisExceptions().isEmpty()) {
    -  454  0
                 cnt += 1;
    -  455  0
                 sink.sectionTitle4();
    -  456  0
                 sink.rawText("<font style=\"color:red\">Errors occurred during analysis:</font> <a href=\"javascript:toggleElement(this, 'errors"
    -  457   -
                         + cnt + "')\">[+]</a>");
    -  458  0
                 sink.sectionTitle4_();
    -  459  0
                 sink.rawText("<div id=\"errors" + cnt + "\">");
    -  460  0
                 sink.list();
    -  461  0
                 for (Exception e : d.getAnalysisExceptions()) {
    -  462  0
                     sink.listItem();
    -  463  0
                     sink.text(e.getMessage());
    -  464  0
                     sink.listItem_();
    -  465   -
                 }
    -  466  0
                 sink.list_();
    -  467  0
                 sink.rawText("</div>");
    -  468   -
             }
    -  469  0
             return cnt;
    -  470   -
         }
    -  471   -
     
    -  472   -
         /**
    -  473   -
          * Writes the dependency header to the site report.
    -  474   -
          *
    -  475   -
          * @param d the dependency
    -  476   -
          * @param sink the sink to write the data to
    -  477   -
          */
    -  478   -
         private void writeSiteReportDependencyHeader(Sink sink, Dependency d) {
    -  479  0
             sink.sectionTitle2();
    -  480  0
             sink.anchor("sha1" + d.getSha1sum());
    -  481  0
             sink.text(d.getFileName());
    -  482  0
             sink.anchor_();
    -  483  0
             sink.sectionTitle2_();
    -  484  0
             if (d.getDescription() != null && d.getDescription().length() > 0) {
    -  485  0
                 sink.paragraph();
    -  486  0
                 sink.bold();
    -  487  0
                 sink.text("Description: ");
    -  488  0
                 sink.bold_();
    -  489  0
                 sink.text(d.getDescription());
    -  490  0
                 sink.paragraph_();
    -  491   -
             }
    -  492  0
             if (d.getLicense() != null && d.getLicense().length() > 0) {
    -  493  0
                 sink.paragraph();
    -  494  0
                 sink.bold();
    -  495  0
                 sink.text("License: ");
    -  496  0
                 sink.bold_();
    -  497  0
                 if (d.getLicense().startsWith("http://") && !d.getLicense().contains(" ")) {
    -  498  0
                     sink.link(d.getLicense());
    -  499  0
                     sink.text(d.getLicense());
    -  500  0
                     sink.link_();
    -  501   -
                 } else {
    -  502  0
                     sink.text(d.getLicense());
    -  503   -
                 }
    -  504  0
                 sink.paragraph_();
    -  505   -
             }
    -  506  0
         }
    -  507   -
     
    -  508   -
         /**
    -  509   -
          * Adds a list item to the site report.
    -  510   -
          *
    -  511   -
          * @param sink the sink to write the data to
    -  512   -
          * @param text the text to write
    -  513   -
          */
    -  514   -
         private void writeListItem(Sink sink, String text) {
    -  515  0
             sink.listItem();
    -  516  0
             sink.text(text);
    -  517  0
             sink.listItem_();
    -  518  0
         }
    -  519   -
     
    -  520   -
         /**
    -  521   -
          * Adds a table cell to the site report.
    -  522   -
          *
    -  523   -
          * @param sink the sink to write the data to
    -  524   -
          * @param text the text to write
    -  525   -
          */
    -  526   -
         private void writeTableCell(Sink sink, String text) {
    -  527  0
             sink.tableCell();
    -  528  0
             sink.text(text);
    -  529  0
             sink.tableCell_();
    -  530  0
         }
    -  531   -
     
    -  532   -
         /**
    -  533   -
          * Adds a table header cell to the site report.
    -  534   -
          *
    -  535   -
          * @param sink the sink to write the data to
    -  536   -
          * @param text the text to write
    -  537   -
          */
    -  538   -
         private void writeTableHeaderCell(Sink sink, String text) {
    -  539  0
             sink.tableHeaderCell();
    -  540  0
             sink.text(text);
    -  541  0
             sink.tableHeaderCell_();
    -  542  0
         }
    -  543   -
     
    -  544   -
         /**
    -  545   -
          * Writes the TOC for the site report.
    -  546   -
          *
    -  547   -
          * @param sink the sink to write the data to
    -  548   -
          * @param dependencies the dependencies that are being reported on
    -  549   -
          */
    -  550   -
         private void writeSiteReportTOC(Sink sink, final List<Dependency> dependencies) {
    -  551  0
             sink.list();
    -  552  0
             for (Dependency d : dependencies) {
    -  553  0
                 sink.listItem();
    -  554  0
                 sink.link("#sha1" + d.getSha1sum());
    -  555  0
                 sink.text(d.getFileName());
    -  556  0
                 sink.link_();
    -  557  0
                 if (!d.getVulnerabilities().isEmpty()) {
    -  558  0
                     sink.rawText(" <font style=\"color:red\">•</font>");
    -  559   -
                 }
    -  560  0
                 if (!d.getRelatedDependencies().isEmpty()) {
    -  561  0
                     sink.list();
    -  562  0
                     for (Dependency r : d.getRelatedDependencies()) {
    -  563  0
                         writeListItem(sink, r.getFileName());
    -  564   -
                     }
    -  565  0
                     sink.list_();
    -  566   -
                 }
    -  567  0
                 sink.listItem_();
    -  568   -
             }
    -  569  0
             sink.list_();
    -  570  0
         }
    -  571   -
     
    -  572   -
         /**
    -  573   -
          * Writes the site report header.
    -  574   -
          *
    -  575   -
          * @param sink the sink to write the data to
    -  576   -
          * @param projectName the name of the project
    -  577   -
          */
    -  578   -
         private void writeSiteReportHeader(Sink sink, String projectName) {
    -  579  0
             sink.head();
    -  580  0
             sink.title();
    -  581  0
             sink.text("Dependency-Check Report: " + projectName);
    -  582  0
             sink.title_();
    -  583  0
             sink.head_();
    -  584  0
             sink.body();
    -  585  0
             sink.rawText("<script type=\"text/javascript\">");
    -  586  0
             sink.rawText("function toggleElement(el, targetId) {");
    -  587  0
             sink.rawText("if (el.innerText == '[+]') {");
    -  588  0
             sink.rawText("    el.innerText = '[-]';");
    -  589  0
             sink.rawText("    document.getElementById(targetId).style.display='block';");
    -  590  0
             sink.rawText("} else {");
    -  591  0
             sink.rawText("    el.innerText = '[+]';");
    -  592  0
             sink.rawText("    document.getElementById(targetId).style.display='none';");
    -  593  0
             sink.rawText("}");
    -  594   -
     
    -  595  0
             sink.rawText("}");
    -  596  0
             sink.rawText("</script>");
    -  597  0
             sink.section1();
    -  598  0
             sink.sectionTitle1();
    -  599  0
             sink.text("Project: " + projectName);
    -  600  0
             sink.sectionTitle1_();
    -  601  0
             sink.date();
    -  602  0
             final Date now = new Date();
    -  603  0
             sink.text(DateFormat.getDateTimeInstance().format(now));
    -  604  0
             sink.date_();
    -  605  0
             sink.section1_();
    -  606  0
         }
    -  607  
         // </editor-fold>
    -  608   +  188  
     
    -  609   +  189  
         /**
    -  610   -
          * Takes the properties supplied and updates the dependency-check settings.
    -  611   -
          * Additionally, this sets the system properties required to change the
    -  612   -
          * proxy url, port, and connection timeout.
    -  613   +  190   +
          * Executes the Dependency-Check on the dependent libraries.
    +  191   +
          *
    +  192   +
          * @return the Engine used to scan the dependencies.
    +  193  
          */
    -  614   -
         private void populateSettings() {
    -  615  0
             InputStream mojoProperties = null;
    -  616   -
             try {
    -  617  0
                 mojoProperties = this.getClass().getClassLoader().getResourceAsStream(PROPERTIES_FILE);
    -  618  0
                 Settings.mergeProperties(mojoProperties);
    -  619  0
             } catch (IOException ex) {
    -  620  0
                 Logger.getLogger(DependencyCheckMojo.class.getName()).log(Level.WARNING, "Unable to load the dependency-check ant task.properties file.");
    -  621  0
                 Logger.getLogger(DependencyCheckMojo.class.getName()).log(Level.FINE, null, ex);
    -  622   -
             } finally {
    -  623  0
                 if (mojoProperties != null) {
    -  624   -
                     try {
    -  625  0
                         mojoProperties.close();
    -  626  0
                     } catch (IOException ex) {
    -  627  0
                         Logger.getLogger(DependencyCheckMojo.class.getName()).log(Level.FINEST, null, ex);
    -  628  0
                     }
    -  629   +  194   +
         private Engine executeDependencyCheck() {
    +  195   +
     
    +  196  0
             final InputStream in = DependencyCheckMojo.class.getClassLoader().getResourceAsStream(LOG_PROPERTIES_FILE);
    +  197  0
             LogUtils.prepareLogger(in, logFile);
    +  198   +
     
    +  199  0
             populateSettings();
    +  200  0
             final Engine engine = new Engine();
    +  201  0
             final Set<Artifact> artifacts = project.getArtifacts();
    +  202  0
             for (Artifact a : artifacts) {
    +  203  0
                 if (!TEST_SCOPE.equals(a.getScope())) {
    +  204  0
                     engine.scan(a.getFile().getAbsolutePath());
    +  205  
                 }
    -  630   +  206  
             }
    -  631   +  207  0
             engine.analyzeDependencies();
    +  208  0
             return engine;
    +  209   +
         }
    +  210  
     
    -  632  0
             Settings.setBoolean(Settings.KEYS.AUTO_UPDATE, autoUpdate);
    -  633   +  211   +
         /**
    +  212   +
          * Generates the reports for a given dependency-check engine.
    +  213   +
          *
    +  214   +
          * @param engine a dependency-check engine
    +  215   +
          */
    +  216   +
         private void generateExternalReports(Engine engine) {
    +  217  0
             final ReportGenerator r = new ReportGenerator(project.getName(), engine.getDependencies(), engine.getAnalyzers());
    +  218   +
             try {
    +  219  0
                 r.generateReports(outputDirectory.getCanonicalPath(), format);
    +  220  0
             } catch (IOException ex) {
    +  221  0
                 Logger.getLogger(DependencyCheckMojo.class.getName()).log(Level.SEVERE, null, ex);
    +  222  0
             } catch (Exception ex) {
    +  223  0
                 Logger.getLogger(DependencyCheckMojo.class.getName()).log(Level.SEVERE, null, ex);
    +  224  0
             }
    +  225  0
         }
    +  226  
     
    -  634  0
             if (proxyUrl != null && !proxyUrl.isEmpty()) {
    -  635  0
                 Settings.setString(Settings.KEYS.PROXY_URL, proxyUrl);
    +  227   +
         /**
    +  228   +
          * Generates a dependency-check report using the Maven Site format.
    +  229   +
          *
    +  230   +
          * @param engine the engine used to scan the dependencies
    +  231   +
          * @param sink the sink to write the data to
    +  232   +
          */
    +  233   +
         private void generateMavenSiteReport(final Engine engine, Sink sink) {
    +  234  0
             final List<Dependency> dependencies = engine.getDependencies();
    +  235   +
     
    +  236  0
             writeSiteReportHeader(sink, project.getName());
    +  237  0
             writeSiteReportTOC(sink, dependencies);
    +  238   +
     
    +  239  0
             int cnt = 0;
    +  240  0
             for (Dependency d : dependencies) {
    +  241  0
                 writeSiteReportDependencyHeader(sink, d);
    +  242  0
                 cnt = writeSiteReportDependencyAnalysisExceptions(d, cnt, sink);
    +  243  0
                 cnt = writeSiteReportDependencyEvidenceUsed(d, cnt, sink);
    +  244  0
                 cnt = writeSiteReportDependencyRelatedDependencies(d, cnt, sink);
    +  245  0
                 writeSiteReportDependencyIdentifiers(d, sink);
    +  246  0
                 writeSiteReportDependencyVulnerabilities(d, sink, cnt);
    +  247   +
             }
    +  248  0
             sink.body_();
    +  249  0
         }
    +  250   +
     
    +  251   +
         // <editor-fold defaultstate="collapsed" desc="various writeXXXXX methods to generate the Site Report">
    +  252   +
         /**
    +  253   +
          * Writes the vulnerabilities to the site report.
    +  254   +
          *
    +  255   +
          * @param d the dependency
    +  256   +
          * @param sink the sink to write the data to
    +  257   +
          * @param collapsibleHeaderCount the collapsible header count
    +  258   +
          */
    +  259   +
         private void writeSiteReportDependencyVulnerabilities(Dependency d, Sink sink, int collapsibleHeaderCount) {
    +  260  0
             int cnt = collapsibleHeaderCount;
    +  261  0
             if (d.getVulnerabilities() != null && !d.getVulnerabilities().isEmpty()) {
    +  262  0
                 for (Vulnerability v : d.getVulnerabilities()) {
    +  263   +
     
    +  264  0
                     sink.paragraph();
    +  265  0
                     sink.bold();
    +  266   +
                     try {
    +  267  0
                         sink.link("http://web.nvd.nist.gov/view/vuln/detail?vulnId=" + URLEncoder.encode(v.getName(), "US-ASCII"));
    +  268  0
                         sink.text(v.getName());
    +  269  0
                         sink.link_();
    +  270  0
                         sink.bold_();
    +  271  0
                     } catch (UnsupportedEncodingException ex) {
    +  272  0
                         sink.text(v.getName());
    +  273  0
                         sink.bold_();
    +  274  0
                         sink.lineBreak();
    +  275  0
                         sink.text("http://web.nvd.nist.gov/view/vuln/detail?vulnId=" + v.getName());
    +  276  0
                     }
    +  277  0
                     sink.paragraph_();
    +  278  0
                     sink.paragraph();
    +  279  0
                     sink.text("Severity: ");
    +  280  0
                     if (v.getCvssScore() < 4.0) {
    +  281  0
                         sink.text("Low");
    +  282   +
                     } else {
    +  283  0
                         if (v.getCvssScore() >= 7.0) {
    +  284  0
                             sink.text("High");
    +  285   +
                         } else {
    +  286  0
                             sink.text("Medium");
    +  287   +
                         }
    +  288   +
                     }
    +  289  0
                     sink.lineBreak();
    +  290  0
                     sink.text("CVSS Score: " + v.getCvssScore());
    +  291  0
                     if (v.getCwe() != null && !v.getCwe().isEmpty()) {
    +  292  0
                         sink.lineBreak();
    +  293  0
                         sink.text("CWE: ");
    +  294  0
                         sink.text(v.getCwe());
    +  295   +
                     }
    +  296  0
                     sink.paragraph_();
    +  297  0
                     sink.paragraph();
    +  298  0
                     sink.text(v.getDescription());
    +  299  0
                     if (v.getReferences() != null && !v.getReferences().isEmpty()) {
    +  300  0
                         sink.list();
    +  301  0
                         for (Reference ref : v.getReferences()) {
    +  302  0
                             sink.listItem();
    +  303  0
                             sink.text(ref.getSource());
    +  304  0
                             sink.text(" - ");
    +  305  0
                             sink.link(ref.getUrl());
    +  306  0
                             sink.text(ref.getName());
    +  307  0
                             sink.link_();
    +  308  0
                             sink.listItem_();
    +  309   +
                         }
    +  310  0
                         sink.list_();
    +  311   +
                     }
    +  312  0
                     sink.paragraph_();
    +  313  0
                     if (v.getVulnerableSoftware() != null && !v.getVulnerableSoftware().isEmpty()) {
    +  314  0
                         sink.paragraph();
    +  315   +
     
    +  316  0
                         cnt += 1;
    +  317  0
                         sink.rawText("Vulnerable Software <a href=\"javascript:toggleElement(this, 'vulnSoft" + cnt + "')\">[-]</a>");
    +  318  0
                         sink.rawText("<div id=\"vulnSoft" + cnt + "\" style=\"display:block\">");
    +  319  0
                         sink.list();
    +  320  0
                         for (VulnerableSoftware vs : v.getVulnerableSoftware()) {
    +  321  0
                             sink.listItem();
    +  322   +
                             try {
    +  323  0
                                 sink.link("http://web.nvd.nist.gov/view/vuln/search-results?cpe=" + URLEncoder.encode(vs.getName(), "US-ASCII"));
    +  324  0
                                 sink.text(vs.getName());
    +  325  0
                                 sink.link_();
    +  326  0
                                 if (vs.hasPreviousVersion()) {
    +  327  0
                                     sink.text(" and all previous versions.");
    +  328   +
                                 }
    +  329  0
                             } catch (UnsupportedEncodingException ex) {
    +  330  0
                                 sink.text(vs.getName());
    +  331  0
                                 if (vs.hasPreviousVersion()) {
    +  332  0
                                     sink.text(" and all previous versions.");
    +  333   +
                                 }
    +  334  0
                                 sink.text(" (http://web.nvd.nist.gov/view/vuln/search-results?cpe=" + vs.getName() + ")");
    +  335  0
                             }
    +  336   +
     
    +  337  0
                             sink.listItem_();
    +  338   +
                         }
    +  339  0
                         sink.list_();
    +  340  0
                         sink.rawText("</div>");
    +  341  0
                         sink.paragraph_();
    +  342   +
                     }
    +  343   +
                 }
    +  344   +
             }
    +  345  0
         }
    +  346   +
     
    +  347   +
         /**
    +  348   +
          * Writes the identifiers to the site report.
    +  349   +
          *
    +  350   +
          * @param d the dependency
    +  351   +
          * @param sink the sink to write the data to
    +  352   +
          */
    +  353   +
         private void writeSiteReportDependencyIdentifiers(Dependency d, Sink sink) {
    +  354  0
             if (d.getIdentifiers() != null && !d.getIdentifiers().isEmpty()) {
    +  355  0
                 sink.sectionTitle4();
    +  356  0
                 sink.text("Identifiers");
    +  357  0
                 sink.sectionTitle4_();
    +  358  0
                 sink.list();
    +  359  0
                 for (Identifier i : d.getIdentifiers()) {
    +  360  0
                     sink.listItem();
    +  361  0
                     sink.text(i.getType());
    +  362  0
                     sink.text(": ");
    +  363  0
                     if (i.getUrl() != null && i.getUrl().length() > 0) {
    +  364  0
                         sink.link(i.getUrl());
    +  365  0
                         sink.text(i.getValue());
    +  366  0
                         sink.link_();
    +  367   +
                     } else {
    +  368  0
                         sink.text(i.getValue());
    +  369   +
                     }
    +  370  0
                     if (i.getDescription() != null && i.getDescription().length() > 0) {
    +  371  0
                         sink.lineBreak();
    +  372  0
                         sink.text(i.getDescription());
    +  373   +
                     }
    +  374  0
                     sink.listItem_();
    +  375   +
                 }
    +  376  0
                 sink.list_();
    +  377   +
             }
    +  378  0
         }
    +  379   +
     
    +  380   +
         /**
    +  381   +
          * Writes the related dependencies to the site report.
    +  382   +
          *
    +  383   +
          * @param d the dependency
    +  384   +
          * @param sink the sink to write the data to
    +  385   +
          * @param collapsibleHeaderCount the collapsible header count
    +  386   +
          * @return the collapsible header count
    +  387   +
          */
    +  388   +
         private int writeSiteReportDependencyRelatedDependencies(Dependency d, int collapsibleHeaderCount, Sink sink) {
    +  389  0
             int cnt = collapsibleHeaderCount;
    +  390  0
             if (d.getRelatedDependencies() != null && !d.getRelatedDependencies().isEmpty()) {
    +  391  0
                 cnt += 1;
    +  392  0
                 sink.sectionTitle4();
    +  393  0
                 sink.rawText("Related Dependencies <a href=\"javascript:toggleElement(this, 'related" + cnt + "')\">[+]</a>");
    +  394  0
                 sink.sectionTitle4_();
    +  395  0
                 sink.rawText("<div id=\"related" + cnt + "\" style=\"display:none\">");
    +  396  0
                 sink.list();
    +  397  0
                 for (Dependency r : d.getRelatedDependencies()) {
    +  398  0
                     sink.listItem();
    +  399  0
                     sink.text(r.getFileName());
    +  400  0
                     sink.list();
    +  401  0
                     writeListItem(sink, "File Path: " + r.getFilePath());
    +  402  0
                     writeListItem(sink, "SHA1: " + r.getSha1sum());
    +  403  0
                     writeListItem(sink, "MD5: " + r.getMd5sum());
    +  404  0
                     sink.list_();
    +  405  0
                     sink.listItem_();
    +  406   +
                 }
    +  407  0
                 sink.list_();
    +  408  0
                 sink.rawText("</div>");
    +  409   +
             }
    +  410  0
             return cnt;
    +  411   +
         }
    +  412   +
     
    +  413   +
         /**
    +  414   +
          * Writes the evidence used to the site report.
    +  415   +
          *
    +  416   +
          * @param d the dependency
    +  417   +
          * @param sink the sink to write the data to
    +  418   +
          * @param collapsibleHeaderCount the collapsible header count
    +  419   +
          * @return the collapsible header count
    +  420   +
          */
    +  421   +
         private int writeSiteReportDependencyEvidenceUsed(Dependency d, int collapsibleHeaderCount, Sink sink) {
    +  422  0
             int cnt = collapsibleHeaderCount;
    +  423  0
             if (d.getEvidenceUsed() != null && d.getEvidenceUsed().size() > 0) {
    +  424  0
                 cnt += 1;
    +  425  0
                 sink.sectionTitle4();
    +  426  0
                 sink.rawText("Evidence Collected <a href=\"javascript:toggleElement(this, 'evidence" + cnt + "')\">[+]</a>");
    +  427  0
                 sink.sectionTitle4_();
    +  428  0
                 sink.rawText("<div id=\"evidence" + cnt + "\" style=\"display:none\">");
    +  429  0
                 sink.table();
    +  430  0
                 sink.tableRow();
    +  431  0
                 writeTableHeaderCell(sink, "Source");
    +  432  0
                 writeTableHeaderCell(sink, "Name");
    +  433  0
                 writeTableHeaderCell(sink, "Value");
    +  434  0
                 sink.tableRow_();
    +  435  0
                 for (Evidence e : d.getEvidenceUsed()) {
    +  436  0
                     sink.tableRow();
    +  437  0
                     writeTableCell(sink, e.getSource());
    +  438  0
                     writeTableCell(sink, e.getName());
    +  439  0
                     writeTableCell(sink, e.getValue());
    +  440  0
                     sink.tableRow_();
    +  441   +
                 }
    +  442  0
                 sink.table_();
    +  443  0
                 sink.rawText("</div>");
    +  444   +
             }
    +  445  0
             return cnt;
    +  446   +
         }
    +  447   +
     
    +  448   +
         /**
    +  449   +
          * Writes the analysis exceptions generated during analysis to the site
    +  450   +
          * report.
    +  451   +
          *
    +  452   +
          * @param d the dependency
    +  453   +
          * @param sink the sink to write the data to
    +  454   +
          * @param collapsibleHeaderCount the collapsible header count
    +  455   +
          * @return the collapsible header count
    +  456   +
          */
    +  457   +
         private int writeSiteReportDependencyAnalysisExceptions(Dependency d, int collapsibleHeaderCount, Sink sink) {
    +  458  0
             int cnt = collapsibleHeaderCount;
    +  459  0
             if (d.getAnalysisExceptions() != null && !d.getAnalysisExceptions().isEmpty()) {
    +  460  0
                 cnt += 1;
    +  461  0
                 sink.sectionTitle4();
    +  462  0
                 sink.rawText("<font style=\"color:red\">Errors occurred during analysis:</font> <a href=\"javascript:toggleElement(this, 'errors"
    +  463   +
                         + cnt + "')\">[+]</a>");
    +  464  0
                 sink.sectionTitle4_();
    +  465  0
                 sink.rawText("<div id=\"errors" + cnt + "\">");
    +  466  0
                 sink.list();
    +  467  0
                 for (Exception e : d.getAnalysisExceptions()) {
    +  468  0
                     sink.listItem();
    +  469  0
                     sink.text(e.getMessage());
    +  470  0
                     sink.listItem_();
    +  471   +
                 }
    +  472  0
                 sink.list_();
    +  473  0
                 sink.rawText("</div>");
    +  474   +
             }
    +  475  0
             return cnt;
    +  476   +
         }
    +  477   +
     
    +  478   +
         /**
    +  479   +
          * Writes the dependency header to the site report.
    +  480   +
          *
    +  481   +
          * @param d the dependency
    +  482   +
          * @param sink the sink to write the data to
    +  483   +
          */
    +  484   +
         private void writeSiteReportDependencyHeader(Sink sink, Dependency d) {
    +  485  0
             sink.sectionTitle2();
    +  486  0
             sink.anchor("sha1" + d.getSha1sum());
    +  487  0
             sink.text(d.getFileName());
    +  488  0
             sink.anchor_();
    +  489  0
             sink.sectionTitle2_();
    +  490  0
             if (d.getDescription() != null && d.getDescription().length() > 0) {
    +  491  0
                 sink.paragraph();
    +  492  0
                 sink.bold();
    +  493  0
                 sink.text("Description: ");
    +  494  0
                 sink.bold_();
    +  495  0
                 sink.text(d.getDescription());
    +  496  0
                 sink.paragraph_();
    +  497   +
             }
    +  498  0
             if (d.getLicense() != null && d.getLicense().length() > 0) {
    +  499  0
                 sink.paragraph();
    +  500  0
                 sink.bold();
    +  501  0
                 sink.text("License: ");
    +  502  0
                 sink.bold_();
    +  503  0
                 if (d.getLicense().startsWith("http://") && !d.getLicense().contains(" ")) {
    +  504  0
                     sink.link(d.getLicense());
    +  505  0
                     sink.text(d.getLicense());
    +  506  0
                     sink.link_();
    +  507   +
                 } else {
    +  508  0
                     sink.text(d.getLicense());
    +  509   +
                 }
    +  510  0
                 sink.paragraph_();
    +  511   +
             }
    +  512  0
         }
    +  513   +
     
    +  514   +
         /**
    +  515   +
          * Adds a list item to the site report.
    +  516   +
          *
    +  517   +
          * @param sink the sink to write the data to
    +  518   +
          * @param text the text to write
    +  519   +
          */
    +  520   +
         private void writeListItem(Sink sink, String text) {
    +  521  0
             sink.listItem();
    +  522  0
             sink.text(text);
    +  523  0
             sink.listItem_();
    +  524  0
         }
    +  525   +
     
    +  526   +
         /**
    +  527   +
          * Adds a table cell to the site report.
    +  528   +
          *
    +  529   +
          * @param sink the sink to write the data to
    +  530   +
          * @param text the text to write
    +  531   +
          */
    +  532   +
         private void writeTableCell(Sink sink, String text) {
    +  533  0
             sink.tableCell();
    +  534  0
             sink.text(text);
    +  535  0
             sink.tableCell_();
    +  536  0
         }
    +  537   +
     
    +  538   +
         /**
    +  539   +
          * Adds a table header cell to the site report.
    +  540   +
          *
    +  541   +
          * @param sink the sink to write the data to
    +  542   +
          * @param text the text to write
    +  543   +
          */
    +  544   +
         private void writeTableHeaderCell(Sink sink, String text) {
    +  545  0
             sink.tableHeaderCell();
    +  546  0
             sink.text(text);
    +  547  0
             sink.tableHeaderCell_();
    +  548  0
         }
    +  549   +
     
    +  550   +
         /**
    +  551   +
          * Writes the TOC for the site report.
    +  552   +
          *
    +  553   +
          * @param sink the sink to write the data to
    +  554   +
          * @param dependencies the dependencies that are being reported on
    +  555   +
          */
    +  556   +
         private void writeSiteReportTOC(Sink sink, final List<Dependency> dependencies) {
    +  557  0
             sink.list();
    +  558  0
             for (Dependency d : dependencies) {
    +  559  0
                 sink.listItem();
    +  560  0
                 sink.link("#sha1" + d.getSha1sum());
    +  561  0
                 sink.text(d.getFileName());
    +  562  0
                 sink.link_();
    +  563  0
                 if (!d.getVulnerabilities().isEmpty()) {
    +  564  0
                     sink.rawText(" <font style=\"color:red\">•</font>");
    +  565   +
                 }
    +  566  0
                 if (!d.getRelatedDependencies().isEmpty()) {
    +  567  0
                     sink.list();
    +  568  0
                     for (Dependency r : d.getRelatedDependencies()) {
    +  569  0
                         writeListItem(sink, r.getFileName());
    +  570   +
                     }
    +  571  0
                     sink.list_();
    +  572   +
                 }
    +  573  0
                 sink.listItem_();
    +  574   +
             }
    +  575  0
             sink.list_();
    +  576  0
         }
    +  577   +
     
    +  578   +
         /**
    +  579   +
          * Writes the site report header.
    +  580   +
          *
    +  581   +
          * @param sink the sink to write the data to
    +  582   +
          * @param projectName the name of the project
    +  583   +
          */
    +  584   +
         private void writeSiteReportHeader(Sink sink, String projectName) {
    +  585  0
             sink.head();
    +  586  0
             sink.title();
    +  587  0
             sink.text("Dependency-Check Report: " + projectName);
    +  588  0
             sink.title_();
    +  589  0
             sink.head_();
    +  590  0
             sink.body();
    +  591  0
             sink.rawText("<script type=\"text/javascript\">");
    +  592  0
             sink.rawText("function toggleElement(el, targetId) {");
    +  593  0
             sink.rawText("if (el.innerText == '[+]') {");
    +  594  0
             sink.rawText("    el.innerText = '[-]';");
    +  595  0
             sink.rawText("    document.getElementById(targetId).style.display='block';");
    +  596  0
             sink.rawText("} else {");
    +  597  0
             sink.rawText("    el.innerText = '[+]';");
    +  598  0
             sink.rawText("    document.getElementById(targetId).style.display='none';");
    +  599  0
             sink.rawText("}");
    +  600   +
     
    +  601  0
             sink.rawText("}");
    +  602  0
             sink.rawText("</script>");
    +  603  0
             sink.section1();
    +  604  0
             sink.sectionTitle1();
    +  605  0
             sink.text("Project: " + projectName);
    +  606  0
             sink.sectionTitle1_();
    +  607  0
             sink.date();
    +  608  0
             final Date now = new Date();
    +  609  0
             sink.text(DateFormat.getDateTimeInstance().format(now));
    +  610  0
             sink.date_();
    +  611  0
             sink.section1_();
    +  612  0
         }
    +  613   +
         // </editor-fold>
    +  614   +
     
    +  615   +
         /**
    +  616   +
          * Takes the properties supplied and updates the dependency-check settings.
    +  617   +
          * Additionally, this sets the system properties required to change the
    +  618   +
          * proxy url, port, and connection timeout.
    +  619   +
          */
    +  620   +
         private void populateSettings() {
    +  621  0
             InputStream mojoProperties = null;
    +  622   +
             try {
    +  623  0
                 mojoProperties = this.getClass().getClassLoader().getResourceAsStream(PROPERTIES_FILE);
    +  624  0
                 Settings.mergeProperties(mojoProperties);
    +  625  0
             } catch (IOException ex) {
    +  626  0
                 Logger.getLogger(DependencyCheckMojo.class.getName()).log(Level.WARNING, "Unable to load the dependency-check ant task.properties file.");
    +  627  0
                 Logger.getLogger(DependencyCheckMojo.class.getName()).log(Level.FINE, null, ex);
    +  628   +
             } finally {
    +  629  0
                 if (mojoProperties != null) {
    +  630   +
                     try {
    +  631  0
                         mojoProperties.close();
    +  632  0
                     } catch (IOException ex) {
    +  633  0
                         Logger.getLogger(DependencyCheckMojo.class.getName()).log(Level.FINEST, null, ex);
    +  634  0
                     }
    +  635   +
                 }
     636  
             }
    -  637  0
             if (proxyPort != null && !proxyPort.isEmpty()) {
    -  638  0
                 Settings.setString(Settings.KEYS.PROXY_PORT, proxyPort);
    +  637   +
     
    +  638  0
             Settings.setBoolean(Settings.KEYS.AUTO_UPDATE, autoUpdate);
     639   -
             }
    -  640  0
             if (proxyUsername != null && !proxyUsername.isEmpty()) {
    -  641  0
                 Settings.setString(Settings.KEYS.PROXY_USERNAME, proxyUsername);
    +
     
    +  640  0
             if (proxyUrl != null && !proxyUrl.isEmpty()) {
    +  641  0
                 Settings.setString(Settings.KEYS.PROXY_URL, proxyUrl);
     642  
             }
    -  643  0
             if (proxyPassword != null && !proxyPassword.isEmpty()) {
    -  644  0
                 Settings.setString(Settings.KEYS.PROXY_PASSWORD, proxyPassword);
    +  643  0
             if (proxyPort != null && !proxyPort.isEmpty()) {
    +  644  0
                 Settings.setString(Settings.KEYS.PROXY_PORT, proxyPort);
     645  
             }
    -  646  0
             if (connectionTimeout != null && !connectionTimeout.isEmpty()) {
    -  647  0
                 Settings.setString(Settings.KEYS.CONNECTION_TIMEOUT, connectionTimeout);
    +  646  0
             if (proxyUsername != null && !proxyUsername.isEmpty()) {
    +  647  0
                 Settings.setString(Settings.KEYS.PROXY_USERNAME, proxyUsername);
     648  
             }
    -  649  0
         }
    -  650   -
     
    +  649  0
             if (proxyPassword != null && !proxyPassword.isEmpty()) {
    +  650  0
                 Settings.setString(Settings.KEYS.PROXY_PASSWORD, proxyPassword);
     651   -
         /**
    -  652   -
          * Executes the dependency-check and generates the report.
    -  653   -
          *
    -  654   -
          * @throws MojoExecutionException if a maven exception occurs
    -  655   -
          * @throws MojoFailureException thrown if a CVSS score is found that is
    -  656   -
          * higher then the configured level
    -  657   -
          */
    -  658   -
         public void execute() throws MojoExecutionException, MojoFailureException {
    -  659  0
             final Engine engine = executeDependencyCheck();
    -  660  0
             generateExternalReports(engine);
    -  661  0
             if (this.failBuildOnCVSS <= 10) {
    -  662  0
                 checkForFailure(engine.getDependencies());
    -  663  
             }
    -  664  0
         }
    +  652  0
             if (connectionTimeout != null && !connectionTimeout.isEmpty()) {
    +  653  0
                 Settings.setString(Settings.KEYS.CONNECTION_TIMEOUT, connectionTimeout);
    +  654   +
             }
    +  655  0
             if (suppressionFile != null && !suppressionFile.isEmpty()) {
    +  656  0
                 Settings.setString(Settings.KEYS.SUPPRESSION_FILE, suppressionFile);
    +  657   +
             }
    +  658  0
         }
    +  659   +
     
    +  660   +
         /**
    +  661   +
          * Executes the dependency-check and generates the report.
    +  662   +
          *
    +  663   +
          * @throws MojoExecutionException if a maven exception occurs
    +  664   +
          * @throws MojoFailureException thrown if a CVSS score is found that is
     665   -
     
    +
          * higher then the configured level
     666   -
         /**
    +
          */
     667   -
          * Generates the Dependency-Check Site Report.
    -  668   -
          *
    -  669   -
          * @param sink the sink to write the report to
    -  670   -
          * @param locale the locale to use when generating the report
    -  671   -
          * @throws MavenReportException if a Maven report exception occurs
    +
         public void execute() throws MojoExecutionException, MojoFailureException {
    +  668  0
             final Engine engine = executeDependencyCheck();
    +  669  0
             generateExternalReports(engine);
    +  670  0
             if (this.failBuildOnCVSS <= 10) {
    +  671  0
                 checkForFailure(engine.getDependencies());
     672   -
          */
    -  673   -
         public void generate(@SuppressWarnings("deprecation") org.codehaus.doxia.sink.Sink sink,
    +
             }
    +  673  0
         }
     674   -
                 Locale locale) throws MavenReportException {
    -  675  0
             generate((Sink) sink, null, locale);
    -  676  0
         }
    -  677  
     
    -  678   +  675  
         /**
    -  679   +  676  
          * Generates the Dependency-Check Site Report.
    -  680   +  677  
          *
    -  681   +  678  
          * @param sink the sink to write the report to
    -  682   -
          * @param sinkFactory the sink factory
    -  683   +  679  
          * @param locale the locale to use when generating the report
    -  684   -
          * @throws MavenReportException if a maven report exception occurs
    -  685   +  680   +
          * @throws MavenReportException if a Maven report exception occurs
    +  681  
          */
    +  682   +
         public void generate(@SuppressWarnings("deprecation") org.codehaus.doxia.sink.Sink sink,
    +  683   +
                 Locale locale) throws MavenReportException {
    +  684  0
             generate((Sink) sink, null, locale);
    +  685  0
         }
     686   -
         public void generate(Sink sink, SinkFactory sinkFactory, Locale locale) throws MavenReportException {
    -  687  0
             final Engine engine = executeDependencyCheck();
    -  688  0
             generateMavenSiteReport(engine, sink);
    -  689  0
         }
    -  690  
     
    -  691   -
         // <editor-fold defaultstate="collapsed" desc="required setter/getter methods">
    -  692   +  687  
         /**
    -  693   -
          * Returns the output name.
    -  694   +  688   +
          * Generates the Dependency-Check Site Report.
    +  689  
          *
    -  695   -
          * @return the output name
    -  696   +  690   +
          * @param sink the sink to write the report to
    +  691   +
          * @param sinkFactory the sink factory
    +  692   +
          * @param locale the locale to use when generating the report
    +  693   +
          * @throws MavenReportException if a maven report exception occurs
    +  694  
          */
    -  697   -
         public String getOutputName() {
    -  698  0
             return reportName;
    +  695   +
         public void generate(Sink sink, SinkFactory sinkFactory, Locale locale) throws MavenReportException {
    +  696  0
             final Engine engine = executeDependencyCheck();
    +  697  0
             generateMavenSiteReport(engine, sink);
    +  698  0
         }
     699   -
         }
    -  700  
     
    +  700   +
         // <editor-fold defaultstate="collapsed" desc="required setter/getter methods">
     701  
         /**
     702   -
          * Returns the category name.
    +
          * Returns the output name.
     703  
          *
     704   -
          * @return the category name
    +
          * @return the output name
     705  
          */
     706   -
         public String getCategoryName() {
    -  707  0
             return MavenReport.CATEGORY_PROJECT_REPORTS;
    +
         public String getOutputName() {
    +  707  0
             return reportName;
     708  
         }
     709   @@ -1138,89 +1136,89 @@  710  
         /**
     711   -
          * Returns the report name.
    +
          * Returns the category name.
     712  
          *
     713   -
          * @param locale the location
    +
          * @return the category name
     714   -
          * @return the report name
    -  715  
          */
    -  716   -
         public String getName(Locale locale) {
    -  717  0
             return name;
    -  718   +  715   +
         public String getCategoryName() {
    +  716  0
             return MavenReport.CATEGORY_PROJECT_REPORTS;
    +  717  
         }
    -  719   +  718  
     
    -  720   +  719  
         /**
    +  720   +
          * Returns the report name.
     721   -
          * Sets the Reporting output directory.
    -  722  
          *
    +  722   +
          * @param locale the location
     723   -
          * @param directory the output directory
    +
          * @return the report name
     724  
          */
     725   -
         public void setReportOutputDirectory(File directory) {
    -  726  0
             reportOutputDirectory = directory;
    -  727  0
         }
    +
         public String getName(Locale locale) {
    +  726  0
             return name;
    +  727   +
         }
     728  
     
     729  
         /**
     730   -
          * Returns the output directory.
    +
          * Sets the Reporting output directory.
     731  
          *
     732   -
          * @return the output directory
    +
          * @param directory the output directory
     733  
          */
     734   -
         public File getReportOutputDirectory() {
    -  735  0
             return reportOutputDirectory;
    -  736   -
         }
    +
         public void setReportOutputDirectory(File directory) {
    +  735  0
             reportOutputDirectory = directory;
    +  736  0
         }
     737  
     
     738  
         /**
     739   -
          * Gets the description of the Dependency-Check report to be displayed in
    +
          * Returns the output directory.
     740   -
          * the Maven Generated Reports page.
    +
          *
     741   -
          *
    +
          * @return the output directory
     742   -
          * @param locale The Locale to get the description for
    -  743   -
          * @return the description
    -  744  
          */
    +  743   +
         public File getReportOutputDirectory() {
    +  744  0
             return reportOutputDirectory;
     745   -
         public String getDescription(Locale locale) {
    -  746  0
             return description;
    -  747  
         }
    -  748   +  746  
     
    -  749   +  747  
         /**
    +  748   +
          * Gets the description of the Dependency-Check report to be displayed in
    +  749   +
          * the Maven Generated Reports page.
     750   -
          * Returns whether this is an external report.
    -  751  
          *
    +  751   +
          * @param locale The Locale to get the description for
     752   -
          * @return true or false;
    +
          * @return the description
     753  
          */
     754   -
         public boolean isExternalReport() {
    -  755  0
             return externalReport;
    +
         public String getDescription(Locale locale) {
    +  755  0
             return description;
     756  
         }
     757   @@ -1228,71 +1226,88 @@  758  
         /**
     759   -
          * Returns whether or not the plugin can generate a report.
    +
          * Returns whether this is an external report.
     760  
          *
     761   -
          * @return true
    +
          * @return true or false;
     762  
          */
     763   -
         public boolean canGenerateReport() {
    -  764  0
             return true;
    +
         public boolean isExternalReport() {
    +  764  0
             return externalReport;
     765  
         }
     766   -
         // </editor-fold>
    -  767  
     
    -  768   +  767  
         /**
    +  768   +
          * Returns whether or not the plugin can generate a report.
     769   -
          * Checks to see if a vulnerability has been identified with a CVSS score
    -  770   -
          * that is above the threshold set in the configuration.
    -  771  
          *
    -  772   -
          * @param dependencies the list of dependency objects
    -  773   -
          * @throws MojoFailureException thrown if a CVSS score is found that is
    -  774   -
          * higher then the threshold set
    -  775   +  770   +
          * @return true
    +  771  
          */
    +  772   +
         public boolean canGenerateReport() {
    +  773  0
             return true;
    +  774   +
         }
    +  775   +
         // </editor-fold>
     776   -
         private void checkForFailure(List<Dependency> dependencies) throws MojoFailureException {
    -  777  0
             final StringBuilder ids = new StringBuilder();
    -  778  0
             for (Dependency d : dependencies) {
    -  779  0
                 for (Vulnerability v : d.getVulnerabilities()) {
    -  780  0
                     if (v.getCvssScore() >= failBuildOnCVSS) {
    -  781  0
                         if (ids.length() == 0) {
    -  782  0
                             ids.append(v.getName());
    +
     
    +  777   +
         /**
    +  778   +
          * Checks to see if a vulnerability has been identified with a CVSS score
    +  779   +
          * that is above the threshold set in the configuration.
    +  780   +
          *
    +  781   +
          * @param dependencies the list of dependency objects
    +  782   +
          * @throws MojoFailureException thrown if a CVSS score is found that is
     783   -
                         } else {
    -  784  0
                             ids.append(", ").append(v.getName());
    +
          * higher then the threshold set
    +  784   +
          */
     785   -
                         }
    -  786   -
                     }
    -  787   -
                 }
    -  788   -
             }
    -  789  0
             if (ids.length() > 0) {
    -  790  0
                 final String msg = String.format("%n%nDependency-Check Failure:%n"
    -  791   -
                         + "One or more dependencies were identified with vulnerabilities that have a CVSS score greater then '%.1f': %s%n"
    +
         private void checkForFailure(List<Dependency> dependencies) throws MojoFailureException {
    +  786  0
             final StringBuilder ids = new StringBuilder();
    +  787  0
             for (Dependency d : dependencies) {
    +  788  0
                 for (Vulnerability v : d.getVulnerabilities()) {
    +  789  0
                     if (v.getCvssScore() >= failBuildOnCVSS) {
    +  790  0
                         if (ids.length() == 0) {
    +  791  0
                             ids.append(v.getName());
     792   -
                         + "See the dependency-check report for more details.%n%n", failBuildOnCVSS, ids.toString());
    -  793  0
                 throw new MojoFailureException(msg);
    +
                         } else {
    +  793  0
                             ids.append(", ").append(v.getName());
     794   -
             }
    -  795  0
         }
    +
                         }
    +  795   +
                     }
     796   +
                 }
    +  797   +
             }
    +  798  0
             if (ids.length() > 0) {
    +  799  0
                 final String msg = String.format("%n%nDependency-Check Failure:%n"
    +  800   +
                         + "One or more dependencies were identified with vulnerabilities that have a CVSS score greater then '%.1f': %s%n"
    +  801   +
                         + "See the dependency-check report for more details.%n%n", failBuildOnCVSS, ids.toString());
    +  802  0
                 throw new MojoFailureException(msg);
    +  803   +
             }
    +  804  0
         }
    +  805  
     }
    - + diff --git a/dependency-check-maven/cobertura/org.owasp.dependencycheck.maven.HelpMojo.html b/dependency-check-maven/cobertura/org.owasp.dependencycheck.maven.HelpMojo.html index 0f0f6446a..0ece40744 100644 --- a/dependency-check-maven/cobertura/org.owasp.dependencycheck.maven.HelpMojo.html +++ b/dependency-check-maven/cobertura/org.owasp.dependencycheck.maven.HelpMojo.html @@ -747,6 +747,6 @@
     }
    - + diff --git a/dependency-check-maven/configuration.html b/dependency-check-maven/configuration.html index f4278cf25..79967a3a8 100644 --- a/dependency-check-maven/configuration.html +++ b/dependency-check-maven/configuration.html @@ -1,13 +1,13 @@ - + dependency-check-maven - @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -199,33 +199,40 @@ +suppressionFile + +The file path to the XML suppression file - used to support suppressing false positives + + + + connectionTimeout The Connection Timeout. - + proxyUrl The Proxy URL. - + proxyPort The Proxy Port. - + proxyUsername Defines the proxy user name. - + proxyPassword diff --git a/dependency-check-maven/cpd.html b/dependency-check-maven/cpd.html index aad61565d..7144fe9ee 100644 --- a/dependency-check-maven/cpd.html +++ b/dependency-check-maven/cpd.html @@ -1,13 +1,13 @@ - + dependency-check-maven - CPD Results @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • diff --git a/dependency-check-maven/dependency-updates-report.html b/dependency-check-maven/dependency-updates-report.html index 6a11a606b..dc68c9ddf 100644 --- a/dependency-check-maven/dependency-updates-report.html +++ b/dependency-check-maven/dependency-updates-report.html @@ -1,13 +1,13 @@ - + dependency-check-maven - Dependency Updates Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -360,7 +360,7 @@ org.owasp dependency-check-core -1.0.5 +1.0.6 compile jar @@ -577,7 +577,7 @@ dependency-check-core Current Version -1.0.5 +1.0.6 Scope compile diff --git a/dependency-check-maven/findbugs.html b/dependency-check-maven/findbugs.html index 71d95c880..3a3e64ff9 100644 --- a/dependency-check-maven/findbugs.html +++ b/dependency-check-maven/findbugs.html @@ -1,13 +1,13 @@ - + dependency-check-maven - FindBugs Bug Detector Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • diff --git a/dependency-check-maven/help-mojo.html b/dependency-check-maven/help-mojo.html index 6b1389144..fb6c6ed19 100644 --- a/dependency-check-maven/help-mojo.html +++ b/dependency-check-maven/help-mojo.html @@ -1,13 +1,13 @@ - + dependency-check-maven - dependency-check:help @@ -55,7 +55,7 @@
  • - +
  • /
  • @@ -69,8 +69,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -148,7 +148,7 @@

    Full name:

    -

    org.owasp:dependency-check-maven:1.0.5:help

    +

    org.owasp:dependency-check-maven:1.0.6:help

    Description:

    diff --git a/dependency-check-maven/index.html b/dependency-check-maven/index.html index 7938e961f..fb90dc9f2 100644 --- a/dependency-check-maven/index.html +++ b/dependency-check-maven/index.html @@ -1,13 +1,13 @@ - + dependency-check-jenkins - @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • diff --git a/dependency-check-maven/license.html b/dependency-check-maven/license.html index 65553c313..f0f10c384 100644 --- a/dependency-check-maven/license.html +++ b/dependency-check-maven/license.html @@ -1,13 +1,13 @@ - + dependency-check-jenkins - Project License @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • diff --git a/dependency-check-maven/plugin-info.html b/dependency-check-maven/plugin-info.html index 7739ab6e6..a18f3a332 100644 --- a/dependency-check-maven/plugin-info.html +++ b/dependency-check-maven/plugin-info.html @@ -1,13 +1,13 @@ - + dependency-check-maven - Plugin Documentation @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -278,7 +278,7 @@ Call mvn dependency-check:help -Ddetail=true <plugin> <groupId>org.owasp</groupId> <artifactId>dependency-check-maven</artifactId> - <version>1.0.5</version> + <version>1.0.6</version> </plugin> ... </plugins> @@ -288,7 +288,7 @@ Call mvn dependency-check:help -Ddetail=true <plugin> <groupId>org.owasp</groupId> <artifactId>dependency-check-maven</artifactId> - <version>1.0.5</version> + <version>1.0.6</version> </plugin> ... </plugins> @@ -300,7 +300,7 @@ Call mvn dependency-check:help -Ddetail=true <plugin> <groupId>org.owasp</groupId> <artifactId>dependency-check-maven</artifactId> - <version>1.0.5</version> + <version>1.0.6</version> </plugin> ... </plugins> diff --git a/dependency-check-maven/plugin-updates-report.html b/dependency-check-maven/plugin-updates-report.html index ed30e7849..10f4de77b 100644 --- a/dependency-check-maven/plugin-updates-report.html +++ b/dependency-check-maven/plugin-updates-report.html @@ -1,13 +1,13 @@ - + dependency-check-maven - Plugin Updates Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -257,7 +257,7 @@ # of plugins where a dependencies section containes a dependency with an updated version -0 +1

    Plugin Management

    @@ -435,7 +435,7 @@ - + @@ -443,7 +443,7 @@ - + @@ -746,7 +746,7 @@ - + @@ -754,7 +754,7 @@ - + @@ -772,7 +772,7 @@
    org.apache.maven.plugins maven-site-plugin 3.3
    org.apache.maven.pluginsNext Minor Next Major
    org.apache.maven.doxia doxia-module-markdown 1.4jar 1.5
    Status
    - + @@ -787,7 +787,10 @@ -
    Status No newer versions available.
     There is at least one newer minor version available. Minor updates are sometimes passive.
    Group Id org.apache.maven.doxia
    Typejar
    +jar + +Newer versions +1.5 Next Minor

    Plugin org.apache.maven.plugins:maven-surefire-plugin

    diff --git a/dependency-check-maven/pmd.html b/dependency-check-maven/pmd.html index 523952159..0110a0112 100644 --- a/dependency-check-maven/pmd.html +++ b/dependency-check-maven/pmd.html @@ -1,13 +1,13 @@ - + dependency-check-maven - PMD Results @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • diff --git a/dependency-check-maven/project-info.html b/dependency-check-maven/project-info.html index 31427a03e..b8f026a53 100644 --- a/dependency-check-maven/project-info.html +++ b/dependency-check-maven/project-info.html @@ -1,13 +1,13 @@ - + dependency-check-jenkins - Project Information @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • diff --git a/dependency-check-maven/project-reports.html b/dependency-check-maven/project-reports.html index af6b8a572..71740dc8d 100644 --- a/dependency-check-maven/project-reports.html +++ b/dependency-check-maven/project-reports.html @@ -1,13 +1,13 @@ - + dependency-check-maven - Generated Reports @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • diff --git a/dependency-check-maven/project-summary.html b/dependency-check-maven/project-summary.html index d70abf372..c5d4f5e9a 100644 --- a/dependency-check-maven/project-summary.html +++ b/dependency-check-maven/project-summary.html @@ -1,13 +1,13 @@ - + dependency-check-jenkins - Project Summary @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -181,7 +181,7 @@ - +
    dependency-check-jenkins
    Version1.0.5
    1.0.6
    Type pom
    diff --git a/dependency-check-maven/surefire-report.html b/dependency-check-maven/surefire-report.html index 092fdf6a3..4445279a1 100644 --- a/dependency-check-maven/surefire-report.html +++ b/dependency-check-maven/surefire-report.html @@ -1,13 +1,13 @@ - + dependency-check-maven - Surefire Report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -266,7 +266,7 @@ function toggleDisplay(elementId) { 0 0 100% -0.068
    +0.084

    Note: failures are anticipated and checked for with assertions while errors are unanticipated.


    Package List

    @@ -287,7 +287,7 @@ function toggleDisplay(elementId) { 0 0 100% -0.068
    +0.084

    Note: package statistics are not computed recursively, they only sum up all of its testsuites numbers.

    org.owasp.dependencycheck.maven

    @@ -309,7 +309,7 @@ function toggleDisplay(elementId) { 0 0 100% -0.068

    +0.084

    Test Cases

    [Summary] [Package List] [Test Cases]

    @@ -319,7 +319,7 @@ function toggleDisplay(elementId) { testGenerate_Sink_SinkFactory_Locale -0.001

    +0.002
    diff --git a/dependency-check-maven/taglist.html b/dependency-check-maven/taglist.html index 3f725526f..4499a330b 100644 --- a/dependency-check-maven/taglist.html +++ b/dependency-check-maven/taglist.html @@ -1,13 +1,13 @@ - + dependency-check-maven - Tag List report @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • diff --git a/dependency-check-maven/usage.html b/dependency-check-maven/usage.html index 70821c7a1..8a08edda5 100644 --- a/dependency-check-maven/usage.html +++ b/dependency-check-maven/usage.html @@ -1,13 +1,13 @@ - + dependency-check-maven - @@ -54,7 +54,7 @@
  • - +
  • /
  • @@ -67,8 +67,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -150,7 +150,7 @@ <plugin> <groupId>org.owasp</groupId> <artifactId>dependency-check-maven</artifactId> - <version>1.0.5</version> + <version>1.0.6</version> <configuration> <failBuildOnCVSS>8</failBuildOnCVSS> </configuration> @@ -184,7 +184,7 @@ <plugin> <groupId>org.owasp</groupId> <artifactId>dependency-check-maven</artifactId> - <version>1.0.5</version> + <version>1.0.6</version> <configuration> <externalReport>false</externalReport> </configuration> diff --git a/dependency-check-maven/xref-test/index.html b/dependency-check-maven/xref-test/index.html index ee024196c..61a18db9a 100644 --- a/dependency-check-maven/xref-test/index.html +++ b/dependency-check-maven/xref-test/index.html @@ -3,7 +3,7 @@ - Dependency-Check Maven Plugin 1.0.5 Reference + Dependency-Check Maven Plugin 1.0.6 Reference diff --git a/dependency-check-maven/xref-test/org/owasp/dependencycheck/maven/package-frame.html b/dependency-check-maven/xref-test/org/owasp/dependencycheck/maven/package-frame.html index dc386248f..253b9c1fe 100644 --- a/dependency-check-maven/xref-test/org/owasp/dependencycheck/maven/package-frame.html +++ b/dependency-check-maven/xref-test/org/owasp/dependencycheck/maven/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Maven Plugin 1.0.5 Reference Package org.owasp.dependencycheck.maven + Dependency-Check Maven Plugin 1.0.6 Reference Package org.owasp.dependencycheck.maven diff --git a/dependency-check-maven/xref-test/org/owasp/dependencycheck/maven/package-summary.html b/dependency-check-maven/xref-test/org/owasp/dependencycheck/maven/package-summary.html index 9e616a4fe..f47f1b670 100644 --- a/dependency-check-maven/xref-test/org/owasp/dependencycheck/maven/package-summary.html +++ b/dependency-check-maven/xref-test/org/owasp/dependencycheck/maven/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Maven Plugin 1.0.5 Reference Package org.owasp.dependencycheck.maven + Dependency-Check Maven Plugin 1.0.6 Reference Package org.owasp.dependencycheck.maven diff --git a/dependency-check-maven/xref-test/overview-frame.html b/dependency-check-maven/xref-test/overview-frame.html index 2bd7e82e6..deebb5c43 100644 --- a/dependency-check-maven/xref-test/overview-frame.html +++ b/dependency-check-maven/xref-test/overview-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Maven Plugin 1.0.5 Reference + Dependency-Check Maven Plugin 1.0.6 Reference diff --git a/dependency-check-maven/xref-test/overview-summary.html b/dependency-check-maven/xref-test/overview-summary.html index 0df7efa07..e5940abe8 100644 --- a/dependency-check-maven/xref-test/overview-summary.html +++ b/dependency-check-maven/xref-test/overview-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Maven Plugin 1.0.5 Reference + Dependency-Check Maven Plugin 1.0.6 Reference @@ -24,7 +24,7 @@ -

    Dependency-Check Maven Plugin 1.0.5 Reference

    +

    Dependency-Check Maven Plugin 1.0.6 Reference

    diff --git a/dependency-check-maven/xref/index.html b/dependency-check-maven/xref/index.html index ee024196c..61a18db9a 100644 --- a/dependency-check-maven/xref/index.html +++ b/dependency-check-maven/xref/index.html @@ -3,7 +3,7 @@ - Dependency-Check Maven Plugin 1.0.5 Reference + Dependency-Check Maven Plugin 1.0.6 Reference diff --git a/dependency-check-maven/xref/org/owasp/dependencycheck/maven/DependencyCheckMojo.html b/dependency-check-maven/xref/org/owasp/dependencycheck/maven/DependencyCheckMojo.html index 8aeb40567..07cc37512 100644 --- a/dependency-check-maven/xref/org/owasp/dependencycheck/maven/DependencyCheckMojo.html +++ b/dependency-check-maven/xref/org/owasp/dependencycheck/maven/DependencyCheckMojo.html @@ -188,622 +188,631 @@ 178 @SuppressWarnings("CanBeFinal") 179 @Parameter(property = "connectionTimeout", defaultValue = "", required = false) 180private String connectionTimeout = null; -181 -182// </editor-fold> -183/** -184 * Executes the Dependency-Check on the dependent libraries. -185 * -186 * @return the Engine used to scan the dependencies. -187 */ -188private Engine executeDependencyCheck() { -189 -190final InputStream in = DependencyCheckMojo.class.getClassLoader().getResourceAsStream(LOG_PROPERTIES_FILE); -191 LogUtils.prepareLogger(in, logFile); -192 -193 populateSettings(); -194final Engine engine = new Engine(); -195final Set<Artifact> artifacts = project.getArtifacts(); -196for (Artifact a : artifacts) { -197if (!TEST_SCOPE.equals(a.getScope())) { -198 engine.scan(a.getFile().getAbsolutePath()); -199 } -200 } -201 engine.analyzeDependencies(); -202return engine; -203 } -204 -205/** -206 * Generates the reports for a given dependency-check engine. -207 * -208 * @param engine a dependency-check engine -209 */ -210privatevoid generateExternalReports(Engine engine) { -211final ReportGenerator r = new ReportGenerator(project.getName(), engine.getDependencies(), engine.getAnalyzers()); -212try { -213 r.generateReports(outputDirectory.getCanonicalPath(), format); -214 } catch (IOException ex) { -215 Logger.getLogger(DependencyCheckMojo.class.getName()).log(Level.SEVERE, null, ex); -216 } catch (Exception ex) { -217 Logger.getLogger(DependencyCheckMojo.class.getName()).log(Level.SEVERE, null, ex); -218 } -219 } -220 -221/** -222 * Generates a dependency-check report using the Maven Site format. -223 * -224 * @param engine the engine used to scan the dependencies -225 * @param sink the sink to write the data to -226 */ -227privatevoid generateMavenSiteReport(final Engine engine, Sink sink) { -228final List<Dependency> dependencies = engine.getDependencies(); -229 -230 writeSiteReportHeader(sink, project.getName()); -231 writeSiteReportTOC(sink, dependencies); -232 -233int cnt = 0; -234for (Dependency d : dependencies) { -235 writeSiteReportDependencyHeader(sink, d); -236 cnt = writeSiteReportDependencyAnalysisExceptions(d, cnt, sink); -237 cnt = writeSiteReportDependencyEvidenceUsed(d, cnt, sink); -238 cnt = writeSiteReportDependencyRelatedDependencies(d, cnt, sink); -239 writeSiteReportDependencyIdentifiers(d, sink); -240 writeSiteReportDependencyVulnerabilities(d, sink, cnt); -241 } -242 sink.body_(); -243 } -244 -245// <editor-fold defaultstate="collapsed" desc="various writeXXXXX methods to generate the Site Report"> -246/** -247 * Writes the vulnerabilities to the site report. -248 * -249 * @param d the dependency -250 * @param sink the sink to write the data to -251 * @param collapsibleHeaderCount the collapsible header count -252 */ -253privatevoid writeSiteReportDependencyVulnerabilities(Dependency d, Sink sink, int collapsibleHeaderCount) { -254int cnt = collapsibleHeaderCount; -255if (d.getVulnerabilities() != null && !d.getVulnerabilities().isEmpty()) { -256for (Vulnerability v : d.getVulnerabilities()) { -257 -258 sink.paragraph(); -259 sink.bold(); -260try { -261 sink.link("http://web.nvd.nist.gov/view/vuln/detail?vulnId=" + URLEncoder.encode(v.getName(), "US-ASCII")); -262 sink.text(v.getName()); -263 sink.link_(); -264 sink.bold_(); -265 } catch (UnsupportedEncodingException ex) { -266 sink.text(v.getName()); -267 sink.bold_(); -268 sink.lineBreak(); -269 sink.text("http://web.nvd.nist.gov/view/vuln/detail?vulnId=" + v.getName()); -270 } -271 sink.paragraph_(); -272 sink.paragraph(); -273 sink.text("Severity: "); -274if (v.getCvssScore() < 4.0) { -275 sink.text("Low"); -276 } else { -277if (v.getCvssScore() >= 7.0) { -278 sink.text("High"); -279 } else { -280 sink.text("Medium"); -281 } -282 } -283 sink.lineBreak(); -284 sink.text("CVSS Score: " + v.getCvssScore()); -285if (v.getCwe() != null && !v.getCwe().isEmpty()) { -286 sink.lineBreak(); -287 sink.text("CWE: "); -288 sink.text(v.getCwe()); -289 } -290 sink.paragraph_(); -291 sink.paragraph(); -292 sink.text(v.getDescription()); -293if (v.getReferences() != null && !v.getReferences().isEmpty()) { -294 sink.list(); -295for (Reference ref : v.getReferences()) { -296 sink.listItem(); -297 sink.text(ref.getSource()); -298 sink.text(" - "); -299 sink.link(ref.getUrl()); -300 sink.text(ref.getName()); -301 sink.link_(); -302 sink.listItem_(); -303 } -304 sink.list_(); -305 } -306 sink.paragraph_(); -307if (v.getVulnerableSoftware() != null && !v.getVulnerableSoftware().isEmpty()) { -308 sink.paragraph(); -309 -310 cnt += 1; -311 sink.rawText("Vulnerable Software <a href=\"javascript:toggleElement(this, 'vulnSoft" + cnt + "')\">[-]</a>"); -312 sink.rawText("<div id=\"vulnSoft" + cnt + "\" style=\"display:block\">"); -313 sink.list(); -314for (VulnerableSoftware vs : v.getVulnerableSoftware()) { -315 sink.listItem(); -316try { -317 sink.link("http://web.nvd.nist.gov/view/vuln/search-results?cpe=" + URLEncoder.encode(vs.getName(), "US-ASCII")); -318 sink.text(vs.getName()); -319 sink.link_(); -320if (vs.hasPreviousVersion()) { -321 sink.text(" and all previous versions."); -322 } -323 } catch (UnsupportedEncodingException ex) { +181/** +182 * The Connection Timeout. +183 */ +184 @SuppressWarnings("CanBeFinal") +185 @Parameter(property = "suppressionFile", defaultValue = "", required = false) +186private String suppressionFile = null; +187// </editor-fold> +188 +189/** +190 * Executes the Dependency-Check on the dependent libraries. +191 * +192 * @return the Engine used to scan the dependencies. +193 */ +194private Engine executeDependencyCheck() { +195 +196final InputStream in = DependencyCheckMojo.class.getClassLoader().getResourceAsStream(LOG_PROPERTIES_FILE); +197 LogUtils.prepareLogger(in, logFile); +198 +199 populateSettings(); +200final Engine engine = new Engine(); +201final Set<Artifact> artifacts = project.getArtifacts(); +202for (Artifact a : artifacts) { +203if (!TEST_SCOPE.equals(a.getScope())) { +204 engine.scan(a.getFile().getAbsolutePath()); +205 } +206 } +207 engine.analyzeDependencies(); +208return engine; +209 } +210 +211/** +212 * Generates the reports for a given dependency-check engine. +213 * +214 * @param engine a dependency-check engine +215 */ +216privatevoid generateExternalReports(Engine engine) { +217final ReportGenerator r = new ReportGenerator(project.getName(), engine.getDependencies(), engine.getAnalyzers()); +218try { +219 r.generateReports(outputDirectory.getCanonicalPath(), format); +220 } catch (IOException ex) { +221 Logger.getLogger(DependencyCheckMojo.class.getName()).log(Level.SEVERE, null, ex); +222 } catch (Exception ex) { +223 Logger.getLogger(DependencyCheckMojo.class.getName()).log(Level.SEVERE, null, ex); +224 } +225 } +226 +227/** +228 * Generates a dependency-check report using the Maven Site format. +229 * +230 * @param engine the engine used to scan the dependencies +231 * @param sink the sink to write the data to +232 */ +233privatevoid generateMavenSiteReport(final Engine engine, Sink sink) { +234final List<Dependency> dependencies = engine.getDependencies(); +235 +236 writeSiteReportHeader(sink, project.getName()); +237 writeSiteReportTOC(sink, dependencies); +238 +239int cnt = 0; +240for (Dependency d : dependencies) { +241 writeSiteReportDependencyHeader(sink, d); +242 cnt = writeSiteReportDependencyAnalysisExceptions(d, cnt, sink); +243 cnt = writeSiteReportDependencyEvidenceUsed(d, cnt, sink); +244 cnt = writeSiteReportDependencyRelatedDependencies(d, cnt, sink); +245 writeSiteReportDependencyIdentifiers(d, sink); +246 writeSiteReportDependencyVulnerabilities(d, sink, cnt); +247 } +248 sink.body_(); +249 } +250 +251// <editor-fold defaultstate="collapsed" desc="various writeXXXXX methods to generate the Site Report"> +252/** +253 * Writes the vulnerabilities to the site report. +254 * +255 * @param d the dependency +256 * @param sink the sink to write the data to +257 * @param collapsibleHeaderCount the collapsible header count +258 */ +259privatevoid writeSiteReportDependencyVulnerabilities(Dependency d, Sink sink, int collapsibleHeaderCount) { +260int cnt = collapsibleHeaderCount; +261if (d.getVulnerabilities() != null && !d.getVulnerabilities().isEmpty()) { +262for (Vulnerability v : d.getVulnerabilities()) { +263 +264 sink.paragraph(); +265 sink.bold(); +266try { +267 sink.link("http://web.nvd.nist.gov/view/vuln/detail?vulnId=" + URLEncoder.encode(v.getName(), "US-ASCII")); +268 sink.text(v.getName()); +269 sink.link_(); +270 sink.bold_(); +271 } catch (UnsupportedEncodingException ex) { +272 sink.text(v.getName()); +273 sink.bold_(); +274 sink.lineBreak(); +275 sink.text("http://web.nvd.nist.gov/view/vuln/detail?vulnId=" + v.getName()); +276 } +277 sink.paragraph_(); +278 sink.paragraph(); +279 sink.text("Severity: "); +280if (v.getCvssScore() < 4.0) { +281 sink.text("Low"); +282 } else { +283if (v.getCvssScore() >= 7.0) { +284 sink.text("High"); +285 } else { +286 sink.text("Medium"); +287 } +288 } +289 sink.lineBreak(); +290 sink.text("CVSS Score: " + v.getCvssScore()); +291if (v.getCwe() != null && !v.getCwe().isEmpty()) { +292 sink.lineBreak(); +293 sink.text("CWE: "); +294 sink.text(v.getCwe()); +295 } +296 sink.paragraph_(); +297 sink.paragraph(); +298 sink.text(v.getDescription()); +299if (v.getReferences() != null && !v.getReferences().isEmpty()) { +300 sink.list(); +301for (Reference ref : v.getReferences()) { +302 sink.listItem(); +303 sink.text(ref.getSource()); +304 sink.text(" - "); +305 sink.link(ref.getUrl()); +306 sink.text(ref.getName()); +307 sink.link_(); +308 sink.listItem_(); +309 } +310 sink.list_(); +311 } +312 sink.paragraph_(); +313if (v.getVulnerableSoftware() != null && !v.getVulnerableSoftware().isEmpty()) { +314 sink.paragraph(); +315 +316 cnt += 1; +317 sink.rawText("Vulnerable Software <a href=\"javascript:toggleElement(this, 'vulnSoft" + cnt + "')\">[-]</a>"); +318 sink.rawText("<div id=\"vulnSoft" + cnt + "\" style=\"display:block\">"); +319 sink.list(); +320for (VulnerableSoftware vs : v.getVulnerableSoftware()) { +321 sink.listItem(); +322try { +323 sink.link("http://web.nvd.nist.gov/view/vuln/search-results?cpe=" + URLEncoder.encode(vs.getName(), "US-ASCII")); 324 sink.text(vs.getName()); -325if (vs.hasPreviousVersion()) { -326 sink.text(" and all previous versions."); -327 } -328 sink.text(" (http://web.nvd.nist.gov/view/vuln/search-results?cpe=" + vs.getName() + ")"); -329 } -330 -331 sink.listItem_(); -332 } -333 sink.list_(); -334 sink.rawText("</div>"); -335 sink.paragraph_(); -336 } -337 } -338 } -339 } -340 -341/** -342 * Writes the identifiers to the site report. -343 * -344 * @param d the dependency -345 * @param sink the sink to write the data to -346 */ -347privatevoid writeSiteReportDependencyIdentifiers(Dependency d, Sink sink) { -348if (d.getIdentifiers() != null && !d.getIdentifiers().isEmpty()) { -349 sink.sectionTitle4(); -350 sink.text("Identifiers"); -351 sink.sectionTitle4_(); -352 sink.list(); -353for (Identifier i : d.getIdentifiers()) { -354 sink.listItem(); -355 sink.text(i.getType()); -356 sink.text(": "); -357if (i.getUrl() != null && i.getUrl().length() > 0) { -358 sink.link(i.getUrl()); -359 sink.text(i.getValue()); -360 sink.link_(); -361 } else { -362 sink.text(i.getValue()); -363 } -364if (i.getDescription() != null && i.getDescription().length() > 0) { -365 sink.lineBreak(); -366 sink.text(i.getDescription()); -367 } -368 sink.listItem_(); -369 } -370 sink.list_(); -371 } -372 } -373 -374/** -375 * Writes the related dependencies to the site report. -376 * -377 * @param d the dependency -378 * @param sink the sink to write the data to -379 * @param collapsibleHeaderCount the collapsible header count -380 * @return the collapsible header count -381 */ -382privateint writeSiteReportDependencyRelatedDependencies(Dependency d, int collapsibleHeaderCount, Sink sink) { -383int cnt = collapsibleHeaderCount; -384if (d.getRelatedDependencies() != null && !d.getRelatedDependencies().isEmpty()) { -385 cnt += 1; -386 sink.sectionTitle4(); -387 sink.rawText("Related Dependencies <a href=\"javascript:toggleElement(this, 'related" + cnt + "')\">[+]</a>"); -388 sink.sectionTitle4_(); -389 sink.rawText("<div id=\"related" + cnt + "\" style=\"display:none\">"); -390 sink.list(); -391for (Dependency r : d.getRelatedDependencies()) { -392 sink.listItem(); -393 sink.text(r.getFileName()); -394 sink.list(); -395 writeListItem(sink, "File Path: " + r.getFilePath()); -396 writeListItem(sink, "SHA1: " + r.getSha1sum()); -397 writeListItem(sink, "MD5: " + r.getMd5sum()); -398 sink.list_(); -399 sink.listItem_(); -400 } -401 sink.list_(); -402 sink.rawText("</div>"); -403 } -404return cnt; -405 } -406 -407/** -408 * Writes the evidence used to the site report. -409 * -410 * @param d the dependency -411 * @param sink the sink to write the data to -412 * @param collapsibleHeaderCount the collapsible header count -413 * @return the collapsible header count -414 */ -415privateint writeSiteReportDependencyEvidenceUsed(Dependency d, int collapsibleHeaderCount, Sink sink) { -416int cnt = collapsibleHeaderCount; -417if (d.getEvidenceUsed() != null && d.getEvidenceUsed().size() > 0) { -418 cnt += 1; -419 sink.sectionTitle4(); -420 sink.rawText("Evidence Collected <a href=\"javascript:toggleElement(this, 'evidence" + cnt + "')\">[+]</a>"); -421 sink.sectionTitle4_(); -422 sink.rawText("<div id=\"evidence" + cnt + "\" style=\"display:none\">"); -423 sink.table(); -424 sink.tableRow(); -425 writeTableHeaderCell(sink, "Source"); -426 writeTableHeaderCell(sink, "Name"); -427 writeTableHeaderCell(sink, "Value"); -428 sink.tableRow_(); -429for (Evidence e : d.getEvidenceUsed()) { -430 sink.tableRow(); -431 writeTableCell(sink, e.getSource()); -432 writeTableCell(sink, e.getName()); -433 writeTableCell(sink, e.getValue()); -434 sink.tableRow_(); -435 } -436 sink.table_(); -437 sink.rawText("</div>"); -438 } -439return cnt; -440 } -441 -442/** -443 * Writes the analysis exceptions generated during analysis to the site -444 * report. -445 * -446 * @param d the dependency -447 * @param sink the sink to write the data to -448 * @param collapsibleHeaderCount the collapsible header count -449 * @return the collapsible header count -450 */ -451privateint writeSiteReportDependencyAnalysisExceptions(Dependency d, int collapsibleHeaderCount, Sink sink) { -452int cnt = collapsibleHeaderCount; -453if (d.getAnalysisExceptions() != null && !d.getAnalysisExceptions().isEmpty()) { -454 cnt += 1; -455 sink.sectionTitle4(); -456 sink.rawText("<font style=\"color:red\">Errors occurred during analysis:</font> <a href=\"javascript:toggleElement(this, 'errors" -457 + cnt + "')\">[+]</a>"); -458 sink.sectionTitle4_(); -459 sink.rawText("<div id=\"errors" + cnt + "\">"); -460 sink.list(); -461for (Exception e : d.getAnalysisExceptions()) { -462 sink.listItem(); -463 sink.text(e.getMessage()); -464 sink.listItem_(); -465 } -466 sink.list_(); -467 sink.rawText("</div>"); -468 } -469return cnt; -470 } -471 -472/** -473 * Writes the dependency header to the site report. -474 * -475 * @param d the dependency -476 * @param sink the sink to write the data to -477 */ -478privatevoid writeSiteReportDependencyHeader(Sink sink, Dependency d) { -479 sink.sectionTitle2(); -480 sink.anchor("sha1" + d.getSha1sum()); -481 sink.text(d.getFileName()); -482 sink.anchor_(); -483 sink.sectionTitle2_(); -484if (d.getDescription() != null && d.getDescription().length() > 0) { -485 sink.paragraph(); -486 sink.bold(); -487 sink.text("Description: "); -488 sink.bold_(); -489 sink.text(d.getDescription()); -490 sink.paragraph_(); -491 } -492if (d.getLicense() != null && d.getLicense().length() > 0) { -493 sink.paragraph(); -494 sink.bold(); -495 sink.text("License: "); -496 sink.bold_(); -497if (d.getLicense().startsWith("http://") && !d.getLicense().contains(" ")) { -498 sink.link(d.getLicense()); -499 sink.text(d.getLicense()); -500 sink.link_(); -501 } else { -502 sink.text(d.getLicense()); -503 } -504 sink.paragraph_(); -505 } -506 } -507 -508/** -509 * Adds a list item to the site report. -510 * -511 * @param sink the sink to write the data to -512 * @param text the text to write -513 */ -514privatevoid writeListItem(Sink sink, String text) { -515 sink.listItem(); -516 sink.text(text); -517 sink.listItem_(); -518 } -519 -520/** -521 * Adds a table cell to the site report. -522 * -523 * @param sink the sink to write the data to -524 * @param text the text to write -525 */ -526privatevoid writeTableCell(Sink sink, String text) { -527 sink.tableCell(); -528 sink.text(text); -529 sink.tableCell_(); -530 } -531 -532/** -533 * Adds a table header cell to the site report. -534 * -535 * @param sink the sink to write the data to -536 * @param text the text to write -537 */ -538privatevoid writeTableHeaderCell(Sink sink, String text) { -539 sink.tableHeaderCell(); -540 sink.text(text); -541 sink.tableHeaderCell_(); -542 } -543 -544/** -545 * Writes the TOC for the site report. -546 * -547 * @param sink the sink to write the data to -548 * @param dependencies the dependencies that are being reported on -549 */ -550privatevoid writeSiteReportTOC(Sink sink, final List<Dependency> dependencies) { -551 sink.list(); -552for (Dependency d : dependencies) { -553 sink.listItem(); -554 sink.link("#sha1" + d.getSha1sum()); -555 sink.text(d.getFileName()); -556 sink.link_(); -557if (!d.getVulnerabilities().isEmpty()) { -558 sink.rawText(" <font style=\"color:red\">•</font>"); -559 } -560if (!d.getRelatedDependencies().isEmpty()) { -561 sink.list(); -562for (Dependency r : d.getRelatedDependencies()) { -563 writeListItem(sink, r.getFileName()); -564 } -565 sink.list_(); -566 } -567 sink.listItem_(); -568 } -569 sink.list_(); -570 } -571 -572/** -573 * Writes the site report header. -574 * -575 * @param sink the sink to write the data to -576 * @param projectName the name of the project -577 */ -578privatevoid writeSiteReportHeader(Sink sink, String projectName) { -579 sink.head(); -580 sink.title(); -581 sink.text("Dependency-Check Report: " + projectName); -582 sink.title_(); -583 sink.head_(); -584 sink.body(); -585 sink.rawText("<script type=\"text/javascript\">"); -586 sink.rawText("function toggleElement(el, targetId) {"); -587 sink.rawText("if (el.innerText == '[+]') {"); -588 sink.rawText(" el.innerText = '[-]';"); -589 sink.rawText(" document.getElementById(targetId).style.display='block';"); -590 sink.rawText("} else {"); -591 sink.rawText(" el.innerText = '[+]';"); -592 sink.rawText(" document.getElementById(targetId).style.display='none';"); -593 sink.rawText("}"); -594 -595 sink.rawText("}"); -596 sink.rawText("</script>"); -597 sink.section1(); -598 sink.sectionTitle1(); -599 sink.text("Project: " + projectName); -600 sink.sectionTitle1_(); -601 sink.date(); -602final Date now = new Date(); -603 sink.text(DateFormat.getDateTimeInstance().format(now)); -604 sink.date_(); -605 sink.section1_(); -606 } -607// </editor-fold> -608 -609/** -610 * Takes the properties supplied and updates the dependency-check settings. -611 * Additionally, this sets the system properties required to change the -612 * proxy url, port, and connection timeout. -613 */ -614privatevoid populateSettings() { -615 InputStream mojoProperties = null; -616try { -617 mojoProperties = this.getClass().getClassLoader().getResourceAsStream(PROPERTIES_FILE); -618 Settings.mergeProperties(mojoProperties); -619 } catch (IOException ex) { -620 Logger.getLogger(DependencyCheckMojo.class.getName()).log(Level.WARNING, "Unable to load the dependency-check ant task.properties file."); -621 Logger.getLogger(DependencyCheckMojo.class.getName()).log(Level.FINE, null, ex); -622 } finally { -623if (mojoProperties != null) { -624try { -625 mojoProperties.close(); -626 } catch (IOException ex) { -627 Logger.getLogger(DependencyCheckMojo.class.getName()).log(Level.FINEST, null, ex); -628 } -629 } -630 } -631 -632 Settings.setBoolean(Settings.KEYS.AUTO_UPDATE, autoUpdate); -633 -634if (proxyUrl != null && !proxyUrl.isEmpty()) { -635 Settings.setString(Settings.KEYS.PROXY_URL, proxyUrl); +325 sink.link_(); +326if (vs.hasPreviousVersion()) { +327 sink.text(" and all previous versions."); +328 } +329 } catch (UnsupportedEncodingException ex) { +330 sink.text(vs.getName()); +331if (vs.hasPreviousVersion()) { +332 sink.text(" and all previous versions."); +333 } +334 sink.text(" (http://web.nvd.nist.gov/view/vuln/search-results?cpe=" + vs.getName() + ")"); +335 } +336 +337 sink.listItem_(); +338 } +339 sink.list_(); +340 sink.rawText("</div>"); +341 sink.paragraph_(); +342 } +343 } +344 } +345 } +346 +347/** +348 * Writes the identifiers to the site report. +349 * +350 * @param d the dependency +351 * @param sink the sink to write the data to +352 */ +353privatevoid writeSiteReportDependencyIdentifiers(Dependency d, Sink sink) { +354if (d.getIdentifiers() != null && !d.getIdentifiers().isEmpty()) { +355 sink.sectionTitle4(); +356 sink.text("Identifiers"); +357 sink.sectionTitle4_(); +358 sink.list(); +359for (Identifier i : d.getIdentifiers()) { +360 sink.listItem(); +361 sink.text(i.getType()); +362 sink.text(": "); +363if (i.getUrl() != null && i.getUrl().length() > 0) { +364 sink.link(i.getUrl()); +365 sink.text(i.getValue()); +366 sink.link_(); +367 } else { +368 sink.text(i.getValue()); +369 } +370if (i.getDescription() != null && i.getDescription().length() > 0) { +371 sink.lineBreak(); +372 sink.text(i.getDescription()); +373 } +374 sink.listItem_(); +375 } +376 sink.list_(); +377 } +378 } +379 +380/** +381 * Writes the related dependencies to the site report. +382 * +383 * @param d the dependency +384 * @param sink the sink to write the data to +385 * @param collapsibleHeaderCount the collapsible header count +386 * @return the collapsible header count +387 */ +388privateint writeSiteReportDependencyRelatedDependencies(Dependency d, int collapsibleHeaderCount, Sink sink) { +389int cnt = collapsibleHeaderCount; +390if (d.getRelatedDependencies() != null && !d.getRelatedDependencies().isEmpty()) { +391 cnt += 1; +392 sink.sectionTitle4(); +393 sink.rawText("Related Dependencies <a href=\"javascript:toggleElement(this, 'related" + cnt + "')\">[+]</a>"); +394 sink.sectionTitle4_(); +395 sink.rawText("<div id=\"related" + cnt + "\" style=\"display:none\">"); +396 sink.list(); +397for (Dependency r : d.getRelatedDependencies()) { +398 sink.listItem(); +399 sink.text(r.getFileName()); +400 sink.list(); +401 writeListItem(sink, "File Path: " + r.getFilePath()); +402 writeListItem(sink, "SHA1: " + r.getSha1sum()); +403 writeListItem(sink, "MD5: " + r.getMd5sum()); +404 sink.list_(); +405 sink.listItem_(); +406 } +407 sink.list_(); +408 sink.rawText("</div>"); +409 } +410return cnt; +411 } +412 +413/** +414 * Writes the evidence used to the site report. +415 * +416 * @param d the dependency +417 * @param sink the sink to write the data to +418 * @param collapsibleHeaderCount the collapsible header count +419 * @return the collapsible header count +420 */ +421privateint writeSiteReportDependencyEvidenceUsed(Dependency d, int collapsibleHeaderCount, Sink sink) { +422int cnt = collapsibleHeaderCount; +423if (d.getEvidenceUsed() != null && d.getEvidenceUsed().size() > 0) { +424 cnt += 1; +425 sink.sectionTitle4(); +426 sink.rawText("Evidence Collected <a href=\"javascript:toggleElement(this, 'evidence" + cnt + "')\">[+]</a>"); +427 sink.sectionTitle4_(); +428 sink.rawText("<div id=\"evidence" + cnt + "\" style=\"display:none\">"); +429 sink.table(); +430 sink.tableRow(); +431 writeTableHeaderCell(sink, "Source"); +432 writeTableHeaderCell(sink, "Name"); +433 writeTableHeaderCell(sink, "Value"); +434 sink.tableRow_(); +435for (Evidence e : d.getEvidenceUsed()) { +436 sink.tableRow(); +437 writeTableCell(sink, e.getSource()); +438 writeTableCell(sink, e.getName()); +439 writeTableCell(sink, e.getValue()); +440 sink.tableRow_(); +441 } +442 sink.table_(); +443 sink.rawText("</div>"); +444 } +445return cnt; +446 } +447 +448/** +449 * Writes the analysis exceptions generated during analysis to the site +450 * report. +451 * +452 * @param d the dependency +453 * @param sink the sink to write the data to +454 * @param collapsibleHeaderCount the collapsible header count +455 * @return the collapsible header count +456 */ +457privateint writeSiteReportDependencyAnalysisExceptions(Dependency d, int collapsibleHeaderCount, Sink sink) { +458int cnt = collapsibleHeaderCount; +459if (d.getAnalysisExceptions() != null && !d.getAnalysisExceptions().isEmpty()) { +460 cnt += 1; +461 sink.sectionTitle4(); +462 sink.rawText("<font style=\"color:red\">Errors occurred during analysis:</font> <a href=\"javascript:toggleElement(this, 'errors" +463 + cnt + "')\">[+]</a>"); +464 sink.sectionTitle4_(); +465 sink.rawText("<div id=\"errors" + cnt + "\">"); +466 sink.list(); +467for (Exception e : d.getAnalysisExceptions()) { +468 sink.listItem(); +469 sink.text(e.getMessage()); +470 sink.listItem_(); +471 } +472 sink.list_(); +473 sink.rawText("</div>"); +474 } +475return cnt; +476 } +477 +478/** +479 * Writes the dependency header to the site report. +480 * +481 * @param d the dependency +482 * @param sink the sink to write the data to +483 */ +484privatevoid writeSiteReportDependencyHeader(Sink sink, Dependency d) { +485 sink.sectionTitle2(); +486 sink.anchor("sha1" + d.getSha1sum()); +487 sink.text(d.getFileName()); +488 sink.anchor_(); +489 sink.sectionTitle2_(); +490if (d.getDescription() != null && d.getDescription().length() > 0) { +491 sink.paragraph(); +492 sink.bold(); +493 sink.text("Description: "); +494 sink.bold_(); +495 sink.text(d.getDescription()); +496 sink.paragraph_(); +497 } +498if (d.getLicense() != null && d.getLicense().length() > 0) { +499 sink.paragraph(); +500 sink.bold(); +501 sink.text("License: "); +502 sink.bold_(); +503if (d.getLicense().startsWith("http://") && !d.getLicense().contains(" ")) { +504 sink.link(d.getLicense()); +505 sink.text(d.getLicense()); +506 sink.link_(); +507 } else { +508 sink.text(d.getLicense()); +509 } +510 sink.paragraph_(); +511 } +512 } +513 +514/** +515 * Adds a list item to the site report. +516 * +517 * @param sink the sink to write the data to +518 * @param text the text to write +519 */ +520privatevoid writeListItem(Sink sink, String text) { +521 sink.listItem(); +522 sink.text(text); +523 sink.listItem_(); +524 } +525 +526/** +527 * Adds a table cell to the site report. +528 * +529 * @param sink the sink to write the data to +530 * @param text the text to write +531 */ +532privatevoid writeTableCell(Sink sink, String text) { +533 sink.tableCell(); +534 sink.text(text); +535 sink.tableCell_(); +536 } +537 +538/** +539 * Adds a table header cell to the site report. +540 * +541 * @param sink the sink to write the data to +542 * @param text the text to write +543 */ +544privatevoid writeTableHeaderCell(Sink sink, String text) { +545 sink.tableHeaderCell(); +546 sink.text(text); +547 sink.tableHeaderCell_(); +548 } +549 +550/** +551 * Writes the TOC for the site report. +552 * +553 * @param sink the sink to write the data to +554 * @param dependencies the dependencies that are being reported on +555 */ +556privatevoid writeSiteReportTOC(Sink sink, final List<Dependency> dependencies) { +557 sink.list(); +558for (Dependency d : dependencies) { +559 sink.listItem(); +560 sink.link("#sha1" + d.getSha1sum()); +561 sink.text(d.getFileName()); +562 sink.link_(); +563if (!d.getVulnerabilities().isEmpty()) { +564 sink.rawText(" <font style=\"color:red\">•</font>"); +565 } +566if (!d.getRelatedDependencies().isEmpty()) { +567 sink.list(); +568for (Dependency r : d.getRelatedDependencies()) { +569 writeListItem(sink, r.getFileName()); +570 } +571 sink.list_(); +572 } +573 sink.listItem_(); +574 } +575 sink.list_(); +576 } +577 +578/** +579 * Writes the site report header. +580 * +581 * @param sink the sink to write the data to +582 * @param projectName the name of the project +583 */ +584privatevoid writeSiteReportHeader(Sink sink, String projectName) { +585 sink.head(); +586 sink.title(); +587 sink.text("Dependency-Check Report: " + projectName); +588 sink.title_(); +589 sink.head_(); +590 sink.body(); +591 sink.rawText("<script type=\"text/javascript\">"); +592 sink.rawText("function toggleElement(el, targetId) {"); +593 sink.rawText("if (el.innerText == '[+]') {"); +594 sink.rawText(" el.innerText = '[-]';"); +595 sink.rawText(" document.getElementById(targetId).style.display='block';"); +596 sink.rawText("} else {"); +597 sink.rawText(" el.innerText = '[+]';"); +598 sink.rawText(" document.getElementById(targetId).style.display='none';"); +599 sink.rawText("}"); +600 +601 sink.rawText("}"); +602 sink.rawText("</script>"); +603 sink.section1(); +604 sink.sectionTitle1(); +605 sink.text("Project: " + projectName); +606 sink.sectionTitle1_(); +607 sink.date(); +608final Date now = new Date(); +609 sink.text(DateFormat.getDateTimeInstance().format(now)); +610 sink.date_(); +611 sink.section1_(); +612 } +613// </editor-fold> +614 +615/** +616 * Takes the properties supplied and updates the dependency-check settings. +617 * Additionally, this sets the system properties required to change the +618 * proxy url, port, and connection timeout. +619 */ +620privatevoid populateSettings() { +621 InputStream mojoProperties = null; +622try { +623 mojoProperties = this.getClass().getClassLoader().getResourceAsStream(PROPERTIES_FILE); +624 Settings.mergeProperties(mojoProperties); +625 } catch (IOException ex) { +626 Logger.getLogger(DependencyCheckMojo.class.getName()).log(Level.WARNING, "Unable to load the dependency-check ant task.properties file."); +627 Logger.getLogger(DependencyCheckMojo.class.getName()).log(Level.FINE, null, ex); +628 } finally { +629if (mojoProperties != null) { +630try { +631 mojoProperties.close(); +632 } catch (IOException ex) { +633 Logger.getLogger(DependencyCheckMojo.class.getName()).log(Level.FINEST, null, ex); +634 } +635 } 636 } -637if (proxyPort != null && !proxyPort.isEmpty()) { -638 Settings.setString(Settings.KEYS.PROXY_PORT, proxyPort); -639 } -640if (proxyUsername != null && !proxyUsername.isEmpty()) { -641 Settings.setString(Settings.KEYS.PROXY_USERNAME, proxyUsername); +637 +638 Settings.setBoolean(Settings.KEYS.AUTO_UPDATE, autoUpdate); +639 +640if (proxyUrl != null && !proxyUrl.isEmpty()) { +641 Settings.setString(Settings.KEYS.PROXY_URL, proxyUrl); 642 } -643if (proxyPassword != null && !proxyPassword.isEmpty()) { -644 Settings.setString(Settings.KEYS.PROXY_PASSWORD, proxyPassword); +643if (proxyPort != null && !proxyPort.isEmpty()) { +644 Settings.setString(Settings.KEYS.PROXY_PORT, proxyPort); 645 } -646if (connectionTimeout != null && !connectionTimeout.isEmpty()) { -647 Settings.setString(Settings.KEYS.CONNECTION_TIMEOUT, connectionTimeout); +646if (proxyUsername != null && !proxyUsername.isEmpty()) { +647 Settings.setString(Settings.KEYS.PROXY_USERNAME, proxyUsername); 648 } -649 } -650 -651/** -652 * Executes the dependency-check and generates the report. -653 * -654 * @throws MojoExecutionException if a maven exception occurs -655 * @throws MojoFailureException thrown if a CVSS score is found that is -656 * higher then the configured level -657 */ -658publicvoid execute() throws MojoExecutionException, MojoFailureException { -659final Engine engine = executeDependencyCheck(); -660 generateExternalReports(engine); -661if (this.failBuildOnCVSS <= 10) { -662 checkForFailure(engine.getDependencies()); -663 } -664 } -665 -666/** -667 * Generates the Dependency-Check Site Report. -668 * -669 * @param sink the sink to write the report to -670 * @param locale the locale to use when generating the report -671 * @throws MavenReportException if a Maven report exception occurs -672 */ -673publicvoid generate(@SuppressWarnings("deprecation") org.codehaus.doxia.sink.Sink sink, -674 Locale locale) throws MavenReportException { -675 generate((Sink) sink, null, locale); -676 } -677 -678/** -679 * Generates the Dependency-Check Site Report. -680 * -681 * @param sink the sink to write the report to -682 * @param sinkFactory the sink factory -683 * @param locale the locale to use when generating the report -684 * @throws MavenReportException if a maven report exception occurs -685 */ -686publicvoid generate(Sink sink, SinkFactory sinkFactory, Locale locale) throws MavenReportException { -687final Engine engine = executeDependencyCheck(); -688 generateMavenSiteReport(engine, sink); -689 } -690 -691// <editor-fold defaultstate="collapsed" desc="required setter/getter methods"> -692/** -693 * Returns the output name. -694 * -695 * @return the output name -696 */ -697public String getOutputName() { -698return reportName; -699 } -700 +649if (proxyPassword != null && !proxyPassword.isEmpty()) { +650 Settings.setString(Settings.KEYS.PROXY_PASSWORD, proxyPassword); +651 } +652if (connectionTimeout != null && !connectionTimeout.isEmpty()) { +653 Settings.setString(Settings.KEYS.CONNECTION_TIMEOUT, connectionTimeout); +654 } +655if (suppressionFile != null && !suppressionFile.isEmpty()) { +656 Settings.setString(Settings.KEYS.SUPPRESSION_FILE, suppressionFile); +657 } +658 } +659 +660/** +661 * Executes the dependency-check and generates the report. +662 * +663 * @throws MojoExecutionException if a maven exception occurs +664 * @throws MojoFailureException thrown if a CVSS score is found that is +665 * higher then the configured level +666 */ +667publicvoid execute() throws MojoExecutionException, MojoFailureException { +668final Engine engine = executeDependencyCheck(); +669 generateExternalReports(engine); +670if (this.failBuildOnCVSS <= 10) { +671 checkForFailure(engine.getDependencies()); +672 } +673 } +674 +675/** +676 * Generates the Dependency-Check Site Report. +677 * +678 * @param sink the sink to write the report to +679 * @param locale the locale to use when generating the report +680 * @throws MavenReportException if a Maven report exception occurs +681 */ +682publicvoid generate(@SuppressWarnings("deprecation") org.codehaus.doxia.sink.Sink sink, +683 Locale locale) throws MavenReportException { +684 generate((Sink) sink, null, locale); +685 } +686 +687/** +688 * Generates the Dependency-Check Site Report. +689 * +690 * @param sink the sink to write the report to +691 * @param sinkFactory the sink factory +692 * @param locale the locale to use when generating the report +693 * @throws MavenReportException if a maven report exception occurs +694 */ +695publicvoid generate(Sink sink, SinkFactory sinkFactory, Locale locale) throws MavenReportException { +696final Engine engine = executeDependencyCheck(); +697 generateMavenSiteReport(engine, sink); +698 } +699 +700// <editor-fold defaultstate="collapsed" desc="required setter/getter methods">701/** -702 * Returns the category name. +702 * Returns the output name.703 * -704 * @return the category name +704 * @return the output name705 */ -706public String getCategoryName() { -707return MavenReport.CATEGORY_PROJECT_REPORTS; +706public String getOutputName() { +707return reportName; 708 } 709710/** -711 * Returns the report name. +711 * Returns the category name.712 * -713 * @param locale the location -714 * @return the report name -715 */ -716public String getName(Locale locale) { -717return name; -718 } -719 -720/** -721 * Sets the Reporting output directory. -722 * -723 * @param directory the output directory +713 * @return the category name +714 */ +715public String getCategoryName() { +716return MavenReport.CATEGORY_PROJECT_REPORTS; +717 } +718 +719/** +720 * Returns the report name. +721 * +722 * @param locale the location +723 * @return the report name724 */ -725publicvoid setReportOutputDirectory(File directory) { -726 reportOutputDirectory = directory; +725public String getName(Locale locale) { +726return name; 727 } 728729/** -730 * Returns the output directory. +730 * Sets the Reporting output directory.731 * -732 * @return the output directory +732 * @param directory the output directory733 */ -734public File getReportOutputDirectory() { -735return reportOutputDirectory; +734publicvoid setReportOutputDirectory(File directory) { +735 reportOutputDirectory = directory; 736 } 737738/** -739 * Gets the description of the Dependency-Check report to be displayed in -740 * the Maven Generated Reports page. -741 * -742 * @param locale The Locale to get the description for -743 * @return the description -744 */ -745public String getDescription(Locale locale) { -746return description; -747 } -748 -749/** -750 * Returns whether this is an external report. -751 * -752 * @return true or false; +739 * Returns the output directory. +740 * +741 * @return the output directory +742 */ +743public File getReportOutputDirectory() { +744return reportOutputDirectory; +745 } +746 +747/** +748 * Gets the description of the Dependency-Check report to be displayed in +749 * the Maven Generated Reports page. +750 * +751 * @param locale The Locale to get the description for +752 * @return the description753 */ -754publicboolean isExternalReport() { -755return externalReport; +754public String getDescription(Locale locale) { +755return description; 756 } 757758/** -759 * Returns whether or not the plugin can generate a report. +759 * Returns whether this is an external report.760 * -761 * @return true +761 * @return true or false;762 */ -763publicboolean canGenerateReport() { -764returntrue; +763publicboolean isExternalReport() { +764return externalReport; 765 } -766// </editor-fold> -767 -768/** -769 * Checks to see if a vulnerability has been identified with a CVSS score -770 * that is above the threshold set in the configuration. -771 * -772 * @param dependencies the list of dependency objects -773 * @throws MojoFailureException thrown if a CVSS score is found that is -774 * higher then the threshold set -775 */ -776privatevoid checkForFailure(List<Dependency> dependencies) throws MojoFailureException { -777final StringBuilder ids = new StringBuilder(); -778for (Dependency d : dependencies) { -779for (Vulnerability v : d.getVulnerabilities()) { -780if (v.getCvssScore() >= failBuildOnCVSS) { -781if (ids.length() == 0) { -782 ids.append(v.getName()); -783 } else { -784 ids.append(", ").append(v.getName()); -785 } -786 } -787 } -788 } -789if (ids.length() > 0) { -790final String msg = String.format("%n%nDependency-Check Failure:%n" -791 + "One or more dependencies were identified with vulnerabilities that have a CVSS score greater then '%.1f': %s%n" -792 + "See the dependency-check report for more details.%n%n", failBuildOnCVSS, ids.toString()); -793thrownew MojoFailureException(msg); -794 } -795 } -796 } +766 +767/** +768 * Returns whether or not the plugin can generate a report. +769 * +770 * @return true +771 */ +772publicboolean canGenerateReport() { +773returntrue; +774 } +775// </editor-fold> +776 +777/** +778 * Checks to see if a vulnerability has been identified with a CVSS score +779 * that is above the threshold set in the configuration. +780 * +781 * @param dependencies the list of dependency objects +782 * @throws MojoFailureException thrown if a CVSS score is found that is +783 * higher then the threshold set +784 */ +785privatevoid checkForFailure(List<Dependency> dependencies) throws MojoFailureException { +786final StringBuilder ids = new StringBuilder(); +787for (Dependency d : dependencies) { +788for (Vulnerability v : d.getVulnerabilities()) { +789if (v.getCvssScore() >= failBuildOnCVSS) { +790if (ids.length() == 0) { +791 ids.append(v.getName()); +792 } else { +793 ids.append(", ").append(v.getName()); +794 } +795 } +796 } +797 } +798if (ids.length() > 0) { +799final String msg = String.format("%n%nDependency-Check Failure:%n" +800 + "One or more dependencies were identified with vulnerabilities that have a CVSS score greater then '%.1f': %s%n" +801 + "See the dependency-check report for more details.%n%n", failBuildOnCVSS, ids.toString()); +802thrownew MojoFailureException(msg); +803 } +804 } +805 }
    diff --git a/dependency-check-maven/xref/org/owasp/dependencycheck/maven/package-frame.html b/dependency-check-maven/xref/org/owasp/dependencycheck/maven/package-frame.html index 3fc6bd43e..b8fed969e 100644 --- a/dependency-check-maven/xref/org/owasp/dependencycheck/maven/package-frame.html +++ b/dependency-check-maven/xref/org/owasp/dependencycheck/maven/package-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Maven Plugin 1.0.5 Reference Package org.owasp.dependencycheck.maven + Dependency-Check Maven Plugin 1.0.6 Reference Package org.owasp.dependencycheck.maven diff --git a/dependency-check-maven/xref/org/owasp/dependencycheck/maven/package-summary.html b/dependency-check-maven/xref/org/owasp/dependencycheck/maven/package-summary.html index f15241bed..ab1df0af8 100644 --- a/dependency-check-maven/xref/org/owasp/dependencycheck/maven/package-summary.html +++ b/dependency-check-maven/xref/org/owasp/dependencycheck/maven/package-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Maven Plugin 1.0.5 Reference Package org.owasp.dependencycheck.maven + Dependency-Check Maven Plugin 1.0.6 Reference Package org.owasp.dependencycheck.maven diff --git a/dependency-check-maven/xref/overview-frame.html b/dependency-check-maven/xref/overview-frame.html index 2bd7e82e6..deebb5c43 100644 --- a/dependency-check-maven/xref/overview-frame.html +++ b/dependency-check-maven/xref/overview-frame.html @@ -3,7 +3,7 @@ - Dependency-Check Maven Plugin 1.0.5 Reference + Dependency-Check Maven Plugin 1.0.6 Reference diff --git a/dependency-check-maven/xref/overview-summary.html b/dependency-check-maven/xref/overview-summary.html index 0df7efa07..e5940abe8 100644 --- a/dependency-check-maven/xref/overview-summary.html +++ b/dependency-check-maven/xref/overview-summary.html @@ -3,7 +3,7 @@ - Dependency-Check Maven Plugin 1.0.5 Reference + Dependency-Check Maven Plugin 1.0.6 Reference @@ -24,7 +24,7 @@ -

    Dependency-Check Maven Plugin 1.0.5 Reference

    +

    Dependency-Check Maven Plugin 1.0.6 Reference

    diff --git a/index.html b/index.html index 1632dde66..60212f6c5 100644 --- a/index.html +++ b/index.html @@ -1,13 +1,13 @@ - + dependency-check - @@ -62,8 +62,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • diff --git a/issue-tracking.html b/issue-tracking.html index 3d55bfac9..c26efa2a7 100644 --- a/issue-tracking.html +++ b/issue-tracking.html @@ -1,13 +1,13 @@ - + dependency-check - Issue Tracking @@ -62,8 +62,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • diff --git a/license.html b/license.html index c8665a6ef..9d36eda15 100644 --- a/license.html +++ b/license.html @@ -1,13 +1,13 @@ - + dependency-check - Project License @@ -62,8 +62,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • diff --git a/mail-lists.html b/mail-lists.html index 3d8172611..17a022d60 100644 --- a/mail-lists.html +++ b/mail-lists.html @@ -1,13 +1,13 @@ - + dependency-check - Project Mailing Lists @@ -62,8 +62,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • diff --git a/modules.html b/modules.html index cd3aecf06..552cc83c0 100644 --- a/modules.html +++ b/modules.html @@ -1,13 +1,13 @@ - + dependency-check - Project Modules @@ -62,8 +62,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • diff --git a/project-info.html b/project-info.html index 0cc1d9332..450b540d8 100644 --- a/project-info.html +++ b/project-info.html @@ -1,13 +1,13 @@ - + dependency-check - Project Information @@ -62,8 +62,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • diff --git a/project-summary.html b/project-summary.html index 2d5ca237e..d3fe0566b 100644 --- a/project-summary.html +++ b/project-summary.html @@ -1,13 +1,13 @@ - + dependency-check - Project Summary @@ -62,8 +62,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • @@ -247,7 +247,7 @@ - +
    dependency-check-parent
    Version1.0.5
    1.0.6
    Type pom
    diff --git a/source-repository.html b/source-repository.html index c7337de91..f5f08d80d 100644 --- a/source-repository.html +++ b/source-repository.html @@ -1,13 +1,13 @@ - + dependency-check - Source Repository @@ -62,8 +62,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6
  • diff --git a/team-list.html b/team-list.html index 109a8cfce..73e02e2ee 100644 --- a/team-list.html +++ b/team-list.html @@ -1,13 +1,13 @@ - + dependency-check - Team list @@ -62,8 +62,8 @@ -
  • Last Published: 2013-11-16
  • |
  • -
  • Version: 1.0.5
  • +
  • Last Published: 2013-12-01
  • |
  • +
  • Version: 1.0.6