-
-
Notifications
You must be signed in to change notification settings - Fork 389
Closed
Labels
Description
Hi,
I've got ClassCastException after adding map to my entity
Test case:
@TypeName("E")
class Entity1 {
@Id int id
}
@TypeName("E")
class Entity2 {
@Id int id
List<String> propsList
Set<String> propsSet
Map<String, String> propsMap
}
def "should report when a list property is added or removed"(){
given:
def javers = javers().build()
def object1 = new Entity1(id:1)
def object2 = new Entity2(id:1, propsList: ["p"], propsSet: ["p"] as Set, propsMap: ["k": "v"])
when:
def diff = javers.compare(object1, object2)
println diff.prettyPrint()
def changes = diff.getChangesByType(PropertyChange)
then:
changes.size() == 3
changes[0].propertyAdded
changes[1].propertyAdded
changes[2].propertyAdded
when:
diff = javers.compare(object2, object1)
println diff.prettyPrint()
changes = diff.getChangesByType(PropertyChange)
then:
changes.size() == 3
changes[0].propertyRemoved
changes[1].propertyRemoved
changes[2].propertyRemoved
}Stacktrace:
class org.javers.core.metamodel.property.MissingProperty cannot be cast to class java.util.Map (org.javers.core.metamodel.property.MissingProperty is in unnamed module of loader 'app'; java.util.Map is in module java.base of loader 'bootstrap')
java.lang.ClassCastException: class org.javers.core.metamodel.property.MissingProperty cannot be cast to class java.util.Map (org.javers.core.metamodel.property.MissingProperty is in unnamed module of loader 'app'; java.util.Map is in module java.base of loader 'bootstrap')
at org.javers.common.collections.Maps.wrapNull(Maps.java:17)
at org.javers.core.metamodel.type.MapType.map(MapType.java:47)
at org.javers.core.metamodel.type.EnumerableType.map(EnumerableType.java:39)
at org.javers.core.graph.LiveNode.getDehydratedPropertyValue(LiveNode.java:84)
at org.javers.core.diff.NodePair.getLeftDehydratedPropertyValueAndSanitize(NodePair.java:46)
at org.javers.core.diff.appenders.MapChangeAppender.calculateChanges(MapChangeAppender.java:50)
at org.javers.core.diff.appenders.MapChangeAppender.calculateChanges(MapChangeAppender.java:21)
at org.javers.core.diff.DiffFactory.appendChanges(DiffFactory.java:153)
at org.javers.core.diff.DiffFactory.appendPropertyChanges(DiffFactory.java:143)
at org.javers.core.diff.DiffFactory.createAndAppendChanges(DiffFactory.java:125)
at org.javers.core.diff.DiffFactory.create(DiffFactory.java:69)
at org.javers.core.diff.DiffFactory.compare(DiffFactory.java:54)
at org.javers.core.JaversCore.compare(JaversCore.java:172)
at org.javers.core.JaversDiffE2ETest.should report when a list property is added or removed(JaversDiffE2ETest.groovy:603)Reactions are currently unavailable