Filter out targets not in the universe (as defined by the lack of transitive traversal values) from queries.

--
MOS_MIGRATED_REVID=101151407
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 4e79439..17ecb74 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
@@ -366,6 +366,16 @@
     }
   }
 
+  private Set<Target> filterTargetsNotInGraph(Set<Target> targets) {
+    Map<Target, SkyKey> map = Maps.toMap(targets, TARGET_TO_SKY_KEY);
+    Set<SkyKey> present = graph.getDoneValues(map.values()).keySet();
+    if (present.size() == targets.size()) {
+      // Optimize for case of all targets being in graph.
+      return targets;
+    }
+    return Maps.filterValues(map, Predicates.in(present)).keySet();
+  }
+
   @Override
   protected Map<String, Set<Target>> preloadOrThrow(
       QueryExpression caller, Collection<String> patterns)
@@ -406,7 +416,7 @@
                 targetPatternKey.getPolicy(), pkgPath);
         TargetPattern parsedPattern = targetPatternKey.getParsedPattern();
         try {
-          result.put(pattern, parsedPattern.eval(resolver).getTargets());
+          result.put(pattern, filterTargetsNotInGraph(parsedPattern.eval(resolver).getTargets()));
         } catch (TargetParsingException e) {
           targetParsingException = e;
         } catch (InterruptedException e) {
@@ -481,13 +491,16 @@
     return result.build();
   }
 
+  private static final Function<Target, SkyKey> TARGET_TO_SKY_KEY =
+      new Function<Target, SkyKey>() {
+        @Override
+        public SkyKey apply(Target target) {
+          return TransitiveTraversalValue.key(target.getLabel());
+        }
+      };
+
   private Iterable<SkyKey> makeKeys(Iterable<Target> targets) {
-    return Iterables.transform(targets, new Function<Target, SkyKey>() {
-      @Override
-      public SkyKey apply(Target target) {
-        return TransitiveTraversalValue.key(target.getLabel());
-      }
-    });
+    return Iterables.transform(targets, TARGET_TO_SKY_KEY);
   }
 
   @Override