[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#75440: dejagnu does not like java.io.Console of OpenJDK >= 22
From: |
Chris Nospam |
Subject: |
bug#75440: dejagnu does not like java.io.Console of OpenJDK >= 22 |
Date: |
Wed, 8 Jan 2025 16:44:55 +0000 |
Dear maintainers,
starting with OpenJDK Java 22 java programs using java.io.Console cannot be
testet with dejagnu any more. With JDK 21 it works like a charm.
I belive it has to do with excape sequences that are not filtered out correctly
or similar. I am using dejagnu 1.6.3-1, debain package under Ubuntu 24.04.
For an easy reproduction of the bug I have attached a simple example
simple.zip. Just unpack it and execute exectest.sh. Be sure to update JAVA_HOME
in this script to a jdk 22 or 23 installation.
In testsuite/simple.log some escape sequences are shown were no one are
expected:
^[[?1h^[=^[[?2004hhello
^[[?1l^[>^[[?1000l^[[?2004lhello
The attached simple echo example works after simply commenting the lines 13-14
(using Console) and uncommenting lines 16-17 (using BufferedReader) in
testsuite/simple.sh.
Alternatively it also works by passing -Djdk.console=java.base to the jvm (1st
line in exectest.sh), to trigger the old implementation in JDK.
#!/usr/bin/env -S java --source 23
// #!/usr/local/java/jdk-23.0.1/bin/java --source 23 -Djdk.console=java.base
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ConsoleTest {
public static void main(String[] args) throws IOException {
System.out.print("prompt> ");
java.io.Console c = System.console();
String input = c.readLine();
// BufferedReader in = new BufferedReader(new
InputStreamReader(System.in));
// String input = in.readLine();
System.out.println(input);
System.out.println("prompt> ");
}
}
It has something to do with the change of the Java default Console provider to
JLine in Java 22.
https://bugs.openjdk.org/browse/JDK-8309141
However, as Java Console works everywhere else (windows/linux
console/bash/EclipseIDE internal "console"/IntelliJ internal "console") as far
I can see, it seems to be something special with dejagnu.
Thanks for dejagnu, maintaining it, and your help,
Chris
simple.zip
Description: Zip compressed data
- bug#75440: dejagnu does not like java.io.Console of OpenJDK >= 22,
Chris Nospam <=