Fixed [JACKSON-887]
diff --git a/release-notes/VERSION b/release-notes/VERSION index c7f4c9f..8a7494a 100644 --- a/release-notes/VERSION +++ b/release-notes/VERSION
@@ -5,6 +5,9 @@ Fixes: +* [JACKSON-887]: StackOverflow with parameterized sub-class field + (reported by Alexander M) + ------------------------------------------------------------------------ === History: === ------------------------------------------------------------------------
diff --git a/src/mapper/java/org/codehaus/jackson/map/type/TypeBindings.java b/src/mapper/java/org/codehaus/jackson/map/type/TypeBindings.java index 2145897..b59c79e 100644 --- a/src/mapper/java/org/codehaus/jackson/map/type/TypeBindings.java +++ b/src/mapper/java/org/codehaus/jackson/map/type/TypeBindings.java
@@ -287,7 +287,14 @@ * need to call getEnclosingClass since anonymous classes declare * generics */ - _resolveBindings(raw.getDeclaringClass()); + Class<?> decl = raw.getDeclaringClass(); + /* 08-Feb-2013, tatu: Except that if context is also super-class, we must + * skip it; context will be checked anyway, and we'd get StackOverflow if + * we went there. + */ + if (decl != null && !decl.isAssignableFrom(raw)) { + _resolveBindings(raw.getDeclaringClass()); + } /* 24-Mar-2010, tatu: Can not have true generics definitions, but can * have lower bounds ("<T extends BeanBase>") in declaration itself */