aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/actions
diff options
context:
space:
mode:
authorGravatar hlopko <hlopko@google.com>2017-07-07 09:39:11 -0400
committerGravatar John Cater <jcater@google.com>2017-07-07 13:37:35 -0400
commit7d58bdcf651bbb3f2a879a547d872a03df5ad306 (patch)
treed6bc0321d4f010cbb0fac00e3d7019e48b2fb41b /src/main/java/com/google/devtools/build/lib/analysis/actions
parent2936047ae407fdba9ac432694ae8b72ebee4f488 (diff)
Do not NPE crash when C++ actions are not configured in crosstool
Show meaningful message instead. RELNOTES: None. PiperOrigin-RevId: 161196096
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/actions')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/actions/ActionTemplate.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/ActionTemplate.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/ActionTemplate.java
index afad7b736d..c48378fd23 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/ActionTemplate.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/ActionTemplate.java
@@ -53,6 +53,15 @@ import com.google.devtools.build.lib.actions.ArtifactOwner;
* </ol>
*/
public interface ActionTemplate<T extends Action> extends ActionAnalysisMetadata {
+
+ /** An exception signalling that the template expansion failed during execution phase */
+ class ActionTemplateExpansionException extends Exception {
+
+ public ActionTemplateExpansionException(String cause) {
+ super(cause);
+ }
+ }
+
/**
* Given a list of input TreeFileArtifacts resolved at execution time, returns a list of expanded
* SpawnActions to be executed.
@@ -65,7 +74,8 @@ public interface ActionTemplate<T extends Action> extends ActionAnalysisMetadata
* {@link TreeFileArtifact}
*/
Iterable<T> generateActionForInputArtifacts(
- Iterable<TreeFileArtifact> inputTreeFileArtifacts, ArtifactOwner artifactOwner);
+ Iterable<TreeFileArtifact> inputTreeFileArtifacts, ArtifactOwner artifactOwner)
+ throws ActionTemplateExpansionException;
/** Returns the input TreeArtifact. */
Artifact getInputTreeArtifact();