@Godin Godin released this Jan 3, 2018 · 76 commits to master since this release

Assets 3

New Features

  • JaCoCo now officially supports Java 9 (GitHub #600).
  • JaCoCo now comes with a simple command line interface (GitHub #525).
  • Limit configuration of Maven check goal and Ant check element now also supports percentage values (GitHub #534).
  • Manifests of JAR files now have Automatic-Module-Name for Java 9 (GitHub #565).
  • Maven aggregated reports will now also include modules of runtime and provided dependencies (GitHub #498, #572).

During creation of reports various compiler generated artifacts are filtered out, which otherwise require unnecessary and sometimes impossible tricks to not have partial or missed coverage:

  • Methods valueOf and values of enum types (GitHub #491).
  • Private empty no-argument constructors (GitHub #529).
  • Methods annotated with @lombok.Generated to better integrate with Lombok >= 1.16.14. Initial analysis and contribution by Rüdiger zu Dohna (@t1) (GitHub #513).
  • Methods annotated with @groovy.transform.Generated to better integrate with Groovy >= 2.5.0. Thanks to Andres Almiray (@aalmiray) for adding the annotation to Groovy (GitHub #610).
  • Part of bytecode for synchronized blocks (GitHub #501).
  • Part of bytecode for try-with-resources statements (GitHub #500).
  • Part of bytecode for finally blocks (GitHub #604).
  • Part of bytecode for switch statements on java.lang.String values (GitHub #596).

Note: Tools that directly read exec files and embed JaCoCo for this (such as SonarQube or Jenkins) will provide filtering functionality only after they updated to this version of JaCoCo.

Fixed Bugs

  • Fixed bug in instrumentation of exception handlers, which was causing damage of structured locking in certain situations and as consequence poor performance of instrumented methods, analysis and fix contributed by Allen Hair (@allenhair) (GitHub #627).
  • dump commands now report error when server unexpectedly closes connection without sending response (GitHub #538).
  • Reduced chance of conflict with other agents (GitHub #555).
  • Restored Maven help goal that was missing in version 0.7.9 (GitHub #559).
  • NullPointerException during offline instrumentation of module-info.class (GitHub #600, GitHub #634).
  • Incorrect update of frames caused by bug in ASM library (GitHub #600).
  • Loss of InnerClasses attribute caused by bug in ASM library (GitHub #600).
  • NegativeArraySizeException during instrumentation caused by bug in ASM library (GitHub #600).

Non-functional Changes

  • JaCoCo now depends on ASM 6.0 (GitHub #600).
  • More information about context is provided when unable to read input during instrumentation (GitHub #527).
  • More information about context is provided when unable to read stream during analysis (GitHub #541).

All Resolved Issues