Skip to content

Commit 3605dcf

Browse files
committed
make save measures for InputFiles more robust
- use validateRecovery and continue if error recovery is enabled
1 parent 4c9e5b6 commit 3605dcf

File tree

1 file changed

+14
-16
lines changed

1 file changed

+14
-16
lines changed

sonar-cxx-plugin/src/main/java/org/sonar/plugins/cxx/CxxSquidSensor.java

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)