aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCompileActionBuilder.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCompileActionBuilder.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCompileActionBuilder.java17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCompileActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCompileActionBuilder.java
index 8936c24d29..39896b6652 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCompileActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCompileActionBuilder.java
@@ -211,7 +211,7 @@ public class ProtoCompileActionBuilder {
}
}
- private SpawnAction.Builder createAction() {
+ private SpawnAction.Builder createAction() throws MissingPrerequisiteException {
SpawnAction.Builder result =
new SpawnAction.Builder().addTransitiveInputs(supportData.getTransitiveImports());
@@ -222,7 +222,7 @@ public class ProtoCompileActionBuilder {
FilesToRunProvider compilerTarget =
ruleContext.getExecutablePrerequisite(":proto_compiler", RuleConfiguredTarget.Mode.HOST);
- if (ruleContext.hasErrors()) {
+ if (compilerTarget == null) {
throw new MissingPrerequisiteException();
}
@@ -246,20 +246,21 @@ public class ProtoCompileActionBuilder {
}
@Nullable
- private FilesToRunProvider getLangPluginTarget() {
+ private FilesToRunProvider getLangPluginTarget() throws MissingPrerequisiteException {
if (langPluginName == null) {
return null;
}
FilesToRunProvider result =
ruleContext.getExecutablePrerequisite(langPluginName, RuleConfiguredTarget.Mode.HOST);
- if (ruleContext.hasErrors()) {
+ if (result == null) {
throw new MissingPrerequisiteException();
}
return result;
}
/** Commandline generator for protoc invocations. */
- private CustomCommandLine.Builder createProtoCompilerCommandLine() {
+ private CustomCommandLine.Builder createProtoCompilerCommandLine()
+ throws MissingPrerequisiteException {
CustomCommandLine.Builder result = CustomCommandLine.builder();
if (langPluginName == null) {
@@ -351,7 +352,7 @@ public class ProtoCompileActionBuilder {
}
/** Signifies that a prerequisite could not be satisfied. */
- private static class MissingPrerequisiteException extends RuntimeException {}
+ private static class MissingPrerequisiteException extends Exception {}
public static void writeDescriptorSet(
RuleContext ruleContext,
@@ -421,8 +422,8 @@ public class ProtoCompileActionBuilder {
FilesToRunProvider compilerTarget =
ruleContext.getExecutablePrerequisite(":proto_compiler", RuleConfiguredTarget.Mode.HOST);
- if (ruleContext.hasErrors()) {
- throw new MissingPrerequisiteException();
+ if (compilerTarget == null) {
+ return;
}
result