Skip to content

Commit 3b074a2

Browse files
committed
[GR-26993] Define our own close-like method for compatibility
* JLine 3.14+ made AbstractTerminal#close() final: jline/jline3@c3317bc8b7
1 parent fa7e760 commit 3b074a2

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

src/main/java/org/truffleruby/stdlib/readline/ConsoleHolder.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,12 @@ private String getType() {
160160

161161
public void close() {
162162
try {
163-
readline.getTerminal().close();
163+
final Terminal terminal = readline.getTerminal();
164+
if (terminal instanceof PosixSysTerminalKeepSignalHandlers) {
165+
((PosixSysTerminalKeepSignalHandlers) terminal).customClose();
166+
} else {
167+
terminal.close();
168+
}
164169
} catch (IOException e) {
165170
throw CompilerDirectives.shouldNotReachHere(e);
166171
}

src/main/java/org/truffleruby/stdlib/readline/PosixSysTerminalKeepSignalHandlers.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import java.nio.charset.Charset;
1818

1919
import org.graalvm.shadowed.org.jline.terminal.impl.AbstractPosixTerminal;
20+
import org.graalvm.shadowed.org.jline.terminal.impl.AbstractTerminal;
2021
import org.graalvm.shadowed.org.jline.terminal.spi.Pty;
2122
import org.graalvm.shadowed.org.jline.utils.NonBlocking;
2223
import org.graalvm.shadowed.org.jline.utils.NonBlockingInputStream;
@@ -65,9 +66,9 @@ public PrintWriter writer() {
6566
}
6667
// Checkstyle: start
6768

68-
@Override
69-
public void close() throws IOException {
70-
super.close();
69+
/** {@link AbstractTerminal#close()} is final in JLine 3.14+ */
70+
public void customClose() throws IOException {
71+
close();
7172
// Do not call reader.close()
7273
reader.shutdown();
7374
}

0 commit comments

Comments
 (0)