aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Michajlo Matijkiw <michajlo@google.com>2015-11-16 18:40:15 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2015-11-17 10:51:00 +0000
commitf9b89b5e01d95062413a29b76e0f4bc553aff436 (patch)
tree973bf6d4ac37e678a4bb12451b661cc91658d66e
parent7e3f7ac372ffd704f97d53f39f8ff1c3dda6ff1a (diff)
Narrow causes in NoSuchThingException family
Become a bit more restrictive to keep our exception cases tight. -- MOS_MIGRATED_REVID=107953779
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/BuildFileContainsErrorsException.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/BuildFileNotFoundException.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/InvalidPackageNameException.java9
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/NoSuchPackageException.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/NoSuchTargetException.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/TargetMarkerFunction.java4
6 files changed, 17 insertions, 20 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/packages/BuildFileContainsErrorsException.java b/src/main/java/com/google/devtools/build/lib/packages/BuildFileContainsErrorsException.java
index 6a9486dd2c..525d6189f0 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/BuildFileContainsErrorsException.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/BuildFileContainsErrorsException.java
@@ -16,6 +16,8 @@ package com.google.devtools.build.lib.packages;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
+import java.io.IOException;
+
/**
* Exception indicating a failed attempt to access a package that could not
* be read or had syntax errors.
@@ -32,7 +34,7 @@ public class BuildFileContainsErrorsException extends NoSuchPackageException {
}
public BuildFileContainsErrorsException(PackageIdentifier packageIdentifier, String message,
- Throwable cause) {
+ IOException cause) {
super(packageIdentifier, "error loading package", message, cause);
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/packages/BuildFileNotFoundException.java b/src/main/java/com/google/devtools/build/lib/packages/BuildFileNotFoundException.java
index 4eed155111..ca4ffedbef 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/BuildFileNotFoundException.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/BuildFileNotFoundException.java
@@ -16,6 +16,8 @@ package com.google.devtools.build.lib.packages;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
+import java.io.IOException;
+
/**
* Exception indicating an attempt to access a package which is not found or
* does not exist.
@@ -27,7 +29,7 @@ public class BuildFileNotFoundException extends NoSuchPackageException {
}
public BuildFileNotFoundException(PackageIdentifier packageIdentifier, String message,
- Throwable cause) {
+ IOException cause) {
super(packageIdentifier, message, cause);
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/packages/InvalidPackageNameException.java b/src/main/java/com/google/devtools/build/lib/packages/InvalidPackageNameException.java
index 6571079a28..373eb321e8 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/InvalidPackageNameException.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/InvalidPackageNameException.java
@@ -16,17 +16,10 @@ package com.google.devtools.build.lib.packages;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
-/**
- * Exception indicating that a package name was invalid.
- */
+/** Exception indicating that a package name was invalid. */
public class InvalidPackageNameException extends NoSuchPackageException {
public InvalidPackageNameException(PackageIdentifier packageIdentifier, String message) {
super(packageIdentifier, message);
}
-
- public InvalidPackageNameException(
- PackageIdentifier packageIdentifier, String message, Throwable cause) {
- super(packageIdentifier, message, cause);
- }
}
diff --git a/src/main/java/com/google/devtools/build/lib/packages/NoSuchPackageException.java b/src/main/java/com/google/devtools/build/lib/packages/NoSuchPackageException.java
index 7b75e89420..aff72fb65a 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/NoSuchPackageException.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/NoSuchPackageException.java
@@ -22,14 +22,14 @@ import com.google.devtools.build.lib.cmdline.PackageIdentifier;
*/
public abstract class NoSuchPackageException extends NoSuchThingException {
- private final com.google.devtools.build.lib.cmdline.PackageIdentifier packageId;
+ private final PackageIdentifier packageId;
public NoSuchPackageException(PackageIdentifier packageId, String message) {
this(packageId, "no such package", message);
}
public NoSuchPackageException(PackageIdentifier packageId, String message,
- Throwable cause) {
+ Exception cause) {
this(packageId, "no such package", message, cause);
}
@@ -40,7 +40,7 @@ public abstract class NoSuchPackageException extends NoSuchThingException {
}
protected NoSuchPackageException(PackageIdentifier packageId, String messagePrefix,
- String message, Throwable cause) {
+ String message, Exception cause) {
super(messagePrefix + " '" + packageId + "': " + message, cause);
this.packageId = packageId;
}
diff --git a/src/main/java/com/google/devtools/build/lib/packages/NoSuchTargetException.java b/src/main/java/com/google/devtools/build/lib/packages/NoSuchTargetException.java
index ffd5f647e5..697bb3a187 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/NoSuchTargetException.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/NoSuchTargetException.java
@@ -15,6 +15,7 @@
package com.google.devtools.build.lib.packages;
import com.google.devtools.build.lib.cmdline.Label;
+import com.google.devtools.build.lib.cmdline.PackageIdentifier;
import java.util.Objects;
@@ -37,14 +38,15 @@ public class NoSuchTargetException extends NoSuchThingException {
this((label != null ? "no such target '" + label + "': " : "") + message, label, null, null);
}
- public NoSuchTargetException(Target targetInError, NoSuchPackageException nspe) {
+ public NoSuchTargetException(Target targetInError, PackageIdentifier packageInError) {
this(String.format("Target '%s' contains an error and its package is in error",
- targetInError.getLabel()), targetInError.getLabel(), targetInError, nspe);
+ targetInError.getLabel()), targetInError.getLabel(), targetInError, packageInError);
}
private NoSuchTargetException(String message, @Nullable Label label, @Nullable Target target,
- @Nullable NoSuchPackageException nspe) {
- super(message, nspe);
+ @Nullable PackageIdentifier packageInError) {
+ super(message,
+ packageInError == null ? null : new BuildFileContainsErrorsException(packageInError));
this.label = label;
this.hasTarget = (target != null);
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TargetMarkerFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/TargetMarkerFunction.java
index 74d78dcba8..669cfcb79a 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TargetMarkerFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TargetMarkerFunction.java
@@ -15,7 +15,6 @@ package com.google.devtools.build.lib.skyframe;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
-import com.google.devtools.build.lib.packages.BuildFileContainsErrorsException;
import com.google.devtools.build.lib.packages.BuildFileNotFoundException;
import com.google.devtools.build.lib.packages.NoSuchPackageException;
import com.google.devtools.build.lib.packages.NoSuchTargetException;
@@ -105,8 +104,7 @@ public final class TargetMarkerFunction implements SkyFunction {
// target, not the package. Note that targets are only in error when their package is
// "in error" (because a package is in error if there was an error evaluating the package, or
// if one of its targets was in error).
- throw new NoSuchTargetException(
- target, new BuildFileContainsErrorsException(label.getPackageIdentifier()));
+ throw new NoSuchTargetException(target, label.getPackageIdentifier());
}
return TargetMarkerValue.TARGET_MARKER_INSTANCE;
}