From 3c93ea7d7b0af10d9e0d3723529e753bfac9e89b Mon Sep 17 00:00:00 2001 From: Janne Valkealahti Date: Fri, 28 Jul 2023 13:14:29 +0100 Subject: [PATCH] Fix TerminalProvider sorting - Change provider sorting so that it uses provider name instead of provider object itself. This fixes getting a proper sorting list index to compare the order. Uses null check in case provider wrongly gives name as null. - Fixes #846, #852 --- terminal/src/main/java/org/jline/terminal/TerminalBuilder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/terminal/src/main/java/org/jline/terminal/TerminalBuilder.java b/terminal/src/main/java/org/jline/terminal/TerminalBuilder.java index 7dbbd7d67..f587c9cc0 100644 --- a/terminal/src/main/java/org/jline/terminal/TerminalBuilder.java +++ b/terminal/src/main/java/org/jline/terminal/TerminalBuilder.java @@ -404,7 +404,7 @@ private Terminal doBuild() throws IOException { List order = Arrays.asList( System.getProperty(PROP_PROVIDERS, PROP_PROVIDERS_DEFAULT).split(",")); providers.sort(Comparator.comparing(l -> { - int idx = order.indexOf(l); + int idx = order.indexOf(l.name()); return idx >= 0 ? idx : Integer.MAX_VALUE; }));