Skip to content

Commit

Permalink
Prevent concurrently running Jacoco ReportCreators to avoid report co…
Browse files Browse the repository at this point in the history
…rruption
  • Loading branch information
famod committed Dec 7, 2023
1 parent 7759deb commit 404ff07
Showing 1 changed file with 10 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,16 @@ public ReportCreator(ReportInfo reportInfo, JacocoConfig config) {

@Override
public void run() {
// Ugly workaround:
// Multiple ReportCreator shutdown hooks might run concurrently, possibly corrupting the report file(s) - e.g. when using @TestProfile.
// By locking on a class from the parent CL, all hooks are "serialized", one after another.
// In the long run there should only be as many hooks as there are different Jacoco configs...usually there will be only one config anyway!
synchronized (ExecFileLoader.class) {
doRun();
}
}

private void doRun() {
File targetdir = new File(reportInfo.reportDir);
targetdir.mkdirs();
try {
Expand Down

0 comments on commit 404ff07

Please sign in to comment.