More fixes for WARN_ON_TRANSITIVE.

Summary: Suggesting importing a export_dep first was broken.

Test Plan: Unit tests.
diff --git a/src/com/facebook/buck/java/DefaultJavaLibraryRule.java b/src/com/facebook/buck/java/DefaultJavaLibraryRule.java
index ab560be..da8c2ee 100644
--- a/src/com/facebook/buck/java/DefaultJavaLibraryRule.java
+++ b/src/com/facebook/buck/java/DefaultJavaLibraryRule.java
@@ -632,8 +632,9 @@
       return false;
     }
 
-    ImmutableSet<String> classPaths = getTransitiveClasspathEntries()
-        .get((JavaLibraryRule)transitiveNotDeclaredDep);
+    ImmutableSet<String> classPaths =
+        ImmutableSet.copyOf(
+            ((JavaLibraryRule) transitiveNotDeclaredDep).getOutputClasspathEntries().values());
     boolean containsMissingBuildRule = false;
     // Open the output jar for every jar contained as the output of transitiveNotDeclaredDep.  With
     // the exception of rules that export their dependencies, this will result in a single
diff --git a/src/com/facebook/buck/java/JavacInMemoryStep.java b/src/com/facebook/buck/java/JavacInMemoryStep.java
index adfe71c..d41bf32 100644
--- a/src/com/facebook/buck/java/JavacInMemoryStep.java
+++ b/src/com/facebook/buck/java/JavacInMemoryStep.java
@@ -232,19 +232,21 @@
           ImmutableSet.copyOf(transitiveClasspathEntries));
       if (transitiveResult == 0) {
         ImmutableSet<String> failedImports = findFailedImports(firstOrderStderr);
+        ImmutableList.Builder<String> errorMessage = ImmutableList.builder();
 
-        context.getStdErr().println(String.format("Rule %s builds with its transitive " +
+        errorMessage.add(String.format("Rule %s builds with its transitive " +
             "dependencies but not with its first order dependencies.", invokingRule.or("")));
-        context.getStdErr().println("The following packages were missing:");
-        context.getStdErr().println(Joiner.on(LINE_SEPARATOR).join(failedImports));
+        errorMessage.add("The following packages were missing:");
+        errorMessage.add(Joiner.on(LINE_SEPARATOR).join(failedImports));
         if (suggestBuildRules.isPresent()) {
-          context.getStdErr().println("Try adding the following deps:");
-          context.getStdErr().println(Joiner.on(LINE_SEPARATOR)
+          errorMessage.add("Try adding the following deps:");
+          errorMessage.add(Joiner.on(LINE_SEPARATOR)
               .join(suggestBuildRules.get().suggest(context.getProjectFilesystem(),
                   failedImports)));
         }
-        context.getStdErr().println();
-        context.getStdErr().println();
+        errorMessage.add("");
+        errorMessage.add("");
+        context.getStdErr().println(Joiner.on("\n").join(errorMessage.build()));
       }
       return transitiveResult;
     } else {
diff --git a/test/com/facebook/buck/java/DefaultJavaLibraryRuleIntegrationTest.java b/test/com/facebook/buck/java/DefaultJavaLibraryRuleIntegrationTest.java
index 3b4921e..e720892 100644
--- a/test/com/facebook/buck/java/DefaultJavaLibraryRuleIntegrationTest.java
+++ b/test/com/facebook/buck/java/DefaultJavaLibraryRuleIntegrationTest.java
@@ -171,7 +171,7 @@
       "Rule //:raz builds with its transitive dependencies but not with its first order " +
           "dependencies.",
       "The following packages were missing:",
-      "Foo",
+      "Meh",
       "Try adding the following deps:",
       "//:foo");
 
diff --git a/test/com/facebook/buck/java/testdata/warn_on_transitive/BUCK b/test/com/facebook/buck/java/testdata/warn_on_transitive/BUCK
index 83b07e9..1978a26 100644
--- a/test/com/facebook/buck/java/testdata/warn_on_transitive/BUCK
+++ b/test/com/facebook/buck/java/testdata/warn_on_transitive/BUCK
@@ -3,8 +3,15 @@
 # with some hard-coded Java source code into a single library.
 
 java_library(
+  name = 'meh',
+  srcs = ['Meh.java'],
+)
+
+java_library(
   name = 'foo',
   srcs = ['Foo.java'],
+  export_deps = True,
+  deps = [':meh']
 )
 
 java_library(
diff --git a/test/com/facebook/buck/java/testdata/warn_on_transitive/Foo.java b/test/com/facebook/buck/java/testdata/warn_on_transitive/Foo.java
index cbee490..6682e61 100644
--- a/test/com/facebook/buck/java/testdata/warn_on_transitive/Foo.java
+++ b/test/com/facebook/buck/java/testdata/warn_on_transitive/Foo.java
@@ -16,4 +16,6 @@
 
 package com.example;
 
-public class Foo {}
+public class Foo {
+  private Meh meh;  
+}
diff --git a/test/com/facebook/buck/java/testdata/warn_on_transitive/Meh.java b/test/com/facebook/buck/java/testdata/warn_on_transitive/Meh.java
new file mode 100644
index 0000000..a15f401
--- /dev/null
+++ b/test/com/facebook/buck/java/testdata/warn_on_transitive/Meh.java
@@ -0,0 +1,20 @@
+/*
+ * Copyright 2013-present Facebook, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may
+ * not use this file except in compliance with the License. You may obtain
+ * a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ */
+
+package com.example;
+
+public class Meh {
+}
diff --git a/test/com/facebook/buck/java/testdata/warn_on_transitive/Raz.java b/test/com/facebook/buck/java/testdata/warn_on_transitive/Raz.java
index 23e2023..95691e2 100644
--- a/test/com/facebook/buck/java/testdata/warn_on_transitive/Raz.java
+++ b/test/com/facebook/buck/java/testdata/warn_on_transitive/Raz.java
@@ -17,6 +17,6 @@
 package com.example;
 
 public class Raz {
-  private Foo foo;
   private Bar bar;
+  private Meh meh;
 }