--- old/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/ClassFileReader.java 2016-10-04 15:50:28.000000000 -0700 +++ new/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/ClassFileReader.java 2016-10-04 15:50:28.000000000 -0700 @@ -438,7 +438,10 @@ cf = reader.readClassFile(jf, nextEntry); return true; } catch (ClassFileError | IOException ex) { - skippedEntries.add(nextEntry.getName()); + skippedEntries.add(String.format("%s: %s (%s)", + ex.getMessage(), + nextEntry.getName(), + jf.getName())); } nextEntry = nextEntry(); } --- old/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/JdepsTask.java 2016-10-04 15:50:29.000000000 -0700 +++ new/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/JdepsTask.java 2016-10-04 15:50:29.000000000 -0700 @@ -604,11 +604,12 @@ boolean ok = analyzer.run(options.compileTimeView, options.depth); // print skipped entries, if any - analyzer.archives() - .forEach(archive -> archive.reader() - .skippedEntries().stream() - .forEach(name -> warning("warn.skipped.entry", - name, archive.getPathName()))); + if (!options.nowarning) { + analyzer.archives() + .forEach(archive -> archive.reader() + .skippedEntries().stream() + .forEach(name -> warning("warn.skipped.entry", name))); + } if (options.findJDKInternals && !options.nowarning) { Map jdkInternals = new TreeMap<>(); --- old/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/resources/jdeps.properties 2016-10-04 15:50:29.000000000 -0700 +++ new/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/resources/jdeps.properties 2016-10-04 15:50:29.000000000 -0700 @@ -181,6 +181,7 @@ err.multirelease.jar.malformed=malformed multi-release jar, {0}, bad entry: {1} warn.invalid.arg=Path does not exist: {0} warn.split.package=package {0} defined in {1} {2} +warn.skipped.entry={0} warn.replace.useJDKInternals=\ JDK internal APIs are unsupported and private to JDK implementation that are\n\ subject to be removed or changed incompatibly and could break your application.\n\