Сначала я создаю карту и заполняю ее значениями. Затем я хочу отсортировать карту по значению. И я использую метод сортировки, как в примере.
В моей IDE в консоли я вижу, что поведение программы соответствует моим ожиданиям.
Однако, когда я запускаю программу из Groovy конвейера, после сортировки происходит необъяснимое событие. Из-за гибкого набора текста карта заменяется на число.
node("Linux_Default") {
Map painters = ["Rubens": 1, "Bosch": 2, "Repin": 5, "DaVinci": 10] as HashMap<String, Integer>
println('unordered')
for (String i : painters) {
println('* ' + i)
}
def sortedPainters = painters.sort(){ a, b -> b.value <=> a.value }
try {
println('ordered')
for (String i : sortedPainters) {
println('* ' + i)
}
} catch (Exception e) {
println(e.toString())
}
}
Выход из IDE
unordered
* Rubens=1
* Bosch=2
* Repin=5
* DaVinci=10
ordered
* DaVinci=10
* Repin=5
* Bosch=2
* Rubens=1
Вывод из консоли конвейера
Running in Durability level: PERFORMANCE_OPTIMIZED
Running on jenkins-agent-linux-008 in /u01/jenkins_slave/workspace/KMD/maps_sort_test
unordered
* Rubens=1
* Bosch=2
* Repin=5
* DaVinci=10
ordered
* -1
Finished: SUCCESS