ADDITIONAL SYSTEM INFORMATION :
True in Java 17, Java 11, and `openjdk-19-ea+12_linux-x64_bin.tar.gz`.
A DESCRIPTION OF THE PROBLEM :
`ExecPty.getFlagsToSet` improperly assumes it is running in a locale in which common Unix commands be freely case-changed. This is not true when running in Turkish locale. In general, all uses of `String.toLowerCase()` or `String.toUpperCase()` should be treated as bugs (really these should have been deprecated years ago); pass `Locale.ROOT` normally, or rarely `Locale.getDefault()` to be explicit.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
jshell -J-Duser.language=tr
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
jshell starts, and `Locale.getDefault()` confirms that we are running in Turkish locale.
ACTUAL -
| Welcome to JShell -- Version 17.0.2
| For an introduction type: /help intro
Exception in thread "main" java.io.IOError: java.io.IOException: Error executing 'stty ıntr undef': stty: invalid argument ‘ıntr’
Try 'stty --help' for more information.
at jdk.internal.le/jdk.internal.org.jline.terminal.impl.AbstractPosixTerminal.setAttributes(AbstractPosixTerminal.java:54)
at jdk.jshell/jdk.internal.jshell.tool.ConsoleIOContext.<init>(ConsoleIOContext.java:145)
at jdk.jshell/jdk.internal.jshell.tool.JShellTool.start(JShellTool.java:982)
at jdk.jshell/jdk.internal.jshell.tool.JShellToolBuilder.start(JShellToolBuilder.java:261)
at jdk.jshell/jdk.internal.jshell.tool.JShellToolProvider.main(JShellToolProvider.java:120)
Caused by: java.io.IOException: Error executing 'stty ıntr undef': stty: invalid argument ‘ıntr’
Try 'stty --help' for more information.
at jdk.internal.le/jdk.internal.org.jline.utils.ExecHelper.exec(ExecHelper.java:49)
at jdk.internal.le/jdk.internal.org.jline.terminal.impl.ExecPty.doSetAttr(ExecPty.java:101)
at jdk.internal.le/jdk.internal.org.jline.terminal.impl.AbstractPty.setAttr(AbstractPty.java:29)
at jdk.internal.le/jdk.internal.org.jline.terminal.impl.AbstractPosixTerminal.setAttributes(AbstractPosixTerminal.java:52)
... 4 more
FREQUENCY : always
True in Java 17, Java 11, and `openjdk-19-ea+12_linux-x64_bin.tar.gz`.
A DESCRIPTION OF THE PROBLEM :
`ExecPty.getFlagsToSet` improperly assumes it is running in a locale in which common Unix commands be freely case-changed. This is not true when running in Turkish locale. In general, all uses of `String.toLowerCase()` or `String.toUpperCase()` should be treated as bugs (really these should have been deprecated years ago); pass `Locale.ROOT` normally, or rarely `Locale.getDefault()` to be explicit.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
jshell -J-Duser.language=tr
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
jshell starts, and `Locale.getDefault()` confirms that we are running in Turkish locale.
ACTUAL -
| Welcome to JShell -- Version 17.0.2
| For an introduction type: /help intro
Exception in thread "main" java.io.IOError: java.io.IOException: Error executing 'stty ıntr undef': stty: invalid argument ‘ıntr’
Try 'stty --help' for more information.
at jdk.internal.le/jdk.internal.org.jline.terminal.impl.AbstractPosixTerminal.setAttributes(AbstractPosixTerminal.java:54)
at jdk.jshell/jdk.internal.jshell.tool.ConsoleIOContext.<init>(ConsoleIOContext.java:145)
at jdk.jshell/jdk.internal.jshell.tool.JShellTool.start(JShellTool.java:982)
at jdk.jshell/jdk.internal.jshell.tool.JShellToolBuilder.start(JShellToolBuilder.java:261)
at jdk.jshell/jdk.internal.jshell.tool.JShellToolProvider.main(JShellToolProvider.java:120)
Caused by: java.io.IOException: Error executing 'stty ıntr undef': stty: invalid argument ‘ıntr’
Try 'stty --help' for more information.
at jdk.internal.le/jdk.internal.org.jline.utils.ExecHelper.exec(ExecHelper.java:49)
at jdk.internal.le/jdk.internal.org.jline.terminal.impl.ExecPty.doSetAttr(ExecPty.java:101)
at jdk.internal.le/jdk.internal.org.jline.terminal.impl.AbstractPty.setAttr(AbstractPty.java:29)
at jdk.internal.le/jdk.internal.org.jline.terminal.impl.AbstractPosixTerminal.setAttributes(AbstractPosixTerminal.java:52)
... 4 more
FREQUENCY : always