diff --git a/src/main/java/com/fasterxml/jackson/databind/deser/BasicDeserializerFactory.java b/src/main/java/com/fasterxml/jackson/databind/deser/BasicDeserializerFactory.java index 337f1bba49..c866a9bffa 100644 --- a/src/main/java/com/fasterxml/jackson/databind/deser/BasicDeserializerFactory.java +++ b/src/main/java/com/fasterxml/jackson/databind/deser/BasicDeserializerFactory.java @@ -968,13 +968,9 @@ public JsonDeserializer createMapDeserializer(DeserializationContext ctxt, mapClass = type.getRawClass(); // But if so, also need to re-check creators... beanDesc = config.introspectForCreation(type); - } else { - // [databind#292]: Actually, may be fine, but only if polymorphic deser enabled - if (type.getTypeHandler() == null) { - throw new IllegalArgumentException("Cannot find a deserializer for non-concrete Map type "+type); - } - deser = AbstractDeserializer.constructForNonPOJO(beanDesc); } + // 11-Nov-2024, tatu: Related to [databind#4783] let's not fail on + // abstract Maps so they can work with merge (or factory methods) } else { // 10-Jan-2017, tatu: `java.util.Collections` types need help: deser = JavaUtilCollectionsDeserializers.findForMap(ctxt, type);