@@ -358,23 +358,21 @@ private CxxSquidConfiguration createConfiguration() {
358358 }
359359
360360 private void save (Collection <SourceCode > sourceCodeFiles ) {
361- // don't publish metrics on modules, which were not analyzed
362- // otherwise hierarchical multi-module projects will contain wrong metrics ( == 0)
363- // see also AggregateMeasureComputer
364- if (sourceCodeFiles .isEmpty ()) {
365- return ;
366- }
367-
368361 for (var sourceCodeFile : sourceCodeFiles ) {
369- var sourceFile = (SourceFile ) sourceCodeFile ;
370- var ioFile = new File (sourceFile .getKey ());
371- InputFile inputFile = context .fileSystem ().inputFile (context .fileSystem ().predicates ().is (ioFile ));
372-
373- saveMeasures (inputFile , sourceFile );
374- saveViolations (inputFile , sourceFile );
375- saveFileLinesContext (inputFile , sourceFile );
376- saveCpdTokens (inputFile , sourceFile );
377- saveHighlighting (inputFile , sourceFile );
362+ try {
363+ var sourceFile = (SourceFile ) sourceCodeFile ;
364+ var ioFile = new File (sourceFile .getKey ());
365+ InputFile inputFile = context .fileSystem ().inputFile (context .fileSystem ().predicates ().is (ioFile ));
366+
367+ saveMeasures (inputFile , sourceFile );
368+ saveViolations (inputFile , sourceFile );
369+ saveFileLinesContext (inputFile , sourceFile );
370+ saveCpdTokens (inputFile , sourceFile );
371+ saveHighlighting (inputFile , sourceFile );
372+ } catch (IllegalStateException e ) {
373+ var msg = "Cannot save all measures for file '" + sourceCodeFile .getKey () + "'" ;
374+ CxxUtils .validateRecovery (msg , e , context .config ());
375+ }
378376 }
379377 }
380378
0 commit comments