Releases: jacoco/jacoco
Releases · jacoco/jacoco
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
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
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-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
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
NullPointerException
during 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
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 forprivate
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
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
,hashCode
andequals
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).
0.8.5
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
ordouble
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
andInstrumenter
and thus also during report generation and offline instrumentation (GitHub #952).
0.8.4
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 causeIllegalStateException
(GitHub #859).
API Changes
- Methods
Instrumenter.instrument(org.objectweb.asm.ClassReader)
andAnalyzer.analyzeClass(org.objectweb.asm.ClassReader)
were removed (GitHub #850).
Non-functional Changes
- JaCoCo now depends on ASM 7.1 (GitHub #851).
0.8.3
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
orclass
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
andexcludes
fromdump
,merge
andrestore-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).