Upgrade jacoco version in Bazel.

Also update jacoco APIs used by the JacocoCoverageRunner.

Fixes #7517.

Closes #8401.

PiperOrigin-RevId: 249059697
diff --git a/src/java_tools/junitrunner/java/com/google/testing/coverage/BUILD b/src/java_tools/junitrunner/java/com/google/testing/coverage/BUILD
index 3be31af..1a39e31 100644
--- a/src/java_tools/junitrunner/java/com/google/testing/coverage/BUILD
+++ b/src/java_tools/junitrunner/java/com/google/testing/coverage/BUILD
@@ -29,9 +29,9 @@
     deps = [
         ":bitfield",
         "//third_party:guava",
-        "//third_party/java/jacoco:blaze-agent",
-        "//third_party/java/jacoco:core",
-        "//third_party/java/jacoco:report",
+        "//third_party/java/jacoco:blaze-agent-0.8.3",
+        "//third_party/java/jacoco:core-0.8.3",
+        "//third_party/java/jacoco:report-0.8.3",
     ],
 )
 
diff --git a/src/java_tools/junitrunner/java/com/google/testing/coverage/BranchDetailAnalyzer.java b/src/java_tools/junitrunner/java/com/google/testing/coverage/BranchDetailAnalyzer.java
index 7ccd843..6ffb874 100644
--- a/src/java_tools/junitrunner/java/com/google/testing/coverage/BranchDetailAnalyzer.java
+++ b/src/java_tools/junitrunner/java/com/google/testing/coverage/BranchDetailAnalyzer.java
@@ -52,7 +52,7 @@
   public void analyzeClass(final ClassReader reader) {
     final Map<Integer, BranchExp> lineToBranchExp = mapProbes(reader);
 
-    long classid = CRC64.checksum(reader.b);
+    long classid = CRC64.classId(reader.b);
     ExecutionData classData = executionData.get(classid);
     if (classData == null) {
       return;
diff --git a/src/java_tools/junitrunner/java/com/google/testing/coverage/MethodProbesMapper.java b/src/java_tools/junitrunner/java/com/google/testing/coverage/MethodProbesMapper.java
index 6900a37..e1f00da 100644
--- a/src/java_tools/junitrunner/java/com/google/testing/coverage/MethodProbesMapper.java
+++ b/src/java_tools/junitrunner/java/com/google/testing/coverage/MethodProbesMapper.java
@@ -19,8 +19,8 @@
 import java.util.List;
 import java.util.Map;
 import java.util.TreeMap;
+import org.jacoco.core.internal.analysis.Instruction;
 import org.jacoco.core.internal.flow.IFrame;
-import org.jacoco.core.internal.flow.Instruction;
 import org.jacoco.core.internal.flow.LabelInfo;
 import org.jacoco.core.internal.flow.MethodProbesVisitor;
 import org.objectweb.asm.Handle;
@@ -60,7 +60,6 @@
 
   // Result
   private Map<Integer, BranchExp> lineToBranchExp = new TreeMap();
-
   public Map<Integer, BranchExp> result() {
     return lineToBranchExp;
   }
@@ -93,7 +92,7 @@
     Instruction instruction = new Instruction(currentLine);
     instructions.add(instruction);
     if (lastInstruction != null) {
-      instruction.setPredecessor(lastInstruction); // Update branch of lastInstruction
+      lastInstruction.addBranch(instruction, 0); // the first branch from last instruction
       predecessors.put(instruction, lastInstruction); // Update local cache
     }
 
@@ -155,11 +154,12 @@
     visitInsn();
   }
 
+
   // Methods that need to update the states
   @Override
   public void visitJumpInsn(int opcode, Label label) {
     visitInsn();
-    jumps.add(new Jump(lastInstruction, label));
+    jumps.add(new Jump(lastInstruction, label, 1));
   }
 
   @Override
@@ -181,14 +181,15 @@
 
     // Handle default transition
     LabelInfo.resetDone(dflt);
-    jumps.add(new Jump(lastInstruction, dflt));
+    int branch = 0;
+    jumps.add(new Jump(lastInstruction, dflt, branch));
     LabelInfo.setDone(dflt);
 
     // Handle other transitions
     LabelInfo.resetDone(labels);
     for (Label label : labels) {
       if (!LabelInfo.isDone(label)) {
-        jumps.add(new Jump(lastInstruction, label));
+        jumps.add(new Jump(lastInstruction, label, branch));
         LabelInfo.setDone(label);
       }
     }
@@ -207,7 +208,7 @@
   private void addProbe(int probeId) {
     // We do not add probes to the flow graph, but we need to update
     // the branch count of the predecessor of the probe
-    lastInstruction.addBranch();
+    lastInstruction.addBranch(false, 0);
     probeToInsn.put(probeId, lastInstruction);
   }
 
@@ -251,18 +252,18 @@
     visitInsn();
     LabelInfo.resetDone(dflt);
     LabelInfo.resetDone(labels);
-
-    visitTargetWithProbe(dflt);
+    int branch = 0;
+    visitTargetWithProbe(dflt, branch);
     for (Label l : labels) {
-      visitTargetWithProbe(l);
+      visitTargetWithProbe(l, branch);
     }
   }
 
