aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules
diff options
context:
space:
mode:
authorGravatar ruperts <ruperts@google.com>2017-09-26 11:47:24 -0400
committerGravatar John Cater <jcater@google.com>2017-09-27 10:00:44 -0400
commit940ce20bb6045a8b0a09856f312991ba48ef2a7c (patch)
tree6733756468a318a05b5f4f9c17a05c9c5d85ef09 /src/main/java/com/google/devtools/build/lib/rules
parent95ce534f9f2cd1d43f8e0eb750fc61531bbb433f (diff)
Ensure that SpawnResults make their way back to the SpawnActions that caused them to be created.
RELNOTES: None. PiperOrigin-RevId: 170058295
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.java9
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaHeaderCompileAction.java10
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);
}