Remove some more occurences of deprecated getExecRoot() calls

--
MOS_MIGRATED_REVID=133257532
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java b/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java
index cf838bc..5ee730e 100644
--- a/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java
+++ b/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java
@@ -118,7 +118,7 @@
  * PackageCache.
  *
  * @see BuildTool
- * @see BuildView
+ * @see com.google.devtools.build.lib.analysis.BuildView
  */
 public class ExecutionTool {
   private static class StrategyConverter {
@@ -164,7 +164,7 @@
     }
   }
 
-  static final Logger LOG = Logger.getLogger(ExecutionTool.class.getName());
+  static final Logger log = Logger.getLogger(ExecutionTool.class.getName());
 
   private final CommandEnvironment env;
   private final BlazeRuntime runtime;
@@ -300,7 +300,6 @@
       throws ExecutorInitException {
     return new BlazeExecutor(
         env.getExecRoot(),
-        env.getOutputPath(),
         getReporter(),
         env.getEventBus(),
         runtime.getClock(),
@@ -352,7 +351,8 @@
       modifiedOutputFiles = outputService.startBuild(buildId,
               request.getBuildOptions().finalizeActions);
     } else {
-      startLocalOutputBuild(); // TODO(bazel-team): this could be just another OutputService
+      // TODO(bazel-team): this could be just another OutputService
+      startLocalOutputBuild(analysisResult.getWorkspaceName());
     }
 
     List<BuildConfiguration> targetConfigurations = configurations.getTargetConfigurations();
@@ -360,17 +360,18 @@
         ? targetConfigurations.get(0) : null;
     if (targetConfigurations.size() == 1) {
       String productName = runtime.getProductName();
+      String workspaceName = analysisResult.getWorkspaceName();
       OutputDirectoryLinksUtils.createOutputDirectoryLinks(
-          env.getWorkspaceName(), env.getWorkspace(),
-          getExecRoot(), env.getOutputPath(), getReporter(),
-          targetConfiguration, request.getBuildOptions().getSymlinkPrefix(productName),
-          productName);
+          workspaceName, env.getWorkspace(), env.getDirectories().getExecRoot(workspaceName),
+          env.getDirectories().getOutputPath(workspaceName), getReporter(), targetConfiguration,
+          request.getBuildOptions().getSymlinkPrefix(productName), productName);
     }
 
     ActionCache actionCache = getActionCache();
     SkyframeExecutor skyframeExecutor = env.getSkyframeExecutor();
-    Builder builder =
-            createBuilder(request, executor, actionCache, skyframeExecutor, modifiedOutputFiles);
+    Builder builder = createBuilder(
+        request, actionCache, skyframeExecutor, modifiedOutputFiles,
+        analysisResult.getWorkspaceName());
 
     //
     // Execution proper.  All statements below are logically nested in
@@ -422,7 +423,6 @@
         // skyframe full, this destroys the action graph as well, so we can only do it after the
         // action graph is no longer needed.
         env.getSkyframeBuildView().clearAnalysisCache(analysisResult.getTargetsToBuild());
-        actionGraph = null;
       }
 
       configureResourceManager(request);
@@ -539,9 +539,9 @@
   /**
    * Prepare for a local output build.
    */
-  private void startLocalOutputBuild() throws ExecutorInitException {
+  private void startLocalOutputBuild(String workspaceName) throws ExecutorInitException {
     try (AutoProfiler p = AutoProfiler.profiled("Starting local output build", ProfilerTask.INFO)) {
-      Path outputPath = env.getOutputPath();
+      Path outputPath = env.getDirectories().getOutputPath(workspaceName);
       Path localOutputPath = env.getDirectories().getLocalOutputPath();
 
       if (outputPath.isSymbolicLink()) {
@@ -657,10 +657,10 @@
   }
 
   private Builder createBuilder(BuildRequest request,
-      Executor executor,
       ActionCache actionCache,
       SkyframeExecutor skyframeExecutor,
-      ModifiedFileSet modifiedOutputFiles) {
+      ModifiedFileSet modifiedOutputFiles,
+      String workspaceName) {
     BuildRequest.BuildRequestOptions options = request.getBuildOptions();
     boolean verboseExplanations = options.verboseExplanations;
     boolean keepGoing = request.getViewOptions().keepGoing;
@@ -675,7 +675,7 @@
 
     // Unfortunately, the exec root cache is not shared with caches in the remote execution
     // client.
-    fileCache = createBuildSingleFileCache(executor.getExecRoot());
+    fileCache = createBuildSingleFileCache(env.getDirectories().getExecRoot(workspaceName));
     skyframeExecutor.setActionOutputRoot(actionOutputRoot);
     ArtifactFactory artifactFactory = env.getSkyframeBuildView().getArtifactFactory();
     return new SkyframeBuilder(skyframeExecutor,
@@ -715,7 +715,7 @@
     long actionCacheSizeInBytes = 0;
     long actionCacheSaveTimeInMs;
 
-    AutoProfiler p = AutoProfiler.profiledAndLogged("Saving action cache", ProfilerTask.INFO, LOG);
+    AutoProfiler p = AutoProfiler.profiledAndLogged("Saving action cache", ProfilerTask.INFO, log);
     try {
       actionCacheSizeInBytes = actionCache.save();
     } catch (IOException e) {