Jacoco Versions Save

:microscope: Java Code Coverage Library

v0.8.12

1 month ago

New Features

  • JaCoCo now officially supports Java 22 (GitHub #1596).
  • Experimental support for Java 23 class files (GitHub #1553).

Fixed bugs

  • Branches added by the Kotlin compiler for functions with default arguments and having more than 32 parameters are filtered out during generation of report (GitHub #1556).
  • Branch added by the Kotlin compiler version 1.5.0 and above for reading from lateinit property is filtered out during generation of report (GitHub #1568).

Non-functional Changes

  • JaCoCo now depends on ASM 9.7 (GitHub #1600).

v0.8.11

6 months ago

New Features

  • JaCoCo now officially supports Java 21 (GitHub #1520).
  • Experimental support for Java 22 class files (GitHub #1479).
  • Part of bytecode generated by the Java compilers for exhaustive switch expressions is filtered out during generation of report (GitHub #1472).
  • Part of bytecode generated by the Java compilers for record patterns is filtered out during generation of report (GitHub #1473).

Fixed bugs

  • Instrumentation should not cause VerifyError when the last local variable of method parameters is overridden in the method body to store a value of type long or double (GitHub #893).
  • Restore exec file compatibility with versions from 0.7.5 to 0.8.8 in case of class files with zero line numbers (GitHub #1492).

Non-functional Changes

  • jacoco-maven-plugin now requires at least Java 8 (GitHub #1466, #1468).
  • JaCoCo build now requires at least Maven 3.5.4 (GitHub #1467).
  • Maven 3.9.2 should not produce warnings for jacoco-maven-plugin (GitHub #1468).
  • JaCoCo build now requires JDK 17 (GitHub #1482).
  • JaCoCo now depends on ASM 9.6 (GitHub #1518).

v0.8.10

1 year ago

Fixed bugs

  • Agent should not require configuration of permissions for SecurityManager outside of its codeBase (GitHub #1425).

v0.8.9

1 year ago

New Features

  • JaCoCo now officially supports Java 19 and 20 (GitHub #1371, #1386).
  • Experimental support for Java 21 class files (GitHub #1386).
  • Add parameter to include the current project in the report-aggregate Maven goal (GitHub #1007).
  • Component accessors generated by the Java compilers for records are filtered out during generation of report. Contributed by Tesla Zhang (GitHub #1393).

Fixed bugs

  • Agent should not open java.lang package to unnamed module of the application class loader (GitHub #1334).

Non-functional Changes

  • JaCoCo now depends on ASM 9.5 (GitHub #1299, #1368, #1416).
  • JaCoCo build now requires JDK 11 (GitHub #1413).

v0.8.8

2 years ago

New Features

  • JaCoCo now officially supports Java 17 and 18 (GitHub #1282, #1198).
  • Experimental support for Java 19 class files (GitHub #1264).
  • Part of bytecode generated by the Java compilers for assert statement is filtered out during generation of report (GitHub #1196).
  • Branch added by the Kotlin compiler version 1.6.0 and above for "unsafe" cast operator is filtered out during generation of report (GitHub #1266).
  • Improved support for multiple JaCoCo runtimes in the same VM (GitHub #1057).

Fixed bugs

  • Fixed NullPointerException during filtering (GitHub #1189).
  • Fix range for debug symbols of method parameters (GitHub #1246).

Non-functional Changes

  • JaCoCo now depends on ASM 9.2 (GitHub #1206).
  • Messages of exceptions occurring during analysis or instrumentation now include JaCoCo version (GitHub #1217).

v0.8.7

3 years ago

New Features

  • JaCoCo now officially supports Java 15 and 16 (GitHub #1094, #1097, #1176).
  • Experimental support for Java 17 class files (GitHub #1132).
  • New formats parameter for Maven report goals to specify the generated report formats. Contributed by troosan. (GitHub #1175).
  • Branch added by the Kotlin compiler version 1.4.0 and above for "unsafe" cast operator is filtered out during generation of report (GitHub #1143, #1178).
  • synthetic methods added by the Kotlin compiler version 1.5.0 and above for private suspending functions are filtered out (GitHub #1174).
  • Branches added by the Kotlin compiler version 1.4.20 and above for suspending lambdas are filtered out during generation of report (GitHub #1149).
  • Branches added by the Kotlin compiler version 1.5.0 and above for functions with default arguments are filtered out during generation of report (GitHub #1162).
  • Branch added by the Kotlin compiler version 1.5.0 and above for reading from lateinit property is filtered out during generation of report (GitHub #1166).
  • Additional bytecode generated by the Kotlin compiler version 1.5.0 and above for when expressions on kotlin.String values is filtered out during generation of report (GitHub #1172).
  • Improved filtering of bytecode generated by Kotlin compiler versions below 1.5.0 for when expressions on kotlin.String values (GitHub #1156).

Fixed bugs

  • Fixed parsing of SMAP generated by Kotlin compiler version 1.5.0 and above (GitHub #1164).

Non-functional Changes

  • JaCoCo now depends on ASM 9.1 (GitHub #1094, #1097, #1153).
  • Maven plug-in has no dependency on maven-reporting-impl any more (GitHub #1121).

v0.8.6

3 years ago

New Features

  • JaCoCo now officially supports Java 14.
  • Experimental support for Java 15 class files (GitHub #992).
  • Experimental support for Java 16 class files (GitHub #1059).
  • Methods toString, hashCode and equals generated by compiler for records are filtered out during generation of report (GitHub #990).
  • Bridge methods are filtered out during generation of report (GitHub #1010).
  • Methods generated by Kotlin compiler for non-overridden non-abstract methods of interfaces are filtered out during generation of report (GitHub #1012).
  • Branches added by the Kotlin compiler version 1.3.60 for suspending functions with tail call optimization are filtered out during generation of report (GitHub #1016).

Fixed bugs

  • Compression method of zip entries is now preserved when instrumenting archives. This allows to use JaCoCo with frameworks that expect uncompressed entries (GitHub #1018).

Non-functional Changes

  • Support for Pack200 was removed in JDK 14. JaCoCo will now throw a detailed exception when Pack200 archives are processed with the latest JDKs (GitHub #984).
  • JaCoCo now depends on ASM 8.0.1 (GitHub #1032, #1043).

API Changes

  • URLStreamHandlerRuntime removed (GitHub #471).

All Resolved Issues

v0.8.5

4 years ago

New Features

  • JaCoCo now officially supports Java 13
  • Experimental support for Java 14 class files (GitHub #897).
  • Branches added by the Kotlin compiler for open functions with default arguments are filtered out during generation of report (GitHub #887).

Fixed bugs

  • synthetic constructors that contain values of default arguments in Kotlin should not be ignored (GitHub #888).
  • Instrumentation should update indexes of local variables in annotations (GitHub #894).
  • Branches added by the Kotlin compiler for functions with default arguments and containing arguments of type long or double should be filtered out during generation of report (GitHub #908).
  • synthetic methods that contain bodies of anonymous functions in Scala should not be ignored (GitHub #912).
  • To avoid failures with invalid class files report generation now checks that source references are actually files (GitHub #941).
  • NullPointerException during filtering (GitHub #942, #944).

Non-functional Changes

  • JaCoCo now distributed under the terms and conditions of the Eclipse Public License Version 2.0 (GitHub #943).
  • Prevent startup when JaCoCo runtime cannot be initialized to avoid subsequent faults (GitHub #910).
  • JaCoCo now depends on ASM 7.2 (GitHub #947).

API Changes

  • The coverage check API and tools (Ant, Maven) now report an error, when a coverage ratio limit is configured outside the range [0,1] to avoid common configuration mistakes (GitHub #783).
  • Unsupported class file versions are now consistently reported as exceptions by all methods of Analyzer and Instrumenter and thus also during report generation and offline instrumentation (GitHub #952).

All Resolved Issues

v0.8.4

4 years ago

New Features

  • JaCoCo now officially supports Java 12.
  • Instrumentation does not add synthetic field to Java 11+ class files, however still adds synthetic method (GitHub #845).
  • Branches added by the Kotlin compiler version 1.3.30 for suspending lambdas and functions are filtered out during generation of report (GitHub #849).

Fixed bugs

  • Fixed incorrect update of frames caused by bug in ASM library in case of arrays with more than 7 dimensions (GitHub #839).
  • Fixed regression, which was introduced in 0.8.3 - module-info.class should be excluded from analysis to not cause IllegalStateException (GitHub #859).

API Changes

  • Methods Instrumenter.instrument(org.objectweb.asm.ClassReader) and Analyzer.analyzeClass(org.objectweb.asm.ClassReader) were removed (GitHub #850).

Non-functional Changes

  • JaCoCo now depends on ASM 7.1 (GitHub #851).

All Resolved Issues

v0.8.3

5 years ago

New Features

  • jacoco-maven-plugin now requires at least Maven 3.0 (GitHub #821).
  • JaCoCo now officially supports Java 11 (GitHub #760).
  • Experimental support for Java 13 class files (GitHub #835).
  • Branch added by the Kotlin compiler for "unsafe" cast operator is filtered out during generation of report (GitHub #761).
  • Branch added by the Kotlin compiler for not-null assertion operator is filtered out during generation of report (GitHub #815).
  • Instructions inlined by Kotlin compiler are filtered out during generation of report (GitHub #764).
  • Branches added by the Kotlin compiler for suspending lambdas and functions are filtered out during generation of report (GitHub #802, #803, #809).
  • Classes and methods annotated by annotation whose retention policy is runtime or class and whose simple name contains "Generated" (previously equality was required) are filtered out during generation of report (GitHub #822).
  • HTML report shows message when source file can't be found (GitHub #801).
  • HTML report shows message when class has no debug information (GitHub #818).
  • HTML report shows message when analyzed class does not match executed (GitHub #819).
  • HTML report shows message when no class files specified and when none of the analyzed classes contain code relevant for code coverage (GitHub #833).
  • Empty class and sourcefile nodes are preserved and available in XML report (GitHub #817).
  • Agent avoids conflicts with other agents when running on Java 9+ (GitHub #829).

Fixed Bugs

  • synthetic methods that contain values of default arguments in Kotlin should not be ignored (GitHub #774).
  • synthetic methods that represent suspend functions in Kotlin should not be ignored (GitHub #804).
  • Removed misleading parameters includes and excludes from dump, merge and restore-instrumented-classes goals of jacoco-maven-plugin, because they have no effect (GitHub #827).

Non-functional Changes

  • JaCoCo now depends on ASM 7.0 (GitHub #760).

All Resolved Issues