@@ -76,17 +76,18 @@ public void execute(JobExecutionContext context) throws JobExecutionException {
7676 Function .identity (), Collectors .counting ()));
7777
7878 long submittedJobs = parsedJobStatuses .getOrDefault (JobStatus .TO_BE_EXECUTED , 0L );
79+ long unresolvedJobs = parsedJobStatuses .getOrDefault (JobStatus .UNRESOLVABLE , 0L );
80+ long denylistedJobs = parsedJobStatuses .getOrDefault (JobStatus .DENYLISTED , 0L );
81+ long resolutionErrorJobs = parsedJobStatuses .getOrDefault (JobStatus .RESOLUTION_ERROR , 0L );
7982 bulkScan .setScanJobsPublished (submittedJobs );
80- bulkScan .setScanJobsResolutionErrors (
81- parsedJobStatuses .getOrDefault (JobStatus .UNRESOLVABLE , 0L ));
82- bulkScan .setScanJobsDenylisted (
83- parsedJobStatuses .getOrDefault (JobStatus .DENYLISTED , 0L ));
83+ bulkScan .setScanJobsResolutionErrors (unresolvedJobs +resolutionErrorJobs );
84+ bulkScan .setScanJobsDenylisted (denylistedJobs );
8485 persistenceProvider .updateBulkScan (bulkScan );
8586
8687 if (controllerConfig .isMonitored () && submittedJobs == 0 ) {
8788 progressMonitor .stopMonitoringAndFinalizeBulkScan (bulkScan .get_id ());
8889 }
89- LOGGER .info ("Submitted {} scan jobs to RabbitMq" , submittedJobs );
90+ LOGGER .info ("Submitted {} scan jobs to RabbitMq (Not submitted: {} Unresolvable, {} Denylisted, {} unhandled Error) " , submittedJobs , unresolvedJobs , denylistedJobs , resolutionErrorJobs );
9091 } catch (Exception e ) {
9192 LOGGER .error ("Exception while publishing BulkScan: " , e );
9293 JobExecutionException e2 = new JobExecutionException (e );
@@ -117,15 +118,26 @@ public JobSubmitter(
117118
118119 @ Override
119120 public JobStatus apply (String targetString ) {
120- var targetInfo =
121- ScanTarget .fromTargetString (targetString , defaultPort , denylistProvider );
122- ScanJobDescription jobDescription =
123- new ScanJobDescription (targetInfo .getLeft (), bulkScan , targetInfo .getRight ());
121+ ScanJobDescription jobDescription ;
122+ ScanResult errorResult = null ;
123+ try {
124+ var targetInfo =
125+ ScanTarget .fromTargetString (targetString , defaultPort , denylistProvider );
126+ jobDescription =
127+ new ScanJobDescription (targetInfo .getLeft (), bulkScan , targetInfo .getRight ());
128+ }catch (Exception e ){
129+ jobDescription = new ScanJobDescription (new ScanTarget (), bulkScan , JobStatus .RESOLUTION_ERROR );
130+ errorResult = ScanResult .fromException (jobDescription , e );
131+ LOGGER .error ("Error while creating ScanJobDescription for target '{}'" , targetString , e );
132+ }
133+
124134 if (jobDescription .getStatus () == JobStatus .TO_BE_EXECUTED ) {
125135 orchestrationProvider .submitScanJob (jobDescription );
126136 } else {
127- persistenceProvider .insertScanResult (
128- new ScanResult (jobDescription , null ), jobDescription );
137+ if (errorResult == null ){
138+ errorResult = new ScanResult (jobDescription , null );
139+ }
140+ persistenceProvider .insertScanResult (errorResult , jobDescription );
129141 }
130142 return jobDescription .getStatus ();
131143 }
0 commit comments