@@ -464,13 +464,23 @@ private void saveFileLinesContext(InputFile inputFile, SourceFile sourceFile) {
464464 // measures for the lines of file
465465 FileLinesContext fileLinesContext = fileLinesContextFactory .createFor (inputFile );
466466 List <Integer > linesOfCode = (List <Integer >) sourceFile .getData (CxxMetric .NCLOC_DATA );
467- linesOfCode .stream ().sequential ().distinct ().forEach (
468- line -> fileLinesContext .setIntValue (CoreMetrics .NCLOC_DATA_KEY , line , 1 )
469- );
467+ linesOfCode .stream ().sequential ().distinct ().forEach ((line ) -> {
468+ try {
469+ fileLinesContext .setIntValue (CoreMetrics .NCLOC_DATA_KEY , line , 1 );
470+ } catch (IllegalArgumentException | IllegalStateException e ) {
471+ // ignore errors: parsing errors could lead to wrong location data
472+ LOG .debug ("NCLOC error in file '{}' at line:{}" , inputFile .filename (), line );
473+ }
474+ });
470475 List <Integer > executableLines = (List <Integer >) sourceFile .getData (CxxMetric .EXECUTABLE_LINES_DATA );
471- executableLines .stream ().sequential ().distinct ().forEach (
472- line -> fileLinesContext .setIntValue (CoreMetrics .EXECUTABLE_LINES_DATA_KEY , line , 1 )
473- );
476+ executableLines .stream ().sequential ().distinct ().forEach ((line ) -> {
477+ try {
478+ fileLinesContext .setIntValue (CoreMetrics .EXECUTABLE_LINES_DATA_KEY , line , 1 );
479+ } catch (IllegalArgumentException | IllegalStateException e ) {
480+ // ignore errors: parsing errors could lead to wrong location data
481+ LOG .debug ("EXECUTABLE LINES error in file '{}' at line:{}" , inputFile .filename (), line );
482+ }
483+ });
474484 fileLinesContext .save ();
475485 }
476486
0 commit comments