Skip to content

Releases: jacoco/jacoco

0.8.15

Choose a tag to compare

@Godin Godin released this 05 Jun 20:41
Immutable release. Only release title and notes can be modified.
v0.8.15
6c5260a

New Features

  • JaCoCo now officially supports Java 26 (GitHub #2076).
  • Experimental support for Java 27 class files (GitHub #2004).
  • Compatibility methods generated by Kotlin compiler for functions defined in interfaces are filtered out during generation of report (GitHub #1905).
  • Compatibility methods generated by Kotlin compiler for exposed boxed inline value classes (JvmExposeBoxed annotation) are filtered out during generation of report (GitHub #1944).
  • Methods generated by the Kotlin compiler for functions with JvmStatic annotation are filtered out during generation of report (GitHub #2097).
  • Improved filtering of bytecode generated by Kotlin compiler for when expressions and statements with kotlin.String subject where first branch condition contains string with largest hash (GitHub #2098).
  • Part of bytecode that javac versions from 24 to 26 generate for switch statements and expressions with selector expression of type java.lang.String inside lambdas is filtered out during generation of report (GitHub #2023).
  • Improved performance of Kotlin files analysis by parsing SMAPs only once per class (GitHub #2114).
  • For better performance agent output methods tcpclient and tcpserver use BufferedOutputStream to write execution data to socket. Maven plugin, Ant tasks, CLI, API usage examples, and ExecDumpClient API use BufferedInputStream to read execution data from socket. Third-party integrations should do the same to benefit from this change in agent (GitHub #2089).

Fixed bugs

  • Fixed processing of Kotlin SMAP in synthetic classes (GitHub #1985).
  • Multiple JaCoCo runtimes within one JVM writing to the same output file should not cause data corruption when running on JDK versions from 6 to 10 affected by JDK-8166253 (GitHub #2065, #2074).
  • For better performance agent writes to output file via BufferedOutputStream, this fixes regression introduced in version 0.6.2 (GitHub #2073).
  • Fixed NullPointerException when JaCoCo agent is loaded by non system class loader, for example when loaded by JBoss Modules (GitHub #1651).

Non-functional Changes

  • JaCoCo now depends on ASM 9.10.1 (GitHub #2134).

0.8.14

Choose a tag to compare

@Godin Godin released this 11 Oct 19:42
v0.8.14
2eb2483

New Features

  • JaCoCo now officially supports Java 25 (GitHub #1950).
  • Experimental support for Java 26 class files (GitHub #1870).
  • Branches added by the Kotlin compiler for default argument number 33 or higher are filtered out during generation of report (GitHub #1655).
  • Part of bytecode generated by the Kotlin compiler for elvis operator that follows safe call operator is filtered out during generation of report (GitHub #1814, #1954).
  • Part of bytecode generated by the Kotlin compiler for more cases of chained safe call operators is filtered out during generation of report (GitHub #1956).
  • Part of bytecode generated by the Kotlin compiler for invocations of suspendCoroutineUninterceptedOrReturn intrinsic is filtered out during generation of report (GitHub #1929).
  • Part of bytecode generated by the Kotlin compiler for suspending lambdas with parameters is filtered out during generation of report (GitHub #1945).
  • Part of bytecode generated by the Kotlin compiler for suspending functions and lambdas with suspension points that return inline value class is filtered out during generation of report (GitHub #1871).
  • Part of bytecode generated by the Kotlin Compose compiler plugin for pausable composition is filtered out during generation of report (GitHub #1911).
  • Methods generated by the Kotlin serialization compiler plugin are filtered out (GitHub #1885, #1970, #1971).

Fixed bugs

  • Fixed handling of implicit else clause of when with String subject in Kotlin (GitHub #1813, #1940).
  • Fixed handling of implicit default clause of switch by String in Java when compiled by ECJ (GitHub #1813, #1940).
    Fixed handling of exceptions in chains of safe call operators in Kotlin (GitHub #1819).

Non-functional Changes

  • JaCoCo now depends on ASM 9.9 (GitHub #1965).

0.8.13

Choose a tag to compare

@Godin Godin released this 02 Apr 17:43
v0.8.13
78d5eff

New Features

  • JaCoCo now officially supports Java 23 and Java 24 (GitHub #1757, #1631, #1867).
  • Experimental support for Java 25 class files (GitHub #1807).
  • Calculation of line coverage for Kotlin inline functions (GitHub #1670).
  • Calculation of line coverage for Kotlin inline functions with reified type parameter (GitHub #1670, #1700).
  • Calculation of coverage for Kotlin JvmSynthetic functions (GitHub #1700).
  • Part of bytecode generated by the Kotlin Compose compiler plugin is filtered out during generation of report (GitHub #1616).
  • Part of bytecode generated by the Kotlin compiler for inline value classes is filtered out during generation of report (GitHub #1475).
  • Part of bytecode generated by the Kotlin compiler for suspending lambdas without suspension points is filtered out during generation of report (GitHub #1283).
  • Part of bytecode generated by the Kotlin compiler for when expressions and statements with nullable enum subject is filtered out during generation of report (GitHub #1774).
  • Part of bytecode generated by the Kotlin compiler for when expressions and statements with nullable String subject is filtered out during generation of report (GitHub #1769).
  • Part of bytecode generated by the Kotlin compiler for chains of safe call operators is filtered out during generation of report (GitHub #1810, #1818).
  • Method getEntries generated by the Kotlin compiler for enum classes is filtered out during generation of report (GitHub #1625).
  • Methods generated by the Kotlin compiler for constructors and functions with JvmOverloads annotation are filtered out (GitHub #1768).

Fixed bugs

  • Fixed interpretation of Kotlin SMAP (GitHub #1525).
  • File extensions are preserved in HTML report in case of clashes of normalized file names (GitHub #1660).

Non-functional Changes

  • JaCoCo build now uses Maven Wrapper and requires at least Maven 3.9.9 (GitHub #1708, #1707, #1681).
  • JaCoCo now depends on ASM 9.8 (GitHub #1862).
  • More context information when IllegalArgumentException occurs during reading of zip file (GitHub #1833).

0.8.12

Choose a tag to compare

@Godin Godin released this 02 Apr 16:21
v0.8.12

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).

0.8.11

Choose a tag to compare

@Godin Godin released this 16 Oct 12:52
v0.8.11

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).

0.8.10

Choose a tag to compare

@Godin Godin released this 25 Apr 12:32
v0.8.10

Fixed bugs

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

0.8.9

Choose a tag to compare

@Godin Godin released this 03 Apr 08:39
v0.8.9

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).

0.8.8

Choose a tag to compare

@Godin Godin released this 05 Apr 09:37
v0.8.8

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).

0.8.7

Choose a tag to compare

@Godin Godin released this 04 May 23:42
v0.8.7

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).

0.8.6

Choose a tag to compare

@Godin Godin released this 15 Sep 22:05
v0.8.6

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