Releases: jacoco/jacoco
Releases · jacoco/jacoco
Release list
0.8.15
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
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
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
inlinefunctions (GitHub #1670). - Calculation of line coverage for Kotlin
inlinefunctions withreifiedtype parameter (GitHub #1670, #1700). - Calculation of coverage for Kotlin
JvmSyntheticfunctions (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
getEntriesgenerated 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
JvmOverloadsannotation 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
0.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
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
VerifyErrorwhen 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
0.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-aggregateMaven 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.langpackage to unnamed module of the application class loader (GitHub #1334).
Non-functional Changes
0.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
NullPointerExceptionduring filtering (GitHub #1189). - Fix range for debug symbols of method parameters (GitHub #1246).
Non-functional Changes
0.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
formatsparameter 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).
syntheticmethods added by the Kotlin compiler version 1.5.0 and above forprivatesuspending 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
lateinitproperty 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.Stringvalues 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.Stringvalues (GitHub #1156).
Fixed bugs
- Fixed parsing of SMAP generated by Kotlin compiler version 1.5.0 and above (GitHub #1164).
Non-functional Changes
0.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,hashCodeandequalsgenerated 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
URLStreamHandlerRuntimeremoved (GitHub #471).