RFR: 8261920: [AIX] jshell command throws java.io.IOError on non English locales

Thomas Stuefe stuefe at openjdk.java.net
Wed Feb 24 06:21:40 UTC 2021


On Mon, 22 Feb 2021 11:06:10 GMT, Ichiroh Takiguchi <itakiguchi at openjdk.org> wrote:

>> This seems reasonable. Which tests did you run?
>
> No testcase is available for this issue, because it's related Locale setting and translated message on AIX platform.
> I just execute jshell command on X11's dtterm and aixterm with Ja_JP locale.
> (\uXXXX is actually, Japanese character)
> $ ./jshell
> | JShell\u3078\u3088\u3046\u3053\u305d -- \u30d0\u30fc\u30b8\u30e7\u30f315.0.2
> | \u6982\u8981\u306b\u3064\u3044\u3066\u306f\u3001\u6b21\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044: /help intro
> Exception in thread "main" java.io.IOError: java.io.IOException: Unable to parse columns
>         at jdk.internal.le/jdk.internal.org.jline.terminal.impl.AbstractPosixTerminal.getSize(AbstractPosixTerminal.java:62)
>         at jdk.internal.le/jdk.internal.org.jline.terminal.Terminal.getBufferSize(Terminal.java:216)
>         at jdk.internal.le/jdk.internal.org.jline.reader.impl.LineReaderImpl.doDisplay(LineReaderImpl.java:741)
>         at jdk.internal.le/jdk.internal.org.jline.reader.impl.LineReaderImpl.<init>(LineReaderImpl.java:298)
>         at jdk.jshell/jdk.internal.jshell.tool.ConsoleIOContext$2.<init>(ConsoleIOContext.java:133)
>         at jdk.jshell/jdk.internal.jshell.tool.ConsoleIOContext.<init>(ConsoleIOContext.java:133)
>         at jdk.jshell/jdk.internal.jshell.tool.JShellTool.start(JShellTool.java:978)
>         at jdk.jshell/jdk.internal.jshell.tool.JShellToolBuilder.start(JShellToolBuilder.java:254)
>         at jdk.jshell/jdk.internal.jshell.tool.JShellToolProvider.main(JShellToolProvider.java:120)
> Caused by: java.io.IOException: Unable to parse columns
>         at jdk.internal.le/jdk.internal.org.jline.terminal.impl.ExecPty.doGetInt(ExecPty.java:278)
>         at jdk.internal.le/jdk.internal.org.jline.terminal.impl.ExecPty.doGetSize(ExecPty.java:263)
>         at jdk.internal.le/jdk.internal.org.jline.terminal.impl.ExecPty.getSize(ExecPty.java:170)
>         at jdk.internal.le/jdk.internal.org.jline.terminal.impl.AbstractPosixTerminal.getSize(AbstractPosixTerminal.java:60)
>         ... 8 more
> $

Im sorry, what I meant is how you make sure no regressions are happening. From what I can see you modify a general purpose function which executes Unix commands to always run with C Locale on AIX. Which unix commands are effected by this, and which JDK functionality? From looking at the source I find it difficult to see whether this does not introduce regressions, sorry. Did you run jtreg tests; if yes which tiers?

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

PR: https://git.openjdk.java.net/jdk/pull/2622


More information about the kulla-dev mailing list