RFR: JDK-8202105: jshell tool: on exiting, terminal echo is disabled

Xueming Shen xueming.shen at oracle.com
Wed Apr 25 15:52:44 UTC 2018

Hi Jan,

I saw System.console() returns null inside jshell ... but it seems there 
are 2 vms.
I would assume jshell  itself sets the terminal to raw and then call 
for example an alternative for this issue is to ask jshell's impl to 
call System.console()
before going into raw mode? No, I'm not saying the proposed one is not a 
good one,
just wanted to make sure I understand the situation correctly.


On 4/25/18, 4:50 AM, Jan Lahoda wrote:
> Hi,
> Under:
> https://bugs.openjdk.java.net/browse/JDK-8194750
> j.i.Console was changed to capture the state of the terminal echo at 
> creation time, and to restore it on shutdown.
> That is problematic at least in jshell, where the terminal is already 
> in the raw mode when j.i.Console is created, and so "echo disabled" is 
> recorded there. So even though jshell itself sets the terminal into 
> the original mode when it terminates, the shutdown hook in 
> j.i.Console, which is run later, sets the echo to off even if it was 
> enabled before the VM started.
> My understanding is that the shutdown hook is only needed in case the 
> VM goes down while readPassword is running. So I tried to change the 
> shutdown hook to only work while readPassword is running.
> Bug: https://bugs.openjdk.java.net/browse/JDK-8202105
> Webrev: http://cr.openjdk.java.net/~jlahoda/8202105/webrev.00/
> What do you think?
> Thanks,
>     Jan

More information about the core-libs-dev mailing list