Print the target names of the problematic classes, for better description of the dependency problems.

RELNOTES: None.
PiperOrigin-RevId: 199170334
diff --git a/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/DepsCheckerClassVisitor.java b/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/DepsCheckerClassVisitor.java
index b536a39..8fadf10 100644
--- a/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/DepsCheckerClassVisitor.java
+++ b/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/DepsCheckerClassVisitor.java
@@ -107,7 +107,7 @@
       }
       MemberInfo member = MemberInfo.create(name, desc);
       if (!classInfo.get().containsMember(member)) {
-        resultCollector.addMissingMember(owner, member);
+        resultCollector.addMissingMember(classInfo.get(), member);
       }
     } catch (RuntimeException e) {
       System.err.printf(
diff --git a/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/ImportDepsChecker.java b/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/ImportDepsChecker.java
index 7e837a8..fe1a80a 100644
--- a/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/ImportDepsChecker.java
+++ b/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/ImportDepsChecker.java
@@ -13,9 +13,9 @@
 // limitations under the License.
 package com.google.devtools.build.importdeps;
 
-
 import com.google.common.collect.HashMultimap;
 import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
 import com.google.devtools.build.importdeps.AbstractClassEntryState.IncompleteState;
 import com.google.devtools.build.importdeps.ResultCollector.MissingMember;
 import com.google.devtools.build.lib.view.proto.Deps.Dependencies;
@@ -28,9 +28,14 @@
 import java.io.UncheckedIOException;
 import java.nio.file.Path;
 import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
 import java.util.Map;
 import java.util.Objects;
+import java.util.function.Function;
+import java.util.jar.Attributes;
 import java.util.jar.JarFile;
+import java.util.jar.Manifest;
+import java.util.stream.Stream;
 import java.util.zip.ZipFile;
 import javax.annotation.Nullable;
 import org.objectweb.asm.ClassReader;
@@ -44,6 +49,8 @@
   private final ClassCache classCache;
   private final ResultCollector resultCollector;
   private final ImmutableList<Path> inputJars;
+  private final ImmutableMap<Path, String> pathToTargetMap;
+  private final Function<ClassInfo, String> classInfoLabelFunc;
 
   public ImportDepsChecker(
       ImmutableList<Path> bootclasspath,
@@ -54,6 +61,23 @@
     this.classCache = new ClassCache(bootclasspath, directClasspath, classpath, inputJars);
     this.resultCollector = new ResultCollector();
     this.inputJars = inputJars;
+    this.pathToTargetMap = buildPathToTargetMap(bootclasspath, classpath, inputJars);
+    this.classInfoLabelFunc =
+        klass -> {
+          String klassName = klass.internalName().replace('/', '.');
+          String targetName = pathToTargetMap.get(klass.jarPath());
+          if (targetName != null) {
+            int index = targetName.lastIndexOf('/');
+            if (index >= 0) {
+              // Just print the target name without the full path, as the Bazel tests have
+              // different full paths of targets.
+              targetName = targetName.substring(index + 1);
+            }
+            return klassName + " (in " + targetName + ")";
+          } else {
+            return klassName;
+          }
+        };
   }
 
   /**
@@ -171,17 +195,37 @@
 
   private void outputMissingMembers(
       StringBuilder builder, ImmutableList<MissingMember> missingMembers) {
+    LinkedHashSet<ClassInfo> classesWithMissingMembers = new LinkedHashSet<>();
     for (MissingMember missing : missingMembers) {
       builder
           .append("Missing member '")
           .append(missing.memberName())
           .append("' in class ")
-          .append(missing.owner().replace('/', '.'))
+          .append(missing.owner().internalName().replace('/', '.'))
           .append(" : name=")
           .append(missing.memberName())
           .append(", descriptor=")
           .append(missing.descriptor())
           .append('\n');
+      classesWithMissingMembers.add(missing.owner());
+    }
+    if (!classesWithMissingMembers.isEmpty()) {
+      builder.append("The class hierarchies of the classes with missing members:").append("\n");
+      classesWithMissingMembers.forEach(
+          missingClass -> printClassHierarchy(missingClass, builder, classInfoLabelFunc, "    "));
+    }
+  }
+
+  private static void printClassHierarchy(
+      ClassInfo klass,
+      StringBuilder builder,
+      Function<ClassInfo, String> labelFunction,
+      String indent) {
+    builder.append(indent).append(labelFunction.apply(klass)).append('\n');
+    String superIndent = indent + "    ";
+
+    for (ClassInfo superClass : klass.superClasses()) {
+      printClassHierarchy(superClass, builder, labelFunction, superIndent);
     }
   }
 
@@ -213,7 +257,7 @@
                       reference -> {
                         builder
                             .append(INDENT)
-                            .append(reference.internalName().replace('/', '.'))
+                            .append(classInfoLabelFunc.apply(reference))
                             .append('\n');
                       });
             });
@@ -225,9 +269,24 @@
     }
   }
 
-  private static ImmutableList<String> extractLabels(ImmutableList<Path> jars) {
+  private static ImmutableMap<Path, String> buildPathToTargetMap(ImmutableList<Path>... pathList) {
+    ImmutableMap.Builder<Path, String> labels = ImmutableMap.builder();
+    Stream.of(pathList)
+        .flatMap(ImmutableList::stream)
+        .distinct()
+        .forEach(
+            path -> {
+              String label = extractLabel(path);
+              if (label != null) {
+                labels.put(path, label);
+              }
+            });
+    return labels.build();
+  }
+
+  private ImmutableList<String> extractLabels(ImmutableList<Path> jars) {
     return jars.parallelStream()
-        .map(ImportDepsChecker::extractLabel)
+        .map(pathToTargetMap::get)
         .filter(Objects::nonNull)
         .distinct()
         .sorted()
@@ -237,7 +296,15 @@
   @Nullable
   private static String extractLabel(Path jarPath) {
     try (JarFile jar = new JarFile(jarPath.toFile())) {
-      return jar.getManifest().getMainAttributes().getValue("Target-Label");
+      Manifest manifest = jar.getManifest();
+      if (manifest == null) {
+        return null;
+      }
+      Attributes attributes = manifest.getMainAttributes();
+      if (attributes == null) {
+        return null;
+      }
+      return attributes.getValue("Target-Label");
     } catch (IOException e) {
       throw new UncheckedIOException(e);
     }
diff --git a/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/ResultCollector.java b/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/ResultCollector.java
index 7a1fe39..fdcfde3 100644
--- a/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/ResultCollector.java
+++ b/src/java_tools/import_deps_checker/java/com/google/devtools/build/importdeps/ResultCollector.java
@@ -65,7 +65,7 @@
         && indirectDeps.isEmpty();
   }
 
-  public void addMissingMember(String owner, MemberInfo member) {
+  public void addMissingMember(ClassInfo owner, MemberInfo member) {
     missingMembers.add(MissingMember.create(owner, member));
   }
 
@@ -97,15 +97,15 @@
   @AutoValue
   public abstract static class MissingMember implements Comparable<MissingMember> {
 
-    public static MissingMember create(String owner, String memberName, String descriptor) {
+    public static MissingMember create(ClassInfo owner, String memberName, String descriptor) {
       return create(owner, MemberInfo.create(memberName, descriptor));
     }
 
-    public static MissingMember create(String owner, MemberInfo member) {
+    public static MissingMember create(ClassInfo owner, MemberInfo member) {
       return new AutoValue_ResultCollector_MissingMember(owner, member);
     }
 
-    public abstract String owner();
+    public abstract ClassInfo owner();
 
     public abstract MemberInfo member();
 
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/DepsCheckerClassVisitorTest.java b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/DepsCheckerClassVisitorTest.java
index fcffb98..196a072 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/DepsCheckerClassVisitorTest.java
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/DepsCheckerClassVisitorTest.java
@@ -78,21 +78,26 @@
             libraryExceptionJar,
             clientJar);
     assertThat(collector.getSortedMissingClassInternalNames()).isEmpty();
-    assertThat(collector.getSortedMissingMembers())
+    assertThat(
+            collector
+                .getSortedMissingMembers()
+                .stream()
+                .map(DepsCheckerClassVisitorTest::constructFullQualifiedMemberName)
+                .collect(ImmutableList.toImmutableList()))
         .containsExactly(
-            MissingMember.create(
+            constructFullyQualifiedMemberName(
                 "com/google/devtools/build/importdeps/testdata/Library$Class1",
                 "I",
                 "Lcom/google/devtools/build/importdeps/testdata/Library$Class1;"),
-            MissingMember.create(
+            constructFullyQualifiedMemberName(
                 "com/google/devtools/build/importdeps/testdata/Library$Class3",
                 "field",
                 "Lcom/google/devtools/build/importdeps/testdata/Library$Class4;"),
-            MissingMember.create(
+            constructFullyQualifiedMemberName(
                 "com/google/devtools/build/importdeps/testdata/Library$Class4",
                 "createClass5",
                 "()Lcom/google/devtools/build/importdeps/testdata/Library$Class5;"),
-            MissingMember.create(
+            constructFullyQualifiedMemberName(
                 "com/google/devtools/build/importdeps/testdata/Library$Class5",
                 "create",
                 "(Lcom/google/devtools/build/importdeps/testdata/Library$Class7;)"
@@ -100,6 +105,16 @@
         .inOrder();
   }
 
+  private static String constructFullQualifiedMemberName(MissingMember member) {
+    return constructFullyQualifiedMemberName(
+        member.owner().internalName(), member.memberName(), member.descriptor());
+  }
+
+  private static String constructFullyQualifiedMemberName(
+      String owner, String memberName, String descriptor) {
+    return owner + memberName + descriptor;
+  }
+
   private ImmutableList<String> getMissingClassesInClient(Path... classpath) throws IOException {
     ResultCollector resultCollector = getResultCollector(classpath);
     return resultCollector.getSortedMissingClassInternalNames();
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/ResultCollectorTest.java b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/ResultCollectorTest.java
index 6256c77..2d9d389 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/ResultCollectorTest.java
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/ResultCollectorTest.java
@@ -63,9 +63,9 @@
     assertThat(collector.getSortedMissingClassInternalNames()).containsExactly("java.lang.String");
     assertThat(collector.getSortedMissingMembers()).isEmpty();
 
-    collector.addMissingMember("java/lang/Object", MemberInfo.create("field", "I"));
+    collector.addMissingMember(objectClass, MemberInfo.create("field", "I"));
     assertThat(collector.getSortedMissingMembers())
-        .containsExactly(MissingMember.create("java/lang/Object", "field", "I"));
+        .containsExactly(MissingMember.create(objectClass, "field", "I"));
     assertThat(collector.getSortedMissingClassInternalNames()).containsExactly("java.lang.String");
     assertThat(collector.isEmpty()).isFalse();
   }
@@ -115,27 +115,40 @@
     String owner = "owner";
     String name = "name";
     String desc = "desc";
-    MissingMember member = MissingMember.create(owner, name, desc);
-    assertThat(member.owner()).isEqualTo(owner);
+    MissingMember member =
+        MissingMember.create(
+            ClassInfo.create(owner, Paths.get("."), false, ImmutableList.of(), ImmutableSet.of()),
+            name,
+            desc);
+    assertThat(member.owner())
+        .isEqualTo(
+            ClassInfo.create(owner, Paths.get("."), false, ImmutableList.of(), ImmutableSet.of()));
     assertThat(member.memberName()).isEqualTo(name);
     assertThat(member.descriptor()).isEqualTo(desc);
     assertThat(member.member()).isEqualTo(MemberInfo.create(name, desc));
 
-    MissingMember member2 = MissingMember.create(owner, MemberInfo.create(name, desc));
+    MissingMember member2 =
+        MissingMember.create(
+            ClassInfo.create(owner, Paths.get("."), false, ImmutableList.of(), ImmutableSet.of()),
+            MemberInfo.create(name, desc));
     assertThat(member2).isEqualTo(member);
   }
 
   @Test
   public void testMemberComparison() {
-    MissingMember member1 = MissingMember.create("A", MemberInfo.create("B", "C"));
-    MissingMember member2 = MissingMember.create("A", MemberInfo.create("B", "C"));
+    ClassInfo classA =
+        ClassInfo.create("A", Paths.get(""), false, ImmutableList.of(), ImmutableSet.of());
+    MissingMember member1 = MissingMember.create(classA, MemberInfo.create("B", "C"));
+    MissingMember member2 = MissingMember.create(classA, MemberInfo.create("B", "C"));
     assertThat(member1.compareTo(member2)).isEqualTo(0);
 
-    MissingMember member3 = MissingMember.create("B", MemberInfo.create("B", "C"));
+    ClassInfo classB =
+        ClassInfo.create("B", Paths.get(""), false, ImmutableList.of(), ImmutableSet.of());
+    MissingMember member3 = MissingMember.create(classB, MemberInfo.create("B", "C"));
     assertThat(member1.compareTo(member3)).isEqualTo(-1);
     assertThat(member3.compareTo(member1)).isEqualTo(1);
 
-    MissingMember member4 = MissingMember.create("A", MemberInfo.create("C", "C"));
+    MissingMember member4 = MissingMember.create(classA, MemberInfo.create("C", "C"));
     assertThat(member1.compareTo(member4)).isEqualTo(-1);
 
     assertThat(member3.compareTo(member4)).isEqualTo(1);
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.stderr.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.stderr.txt
index e7470b5..1666883 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.stderr.txt
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.stderr.txt
@@ -22,47 +22,49 @@
 Missing java.lang.invoke.MethodType
 Missing java.util.Objects
 Indirectly missing class java.lang.Enum. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Client$EnumTest
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationFlag
+    com.google.devtools.build.importdeps.testdata.Client$EnumTest (in testdata:testdata_client)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationFlag (in testdata:testdata_lib_LibraryAnnotations)
 Indirectly missing class java.lang.Exception. Referenced by:
-    com.google.devtools.build.importdeps.testdata.LibraryException
+    com.google.devtools.build.importdeps.testdata.LibraryException (in testdata:testdata_lib_LibraryException)
 Indirectly missing class java.lang.Object. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Client$InnerClassWithSyntheticConstructorParam
-    com.google.devtools.build.importdeps.testdata.Library
-    com.google.devtools.build.importdeps.testdata.Library$Class1
-    com.google.devtools.build.importdeps.testdata.Library$Class11
-    com.google.devtools.build.importdeps.testdata.Library$Class2
-    com.google.devtools.build.importdeps.testdata.Library$Class3
-    com.google.devtools.build.importdeps.testdata.Library$Class4
-    com.google.devtools.build.importdeps.testdata.Library$Class5
-    com.google.devtools.build.importdeps.testdata.Library$Class6
-    com.google.devtools.build.importdeps.testdata.Library$Class7
-    com.google.devtools.build.importdeps.testdata.Library$Class8
-    com.google.devtools.build.importdeps.testdata.Library$Class9
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryInterface
-    com.google.devtools.build.importdeps.testdata.LibraryInterface$Func
-    com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceBar
-    com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceFoo
-    com.google.devtools.build.importdeps.testdata.LibraryInterface$One
-    com.google.devtools.build.importdeps.testdata.LibraryInterface$Two
+    com.google.devtools.build.importdeps.testdata.Client$InnerClassWithSyntheticConstructorParam (in testdata:testdata_client)
+    com.google.devtools.build.importdeps.testdata.Library (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class1 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class11 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class2 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class3 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class4 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class5 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class6 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class7 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class8 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class9 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface (in testdata:testdata_lib_LibraryInterface)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface$Func (in testdata:testdata_lib_LibraryInterface)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceBar (in testdata:testdata_lib_LibraryInterface)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceFoo (in testdata:testdata_lib_LibraryInterface)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface$One (in testdata:testdata_lib_LibraryInterface)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface$Two (in testdata:testdata_lib_LibraryInterface)
 Indirectly missing class java.lang.annotation.Annotation. Referenced by:
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation (in testdata:testdata_lib_LibraryAnnotations)
 Missing member 'name' in class com.google.devtools.build.importdeps.testdata.Client$EnumTest : name=name, descriptor=()Ljava/lang/String;
 Missing member 'ordinal' in class com.google.devtools.build.importdeps.testdata.Client$EnumTest : name=ordinal, descriptor=()I
+The class hierarchies of the classes with missing members:
+    com.google.devtools.build.importdeps.testdata.Client$EnumTest (in testdata:testdata_client)
 ===Total===
 missing=20
 incomplete=29
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.stderr.warning.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.stderr.warning.txt
index a5a3f24..dd37a27 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.stderr.warning.txt
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.stderr.warning.txt
@@ -22,47 +22,49 @@
 Missing java.lang.invoke.MethodType
 Missing java.util.Objects
 Indirectly missing class java.lang.Enum. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Client$EnumTest
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationFlag
+    com.google.devtools.build.importdeps.testdata.Client$EnumTest (in testdata:testdata_client)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationFlag (in testdata:testdata_lib_LibraryAnnotations)
 Indirectly missing class java.lang.Exception. Referenced by:
-    com.google.devtools.build.importdeps.testdata.LibraryException
+    com.google.devtools.build.importdeps.testdata.LibraryException (in testdata:testdata_lib_LibraryException)
 Indirectly missing class java.lang.Object. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Client$InnerClassWithSyntheticConstructorParam
-    com.google.devtools.build.importdeps.testdata.Library
-    com.google.devtools.build.importdeps.testdata.Library$Class1
-    com.google.devtools.build.importdeps.testdata.Library$Class11
-    com.google.devtools.build.importdeps.testdata.Library$Class2
-    com.google.devtools.build.importdeps.testdata.Library$Class3
-    com.google.devtools.build.importdeps.testdata.Library$Class4
-    com.google.devtools.build.importdeps.testdata.Library$Class5
-    com.google.devtools.build.importdeps.testdata.Library$Class6
-    com.google.devtools.build.importdeps.testdata.Library$Class7
-    com.google.devtools.build.importdeps.testdata.Library$Class8
-    com.google.devtools.build.importdeps.testdata.Library$Class9
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryInterface
-    com.google.devtools.build.importdeps.testdata.LibraryInterface$Func
-    com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceBar
-    com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceFoo
-    com.google.devtools.build.importdeps.testdata.LibraryInterface$One
-    com.google.devtools.build.importdeps.testdata.LibraryInterface$Two
+    com.google.devtools.build.importdeps.testdata.Client$InnerClassWithSyntheticConstructorParam (in testdata:testdata_client)
+    com.google.devtools.build.importdeps.testdata.Library (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class1 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class11 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class2 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class3 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class4 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class5 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class6 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class7 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class8 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class9 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface (in testdata:testdata_lib_LibraryInterface)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface$Func (in testdata:testdata_lib_LibraryInterface)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceBar (in testdata:testdata_lib_LibraryInterface)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceFoo (in testdata:testdata_lib_LibraryInterface)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface$One (in testdata:testdata_lib_LibraryInterface)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface$Two (in testdata:testdata_lib_LibraryInterface)
 Indirectly missing class java.lang.annotation.Annotation. Referenced by:
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation (in testdata:testdata_lib_LibraryAnnotations)
 Missing member 'name' in class com.google.devtools.build.importdeps.testdata.Client$EnumTest : name=name, descriptor=()Ljava/lang/String;
 Missing member 'ordinal' in class com.google.devtools.build.importdeps.testdata.Client$EnumTest : name=ordinal, descriptor=()I
+The class hierarchies of the classes with missing members:
+    com.google.devtools.build.importdeps.testdata.Client$EnumTest (in testdata:testdata_client)
 ===Total===
 missing=20
 incomplete=29
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.txt
index 27d55cc..097719a 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.txt
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_bootclasspath_missing.txt
@@ -19,47 +19,49 @@
 Missing java.lang.invoke.MethodType
 Missing java.util.Objects
 Indirectly missing class java.lang.Enum. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Client$EnumTest
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationFlag
+    com.google.devtools.build.importdeps.testdata.Client$EnumTest (in testdata:testdata_client)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationFlag (in testdata:testdata_lib_LibraryAnnotations)
 Indirectly missing class java.lang.Exception. Referenced by:
-    com.google.devtools.build.importdeps.testdata.LibraryException
+    com.google.devtools.build.importdeps.testdata.LibraryException (in testdata:testdata_lib_LibraryException)
 Indirectly missing class java.lang.Object. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Client$InnerClassWithSyntheticConstructorParam
-    com.google.devtools.build.importdeps.testdata.Library
-    com.google.devtools.build.importdeps.testdata.Library$Class1
-    com.google.devtools.build.importdeps.testdata.Library$Class11
-    com.google.devtools.build.importdeps.testdata.Library$Class2
-    com.google.devtools.build.importdeps.testdata.Library$Class3
-    com.google.devtools.build.importdeps.testdata.Library$Class4
-    com.google.devtools.build.importdeps.testdata.Library$Class5
-    com.google.devtools.build.importdeps.testdata.Library$Class6
-    com.google.devtools.build.importdeps.testdata.Library$Class7
-    com.google.devtools.build.importdeps.testdata.Library$Class8
-    com.google.devtools.build.importdeps.testdata.Library$Class9
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryInterface
-    com.google.devtools.build.importdeps.testdata.LibraryInterface$Func
-    com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceBar
-    com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceFoo
-    com.google.devtools.build.importdeps.testdata.LibraryInterface$One
-    com.google.devtools.build.importdeps.testdata.LibraryInterface$Two
+    com.google.devtools.build.importdeps.testdata.Client$InnerClassWithSyntheticConstructorParam (in testdata:testdata_client)
+    com.google.devtools.build.importdeps.testdata.Library (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class1 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class11 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class2 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class3 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class4 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class5 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class6 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class7 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class8 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.Library$Class9 (in testdata:testdata_lib_Library)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface (in testdata:testdata_lib_LibraryInterface)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface$Func (in testdata:testdata_lib_LibraryInterface)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceBar (in testdata:testdata_lib_LibraryInterface)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceFoo (in testdata:testdata_lib_LibraryInterface)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface$One (in testdata:testdata_lib_LibraryInterface)
+    com.google.devtools.build.importdeps.testdata.LibraryInterface$Two (in testdata:testdata_lib_LibraryInterface)
 Indirectly missing class java.lang.annotation.Annotation. Referenced by:
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation
-    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$AnnotationAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ClassAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ConstructorAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$FieldAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$MethodAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$ParameterAnnotation (in testdata:testdata_lib_LibraryAnnotations)
+    com.google.devtools.build.importdeps.testdata.LibraryAnnotations$TypeAnnotation (in testdata:testdata_lib_LibraryAnnotations)
 Missing member 'name' in class com.google.devtools.build.importdeps.testdata.Client$EnumTest : name=name, descriptor=()Ljava/lang/String;
 Missing member 'ordinal' in class com.google.devtools.build.importdeps.testdata.Client$EnumTest : name=ordinal, descriptor=()I
+The class hierarchies of the classes with missing members:
+    com.google.devtools.build.importdeps.testdata.Client$EnumTest (in testdata:testdata_client)
 ===Total===
 missing=20
 incomplete=29
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_interface_missing.stderr.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_interface_missing.stderr.txt
index 3983296..a8848a8 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_interface_missing.stderr.txt
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_interface_missing.stderr.txt
@@ -8,17 +8,20 @@
 Missing com.google.devtools.build.importdeps.testdata.LibraryInterface$One
 Missing com.google.devtools.build.importdeps.testdata.LibraryInterface$Two
 Indirectly missing class com.google.devtools.build.importdeps.testdata.LibraryInterface. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Client
+    com.google.devtools.build.importdeps.testdata.Client (in testdata:testdata_client)
 Indirectly missing class com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceBar. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Library$Class11
+    com.google.devtools.build.importdeps.testdata.Library$Class11 (in testdata:testdata_lib_Library)
 Indirectly missing class com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceFoo. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Library$Class11
+    com.google.devtools.build.importdeps.testdata.Library$Class11 (in testdata:testdata_lib_Library)
 Indirectly missing class com.google.devtools.build.importdeps.testdata.LibraryInterface$One. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Client
+    com.google.devtools.build.importdeps.testdata.Client (in testdata:testdata_client)
 Indirectly missing class com.google.devtools.build.importdeps.testdata.LibraryInterface$Two. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Client
+    com.google.devtools.build.importdeps.testdata.Client (in testdata:testdata_client)
 Missing member 'bar' in class com.google.devtools.build.importdeps.testdata.Library$Class11 : name=bar, descriptor=()V
 Missing member 'foo' in class com.google.devtools.build.importdeps.testdata.Library$Class11 : name=foo, descriptor=()V
+The class hierarchies of the classes with missing members:
+    com.google.devtools.build.importdeps.testdata.Library$Class11 (in testdata:testdata_lib_Library)
+        java.lang.Object
 ===Total===
 missing=6
 incomplete=2
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_interface_missing.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_interface_missing.txt
index e8a282b..b5b2f0b 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_interface_missing.txt
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_interface_missing.txt
@@ -5,17 +5,20 @@
 Missing com.google.devtools.build.importdeps.testdata.LibraryInterface$One
 Missing com.google.devtools.build.importdeps.testdata.LibraryInterface$Two
 Indirectly missing class com.google.devtools.build.importdeps.testdata.LibraryInterface. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Client
+    com.google.devtools.build.importdeps.testdata.Client (in testdata:testdata_client)
 Indirectly missing class com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceBar. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Library$Class11
+    com.google.devtools.build.importdeps.testdata.Library$Class11 (in testdata:testdata_lib_Library)
 Indirectly missing class com.google.devtools.build.importdeps.testdata.LibraryInterface$InterfaceFoo. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Library$Class11
+    com.google.devtools.build.importdeps.testdata.Library$Class11 (in testdata:testdata_lib_Library)
 Indirectly missing class com.google.devtools.build.importdeps.testdata.LibraryInterface$One. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Client
+    com.google.devtools.build.importdeps.testdata.Client (in testdata:testdata_client)
 Indirectly missing class com.google.devtools.build.importdeps.testdata.LibraryInterface$Two. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Client
+    com.google.devtools.build.importdeps.testdata.Client (in testdata:testdata_client)
 Missing member 'bar' in class com.google.devtools.build.importdeps.testdata.Library$Class11 : name=bar, descriptor=()V
 Missing member 'foo' in class com.google.devtools.build.importdeps.testdata.Library$Class11 : name=foo, descriptor=()V
+The class hierarchies of the classes with missing members:
+    com.google.devtools.build.importdeps.testdata.Library$Class11 (in testdata:testdata_lib_Library)
+        java.lang.Object
 ===Total===
 missing=6
 incomplete=2
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_members_missing.stderr.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_members_missing.stderr.txt
index 8f3f402..68240d9 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_members_missing.stderr.txt
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_members_missing.stderr.txt
@@ -5,6 +5,15 @@
 Missing member 'field' in class com.google.devtools.build.importdeps.testdata.Library$Class3 : name=field, descriptor=Lcom/google/devtools/build/importdeps/testdata/Library$Class4;
 Missing member 'createClass5' in class com.google.devtools.build.importdeps.testdata.Library$Class4 : name=createClass5, descriptor=()Lcom/google/devtools/build/importdeps/testdata/Library$Class5;
 Missing member 'create' in class com.google.devtools.build.importdeps.testdata.Library$Class5 : name=create, descriptor=(Lcom/google/devtools/build/importdeps/testdata/Library$Class7;)Lcom/google/devtools/build/importdeps/testdata/Library$Class6;
+The class hierarchies of the classes with missing members:
+    com.google.devtools.build.importdeps.testdata.Library$Class1 (in testdata:testdata_lib_Library_no_members)
+        java.lang.Object
+    com.google.devtools.build.importdeps.testdata.Library$Class3 (in testdata:testdata_lib_Library_no_members)
+        java.lang.Object
+    com.google.devtools.build.importdeps.testdata.Library$Class4 (in testdata:testdata_lib_Library_no_members)
+        java.lang.Object
+    com.google.devtools.build.importdeps.testdata.Library$Class5 (in testdata:testdata_lib_Library_no_members)
+        java.lang.Object
 ===Total===
 missing=0
 incomplete=0
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_members_missing.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_members_missing.txt
index 714276c..ba615c2 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_members_missing.txt
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_members_missing.txt
@@ -2,6 +2,15 @@
 Missing member 'field' in class com.google.devtools.build.importdeps.testdata.Library$Class3 : name=field, descriptor=Lcom/google/devtools/build/importdeps/testdata/Library$Class4;
 Missing member 'createClass5' in class com.google.devtools.build.importdeps.testdata.Library$Class4 : name=createClass5, descriptor=()Lcom/google/devtools/build/importdeps/testdata/Library$Class5;
 Missing member 'create' in class com.google.devtools.build.importdeps.testdata.Library$Class5 : name=create, descriptor=(Lcom/google/devtools/build/importdeps/testdata/Library$Class7;)Lcom/google/devtools/build/importdeps/testdata/Library$Class6;
+The class hierarchies of the classes with missing members:
+    com.google.devtools.build.importdeps.testdata.Library$Class1 (in testdata:testdata_lib_Library_no_members)
+        java.lang.Object
+    com.google.devtools.build.importdeps.testdata.Library$Class3 (in testdata:testdata_lib_Library_no_members)
+        java.lang.Object
+    com.google.devtools.build.importdeps.testdata.Library$Class4 (in testdata:testdata_lib_Library_no_members)
+        java.lang.Object
+    com.google.devtools.build.importdeps.testdata.Library$Class5 (in testdata:testdata_lib_Library_no_members)
+        java.lang.Object
 ===Total===
 missing=0
 incomplete=0
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_missing.stderr.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_missing.stderr.txt
index 0db51a9..f87247e 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_missing.stderr.txt
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_missing.stderr.txt
@@ -14,7 +14,7 @@
 Missing com.google.devtools.build.importdeps.testdata.Library$Class8
 Missing com.google.devtools.build.importdeps.testdata.Library$Class9
 Indirectly missing class com.google.devtools.build.importdeps.testdata.Library. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Client
+    com.google.devtools.build.importdeps.testdata.Client (in testdata:testdata_client)
 ===Total===
 missing=12
 incomplete=1
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_missing.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_missing.txt
index fa5e95c..1e86f78 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_missing.txt
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_library_missing.txt
@@ -11,7 +11,7 @@
 Missing com.google.devtools.build.importdeps.testdata.Library$Class8
 Missing com.google.devtools.build.importdeps.testdata.Library$Class9
 Indirectly missing class com.google.devtools.build.importdeps.testdata.Library. Referenced by:
-    com.google.devtools.build.importdeps.testdata.Client
+    com.google.devtools.build.importdeps.testdata.Client (in testdata:testdata_client)
 ===Total===
 missing=12
 incomplete=1
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_string_annotation_value_test.stderr.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_string_annotation_value_test.stderr.txt
index fb49176..6e3d300 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_string_annotation_value_test.stderr.txt
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_string_annotation_value_test.stderr.txt
@@ -4,9 +4,9 @@
 Missing java.lang.Object
 Missing java.lang.annotation.Annotation
 Indirectly missing class java.lang.Object. Referenced by:
-    com.google.devtools.build.importdeps.testdata.StringAnnotation
+    com.google.devtools.build.importdeps.testdata.StringAnnotation (in testdata:StringAnnotation)
 Indirectly missing class java.lang.annotation.Annotation. Referenced by:
-    com.google.devtools.build.importdeps.testdata.StringAnnotation
+    com.google.devtools.build.importdeps.testdata.StringAnnotation (in testdata:StringAnnotation)
 ===Total===
 missing=2
 incomplete=1
diff --git a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_string_annotation_value_test.txt b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_string_annotation_value_test.txt
index 4699e35..a9888ef 100644
--- a/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_string_annotation_value_test.txt
+++ b/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/golden_string_annotation_value_test.txt
@@ -1,9 +1,9 @@
 Missing java.lang.Object
 Missing java.lang.annotation.Annotation
 Indirectly missing class java.lang.Object. Referenced by:
-    com.google.devtools.build.importdeps.testdata.StringAnnotation
+    com.google.devtools.build.importdeps.testdata.StringAnnotation (in testdata:StringAnnotation)
 Indirectly missing class java.lang.annotation.Annotation. Referenced by:
-    com.google.devtools.build.importdeps.testdata.StringAnnotation
+    com.google.devtools.build.importdeps.testdata.StringAnnotation (in testdata:StringAnnotation)
 ===Total===
 missing=2
 incomplete=1