-  private void visitTargetWithProbe(Label label) {
+  private void visitTargetWithProbe(Label label, int branch) {
     if (!LabelInfo.isDone(label)) {
       int id = LabelInfo.getProbeId(label);
       if (id == LabelInfo.NO_PROBE) {
-        jumps.add(new Jump(lastInstruction, label));
+        jumps.add(new Jump(lastInstruction, label, branch));
       } else {
         // Note, in this case the instrumenter should insert intermediate labels
         // for the probes. These probes will be added for the switch instruction.
@@ -276,7 +277,7 @@
 
   // If a CovExp of pred is ProbeExp, create a single-branch BranchExp and put it in the map.
   // Also update the index of insn.
-  private BranchExp getPredBranchExp(Instruction predecessor, Instruction insn) {
+  private BranchExp getPredBranchExp(Instruction predecessor) {
     BranchExp result = null;
     CovExp exp = insnToCovExp.get(predecessor);
     if (exp instanceof ProbeExp) {
@@ -301,7 +302,7 @@
       return true;
     }
 
-    BranchExp branchExp = getPredBranchExp(predecessor, insn);
+    BranchExp branchExp = getPredBranchExp(predecessor);
     Integer branchIdx = insnToIdx.get(insn);
     if (branchIdx == null) {
       // Keep track of the instructions in the branches that are already added
@@ -319,7 +320,7 @@
 
     for (Jump jump : jumps) {
       Instruction insn = labelToInsn.get(jump.target);
-      insn.setPredecessor(jump.source);
+      jump.source.addBranch(insn, jump.branch);
       predecessors.put(insn, jump.source);
     }
 
@@ -345,7 +346,7 @@
           // has a probe, but the branch count is not > 1.
         }
       } else {
-        if (insn.getBranches() > 1) {
+        if (insn.getBranchCounter().getTotalCount() > 1) {
           exp = new BranchExp(exp);
         }
         insnToCovExp.put(insn, exp);
@@ -353,7 +354,7 @@
 
       Instruction predecessor = predecessors.get(insn);
       while (predecessor != null) {
-        if (predecessor.getBranches() > 1) {
+        if (predecessor.getBranchCounter().getTotalCount() > 1) {
           boolean isNewBranch = updateBranchPredecessor(predecessor, insn, exp);
           if (!isNewBranch) {
             // If the branch already exists, no need to visit predecessors any more.
@@ -371,7 +372,7 @@
 
     // Merge branches in the instructions on the same line
     for (Instruction insn : instructions) {
-      if (insn.getBranches() > 1) {
+      if (insn.getBranchCounter().getTotalCount() > 1) {
         CovExp insnExp = insnToCovExp.get(insn);
         if (insnExp != null && (insnExp instanceof BranchExp)) {
           BranchExp exp = (BranchExp) insnExp;
@@ -394,10 +395,12 @@
   class Jump {
     public final Instruction source;
     public final Label target;
+    public final int branch;
 
-    public Jump(Instruction i, Label l) {
+    public Jump(Instruction i, Label l, int b) {
       source = i;
       target = l;
+      branch = b;
     }
   }
 }
diff --git a/src/test/java/com/google/devtools/build/android/desugar/BUILD b/src/test/java/com/google/devtools/build/android/desugar/BUILD
index 4780ad39..1812ef5 100644
--- a/src/test/java/com/google/devtools/build/android/desugar/BUILD
+++ b/src/test/java/com/google/devtools/build/android/desugar/BUILD
@@ -329,7 +329,7 @@
     jvm_flags = [
         # TODO (b/72181101): -Xbootclasspath/p is removed in JDK 9.
         "-XX:+IgnoreUnrecognizedVMOptions",
-        "-Xbootclasspath/a:$(location :testdata_desugared_core_library):$(location //third_party/java/jacoco:blaze-agent)",
+        "-Xbootclasspath/a:$(location :testdata_desugared_core_library):$(location //third_party/java/jacoco:blaze-agent-0.8.3)",
         "--patch-module=java.base=$(location :testdata_desugared_core_library)",
     ],
     tags = ["no_windows"],
@@ -341,7 +341,7 @@
         "//third_party:truth",
         # Depend on Jacoco runtime in case testdata was built with coverage
         # instrumentation
-        "//third_party/java/jacoco:blaze-agent",
+        "//third_party/java/jacoco:blaze-agent-0.8.3",
     ],
 )
 
@@ -351,7 +351,7 @@
     srcs = [
         "StackMapBugTest.java",
     ],
-    jvm_flags = ["-Xbootclasspath/a:$(location //third_party/java/jacoco:blaze-agent)"],
+    jvm_flags = ["-Xbootclasspath/a:$(location //third_party/java/jacoco:blaze-agent-0.8.3)"],
     tags = ["no_windows"],
     deps = [
         ":testdata_desugared_core_library",  # Make tests run against desugared library
@@ -360,7 +360,7 @@
         "//third_party:truth",
         # Depend on Jacoco runtime in case testdata was built with coverage
         # instrumentation
-        "//third_party/java/jacoco:blaze-agent",
+        "//third_party/java/jacoco:blaze-agent-0.8.3",
     ],
 )
 
@@ -376,7 +376,7 @@
     ],
     jvm_flags = [
         "-DDefaultMethodClassFixerTest.bootclasspath=$(location :android_jar_for_testing)",
-        "-DDefaultMethodClassFixerTest.classpath=$(location :separate):$(location //third_party:guava-jars):$(location //third_party/java/jacoco:blaze-agent)",
+        "-DDefaultMethodClassFixerTest.classpath=$(location :separate):$(location //third_party:guava-jars):$(location //third_party/java/jacoco:blaze-agent-0.8.3)",
         "-DDefaultMethodClassFixerTest.input=$(location :testdata_java8)",
     ],
     tags = ["no_windows"],
@@ -389,7 +389,7 @@
         "//third_party:guava",
         "//third_party:junit4",
         "//third_party:truth",
-        "//third_party/java/jacoco:blaze-agent",
+        "//third_party/java/jacoco:blaze-agent-0.8.3",
     ],
 )
 
@@ -821,7 +821,7 @@
         ":testdata",
         # Depend on Jacoco runtime in case testdata was built with coverage
         # instrumentation
-        "//third_party/java/jacoco:blaze-agent",
+        "//third_party/java/jacoco:blaze-agent-0.8.3",
         "@bazel_tools//tools/android:android_jar",
     ],
     outs = ["testdata_desugared.jar"],
@@ -829,7 +829,7 @@
           "--nodesugar_interface_method_bodies_if_needed -i $(location :testdata) -o $@ " +
           "--classpath_entry $(location :separate) " +
           "--classpath_entry $(location //third_party:guava-jars) " +
-          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent) " +
+          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
           "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
     tags = ["no_windows"],
     tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
@@ -850,13 +850,13 @@
     srcs = [
         ":generate_lambda_with_constant_arguments_in_test_data",
         # Depend on Jacoco runtime in case testdata was built with coverage instrumentation
-        "//third_party/java/jacoco:blaze-agent",
+        "//third_party/java/jacoco:blaze-agent-0.8.3",
         "@bazel_tools//tools/android:android_jar",
     ],
     outs = ["testdata_desugar_generate_lambda_with_constant_arguments.jar"],
     cmd = "$(location //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar) " +
           "-i $(location :generate_lambda_with_constant_arguments_in_test_data) -o $@ " +
-          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent) " +
+          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
           "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
     tags = ["no_windows"],
     tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
@@ -889,7 +889,7 @@
         ":separate",
         ":generate_synthetic_methods_with_lambda_names_in_test_data",
         # Depend on Jacoco runtime in case testdata was built with coverage instrumentation
-        "//third_party/java/jacoco:blaze-agent",
+        "//third_party/java/jacoco:blaze-agent-0.8.3",
         "@bazel_tools//tools/android:android_jar",
     ],
     outs = ["testdata_desugared_with_synthetic_methods_with_lambda_names.jar"],
@@ -897,7 +897,7 @@
           "--nodesugar_interface_method_bodies_if_needed -i $(location :generate_synthetic_methods_with_lambda_names_in_test_data) -o $@ " +
           "--classpath_entry $(location :separate) " +
           "--classpath_entry $(location //third_party:guava-jars) " +
-          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent) " +
+          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
           "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
     tags = ["no_windows"],
     tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
@@ -911,7 +911,7 @@
         ":testdata_desugared.jar",
         # Depend on Jacoco runtime in case testdata was built with coverage
         # instrumentation
-        "//third_party/java/jacoco:blaze-agent",
+        "//third_party/java/jacoco:blaze-agent-0.8.3",
         "@bazel_tools//tools/android:android_jar",
     ],
     outs = ["testdata_desugared_twice.jar"],
@@ -919,7 +919,7 @@
           "--nodesugar_interface_method_bodies_if_needed -i $(location :testdata_desugared.jar) -o $@ " +
           "--classpath_entry $(location :separate) " +
           "--classpath_entry $(location //third_party:guava-jars) " +
-          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent) " +
+          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
           "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
     tags = ["no_windows"],
     tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
@@ -936,7 +936,7 @@
         ":testdata",
         # Depend on Jacoco runtime in case testdata was built with coverage
         # instrumentation
-        "//third_party/java/jacoco:blaze-agent",
+        "//third_party/java/jacoco:blaze-agent-0.8.3",
         "@bazel_tools//tools/android:android_jar",
     ],
     outs = ["testdata_desugared_without_lambda_desugared.jar"],
@@ -945,7 +945,7 @@
           "--nodesugar_try_with_resources_if_needed " +
           "--classpath_entry $(location :separate) " +
           "--classpath_entry $(location //third_party:guava-jars) " +
-          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent) " +
+          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
           "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar) " +
           "--only_desugar_javac9_for_lint",
     tags = ["no_windows"],
