aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/LocalResourceContainer.java17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/LocalResourceContainer.java b/src/main/java/com/google/devtools/build/lib/rules/android/LocalResourceContainer.java
index dbc7c964fc..084306048d 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/LocalResourceContainer.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/LocalResourceContainer.java
@@ -286,9 +286,20 @@ public final class LocalResourceContainer {
PathFragment packageFragment =
file.getArtifactOwner().getLabel().getPackageIdentifier().getSourceRoot();
PathFragment packageRelativePath = file.getRootRelativePath().relativeTo(packageFragment);
- resourceRoots.add(
- trimTail(file.getExecPath(), makeRelativeTo(resourceDir, packageRelativePath)));
-
+ try {
+ resourceRoots.add(
+ trimTail(file.getExecPath(), makeRelativeTo(resourceDir, packageRelativePath)));
+ } catch (IllegalArgumentException e) {
+ ruleErrorConsumer.attributeError(
+ resourcesAttr,
+ String.format(
+ "'%s' (generated by '%s') is not under the directory '%s' (derived from %s).",
+ file.getRootRelativePath(),
+ file.getArtifactOwner().getLabel(),
+ packageRelativePath,
+ file.getRootRelativePath()));
+ throw new RuleErrorException();
+ }
return resourceDir;
}