Clean up callers of ActionAnalysisMetadata.getExecutionInfo since it no longer returns null.

PiperOrigin-RevId: 416803988
diff --git a/src/main/java/com/google/devtools/build/lib/actions/AbstractAction.java b/src/main/java/com/google/devtools/build/lib/actions/AbstractAction.java
index 3dc5903..7787ab2 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/AbstractAction.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/AbstractAction.java
@@ -692,10 +692,7 @@
 
   @Override
   public Dict<String, String> getExecutionInfoDict() {
-    Map<String, String> executionInfo = getExecutionInfo();
-    if (executionInfo == null) {
-      return null;
-    }
+    ImmutableMap<String, String> executionInfo = getExecutionInfo();
     return Dict.immutableCopyOf(executionInfo);
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/exec/StandaloneTestStrategy.java b/src/main/java/com/google/devtools/build/lib/exec/StandaloneTestStrategy.java
index 569e419..2452e18 100644
--- a/src/main/java/com/google/devtools/build/lib/exec/StandaloneTestStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/exec/StandaloneTestStrategy.java
@@ -586,7 +586,7 @@
         action,
         args,
         ImmutableMap.copyOf(testEnvironment),
-        ImmutableMap.copyOf(action.getExecutionInfo()),
+        action.getExecutionInfo(),
         action.getLcovMergerRunfilesSupplier(),
         /* filesetMappings= */ ImmutableMap.of(),
         /* inputs= */ NestedSetBuilder.<ActionInput>compileOrder()
diff --git a/src/main/java/com/google/devtools/build/lib/includescanning/SpawnIncludeScanner.java b/src/main/java/com/google/devtools/build/lib/includescanning/SpawnIncludeScanner.java
index f0c65f9..3aa231b 100644
--- a/src/main/java/com/google/devtools/build/lib/includescanning/SpawnIncludeScanner.java
+++ b/src/main/java/com/google/devtools/build/lib/includescanning/SpawnIncludeScanner.java
@@ -362,9 +362,7 @@
             fileType.getFileType());
 
     ImmutableMap.Builder<String, String> execInfoBuilder = ImmutableMap.builder();
-    if (resourceOwner.getExecutionInfo() != null && !resourceOwner.getExecutionInfo().isEmpty()) {
-      execInfoBuilder.putAll(resourceOwner.getExecutionInfo());
-    }
+    execInfoBuilder.putAll(resourceOwner.getExecutionInfo());
     if (inMemoryOutput) {
       execInfoBuilder.put(
           ExecutionRequirements.REMOTE_EXECUTION_INLINE_OUTPUTS,
diff --git a/src/main/java/com/google/devtools/build/lib/query2/aquery/ActionGraphTextOutputFormatterCallback.java b/src/main/java/com/google/devtools/build/lib/query2/aquery/ActionGraphTextOutputFormatterCallback.java
index ded3b54..91ec8a1 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/aquery/ActionGraphTextOutputFormatterCallback.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/aquery/ActionGraphTextOutputFormatterCallback.java
@@ -16,6 +16,7 @@
 import static java.nio.charset.StandardCharsets.UTF_8;
 
 import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Streams;
 import com.google.devtools.build.lib.actions.AbstractAction;
@@ -48,7 +49,6 @@
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Objects;
-import java.util.Set;
 import java.util.stream.Collectors;
 
 /** Output callback for aquery, prints human readable output. */
@@ -234,24 +234,22 @@
                     .collect(Collectors.joining(", ")))
             .append("]\n");
       }
-      if (abstractAction.getExecutionInfo() != null) {
-        Set<Entry<String, String>> executionInfoSpecifiers =
-            abstractAction.getExecutionInfo().entrySet();
-        if (!executionInfoSpecifiers.isEmpty()) {
-          stringBuilder
-              .append("  ExecutionInfo: {")
-              .append(
-                  executionInfoSpecifiers.stream()
-                      .sorted(Map.Entry.comparingByKey())
-                      .map(
-                          e ->
-                              String.format(
-                                  "%s: %s",
-                                  ShellEscaper.escapeString(e.getKey()),
-                                  ShellEscaper.escapeString(e.getValue())))
-                      .collect(Collectors.joining(", ")))
-              .append("}\n");
-        }
+      ImmutableSet<Entry<String, String>> executionInfoSpecifiers =
+          abstractAction.getExecutionInfo().entrySet();
+      if (!executionInfoSpecifiers.isEmpty()) {
+        stringBuilder
+            .append("  ExecutionInfo: {")
+            .append(
+                executionInfoSpecifiers.stream()
+                    .sorted(Map.Entry.comparingByKey())
+                    .map(
+                        e ->
+                            String.format(
+                                "%s: %s",
+                                ShellEscaper.escapeString(e.getKey()),
+                                ShellEscaper.escapeString(e.getValue())))
+                    .collect(Collectors.joining(", ")))
+            .append("}\n");
       }
     }
     if (options.includeCommandline && action instanceof CommandAction) {
@@ -287,7 +285,7 @@
       }
     }
     Map<String, String> executionInfo = action.getExecutionInfo();
