Sanitized displayName; cache/force logic fixed.
diff --git a/enterprise/cloud.oracle/src/org/netbeans/modules/cloud/oracle/adm/ProjectVulnerability.java b/enterprise/cloud.oracle/src/org/netbeans/modules/cloud/oracle/adm/ProjectVulnerability.java
index 8b6431c..153e29b 100644
--- a/enterprise/cloud.oracle/src/org/netbeans/modules/cloud/oracle/adm/ProjectVulnerability.java
+++ b/enterprise/cloud.oracle/src/org/netbeans/modules/cloud/oracle/adm/ProjectVulnerability.java
@@ -44,7 +44,7 @@
@ProjectType(id = "org-netbeans-modules-gradle")
})
public final class ProjectVulnerability {
- private final RequestProcessor AUDIT_PROCESSOR = new RequestProcessor(ProjectVulnerability.class);
+ private final RequestProcessor AUDIT_PROCESSOR = new RequestProcessor(ProjectVulnerability.class.getName(), 4);
private final RequestProcessor CALL_PROCESSOR = new RequestProcessor(ProjectVulnerability.class);
private final Project project;
diff --git a/enterprise/cloud.oracle/src/org/netbeans/modules/cloud/oracle/adm/VulnerabilityWorker.java b/enterprise/cloud.oracle/src/org/netbeans/modules/cloud/oracle/adm/VulnerabilityWorker.java
index 4516960..241cbb6 100644
--- a/enterprise/cloud.oracle/src/org/netbeans/modules/cloud/oracle/adm/VulnerabilityWorker.java
+++ b/enterprise/cloud.oracle/src/org/netbeans/modules/cloud/oracle/adm/VulnerabilityWorker.java
@@ -390,15 +390,12 @@
List<ApplicationDependency> result = new ArrayList();
convert(dr.getRoot(), new HashMap<>(), result);
- CacheItem cacheItem;
+ CacheItem cacheItem = null;
VulnerabilityReport savedAudit = null;
if (!forceAudit) {
try {
savedAudit = AuditCache.getInstance().loadAudit(knowledgeBaseId);
- if (savedAudit != null) {
- cacheItem = new CacheItem(project, dr, savedAudit);
- }
} catch (IOException ex) {
LOG.log(Level.WARNING, "Could not load cached audit data", ex);
}
@@ -421,6 +418,7 @@
if (!response.getVulnerabilityAuditCollection().getItems().isEmpty()) {
VulnerabilityAuditSummary summary = response.getVulnerabilityAuditCollection().getItems().get(0);
cacheItem = fetchVulnerabilityItems(project, admClient, dr, summary, projectDisplayName);
+ savedAudit = new VulnerabilityReport(cacheItem.getAudit(), cacheItem.getVulnerabilities());
}
} catch (BmcException ex) {
LOG.log(Level.FINE, "Unable to list newest audit for knowledgebase {0}, compartment {1}", new Object[] {
@@ -429,7 +427,7 @@
}
}
- if (savedAudit == null) {
+ if (savedAudit == null && forceAudit) {
try (ApplicationDependencyManagementClient admClient
= new ApplicationDependencyManagementClient(OCIManager.getDefault().getConfigProvider())) {
final VulnerabilityAuditConfiguration auditConfiguration = VulnerabilityAuditConfiguration
@@ -442,7 +440,7 @@
.builder()
.compartmentId(compartmentId)
.knowledgeBaseId(knowledgeBaseId)
- .displayName(projectDisplayName)
+ .displayName(projectDisplayName.replaceAll("[^A-Za-z0-9-_]", "_")) // remove offending characters
.buildType(VulnerabilityAudit.BuildType.Maven)
.configuration(auditConfiguration)
.applicationDependencies(result)
@@ -464,7 +462,7 @@
} finally {
progressHandle.finish();
}
- } else {
+ } else if (savedAudit != null) {
cacheItem = new CacheItem(project, dr, savedAudit);
}