From 7d58bdcf651bbb3f2a879a547d872a03df5ad306 Mon Sep 17 00:00:00 2001 From: hlopko Date: Fri, 7 Jul 2017 09:39:11 -0400 Subject: Do not NPE crash when C++ actions are not configured in crosstool Show meaningful message instead. RELNOTES: None. PiperOrigin-RevId: 161196096 --- .../devtools/build/lib/analysis/actions/ActionTemplate.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/main/java/com/google/devtools/build/lib/analysis/actions') 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; * */ public interface ActionTemplate 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 extends ActionAnalysisMetadata * {@link TreeFileArtifact} */ Iterable generateActionForInputArtifacts( - Iterable inputTreeFileArtifacts, ArtifactOwner artifactOwner); + Iterable inputTreeFileArtifacts, ArtifactOwner artifactOwner) + throws ActionTemplateExpansionException; /** Returns the input TreeArtifact. */ Artifact getInputTreeArtifact(); -- cgit v1.2.3