Орика картографическая NPE между 2 картами
У меня есть 2 объекта, которые имеют то же свойство "ссылки", и при использовании Orika для сопоставления с A
-> B
, Я получил
ma.glasnost.orika.MappingException:ma.glasnost.orika.MappingException:
While attempting the following mapping:
sourceType = A
sourceProperty = links(Links)
destinationType = B
destinationProperty = links(Links)
Error occurred: java.lang.NullPointerException
Caused by: ma.glasnost.orika.MappingException: java.lang.NullPointerException
at ma.glasnost.orika.impl.generator.MapperGenerator.addMapMethod(MapperGenerator.java:170)
at ma.glasnost.orika.impl.generator.MapperGenerator.build(MapperGenerator.java:70)
... 49 common frames omitted
Caused by: java.lang.NullPointerException: null
at ma.glasnost.orika.impl.generator.VariableRef.isPrimitive(VariableRef.java:167)
at ma.glasnost.orika.impl.generator.VariableRef.<init>(VariableRef.java:95)
at ma.glasnost.orika.impl.generator.specification.MapToMap.generateMappingCode(MapToMap.java:71)
at ma.glasnost.orika.impl.generator.SourceCodeContext.mapFields(SourceCodeContext.java:778)
at ma.glasnost.orika.impl.generator.MapperGenerator.generateFieldMapCode(MapperGenerator.java:247)
at ma.glasnost.orika.impl.generator.MapperGenerator.addMapMethod(MapperGenerator.java:167)
... 50 common frames omitted
Объекты определены так:
class A {
private Links links
// getter/setter + other fields
}
class B {
private Links links
// getter/setter + other fields
}
class Links extends HashMap<String, List<Link>> {
}
class Link {
private String text;
}
Я использую маппер по умолчанию примерно так:
mapper.classMap(A.class, B.class)
.byDefault()
.register();
Любые предложения для продолжения?
1 ответ
Вы видите это: https://code.google.com/archive/p/orika/issues/170
Там написано, что проблема была исправлена, но для меня это не выглядит так: https://github.com/orika-mapper/orika/issues/67
или, может быть, это то, что вы видите: https://github.com/orika-mapper/orika/issues/232
Ваша проблема выглядит так же, как опубликованная на code.google.com.