@@ -1112,7 +1112,7 @@
         ":testdata_java8",
         # Depend on Jacoco runtime in case testdata was built with coverage
         # instrumentation
-        "//third_party/java/jacoco:blaze-agent",
+        "//third_party/java/jacoco:blaze-agent-0.8.3",
         "@bazel_tools//tools/android:android_jar",
     ],
     outs = ["testdata_desugared_java8.jar"],
@@ -1122,7 +1122,7 @@
           "--classpath_entry $(location :separate) " +
           "--classpath_entry $(location :separate_java8) " +
           "--classpath_entry $(location //third_party:guava-jars) " +
-          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent) " +
+          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
           "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
     tags = ["no_windows"],
     tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
@@ -1137,7 +1137,7 @@
         ":testdata_java8_like_in_android_studio",
         # Depend on Jacoco runtime in case testdata was built with coverage
         # instrumentation
-        "//third_party/java/jacoco:blaze-agent",
+        "//third_party/java/jacoco:blaze-agent-0.8.3",
         "@bazel_tools//tools/android:android_jar",
     ],
     outs = ["testdata_desugared_java8_like_in_android_studio.jar"],
@@ -1149,7 +1149,7 @@
           "--classpath_entry $(location :separate) " +
           "--classpath_entry $(location :separate_java8) " +
           "--classpath_entry $(location //third_party:guava-jars) " +