-    if (executionInfo != null && !executionInfo.isEmpty()) {
+    if (!executionInfo.isEmpty()) {
       stringBuilder
           .append("  ExecutionInfo: {")
           .append(
diff --git a/src/main/java/com/google/devtools/build/lib/remote/RemoteExecutionService.java b/src/main/java/com/google/devtools/build/lib/remote/RemoteExecutionService.java
index 8ae28be..7600cc9 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/RemoteExecutionService.java
+++ b/src/main/java/com/google/devtools/build/lib/remote/RemoteExecutionService.java
@@ -357,7 +357,7 @@
   }
 
   public static boolean shouldUploadLocalResults(
-      RemoteOptions remoteOptions, @Nullable Map<String, String> executionInfo) {
+      RemoteOptions remoteOptions, Map<String, String> executionInfo) {
     if (useRemoteCache(remoteOptions)) {
       if (useDiskCache(remoteOptions)) {
         return shouldUploadLocalResultsToCombinedDisk(remoteOptions, executionInfo);
diff --git a/src/main/java/com/google/devtools/build/lib/remote/util/Utils.java b/src/main/java/com/google/devtools/build/lib/remote/util/Utils.java
index 8c4099a..d72002c 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/util/Utils.java
+++ b/src/main/java/com/google/devtools/build/lib/remote/util/Utils.java
@@ -598,11 +598,10 @@
   }
 
   public static boolean shouldUploadLocalResultsToRemoteCache(
-      RemoteOptions remoteOptions, @Nullable Map<String, String> executionInfo) {
+      RemoteOptions remoteOptions, Map<String, String> executionInfo) {
     return remoteOptions.remoteUploadLocalResults
-        && (executionInfo == null
-            || (Spawns.mayBeCachedRemotely(executionInfo)
-                && !executionInfo.containsKey(ExecutionRequirements.NO_REMOTE_CACHE_UPLOAD)));
+        && Spawns.mayBeCachedRemotely(executionInfo)
+        && !executionInfo.containsKey(ExecutionRequirements.NO_REMOTE_CACHE_UPLOAD);
   }
 
   public static boolean shouldUploadLocalResultsToRemoteCache(
@@ -615,12 +614,11 @@
   }
 
   public static boolean shouldUploadLocalResultsToDiskCache(
-      RemoteOptions remoteOptions, @Nullable Map<String, String> executionInfo) {
+      RemoteOptions remoteOptions, Map<String, String> executionInfo) {
     if (remoteOptions.incompatibleRemoteResultsIgnoreDisk) {
-      return executionInfo == null || Spawns.mayBeCached(executionInfo);
+      return Spawns.mayBeCached(executionInfo);
     } else {
-      return remoteOptions.remoteUploadLocalResults
-          && (executionInfo == null || Spawns.mayBeCached(executionInfo));
+      return remoteOptions.remoteUploadLocalResults && Spawns.mayBeCached(executionInfo);
     }
   }
 
@@ -634,7 +632,7 @@
   }
 
   public static boolean shouldUploadLocalResultsToCombinedDisk(
-      RemoteOptions remoteOptions, @Nullable Map<String, String> executionInfo) {
+      RemoteOptions remoteOptions, Map<String, String> executionInfo) {
     if (remoteOptions.incompatibleRemoteResultsIgnoreDisk) {
       // If --incompatible_remote_results_ignore_disk is set, we treat the disk cache part as local
       // cache. Actions which are tagged with `no-remote-cache` can still hit the disk cache.
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/actiongraph/v2/ActionGraphDump.java b/src/main/java/com/google/devtools/build/lib/skyframe/actiongraph/v2/ActionGraphDump.java
index 53f6879..5b326c5 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/actiongraph/v2/ActionGraphDump.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/actiongraph/v2/ActionGraphDump.java
@@ -193,13 +193,11 @@
       }
     }
     Map<String, String> executionInfo = action.getExecutionInfo();
-    if (executionInfo != null) {
-      for (Map.Entry<String, String> info : executionInfo.entrySet()) {
-        actionBuilder.addExecutionInfo(
-            AnalysisProtosV2.KeyValuePair.newBuilder()
-                .setKey(info.getKey())
-                .setValue(info.getValue()));
-      }
+    for (Map.Entry<String, String> info : executionInfo.entrySet()) {
+      actionBuilder.addExecutionInfo(
+          AnalysisProtosV2.KeyValuePair.newBuilder()
+              .setKey(info.getKey())
+              .setValue(info.getValue()));
     }
 
     ActionOwner actionOwner = action.getOwner();
diff --git a/src/test/java/com/google/devtools/build/lib/rules/apple/AppleRulesTest.java b/src/test/java/com/google/devtools/build/lib/rules/apple/AppleRulesTest.java
index db1a95f..43c4f9b 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/apple/AppleRulesTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/apple/AppleRulesTest.java
@@ -127,11 +127,9 @@
 
     for (ActionAnalysisMetadata action : actions) {
       assertThat(action).isInstanceOf(AbstractAction.class);
-      if (action.getExecutionInfo() != null
-          && action.getExecutionInfo().containsKey("requires-darwin")) {
-        assertThat(((AbstractAction) action).getExecutionInfo())
-            .containsKey("supports-xcode-requirements-set");
-        assertThat(((AbstractAction) action).getExecutionInfo()).containsKey("no-remote");
+      if (action.getExecutionInfo().containsKey("requires-darwin")) {
+        assertThat(action.getExecutionInfo()).containsKey("supports-xcode-requirements-set");
+        assertThat(action.getExecutionInfo()).containsKey("no-remote");
       }
     }
   }
diff --git a/src/test/java/com/google/devtools/build/lib/starlark/StarlarkActionProviderTest.java b/src/test/java/com/google/devtools/build/lib/starlark/StarlarkActionProviderTest.java
index 005720b..d854866 100644
--- a/src/test/java/com/google/devtools/build/lib/starlark/StarlarkActionProviderTest.java
+++ b/src/test/java/com/google/devtools/build/lib/starlark/StarlarkActionProviderTest.java
@@ -75,7 +75,6 @@
     ActionAnalysisMetadata action = actions.get(0);
     assertThat(action.getMnemonic()).isEqualTo("Genrule");
     assertThat(action).isInstanceOf(AbstractAction.class);
-    assertThat(((AbstractAction) action).getExecutionInfo()).isNotNull();
   }
 
   @Test