ERROR: The dependencies for the following 1 jar(s) are not complete.
      1.third_party/bazel/src/java_tools/import_deps_checker/javatests/com/google/devtools/build/importdeps/testdata/libtestdata_client.jar
The details are listed below:
Missing member 'I' in class com.google.devtools.build.importdeps.testdata.Library$Class1 : name=I, descriptor=Lcom/google/devtools/build/importdeps/testdata/Library$Class1;
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
missing_members=4
