Tab completion no longer works after upgrading the jline dependency to the current 3.30.9. The regression depends on the JDK version: on JDK 21 completion works again as of 3.30.8, but on JDK 25 it has been broken since 3.30.7 and is still broken in 3.30.9.
I tried downgrading jline to find the first bad version. Results:
| jline version |
JDK 21 |
JDK 25 |
| 3.30.6 |
works |
works |
| 3.30.7 |
broken |
broken |
| 3.30.8 |
works |
broken |
| 3.30.9 |
works |
broken |
The jline upgrade in spring-shell happened in commit 9a829a7c (3.30.6 to 3.30.9).
Steps to reproduce:
- Use spring-shell
main (jline pinned to 3.30.9).
- Run on JDK 25:
./mvnw -pl :spring-shell-sample-spring-boot spring-boot:run
- At the
shell:> prompt, press <TAB> - no candidates are shown.
Expected: the list of available commands (or option names after a command) is shown, as it is on JDK 21 with the same jline version, or on JDK 25 with <jline.version>3.30.6</jline.version>.

Tab completion no longer works after upgrading the jline dependency to the current
3.30.9. The regression depends on the JDK version: on JDK 21 completion works again as of3.30.8, but on JDK 25 it has been broken since3.30.7and is still broken in3.30.9.I tried downgrading jline to find the first bad version. Results:
The jline upgrade in spring-shell happened in commit 9a829a7c (3.30.6 to 3.30.9).
Steps to reproduce:
main(jline pinned to3.30.9).shell:>prompt, press<TAB>- no candidates are shown.Expected: the list of available commands (or option names after a command) is shown, as it is on JDK 21 with the same jline version, or on JDK 25 with
<jline.version>3.30.6</jline.version>.