I've created a small project revealing the issue. It contains a class with a _Java 8_ lambda _expression_ {code} public class Foo { private final List<String> list = Arrays.asList("A", "B", "C");
public void bar() { list.stream().forEach(x -> System.out.println(x)); } } {code} and a test class {code} public class FooTest { @Test public void testBar() { new Foo().bar(); } } {code}
When running _Cobertura_ it complains about the line with the lambda _expression_ {code} 20:02:44.601 [main] WARN n.s.c.reporting.ComplexityCalculator - JavaNCSS got an error while parsing the java file /Users/nico/Dev/EclipseWorkspaces/Bastel/cobertura-jdk8-test/src/main/java/x/y/z/Foo.java ParseException in STDIN Last useful checkpoint: "x.y.z.Foo.bar()" Encountered " ">" "> "" at line 11, column 42. Was expecting one of: "assert" ... "boolean" ... "byte" ... "char" ... "double" ... "enum" ... "false" ... "float" ... "int" ... "long" ... "new" ... "null" ... "short" ... "super" ... "this" ... "true" ... "void" ... <INTEGER_LITERAL> ... <FLOATING_POINT_LITERAL> ... <CHARACTER_LITERAL> ... <STRING_LITERAL> ... <IDENTIFIER> ... "(" ... "!" ... "~" ... "++" ... "--" ... "+" ... "-" ...
20:02:44.610 [main] DEBUG n.s.cobertura.util.FileFinder - Searching for file, name=[x/y/z/Foo.java] 20:02:44.610 [main] DEBUG n.s.cobertura.util.FileFinder - Found inside sourceDirectories Report time: 155ms
[ERROR] Nov 24, 2014 8:02:44 PM net.sourceforge.cobertura.coveragedata.CoverageDataFileHandler loadCoverageData INFORMATION: Cobertura: Loaded information on 1 classes. net.sourceforge.cobertura.javancss.parser.ParseException: Encountered " ">" "> "" at line 11, column 42. Was expecting one of: "assert" ... "boolean" ... "byte" ... "char" ... "double" ... "enum" ... "false" ... "float" ... "int" ... "long" ... "new" ... "null" ... "short" ... "super" ... "this" ... "true" ... "void" ... <INTEGER_LITERAL> ... <FLOATING_POINT_LITERAL> ... <CHARACTER_LITERAL> ... <STRING_LITERAL> ... <IDENTIFIER> ... "(" ... "!" ... "~" ... "++" ... "--" ... "+" ... "-" ... at net.sourceforge.cobertura.javancss.parser.JavaParser.generateParseException(JavaParser.java:10490) at net.sourceforge.cobertura.javancss.parser.JavaParser.jj_consume_token(JavaParser.java:10366) at net.sourceforge.cobertura.javancss.parser.JavaParser.UnaryExpression(JavaParser.java:3175) at net.sourceforge.cobertura.javancss.parser.JavaParser.MultiplicativeExpression(JavaParser.java:3090) at net.sourceforge.cobertura.javancss.parser.JavaParser.AdditiveExpression(JavaParser.java:3085) at net.sourceforge.cobertura.javancss.parser.JavaParser.ShiftExpression(JavaParser.java:3027) at net.sourceforge.cobertura.javancss.parser.JavaParser.RelationalExpression(JavaParser.java:2990) at net.sourceforge.cobertura.javancss.parser.JavaParser.InstanceOfExpression(JavaParser.java:2977) at net.sourceforge.cobertura.javancss.parser.JavaParser.AssigmentExpression(JavaParser.java:2959) at net.sourceforge.cobertura.javancss.parser.JavaParser.EqualityExpression(JavaParser.java:2886) at net.sourceforge.cobertura.javancss.parser.JavaParser.AndExpression(JavaParser.java:2860) at net.sourceforge.cobertura.javancss.parser.JavaParser.ExclusiveOrExpression(JavaParser.java:2843) at net.sourceforge.cobertura.javancss.parser.JavaParser.InclusiveOrExpression(JavaParser.java:2826) at net.sourceforge.cobertura.javancss.parser.JavaParser.ConditionalAndExpression(JavaParser.java:2808) at net.sourceforge.cobertura.javancss.parser.JavaParser.ConditionalOrExpression(JavaParser.java:2790) at net.sourceforge.cobertura.javancss.parser.JavaParser.ConditionalExpression(JavaParser.java:2774) at net.sourceforge.cobertura.javancss.parser.JavaParser._expression_(JavaParser.java:2718) at net.sourceforge.cobertura.javancss.parser.JavaParser.ArgumentList(JavaParser.java:3620) at net.sourceforge.cobertura.javancss.parser.JavaParser.Arguments(JavaParser.java:3610) at net.sourceforge.cobertura.javancss.parser.JavaParser.PrimarySuffix(JavaParser.java:3511) at net.sourceforge.cobertura.javancss.parser.JavaParser.PrimaryExpression(JavaParser.java:3384) at net.sourceforge.cobertura.javancss.parser.JavaParser.StatementExpression(JavaParser.java:4070) at net.sourceforge.cobertura.javancss.parser.JavaParser.Statement(JavaParser.java:3795) at net.sourceforge.cobertura.javancss.parser.JavaParser.BlockStatement(JavaParser.java:3984) at net.sourceforge.cobertura.javancss.parser.JavaParser.Block(JavaParser.java:3934) at net.sourceforge.cobertura.javancss.parser.JavaParser.MethodDeclaration(JavaParser.java:1987) at net.sourceforge.cobertura.javancss.parser.JavaParser.ClassBodyDeclaration(JavaParser.java:1039) at net.sourceforge.cobertura.javancss.parser.JavaParser.ClassBody(JavaParser.java:898) at net.sourceforge.cobertura.javancss.parser.JavaParser.UnmodifiedClassDeclaration(JavaParser.java:824) at net.sourceforge.cobertura.javancss.parser.JavaParser.ClassDeclaration(JavaParser.java:728) at net.sourceforge.cobertura.javancss.parser.JavaParser.TypeDeclaration(JavaParser.java:575) at net.sourceforge.cobertura.javancss.parser.JavaParser.CompilationUnit(JavaParser.java:318) at net.sourceforge.cobertura.javancss.parser.JavaParser.parse(JavaParser.java:100) at net.sourceforge.cobertura.javancss.Javancss._measureSource(Javancss.java:192) at net.sourceforge.cobertura.javancss.Javancss._measureRoot(Javancss.java:268) at net.sourceforge.cobertura.javancss.Javancss.<init>(Javancss.java:347) at net.sourceforge.cobertura.javancss.JavancssFactory.newInstance(JavancssFactory.java:40) at net.sourceforge.cobertura.reporting.ComplexityCalculator.getFunctionMetricsForSingleFile(ComplexityCalculator.java:241) at net.sourceforge.cobertura.reporting.ComplexityCalculator.getAccumlatedCCNForSingleFile(ComplexityCalculator.java:141) at net.sourceforge.cobertura.reporting.ComplexityCalculator.getCCNForSourceFileNameInternal(ComplexityCalculator.java:271) at net.sourceforge.cobertura.reporting.ComplexityCalculator.getCCNForPackageInternal(ComplexityCalculator.java:206) at net.sourceforge.cobertura.reporting.ComplexityCalculator.getCCNForProject(ComplexityCalculator.java:172) at net.sourceforge.cobertura.reporting.html.HTMLReport.generateTableRowForTotal(HTMLReport.java:606) at net.sourceforge.cobertura.reporting.html.HTMLReport.generateOverview(HTMLReport.java:290) at net.sourceforge.cobertura.reporting.html.HTMLReport.generateOverviews(HTMLReport.java:231) at net.sourceforge.cobertura.reporting.html.HTMLReport.<init>(HTMLReport.java:74) at net.sourceforge.cobertura.reporting.html.HTMLReportFormatStrategy.save(HTMLReportFormatStrategy.java:18) at net.sourceforge.cobertura.reporting.NativeReport.export(NativeReport.java:31) at net.sourceforge.cobertura.reporting.CompositeReport.export(CompositeReport.java:19) at net.sourceforge.cobertura.reporting.ReportMain.parseArgumentsAndReport(ReportMain.java:89) at net.sourceforge.cobertura.reporting.ReportMain.generateReport(ReportMain.java:139) at net.sourceforge.cobertura.reporting.ReportMain.main(ReportMain.java:149) {code}
However, the report is generated anyway and also covers the line with the lambda _expression_.
Please find attached the debug log as well: [^cobertura-jdk8-test.log].
|