In prior JDK releases, `System.console()` could return a `Console` instance 
even when the JVM was not attached to an interactive terminal. This could lead 
to confusion, particularly when input was not from a keyboard or output was 
redirected, such as to or from a file or pipe, especially when using methods 
like `readPassword()`. Starting with JDK 25, the default behavior has changed: 
`System.console()` now returns `null` if standard input and/or output is 
redirected. However, if a JLine-based Console implementation is explicitly 
specified via the system property `-Djdk.console=jdk.internal.le`, the previous 
behavior may still occur.
This PR aims to align the behavior of the JLine-based `Console` implementation 
with the default `System.console()` behavior. The actual code change is a 
one-liner in `JdkConsoleProviderImpl.java`; the rest of the changes are 
adjustments to test cases to reflect the updated behavior. A corresponding CSR 
has also been drafted.

-------------

Commit messages:
 - initial commit

Changes: https://git.openjdk.org/jdk/pull/26273/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=26273&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8361613
  Stats: 565 lines in 12 files changed: 221 ins; 237 del; 107 mod
  Patch: https://git.openjdk.org/jdk/pull/26273.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/26273/head:pull/26273

PR: https://git.openjdk.org/jdk/pull/26273

Reply via email to