diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleAction.java | 9 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/java/JavaHeaderCompileAction.java | 10 |
2 files changed, 14 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleAction.java b/src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleAction.java index 5e8828d6bb..4955c2b183 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleAction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleAction.java @@ -15,6 +15,7 @@ package com.google.devtools.build.lib.rules.genrule; import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; import com.google.devtools.build.lib.actions.ActionEnvironment; import com.google.devtools.build.lib.actions.ActionExecutionContext; import com.google.devtools.build.lib.actions.ActionOwner; @@ -23,10 +24,12 @@ import com.google.devtools.build.lib.actions.CommandLineExpansionException; import com.google.devtools.build.lib.actions.ExecException; import com.google.devtools.build.lib.actions.ResourceSet; import com.google.devtools.build.lib.actions.RunfilesSupplier; +import com.google.devtools.build.lib.actions.SpawnResult; import com.google.devtools.build.lib.analysis.actions.CommandLine; import com.google.devtools.build.lib.analysis.actions.SpawnAction; import com.google.devtools.build.lib.events.EventHandler; import java.util.List; +import java.util.Set; /** * A spawn action for genrules. Genrules are handled specially in that inputs and outputs are @@ -66,15 +69,17 @@ public class GenRuleAction extends SpawnAction { } @Override - protected void internalExecute(ActionExecutionContext actionExecutionContext) + protected Set<SpawnResult> internalExecute(ActionExecutionContext actionExecutionContext) throws ExecException, InterruptedException { EventHandler reporter = actionExecutionContext.getEventHandler(); checkInputsForDirectories(reporter, actionExecutionContext.getActionInputFileCache()); + Set<SpawnResult> spawnResults = ImmutableSet.of(); try { - super.internalExecute(actionExecutionContext); + spawnResults = super.internalExecute(actionExecutionContext); } catch (CommandLineExpansionException e) { throw new AssertionError("GenRuleAction command line expansion cannot fail"); } checkOutputsForDirectories(reporter); + return spawnResults; } } diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaHeaderCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaHeaderCompileAction.java index 1ede1d062d..5baec3274f 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaHeaderCompileAction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaHeaderCompileAction.java @@ -36,6 +36,7 @@ import com.google.devtools.build.lib.actions.ParameterFile.ParameterFileType; import com.google.devtools.build.lib.actions.ResourceSet; import com.google.devtools.build.lib.actions.Spawn; import com.google.devtools.build.lib.actions.SpawnActionContext; +import com.google.devtools.build.lib.actions.SpawnResult; import com.google.devtools.build.lib.actions.UserExecException; import com.google.devtools.build.lib.analysis.RuleContext; import com.google.devtools.build.lib.analysis.actions.CommandLine; @@ -54,6 +55,7 @@ import com.google.devtools.build.lib.vfs.PathFragment; import java.util.ArrayList; import java.util.Collection; import java.util.List; +import java.util.Set; import javax.annotation.Nullable; /** @@ -135,16 +137,18 @@ public class JavaHeaderCompileAction extends SpawnAction { } @Override - protected void internalExecute(ActionExecutionContext actionExecutionContext) + protected Set<SpawnResult> internalExecute(ActionExecutionContext actionExecutionContext) throws ExecException, InterruptedException { SpawnActionContext context = getContext(actionExecutionContext); try { - context.exec(getDirectSpawn(), actionExecutionContext); + return context.exec(getDirectSpawn(), actionExecutionContext); } catch (ExecException e) { // if the direct input spawn failed, try again with transitive inputs to produce better // better messages try { - context.exec(getSpawn(actionExecutionContext.getClientEnv()), actionExecutionContext); + return context.exec( + getSpawn(actionExecutionContext.getClientEnv()), + actionExecutionContext); } catch (CommandLineExpansionException commandLineExpansionException) { throw new UserExecException(commandLineExpansionException); } |