On Tue, 13 Dec 2022 18:29:31 GMT, Naoto Sato <na...@openjdk.org> wrote:
>> `Console` class now has a couple of internal subclasses within `java.io` >> package. It should be `sealed` and subclasses be declared in the `permits` >> clause. The implementation resided in `Console` class is separated into >> `ConsoleImpl` class. > > Naoto Sato has updated the pull request with a new target base due to a merge > or a rebase. The incremental webrev excludes the unrelated changes brought in > by the merge/rebase. The pull request contains four additional commits since > the last revision: > > - Making fields final, other clean-ups > - Merge branch 'master' into JDK-8298416-SealedConsole > - tidying up > - sealed Console, impl/if separation src/java.base/share/classes/java/io/Console.java line 359: > 357: * @return true if the previous console echo status is on > 358: */ > 359: static native boolean echo(boolean on) throws IOException; I think echo should move to ConsoleImpl too. It might be okay to leave the native method in Console_md.c, then it would be just renaming the JNI function. src/java.base/share/classes/java/io/Console.java line 417: > 415: private static native boolean istty(); > 416: > 417: Console() {} What would you think about moving the no-arg constructor to the top of the method as it's not easy to spot. src/java.base/share/classes/java/io/ConsoleImpl.java line 39: > 37: > 38: final class ConsoleImpl extends Console > 39: { I assume the "{" can be moved to the previous line, it looks odd here. ------------- PR: https://git.openjdk.org/jdk/pull/11615