diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/extra')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/extra/ExtraAction.java | 12 |
1 files changed, 9 insertions, 3 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 9290fc79a2..a1f82a9785 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 @@ -52,6 +52,8 @@ import java.util.List; import java.util.Map; import java.util.Set; +import javax.annotation.Nullable; + /** * Action used by extra_action rules to create an action that shadows an existing action. Runs a * command-line using {@link SpawnActionContext} for executions. @@ -115,8 +117,9 @@ public final class ExtraAction extends SpawnAction { return shadowedAction.discoversInputs(); } + @Nullable @Override - public void discoverInputs(ActionExecutionContext actionExecutionContext) + public Collection<Artifact> discoverInputs(ActionExecutionContext actionExecutionContext) throws ActionExecutionException, InterruptedException { Preconditions.checkState(discoversInputs(), this); if (getContext(actionExecutionContext.getExecutor()).isRemotable(getMnemonic(), @@ -124,10 +127,13 @@ public final class ExtraAction extends SpawnAction { // 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) { - updateInputs( - ((AbstractAction) shadowedAction).getInputFilesForExtraAction(actionExecutionContext)); + Iterable<Artifact> additionalInputs = + ((AbstractAction) shadowedAction).getInputFilesForExtraAction(actionExecutionContext); + updateInputs(additionalInputs); + return ImmutableSet.copyOf(additionalInputs); } } + return null; } @Override |