diff options
author | 2015-11-16 18:40:15 +0000 | |
---|---|---|
committer | 2015-11-17 10:51:00 +0000 | |
commit | f9b89b5e01d95062413a29b76e0f4bc553aff436 (patch) | |
tree | 973bf6d4ac37e678a4bb12451b661cc91658d66e | |
parent | 7e3f7ac372ffd704f97d53f39f8ff1c3dda6ff1a (diff) |
Narrow causes in NoSuchThingException family
Become a bit more restrictive to keep our exception cases tight.
--
MOS_MIGRATED_REVID=107953779
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; } |