aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunction.java
diff options
context:
space:
mode:
authorGravatar John Cater <jcater@google.com>2016-10-25 16:16:35 +0000
committerGravatar John Cater <jcater@google.com>2016-10-25 20:19:29 +0000
commitb4f461ecc183d9adc9482f4cad848687ed0227ee (patch)
tree148126cf5b6f1002c1d4391fe74c13af736fd74e /src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunction.java
parent7260f0a2c69bfe0fec187099fcea2dd16c331729 (diff)
Add new skyframe function to lookup the repository given a path, and use that
to report invalid package references. Fixes #1592. -- MOS_MIGRATED_REVID=137164164
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunction.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunction.java12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunction.java
index 87ec20c159..faacb3c92d 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunction.java
@@ -110,7 +110,11 @@ public class WorkspaceFileFunction implements SkyFunction {
return null;
}
parser.execute(ast, importResult.importMap);
- } catch (PackageFunctionException | NameConflictException e) {
+ } catch (PackageFunctionException e) {
+ // TODO(jcater): Unwrap the PackageFunctionException and handle the underlying error.
+ // PFE shouldn't be exposed to callers.
+ throw new WorkspaceFileFunctionException(e, Transience.PERSISTENT);
+ } catch (NameConflictException e) {
throw new WorkspaceFileFunctionException(e, Transience.PERSISTENT);
}
@@ -129,12 +133,12 @@ public class WorkspaceFileFunction implements SkyFunction {
}
private static final class WorkspaceFileFunctionException extends SkyFunctionException {
- public WorkspaceFileFunctionException(Exception e, Transience transience) {
+ public WorkspaceFileFunctionException(PackageFunctionException e, Transience transience) {
super(e, transience);
}
- public WorkspaceFileFunctionException(Exception e) {
- super(e, Transience.PERSISTENT);
+ public WorkspaceFileFunctionException(NameConflictException e, Transience transience) {
+ super(e, transience);
}
}
}