Browse Source

Polish

This fixes an additional case where invoked methods are public but the
declaring class is package private.

Fixes gh-29046
pull/29057/head
Brian Clozel 3 years ago
parent
commit
289d378aeb
  1. 5
      spring-core-test/src/main/java/org/springframework/aot/agent/InstrumentedBridgeMethods.java

5
spring-core-test/src/main/java/org/springframework/aot/agent/InstrumentedBridgeMethods.java

@ -316,7 +316,7 @@ public abstract class InstrumentedBridgeMethods { @@ -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 { @@ -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;
}

Loading…
Cancel
Save