On Mon, 3 Apr 2023 18:07:52 GMT, Jorn Vernee <jver...@openjdk.org> wrote:
>> Mandy Chung has updated the pull request incrementally with one additional >> commit since the last revision: >> >> set -D<key> or -D<key>=true will enable dumping > > src/java.base/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java > line 85: > >> 83: >> 84: // Used to ensure that dumped class files for failed definitions >> have a unique class name >> 85: private static final AtomicInteger counter = new AtomicInteger(); > > This counter could be removed now, it looks like. thanks for catching it. will fix. > src/java.base/share/classes/jdk/internal/util/ClassFileDumper.java line 115: > >> 113: if (dumper.isEnabled() && !path.equals(dumper.dumpPath())) { >> 114: throw new IllegalArgumentException("mismatched dump path >> for " + key); >> 115: } > > I don't see how this exception case could ever occur, given that > `dumper.dumpPath` is directly coming from `dir`, and `validateDumpDir` > doesn't return a modified path either. > > Can this check be removed? This is to check if two callers get the `ClassFileDumper` of the same key but different path. ClassFileDumper.getInstance("jdk.foo.dump", "DUMP_DIR"); ClassFileDumper.getInstance("jdk.foo.dump", "DUMP_NEW_DIR"); <--- IAE > src/java.base/share/classes/jdk/internal/util/ClassFileDumper.java line 145: > >> 143: public Path pathname(String internalName) { >> 144: return dumpDir.resolve(encodeForFilename(internalName) + >> ".class"); >> 145: } > > Could be `private` I think It's public in case the caller who invokes `ClassDefiner::defineClass` wants to print the path to which the classfile is written. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/13182#discussion_r1156367767 PR Review Comment: https://git.openjdk.org/jdk/pull/13182#discussion_r1156366699 PR Review Comment: https://git.openjdk.org/jdk/pull/13182#discussion_r1156367573