oracle / graal

GraalVM compiles Java applications into native executables that start instantly, scale fast, and use fewer compute resources 🚀
https://www.graalvm.org
Other
20.28k stars 1.63k forks source link

`polyglot --shell` fails with StringIndexOutOfBoundsException on urxvt #3034

Closed jarohen closed 3 years ago

jarohen commented 3 years ago

Describe GraalVM and your environment :

Have you verified this issue still happens when using the latest snapshot? You can find snapshot builds here: https://github.com/graalvm/graalvm-ce-dev-builds/releases Not yet, will give it a shot.

Describe the issue polyglot --shell fails with StringIndexOutOfBoundsException on urxvt

Steps to reproduce the issue

$ echo $TERM
rxvt-unicode-256color

$ polyglot --shell
org.graalvm.launcher.Launcher$AbortException
Caused by: java.io.IOError: java.lang.StringIndexOutOfBoundsException: String index out of range: 5
    at org.graalvm.shadowed.org.jline.utils.Curses.tputs(Curses.java:62)
    at org.graalvm.shadowed.org.jline.utils.Curses.tputs(Curses.java:45)
    at org.graalvm.shadowed.org.jline.keymap.KeyMap.key(KeyMap.java:243)
    at org.graalvm.shadowed.org.jline.reader.impl.LineReaderImpl.key(LineReaderImpl.java:6089)
    at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
    at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
    at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
    at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
    at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
    at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
    at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
    at org.graalvm.shadowed.org.jline.reader.impl.LineReaderImpl.bindKeys(LineReaderImpl.java:6097)
    at org.graalvm.shadowed.org.jline.reader.impl.LineReaderImpl.emacs(LineReaderImpl.java:5807)
    at org.graalvm.shadowed.org.jline.reader.impl.LineReaderImpl.defaultKeyMaps(LineReaderImpl.java:5783)
    at org.graalvm.shadowed.org.jline.reader.impl.LineReaderImpl.<init>(LineReaderImpl.java:293)
    at org.graalvm.shadowed.org.jline.reader.LineReaderBuilder.build(LineReaderBuilder.java:115)
    at org.graalvm.launcher.MultiLanguageShell.resetLineReader(MultiLanguageShell.java:243)
    at org.graalvm.launcher.MultiLanguageShell.<init>(MultiLanguageShell.java:93)
    at org.graalvm.launcher.PolyglotLauncher.runShell(PolyglotLauncher.java:430)
    at org.graalvm.launcher.PolyglotLauncher.launchImpl(PolyglotLauncher.java:234)
    at org.graalvm.launcher.PolyglotLauncher.launch(PolyglotLauncher.java:186)
    at org.graalvm.launcher.PolyglotLauncher.main(PolyglotLauncher.java:441)
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 5
    at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:47)
    at java.base/java.lang.String.charAt(String.java:693)
    at org.graalvm.shadowed.org.jline.utils.Curses.doTputs(Curses.java:359)
    at org.graalvm.shadowed.org.jline.utils.Curses.tputs(Curses.java:60)
    ... 23 more

Expected behavior A clear and concise description of what you expected to happen.

Same machine, same JDK, this time on xterm

$ echo $TERM
xterm

$ polyglot --shell
GraalVM MultiLanguage Shell 20.3.0
Copyright (c) 2013-2020, Oracle and/or its affiliates
  JavaScript version 20.3.0
  Ruby version 2.6.6
Usage: 
  Use Alt+L to switch language and Ctrl+D to exit.
  Enter -usage to get a list of available commands.
js> 

Additional context Add any other context about the problem here. Specially important are stack traces or log output. Feel free to link to gists or to screenshots if necessary

I wonder if this is related to https://github.com/jline/jline3/issues/533 ?

jramirez-isc commented 3 years ago

Hi @jarohen
Thanks for reporting this. I've tested on Ubuntu but didn't hit the issue. I'll try next with Arch Linux and report back.

olyagpl commented 3 years ago

@jarohen, languages shells that migrated JLine 3 will crash on startup when launched in rxvt terminal emulator. Please see https://www.graalvm.org/release-notes/known-issues/

jramirez-isc commented 3 years ago

Closing this because it's a known issue. Please reopen if the issue still persists.