When a subclass attempts to call a method on its superclass that is missing, the failure analysis isn't as helpful as it could be. It currently looks like this:

Description:

An attempt was made to call a method that does not exist. The attempt was made from the following location:

    org.springframework.data.r2dbc.mapping.R2dbcMappingContext.<init>(R2dbcMappingContext.java:45)

The following method did not exist:

    org.springframework.data.r2dbc.mapping.R2dbcMappingContext.setForceQuote(Z)V

The method's class, org.springframework.data.r2dbc.mapping.R2dbcMappingContext, is available from the following locations:

    jar:file:/Users/awilkinson/.gradle/caches/modules-2/files-2.1/org.springframework.data/spring-data-r2dbc/1.1.0.RELEASE/646a7a0769b03db8ae46ec325b0df448854dd695/spring-data-r2dbc-1.1.0.RELEASE.jar!/org/springframework/data/r2dbc/mapping/R2dbcMappingContext.class

It was loaded from the following location:

    file:/Users/awilkinson/.gradle/caches/modules-2/files-2.1/org.springframework.data/spring-data-r2dbc/1.1.0.RELEASE/646a7a0769b03db8ae46ec325b0df448854dd695/spring-data-r2dbc-1.1.0.RELEASE.jar

In this case setForceQuote(boolean) should be inherited from org.springframework.data.relational.core.mapping.RelationalMappingContext but the version of RelationalMappingContext that's on the classpath is incompatible. We already include some information about where the class with the missing method was loaded from. When it's a method that should have been inherited, it would be useful to also include information about where its superclasses have been loaded from.