-          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent) " +
+          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
           "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
     tags = ["no_windows"],
     tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
@@ -1164,7 +1164,7 @@
         ":testdata_java8",
         # Depend on Jacoco runtime in case testdata was built with coverage
         # instrumentation
-        "//third_party/java/jacoco:blaze-agent",
+        "//third_party/java/jacoco:blaze-agent-0.8.3",
         "@bazel_tools//tools/android:android_jar",
     ],
     outs = ["testdata_desugared_default_methods.jar"],
@@ -1174,7 +1174,7 @@
           "--classpath_entry $(location :separate) " +
           "--classpath_entry $(location :separate_java8) " +
           "--classpath_entry $(location //third_party:guava-jars) " +
-          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent) " +
+          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
           "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
     tags = ["no_windows"],
     tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
@@ -1186,14 +1186,14 @@
         ":separate_java8",
         # Depend on Jacoco runtime in case testdata was built with coverage
         # instrumentation
-        "//third_party/java/jacoco:blaze-agent",
+        "//third_party/java/jacoco:blaze-agent-0.8.3",
         "@bazel_tools//tools/android:android_jar",
     ],
     outs = ["separate_java8_desugared_default_methods.jar"],
     cmd = "$(location //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar) " +
           "-i $(location :separate_java8) -o $@ " +
           "--emit_dependency_metadata_as_needed " +
