Skip to content

Commit ccbd8d1

Browse files
committed
actually real fix for #2155 is here
1 parent dd6d460 commit ccbd8d1

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

src/main/java/com/fasterxml/jackson/databind/type/TypeFactory.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -454,6 +454,7 @@ private String _resolveTypePlaceholders(JavaType sourceType, JavaType actualType
454454
for (int i = 0, len = expectedTypes.size(); i < len; ++i) {
455455
JavaType exp = expectedTypes.get(i);
456456
JavaType act = actualTypes.get(i);
457+
457458
if (!_verifyAndResolvePlaceholders(exp, act)) {
458459
// 14-May-2018, tatu: As per [databind#2034] it seems we better relax assignment
459460
// rules further -- at least likely "raw" (untyped, non-generic) base should probably
@@ -470,6 +471,13 @@ private String _resolveTypePlaceholders(JavaType sourceType, JavaType actualType
470471
continue;
471472
}
472473
}
474+
// 19-Nov-2018, tatu: To solve [databind#2155], let's allow type-compatible
475+
// assignment for interfaces at least...
476+
if (exp.isInterface()) {
477+
if (exp.isTypeOrSuperTypeOf(act.getRawClass())) {
478+
continue;
479+
}
480+
}
473481
return String.format("Type parameter #%d/%d differs; can not specialize %s with %s",
474482
(i+1), len, exp.toCanonical(), act.toCanonical());
475483
}

0 commit comments

Comments
 (0)