The problem only occurs when an object has a map with a custom class as a key-type, for example Map<CustomKey, String>, but not with maps such as Map<String, String>, which work fine with null-values.
Stack trace of the exception: Exception in thread "main" java.lang.NullPointerException at org.javers.core.graph.EdgeBuilder$MultiEdgeMapBuilderFunction.isManagedPosition(EdgeBuilder.java:88) at org.javers.core.graph.EdgeBuilder$MultiEdgeContainerBuilderFunction.apply(EdgeBuilder.java:69) at org.javers.core.metamodel.type.MapType.mapEntrySet(MapType.java:76) at org.javers.core.metamodel.type.MapType.mapStatic(MapType.java:40) at org.javers.core.metamodel.type.MapType.map(MapType.java:27) at org.javers.core.graph.EdgeBuilder.createMultiEdge(EdgeBuilder.java:55) at org.javers.core.graph.ObjectGraphBuilder.buildMultiEdges(ObjectGraphBuilder.java:91) at org.javers.core.graph.ObjectGraphBuilder.buildEdges(ObjectGraphBuilder.java:71) at org.javers.core.graph.ObjectGraphBuilder.buildGraphFromCdo(ObjectGraphBuilder.java:58) at org.javers.core.graph.ObjectGraphBuilder.buildGraph(ObjectGraphBuilder.java:47) at org.javers.core.graph.LiveGraphFactory.createLiveGraph(LiveGraphFactory.java:39) at org.javers.core.diff.DiffFactory.buildGraph(DiffFactory.java:98) at org.javers.core.diff.DiffFactory.compare(DiffFactory.java:53) at org.javers.core.JaversCore.compare(JaversCore.java:134) at org.javers.core.example.Main.main(Main.java:37)
The text was updated successfully, but these errors were encountered:
EdgeBuilder.java
throws a NullPointerException for null-values in maps. An example can be found here: https://github.com/lybeck/javers/blob/map-null-value-problem/javers-core/src/main/java/org/javers/core/example/Main.javaThe problem only occurs when an object has a map with a custom class as a key-type, for example
Map<CustomKey, String>
, but not with maps such asMap<String, String>
, which work fine with null-values.Stack trace of the exception:
Exception in thread "main" java.lang.NullPointerException at org.javers.core.graph.EdgeBuilder$MultiEdgeMapBuilderFunction.isManagedPosition(EdgeBuilder.java:88) at org.javers.core.graph.EdgeBuilder$MultiEdgeContainerBuilderFunction.apply(EdgeBuilder.java:69) at org.javers.core.metamodel.type.MapType.mapEntrySet(MapType.java:76) at org.javers.core.metamodel.type.MapType.mapStatic(MapType.java:40) at org.javers.core.metamodel.type.MapType.map(MapType.java:27) at org.javers.core.graph.EdgeBuilder.createMultiEdge(EdgeBuilder.java:55) at org.javers.core.graph.ObjectGraphBuilder.buildMultiEdges(ObjectGraphBuilder.java:91) at org.javers.core.graph.ObjectGraphBuilder.buildEdges(ObjectGraphBuilder.java:71) at org.javers.core.graph.ObjectGraphBuilder.buildGraphFromCdo(ObjectGraphBuilder.java:58) at org.javers.core.graph.ObjectGraphBuilder.buildGraph(ObjectGraphBuilder.java:47) at org.javers.core.graph.LiveGraphFactory.createLiveGraph(LiveGraphFactory.java:39) at org.javers.core.diff.DiffFactory.buildGraph(DiffFactory.java:98) at org.javers.core.diff.DiffFactory.compare(DiffFactory.java:53) at org.javers.core.JaversCore.compare(JaversCore.java:134) at org.javers.core.example.Main.main(Main.java:37)
The text was updated successfully, but these errors were encountered: