diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/extra/ExtraAction.java | 34 |
1 files changed, 10 insertions, 24 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraAction.java b/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraAction.java index 88e51e8a03..2e0f25bf6d 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraAction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraAction.java @@ -27,8 +27,6 @@ import com.google.devtools.build.lib.actions.ActionExecutionException; import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.actions.ArtifactResolver; import com.google.devtools.build.lib.actions.DelegateSpawn; -import com.google.devtools.build.lib.actions.ExecException; -import com.google.devtools.build.lib.actions.Executor; import com.google.devtools.build.lib.actions.PackageRootResolutionException; import com.google.devtools.build.lib.actions.PackageRootResolver; import com.google.devtools.build.lib.actions.Spawn; @@ -133,16 +131,13 @@ public final class ExtraAction extends SpawnAction { public Collection<Artifact> discoverInputs(ActionExecutionContext actionExecutionContext) throws ActionExecutionException, InterruptedException { Preconditions.checkState(discoversInputs(), this); - if (getContext(actionExecutionContext.getExecutor()).isRemotable(getMnemonic(), - isRemotable())) { - // If we're running remotely, we need to update our inputs to take account of any additional - // inputs the shadowed action may need to do its work. - if (shadowedAction.discoversInputs() && shadowedAction instanceof AbstractAction) { - Iterable<Artifact> additionalInputs = - ((AbstractAction) shadowedAction).getInputFilesForExtraAction(actionExecutionContext); - updateInputs(createInputs(additionalInputs, extraActionInputs)); - return ImmutableSet.copyOf(additionalInputs); - } + // We need to update our inputs to take account of any additional + // inputs the shadowed action may need to do its work. + if (shadowedAction.discoversInputs() && shadowedAction instanceof AbstractAction) { + Iterable<Artifact> additionalInputs = + ((AbstractAction) shadowedAction).getInputFilesForExtraAction(actionExecutionContext); + updateInputs(createInputs(additionalInputs, extraActionInputs)); + return ImmutableSet.copyOf(additionalInputs); } return null; } @@ -192,19 +187,9 @@ public final class ExtraAction extends SpawnAction { @Override public void execute(ActionExecutionContext actionExecutionContext) throws ActionExecutionException, InterruptedException { - Executor executor = actionExecutionContext.getExecutor(); - // PHASE 2: execution of extra_action. - if (getContext(executor).isRemotable(getMnemonic(), isRemotable())) { - try { - getContext(executor).exec(getExtraActionSpawn(), actionExecutionContext); - } catch (ExecException e) { - throw e.toActionExecutionException(this); - } - } else { - super.execute(actionExecutionContext); - } + super.execute(actionExecutionContext); // PHASE 3: create dummy output. // If the user didn't specify output, we need to create dummy output @@ -231,7 +216,8 @@ public final class ExtraAction extends SpawnAction { * before the SpawnAction so should not be listed as one of its outputs. */ // TODO(bazel-team): Add more tests that execute this code path! - private Spawn getExtraActionSpawn() { + @Override + public Spawn getSpawn() { final Spawn base = super.getSpawn(); return new DelegateSpawn(base) { @Override public ImmutableMap<PathFragment, Artifact> getRunfilesManifests() { |