@SuppressWarnings({"unchecked", "rawtypes"}) private void parseIncludeFile(SensorContext context, InputFile file, RefactorSession session) { long startTime = System.currentTimeMillis(); ParseUnit lexUnit = null; try { lexUnit = new ParseUnit(InputFileUtils.getInputStream(file), InputFileUtils.getRelativePath(file, context.fileSystem()), session); lexUnit.lexAndGenerateMetrics(); } catch (UncheckedIOException caught) { numFailures++; if (caught.getCause() instanceof XCodedFileException) { LOG.error("Unable to generate file metrics for xcode'd file '{}", file); } else { LOG.error("Unable to generate file metrics for file '" + file + "'", caught); } return; } catch (ProparseRuntimeException caught) { LOG.error("Unable to generate file metrics for file '" + file + "'", caught); return; } updateParseTime(System.currentTimeMillis() - startTime); if (lexUnit.getMetrics() != null) { // Saving LOC and COMMENTS metrics context.newMeasure().on(file).forMetric((Metric) CoreMetrics.NCLOC).withValue( lexUnit.getMetrics().getLoc()).save(); ncLocs += lexUnit.getMetrics().getLoc(); context.newMeasure().on(file).forMetric((Metric) CoreMetrics.COMMENT_LINES).withValue( lexUnit.getMetrics().getComments()).save(); } }