Avoid bridge resolution for method from unrelated class hierarchy

Closes gh-32087
This commit is contained in:
Juergen Hoeller
2024-01-23 10:50:53 +01:00
parent 3b2f6e74a6
commit 5656eaccb7
2 changed files with 19 additions and 0 deletions

View File

@@ -38,6 +38,7 @@ import static org.assertj.core.api.Assertions.assertThat;
* @author Rob Harrop
* @author Juergen Hoeller
* @author Chris Beams
* @author Yanming Zhou
*/
@SuppressWarnings("rawtypes")
class BridgeMethodResolverTests {
@@ -97,6 +98,13 @@ class BridgeMethodResolverTests {
assertThat(bridgedMethod.getParameterTypes()[0]).isEqualTo(Date.class);
}
@Test
void findBridgedMethodFromOriginalMethodNotInHierarchy() throws Exception {
Method originalMethod = Adder.class.getMethod("add", Object.class);
Method mostSpecificMethod = BridgeMethodResolver.getMostSpecificMethod(originalMethod, FakeAdder.class);
assertThat(mostSpecificMethod).isSameAs(originalMethod);
}
@Test
void isBridgeMethodFor() throws Exception {
Method bridged = MyBar.class.getDeclaredMethod("someMethod", String.class, Object.class);
@@ -406,6 +414,13 @@ class BridgeMethodResolverTests {
}
public static class FakeAdder {
public void add(Date date) {
}
}
public static class Enclosing<T> {
public class Enclosed<S> {