diff --git a/src/main/java/com/google/devtools/build/lib/query2/SkyQueryEnvironment.java b/src/main/java/com/google/devtools/build/lib/query2/SkyQueryEnvironment.java
index 08c44e9..73e36c0 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/SkyQueryEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/SkyQueryEnvironment.java
@@ -828,24 +828,24 @@
   private Package getPackage(PackageIdentifier packageIdentifier)
       throws InterruptedException, QueryException, NoSuchPackageException {
     SkyKey packageKey = PackageValue.key(packageIdentifier);
-      PackageValue packageValue = (PackageValue) graph.getValue(packageKey);
-      if (packageValue != null) {
-        Package pkg = packageValue.getPackage();
-        if (pkg.containsErrors()) {
+    PackageValue packageValue = (PackageValue) graph.getValue(packageKey);
+    if (packageValue != null) {
+      Package pkg = packageValue.getPackage();
+      if (pkg.containsErrors()) {
         throw new BuildFileContainsErrorsException(packageIdentifier);
-        }
-      return pkg;
-      } else {
-      NoSuchPackageException exception = (NoSuchPackageException) graph.getException(packageKey);
-        if (exception != null) {
-          throw exception;
-        }
-        if (graph.isCycle(packageKey)) {
-        throw new NoSuchPackageException(packageIdentifier, "Package depends on a cycle");
-        } else {
-          throw new QueryException(packageKey + " does not exist in graph");
-        }
       }
+      return pkg;
+    } else {
+      NoSuchPackageException exception = (NoSuchPackageException) graph.getException(packageKey);
+      if (exception != null) {
+        throw exception;
+      }
+      if (graph.isCycle(packageKey)) {
+        throw new NoSuchPackageException(packageIdentifier, "Package depends on a cycle");
+      } else {
+        throw new QueryException(packageKey + " does not exist in graph");
+      }
+    }
   }
 
   @ThreadSafe
