Невозможно создать привязки типов для класса groovy.json.internal.LazyMap с двумя параметрами типа: класс ожидает 0 - PullRequest
0 голосов
/ 30 октября 2019

Мы обновили Камунду с 7.7 до 7.9, и в рамках обновления версия Джексона также обновилась до 2.9.5. из 2.6.3. Рабочие процессы, созданные с использованием 7.7, не прошли проверку 7.9. Когда ниже выполняется с привязкой данных Джексона 2.6.3, он становится LazyMap и может сериализоваться. но то же самое не работает с Jackson 2.9.5 и выдает ошибку «Невозможно создать привязки типов для класса groovy.json.internal.LazyMap с 2 параметрами типа: класс ожидает 0»

def hotLazyMap = new JsonSlurper().parseText('{ "List": [4, 8, 15, 16, 23, 42] }')
println hotLazyMap instanceof Map ; //true
println hotLazyMap instanceof LazyMap; //true
println hotLazyMap instanceof HashMap; //false

if (hotLazyMap.getClass() == Map.class)
    println "hotLazyMap is Map class";
else if (hotLazyMap.getClass() == LazyMap.class)
    println "hotLazyMap is LazyMap class" //prints this
else if (hotLazyMap.getClass() == HashMap.class)
    println "hotLazyMap is HashMap class"
else 
    println "hotLazyMap is Not in Map"    

println ("LazyMap.class.getTypeParameters().length: " + LazyMap.class.getTypeParameters().length) ; //0
println ("Map.class.getTypeParameters().length: " + Map.class.getTypeParameters().length); //2

Единственный способ - понизить рейтингДжексон до 2.6.3? Можно использовать JsonSluperClassic, но, будучи приложением, мы стараемся поддерживать обратную совместимость, поскольку рабочие процессы (разработанные другими командами) должны работать в нашей среде.

Я вижу, что это проблема совместимости, Любые способычтобы исправить это?

...