Add correct debugging output for toolchain resolution.

Part of work on execution transitions, #7935.

Closes #8101.

PiperOrigin-RevId: 244376535
diff --git a/src/java_tools/junitrunner/javatests/com/google/testing/junit/runner/BUILD b/src/java_tools/junitrunner/javatests/com/google/testing/junit/runner/BUILD
index 3017c29..fa0e7e0 100644
--- a/src/java_tools/junitrunner/javatests/com/google/testing/junit/runner/BUILD
+++ b/src/java_tools/junitrunner/javatests/com/google/testing/junit/runner/BUILD
@@ -25,8 +25,8 @@
         "//third_party:jsr305",
         "//third_party:jsr330_inject",
         "//third_party:junit4",
+        "//third_party:mockito2",
         "//third_party:truth",
-        "//third_party/java/mockito:mockito2_for_third_party",
     ],
 )
 
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionFunction.java
index 2420696..d39d838 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionFunction.java
@@ -17,6 +17,7 @@
 import static java.util.stream.Collectors.joining;
 
 import com.google.auto.value.AutoValue;
+import com.google.common.base.Preconditions;
 import com.google.common.collect.HashBasedTable;
 import com.google.common.collect.ImmutableBiMap;
 import com.google.common.collect.ImmutableList;
@@ -59,8 +60,7 @@
     UnloadedToolchainContext.Key key = (UnloadedToolchainContext.Key) skyKey.argument();
 
     try {
-      UnloadedToolchainContext.Builder unloadedToolchainContext =
-          UnloadedToolchainContext.builder();
+      UnloadedToolchainContext.Builder builder = UnloadedToolchainContext.builder();
 
       // Determine the configuration being used.
       BuildConfigurationValue value =
@@ -70,10 +70,7 @@
       }
       BuildConfiguration configuration = value.getConfiguration();
       PlatformConfiguration platformConfiguration =
-          configuration.getFragment(PlatformConfiguration.class);
-      if (platformConfiguration == null) {
-        throw new ValueMissingException();
-      }
+          Preconditions.checkNotNull(configuration.getFragment(PlatformConfiguration.class));
 
       // Check if debug output should be generated.
       boolean debug =
@@ -99,11 +96,27 @@
           debug,
           key.configurationKey(),
           key.requiredToolchainTypeLabels(),
-          unloadedToolchainContext,
+          builder,
           platformKeys,
           key.shouldSanityCheckConfiguration());
 
-      return unloadedToolchainContext.build();
+      UnloadedToolchainContext unloadedToolchainContext = builder.build();
+      if (debug) {
+        String selectedToolchains =
+            unloadedToolchainContext.toolchainTypeToResolved().entrySet().stream()
+                .map(
+                    e ->
+                        String.format(
+                            "type %s -> toolchain %s", e.getKey().typeLabel(), e.getValue()))
+                .collect(joining(", "));
+        env.getListener()
+            .handle(
+                Event.info(
+                    String.format(
+                        "ToolchainResolution: Selected execution platform %s, %s",
+                        unloadedToolchainContext.executionPlatform().label(), selectedToolchains)));
+      }
+      return unloadedToolchainContext;
     } catch (ToolchainException e) {
       throw new ToolchainResolutionFunctionException(e);
     } catch (ValueMissingException e) {
@@ -276,7 +289,7 @@
       boolean debug,
       BuildConfigurationValue.Key configurationKey,
       ImmutableSet<Label> requiredToolchainTypeLabels,
-      UnloadedToolchainContext.Builder unloadedToolchainContext,
+      UnloadedToolchainContext.Builder builder,
       PlatformKeys platformKeys,
       boolean shouldSanityCheckConfiguration)
       throws InterruptedException, ValueMissingException, InvalidPlatformException,
@@ -377,14 +390,13 @@
       throw new ValueMissingException();
     }
 
-    unloadedToolchainContext.setRequiredToolchainTypes(requiredToolchainTypes);
-    unloadedToolchainContext.setExecutionPlatform(
-        platforms.get(selectedExecutionPlatformKey.get()));
-    unloadedToolchainContext.setTargetPlatform(platforms.get(platformKeys.targetPlatformKey()));
+    builder.setRequiredToolchainTypes(requiredToolchainTypes);
+    builder.setExecutionPlatform(platforms.get(selectedExecutionPlatformKey.get()));
+    builder.setTargetPlatform(platforms.get(platformKeys.targetPlatformKey()));
 
     Map<ToolchainTypeInfo, Label> toolchains =
         resolvedToolchains.row(selectedExecutionPlatformKey.get());
-    unloadedToolchainContext.setToolchainTypeToResolved(ImmutableBiMap.copyOf(toolchains));
+    builder.setToolchainTypeToResolved(ImmutableBiMap.copyOf(toolchains));
   }
 
   /**
@@ -425,22 +437,6 @@
         continue;
       }
 
-      if (debug) {
-        String selectedToolchains =
-            toolchains.entrySet().stream()
-                .map(
-                    e ->
-                        String.format(
-                            "type %s -> toolchain %s", e.getKey().typeLabel(), e.getValue()))
-                .collect(joining(", "));
-        environment
-            .getListener()
-            .handle(
-                Event.info(
-                    String.format(
-                        "ToolchainResolver: Selected execution platform %s, %s",
-                        executionPlatformKey.getLabel(), selectedToolchains)));
-      }
       return Optional.of(executionPlatformKey);
     }