-          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent) " +
+          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
           "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
     tags = ["no_windows"],
     tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
@@ -1208,7 +1208,7 @@
         ":testdata_java8",
         # Depend on Jacoco runtime in case testdata was built with coverage
         # instrumentation
-        "//third_party/java/jacoco:blaze-agent",
+        "//third_party/java/jacoco:blaze-agent-0.8.3",
         "@bazel_tools//tools/android:android_jar",
     ],
     outs = ["testdata_desugared_default_methods.output.txt"],
@@ -1218,7 +1218,7 @@
           "--classpath_entry $(location :separate) " +
           "--classpath_entry $(location :separate_java8) " +
           "--classpath_entry $(location //third_party:guava-jars) " +
-          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent) " +
+          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
           "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar) " +
           " &> $@",
     tags = ["no_windows"],
@@ -1234,7 +1234,7 @@
         ":testdata_desugared_default_methods.jar",
         # Depend on Jacoco runtime in case testdata was built with coverage
         # instrumentation
-        "//third_party/java/jacoco:blaze-agent",
+        "//third_party/java/jacoco:blaze-agent-0.8.3",
         "@bazel_tools//tools/android:android_jar",
     ],
     outs = ["testdata_desugared_default_methods_twice.jar"],
@@ -1243,7 +1243,7 @@
           "--classpath_entry $(location :separate) " +
           "--classpath_entry $(location :separate_java8) " +
           "--classpath_entry $(location //third_party:guava-jars) " +
-          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent) " +
+          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
           "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
     tags = ["no_windows"],
     tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
@@ -1255,13 +1255,13 @@
         ":testdata_core_library",
         # Depend on Jacoco runtime in case testdata was built with coverage
         # instrumentation
-        "//third_party/java/jacoco:blaze-agent",
+        "//third_party/java/jacoco:blaze-agent-0.8.3",
         "@bazel_tools//tools/android:android_jar",
     ],
     outs = ["testdata_desugared_core_library.jar"],
     cmd = "$(location //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar) " +
           "--core_library -i $(location :testdata_core_library) -o $@ " +
-          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent) " +
+          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
           "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
     tags = ["no_windows"],
     tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
@@ -1275,7 +1275,7 @@
         ":testdata_like_in_android_studio",
         # Depend on Jacoco runtime in case testdata was built with coverage
         # instrumentation
-        "//third_party/java/jacoco:blaze-agent",
+        "//third_party/java/jacoco:blaze-agent-0.8.3",
         "@bazel_tools//tools/android:android_jar",
     ],
     outs = ["testdata_desugared_like_in_android_studio.jar"],
@@ -1287,7 +1287,7 @@
           "--copy_bridges_from_classpath " +
           "--classpath_entry $(location :separate) " +
           "--classpath_entry $(location //third_party:guava-jars) " +
-          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent) " +
+          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
           "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
     tags = ["no_windows"],
     tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
@@ -1301,7 +1301,7 @@
         ":testdata_like_in_android_studio",
         # Depend on Jacoco runtime in case testdata was built with coverage
         # instrumentation
-        "//third_party/java/jacoco:blaze-agent",
+        "//third_party/java/jacoco:blaze-agent-0.8.3",
         "@bazel_tools//tools/android:android_jar",
     ],
     outs = [
@@ -1315,7 +1315,7 @@
           "--copy_bridges_from_classpath " +
           "--classpath_entry $(location :separate) " +
           "--classpath_entry $(location //third_party:guava-jars) " +
-          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent) " +
+          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
           "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
     tags = ["no_windows"],
     tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
