Skip to content

Regression in 1.7.2 (wrt #53) causes StackOverflowError for some recursive types #117

@erdi

Description

@erdi

After upgrading to 1.7.2 we are seeing StackOverflowError with the following stack trace:

java.lang.StackOverflowError: null
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)
    at com.fasterxml.classmate.ResolvedType.equals(ResolvedType.java:281)
    at com.fasterxml.classmate.types.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:157)
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)
    at com.fasterxml.classmate.ResolvedType.equals(ResolvedType.java:281)
    at com.fasterxml.classmate.types.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:166)
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)
    at com.fasterxml.classmate.ResolvedType.equals(ResolvedType.java:281)
    at com.fasterxml.classmate.types.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:166)
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)
    at com.fasterxml.classmate.ResolvedType.equals(ResolvedType.java:281)
    at com.fasterxml.classmate.types.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:166)
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)
    at com.fasterxml.classmate.ResolvedType.equals(ResolvedType.java:281)
    at com.fasterxml.classmate.types.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:166)
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)
    at com.fasterxml.classmate.ResolvedType.equals(ResolvedType.java:281)
    at com.fasterxml.classmate.types.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:166)
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)
    at com.fasterxml.classmate.ResolvedType.equals(ResolvedType.java:281)
    at com.fasterxml.classmate.types.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:166)
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)
    at com.fasterxml.classmate.ResolvedType.equals(ResolvedType.java:281)
    at com.fasterxml.classmate.types.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:166)
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)
    at com.fasterxml.classmate.ResolvedType.equals(ResolvedType.java:281)
    at com.fasterxml.classmate.types.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:166)
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)
    at com.fasterxml.classmate.ResolvedType.equals(ResolvedType.java:281)
    at com.fasterxml.classmate.types.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:166)
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)
    at com.fasterxml.classmate.ResolvedType.equals(ResolvedType.java:281)
    at com.fasterxml.classmate.types.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:166)
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)
    at com.fasterxml.classmate.ResolvedType.equals(ResolvedType.java:281)
    at com.fasterxml.classmate.types.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:166)
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)
    at com.fasterxml.classmate.ResolvedType.equals(ResolvedType.java:281)
    at com.fasterxml.classmate.types.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:166)
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)
    at com.fasterxml.classmate.ResolvedType.equals(ResolvedType.java:281)
    at com.fasterxml.classmate.types.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:166)
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)
    at com.fasterxml.classmate.ResolvedType.equals(ResolvedType.java:281)
    at com.fasterxml.classmate.types.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:166)
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)
    at com.fasterxml.classmate.ResolvedType.equals(ResolvedType.java:281)
    at com.fasterxml.classmate.types.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:166)
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)
    at com.fasterxml.classmate.ResolvedType.equals(ResolvedType.java:281)
    at com.fasterxml.classmate.types.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:166)
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)
    at com.fasterxml.classmate.ResolvedType.equals(ResolvedType.java:281)
    at com.fasterxml.classmate.types.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:166)
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)
    at com.fasterxml.classmate.ResolvedType.equals(ResolvedType.java:281)
    at com.fasterxml.classmate.types.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:166)
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)
    at com.fasterxml.classmate.ResolvedType.equals(ResolvedType.java:281)
    at com.fasterxml.classmate.types.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:166)
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)
    at com.fasterxml.classmate.ResolvedType.equals(ResolvedType.java:281)
    at com.fasterxml.classmate.types.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:166)
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)
    at com.fasterxml.classmate.ResolvedType.equals(ResolvedType.java:281)
    at com.fasterxml.classmate.types.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:166)
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)
    at com.fasterxml.classmate.ResolvedType.equals(ResolvedType.java:281)
    at com.fasterxml.classmate.types.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:166)
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)
    at com.fasterxml.classmate.ResolvedType.equals(ResolvedType.java:281)
    at com.fasterxml.classmate.types.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:166)
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)
    at com.fasterxml.classmate.ResolvedType.equals(ResolvedType.java:281)
    at com.fasterxml.classmate.types.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:166)
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)
    at com.fasterxml.classmate.ResolvedType.equals(ResolvedType.java:281)
    at com.fasterxml.classmate.types.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:166)
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)
    at com.fasterxml.classmate.ResolvedType.equals(ResolvedType.java:281)
    at com.fasterxml.classmate.types.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:166)
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)
    at com.fasterxml.classmate.ResolvedType.equals(ResolvedType.java:281)
    at com.fasterxml.classmate.types.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:166)
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)
    at com.fasterxml.classmate.ResolvedType.equals(ResolvedType.java:281)
    at com.fasterxml.classmate.types.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:166)
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)
    at com.fasterxml.classmate.ResolvedType.equals(ResolvedType.java:281)
    at com.fasterxml.classmate.types.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:166)
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)
    at com.fasterxml.classmate.ResolvedType.equals(ResolvedType.java:281)
    at com.fasterxml.classmate.types.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:166)
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)
    at com.fasterxml.classmate.ResolvedType.equals(ResolvedType.java:281)
    at com.fasterxml.classmate.types.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:166)
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)
    at com.fasterxml.classmate.ResolvedType.equals(ResolvedType.java:281)
    at com.fasterxml.classmate.types.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:166)
    at com.fasterxml.classmate.TypeBindings.equals(TypeBindings.java:221)

I believe that this is due to the changes introduced in 57fb93a. FWIW, we're not calling classmate directly so it's hard for me to figure out what type actually causes this stack overflow but hopefully it will be fairly obvious to you.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions