You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ma...@apache.org on 2022/01/02 04:53:54 UTC

[logging-log4j2] branch master updated: Move setAccessible invocation to log4j-core

This is an automated email from the ASF dual-hosted git repository.

mattsicker pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git


The following commit(s) were added to refs/heads/master by this push:
     new ce73e8f  Move setAccessible invocation to log4j-core
ce73e8f is described below

commit ce73e8f7b0227b20e82815d149aede30bfbd0b21
Author: Matt Sicker <ma...@apache.org>
AuthorDate: Sat Jan 1 22:53:46 2022 -0600

    Move setAccessible invocation to log4j-core
    
    Signed-off-by: Matt Sicker <ma...@apache.org>
---
 .../apache/logging/log4j/core/config/plugins/util/PluginBuilder.java    | 2 ++
 .../src/main/java/org/apache/logging/log4j/plugins/util/TypeUtil.java   | 1 -
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginBuilder.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginBuilder.java
index 3292998..dd98827 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginBuilder.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginBuilder.java
@@ -36,6 +36,7 @@ import org.apache.logging.log4j.util.ReflectionUtil;
 import org.apache.logging.log4j.util.StringBuilders;
 
 import java.lang.annotation.Annotation;
+import java.lang.reflect.AccessibleObject;
 import java.lang.reflect.Field;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
@@ -170,6 +171,7 @@ public class PluginBuilder implements Builder<Object> {
     private Object injectBuilder(final Builder<?> builder) {
         final Object target = builder instanceof BuilderWrapper ? ((BuilderWrapper) builder).getBuilder() : builder;
         final List<Field> fields = TypeUtil.getAllDeclaredFields(target.getClass());
+        AccessibleObject.setAccessible(fields.toArray(new Field[0]), true);
         final StringBuilder log = new StringBuilder();
         // TODO: collect OptionBindingExceptions into a composite error message (ConfigurationException?)
         for (final Field field : fields) {
diff --git a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/util/TypeUtil.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/util/TypeUtil.java
index 2abcd19..adde765 100644
--- a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/util/TypeUtil.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/util/TypeUtil.java
@@ -62,7 +62,6 @@ public final class TypeUtil {
         final List<Field> fields = new ArrayList<>();
         while (cls != null) {
             final Field[] declaredFields = cls.getDeclaredFields();
-            AccessibleObject.setAccessible(declaredFields, true);
             fields.addAll(Arrays.asList(declaredFields));
             cls = cls.getSuperclass();
         }