@@ -1329,7 +1329,7 @@
         ":testdata_like_in_android_studio",
         # Depend on Jacoco runtime in case testdata was built with coverage
         # instrumentation
-        "//third_party/java/jacoco:blaze-agent",
+        "//third_party/java/jacoco:blaze-agent-0.8.3",
         "@bazel_tools//tools/android:android_jar",
     ],
     outs = [
@@ -1346,7 +1346,7 @@
           --copy_bridges_from_classpath \
           --classpath_entry $(location :separate) \
           --classpath_entry $(location //third_party:guava-jars) \
-          --classpath_entry $(location //third_party/java/jacoco:blaze-agent) \
+          --classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) \
           --bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)
      rm -rf $$tmpdir
     """,
@@ -1365,7 +1365,7 @@
         ":testdata_like_in_android_studio",
         # Depend on Jacoco runtime in case testdata was built with coverage
         # instrumentation
-        "//third_party/java/jacoco:blaze-agent",
+        "//third_party/java/jacoco:blaze-agent-0.8.3",
         "@bazel_tools//tools/android:android_jar",
     ],
     outs = [
@@ -1383,7 +1383,7 @@
           --copy_bridges_from_classpath \
           --classpath_entry $(location :separate) \
           --classpath_entry $(location //third_party:guava-jars) \
-          --classpath_entry $(location //third_party/java/jacoco:blaze-agent) \
+          --classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) \
           --bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)
      pushd $$tmpdirOut
      $$pwddir/$(location //tools/zip:zipper) c $$pwddir/$(location testdata_desugared_from_directory_to_directory.jar) $$(find *)
@@ -1406,7 +1406,7 @@
         ":testdata_like_in_android_studio",
         # Depend on Jacoco runtime in case testdata was built with coverage
         # instrumentation
-        "//third_party/java/jacoco:blaze-agent",
+        "//third_party/java/jacoco:blaze-agent-0.8.3",
         "@bazel_tools//tools/android:android_jar",
     ],
     outs = [
@@ -1423,7 +1423,7 @@
           --copy_bridges_from_classpath \
           --classpath_entry $$tmpdir \
           --classpath_entry $(location //third_party:guava-jars) \
-          --classpath_entry $(location //third_party/java/jacoco:blaze-agent) \
+          --classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) \
           --bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)
      rm -rf $$tmpdir
     """,
@@ -1444,7 +1444,7 @@
         ":testdata",
         # Depend on Jacoco runtime in case testdata was built with coverage
         # instrumentation
-        "//third_party/java/jacoco:blaze-agent",
+        "//third_party/java/jacoco:blaze-agent-0.8.3",
         "@bazel_tools//tools/android:android_jar",
     ],
     outs = ["testdata_desugared_for_try_with_resources.jar"],
@@ -1453,7 +1453,7 @@
           "--min_sdk_version 17 --desugar_try_with_resources_if_needed " +
           "--classpath_entry $(location :separate) " +
           "--classpath_entry $(location //third_party:guava-jars) " +
-          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent) " +
+          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
           "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
     tags = ["no_windows"],
     tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
@@ -1466,7 +1466,7 @@
     name = "desugar_default_method_with_legacy_coverage",
     srcs = [
         "jacoco_0_7_5_default_method.jar",
-        "//third_party/java/jacoco:blaze-agent",
+        "//third_party/java/jacoco:blaze-agent-0.8.3",
         "@bazel_tools//tools/android:android_jar",
     ],
     outs = ["jacoco_0_7_5_default_method_desugared.jar"],
@@ -1475,7 +1475,7 @@
           "--legacy_jacoco_fix " +
           "--min_sdk_version 19 " +
           "-i $(location :jacoco_0_7_5_default_method.jar) -o $@ " +
-          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent) " +
+          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
           "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
     tags = ["no_windows"],
     tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
@@ -1490,7 +1490,7 @@
         ":testdata",
         # Depend on Jacoco runtime in case testdata was built with coverage
         # instrumentation
