diff options
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/android/LocalResourceContainer.java | 17 |
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; } |