Fix NPE in JacocoCoverageRunner.

RELNOTES: None.
PiperOrigin-RevId: 235885459
diff --git a/src/java_tools/junitrunner/java/com/google/testing/coverage/JacocoCoverageRunner.java b/src/java_tools/junitrunner/java/com/google/testing/coverage/JacocoCoverageRunner.java
index 1bd558e..aa670d7 100644
--- a/src/java_tools/junitrunner/java/com/google/testing/coverage/JacocoCoverageRunner.java
+++ b/src/java_tools/junitrunner/java/com/google/testing/coverage/JacocoCoverageRunner.java
@@ -422,10 +422,18 @@
     final File[] metadataFilesFinal = metadataFiles;
     final String javaRunfilesRoot = System.getenv("JACOCO_JAVA_RUNFILES_ROOT");
 
-    final boolean hasOneFile =
-        !isNewImplementation
-            || metadataFile.endsWith("_merged_instr.jar")
-            || metadataFile.endsWith("_deploy.jar");
+    boolean hasOneFile = false;
+    if (!isNewImplementation) {
+      // --noexperimental_java_coverage sets JACOCO_METADATA_JAR to the instrumented jar
+      // and it is only one file.
+      hasOneFile = true;
+    } else if (metadataFile != null
+        && (metadataFile.endsWith("_merged_instr.jar") || metadataFile.endsWith("_deploy.jar"))) {
+      // --experimental_java_coverage can set JACOCO_METADATA_JAR to either one file (a deploy jar
+      // or a merged jar) or to multiple jars.
+      hasOneFile = true;
+    }
+    final boolean hasOneFileFinal = hasOneFile;
 
     final String coverageReportBase = System.getenv("JAVA_COVERAGE_FILE");
 
@@ -489,7 +497,7 @@
                       metadataJars = metadataFilesFinal;
                     } else {
                       metadataJars =
-                          hasOneFile
+                          hasOneFileFinal
                               ? new File[] {new File(metadataFileFinal)}
                               : getFilesFromFileList(new File(metadataFileFinal), javaRunfilesRoot)
                                   .toArray(new File[0]);