-        "//third_party/java/jacoco:blaze-agent",
+        "//third_party/java/jacoco:blaze-agent-0.8.3",
         "@bazel_tools//tools/android:android_jar",
     ],
     outs = ["testdata_desugared_for_NO_desugaring_try_with_resources.jar"],
@@ -1499,7 +1499,7 @@
           "--min_sdk_version 19 --desugar_try_with_resources_if_needed " +
           "--classpath_entry $(location :separate) " +
           "--classpath_entry $(location //third_party:guava-jars) " +
-          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent) " +
+          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
           "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
     tags = ["no_windows"],
     tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
@@ -1513,7 +1513,7 @@
         ":desugar_testdata_by_desugaring_try_with_resources",
         # Depend on Jacoco runtime in case testdata was built with coverage
         # instrumentation
-        "//third_party/java/jacoco:blaze-agent",
+        "//third_party/java/jacoco:blaze-agent-0.8.3",
         "@bazel_tools//tools/android:android_jar",
     ],
     outs = ["testdata_desugared_for_try_with_resources_twice.jar"],
@@ -1522,7 +1522,7 @@
           "--min_sdk_version 17 --desugar_try_with_resources_if_needed " +
           "--classpath_entry $(location :separate) " +
           "--classpath_entry $(location //third_party:guava-jars) " +
-          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent) " +
+          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
           "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
     tags = ["no_windows"],
     tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
@@ -1821,13 +1821,13 @@
         ":capture_lambda",
         # Depend on Jacoco runtime in case testdata was built with coverage
         # instrumentation
-        "//third_party/java/jacoco:blaze-agent",
+        "//third_party/java/jacoco:blaze-agent-0.8.3",
         "@bazel_tools//tools/android:android_jar",
     ],
     outs = ["capture_lambda_desugared.jar"],
     cmd = "$(location //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar) " +
           "-i $(location :capture_lambda) -o $@ " +
-          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent) " +
+          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
           "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
     tags = ["no_windows"],
     tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
@@ -1839,13 +1839,13 @@
         ":capture_lambda_desugared.jar",
         # Depend on Jacoco runtime in case testdata was built with coverage
         # instrumentation
-        "//third_party/java/jacoco:blaze-agent",
+        "//third_party/java/jacoco:blaze-agent-0.8.3",
         "@bazel_tools//tools/android:android_jar",
     ],
     outs = ["capture_lambda_desugared_twice.jar"],
     cmd = "$(location //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar) " +
           "-i $(location :capture_lambda_desugared.jar) -o $@ " +
-          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent) " +
+          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
           "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
     tags = ["no_windows"],
     tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
@@ -2008,7 +2008,7 @@
         ":separate",
         ":testdata_java8",
         "//third_party:guava-jars",
-        "//third_party/java/jacoco:blaze-agent",
+        "//third_party/java/jacoco:blaze-agent-0.8.3",
         "@bazel_tools//tools/android:android_jar",
     ],
     outs = ["testdata_desugared_with_missing_dep.jar"],
@@ -2017,7 +2017,7 @@
           "--emit_dependency_metadata_as_needed " +
           "--classpath_entry $(location :separate) " +
           "--classpath_entry $(location //third_party:guava-jars) " +
-          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent) " +
+          "--classpath_entry $(location //third_party/java/jacoco:blaze-agent-0.8.3) " +
           "--bootclasspath_entry $(location @bazel_tools//tools/android:android_jar)",
     tools = ["//src/tools/android/java/com/google/devtools/build/android/desugar:Desugar"],
 )
@@ -2027,7 +2027,7 @@
     srcs = [
         ":b68049457_caller",
         ":b68049457_interface",
-        "//third_party/java/jacoco:blaze-agent",
+        "//third_party/java/jacoco:blaze-agent-0.8.3",
         "@bazel_tools//tools/android:android_jar",
     ],
     outs = ["b68049457_caller_desugared.jar"],
@@ -2096,7 +2096,7 @@
         "//third_party:guava-jars",
         # Depend on Jacoco runtime in case testdata was built with coverage
         # instrumentation
-        "//third_party/java/jacoco:blaze-agent",
+        "//third_party/java/jacoco:blaze-agent-0.8.3",
         "@bazel_tools//tools/android:android_jar",
     ],
     outs = ["guava_at_head_desugared.jar"],