From 289d378aebd4782f422b880702fbd098122a389c Mon Sep 17 00:00:00 2001 From: Brian Clozel Date: Thu, 1 Sep 2022 15:14:58 +0200 Subject: [PATCH] Polish This fixes an additional case where invoked methods are public but the declaring class is package private. Fixes gh-29046 --- .../springframework/aot/agent/InstrumentedBridgeMethods.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/spring-core-test/src/main/java/org/springframework/aot/agent/InstrumentedBridgeMethods.java b/spring-core-test/src/main/java/org/springframework/aot/agent/InstrumentedBridgeMethods.java index c3c2c61ab23..df2d880c6ee 100644 --- a/spring-core-test/src/main/java/org/springframework/aot/agent/InstrumentedBridgeMethods.java +++ b/spring-core-test/src/main/java/org/springframework/aot/agent/InstrumentedBridgeMethods.java @@ -316,7 +316,7 @@ public abstract class InstrumentedBridgeMethods { .onInstance(constructor).withArguments(arguments); try { if (!Modifier.isPublic(constructor.getModifiers()) || - !Modifier.isPublic(constructor.getDeclaringClass().getModifiers()) || !constructor.canAccess(null)) { + !Modifier.isPublic(constructor.getDeclaringClass().getModifiers())) { constructor.setAccessible(true); accessibilityChanged = true; } @@ -339,7 +339,8 @@ public abstract class InstrumentedBridgeMethods { Object result = null; boolean accessibilityChanged = false; try { - if (!Modifier.isPublic(method.getModifiers())) { + if (!Modifier.isPublic(method.getModifiers()) + || !Modifier.isPublic(method.getDeclaringClass().getModifiers())) { method.setAccessible(true); accessibilityChanged = true; }