diff --git a/spring-shell-core/src/main/java/org/springframework/shell/component/flow/BaseSingleItemSelector.java b/spring-shell-core/src/main/java/org/springframework/shell/component/flow/BaseSingleItemSelector.java index 73d0de278..7866c5895 100644 --- a/spring-shell-core/src/main/java/org/springframework/shell/component/flow/BaseSingleItemSelector.java +++ b/spring-shell-core/src/main/java/org/springframework/shell/component/flow/BaseSingleItemSelector.java @@ -17,6 +17,7 @@ import java.util.ArrayList; import java.util.Comparator; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.function.Consumer; @@ -81,7 +82,11 @@ public SingleItemSelectorSpec selectItem(String name, String item) { @Override public SingleItemSelectorSpec selectItems(Map selectItems) { - List items = selectItems.entrySet().stream() + // TODO: we changed to keep items as SelectItem's, to try to keep old sorting + // behaviour we go via HashMap gh-946. Later we should remove this step. + Map selectItemsMap = new HashMap<>(); + selectItemsMap.putAll(selectItems); + List items = selectItemsMap.entrySet().stream() .map(e -> SelectItem.of(e.getKey(), e.getValue())) .collect(Collectors.toList()); selectItems(items);