This is an automated email from the ASF dual-hosted git repository. pkarwasz pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit d672923719f4f0e076deb06002838df12b9c00bf Author: Piotr P. Karwasz <[email protected]> AuthorDate: Mon Nov 13 13:13:10 2023 +0100 Replace `getDeclaredConstructor().getInstance()` with `LoaderUtil` --- log4j-core/pom.xml | 19 ------------------- .../logging/log4j/core/impl/ContextDataFactory.java | 15 +++++++++------ .../log4j/core/net/MulticastDnsAdvertiser.java | 2 +- 3 files changed, 10 insertions(+), 26 deletions(-) diff --git a/log4j-core/pom.xml b/log4j-core/pom.xml index cdfb614072..d444705e53 100644 --- a/log4j-core/pom.xml +++ b/log4j-core/pom.xml @@ -162,25 +162,6 @@ <build> <plugins> - <plugin> - <groupId>biz.aQute.bnd</groupId> - <artifactId>bnd-baseline-maven-plugin</artifactId> - <configuration> - <!-- - ~ These packages are documented as internal and were removed - ~ from the public OSGi exports. - --> - <diffpackages> - <diffpackage>!org.apache.logging.log4j.core.layout.internal</diffpackage> - <diffpackage>!org.apache.logging.log4j.core.message</diffpackage> - <diffpackage>!org.apache.logging.log4j.core.time.internal</diffpackage> - <diffpackage>!org.apache.logging.log4j.core.tools.picocli</diffpackage> - <diffpackage>!org.apache.logging.log4j.core.util.internal</diffpackage> - <diffpackage>*</diffpackage> - </diffpackages> - </configuration> - </plugin> - <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ContextDataFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ContextDataFactory.java index f792356743..40af516be1 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ContextDataFactory.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ContextDataFactory.java @@ -56,8 +56,9 @@ public class ContextDataFactory { * In graalvm doc (https://github.com/oracle/graal/blob/master/substratevm/LIMITATIONS.md), * graalvm is not support MethodHandle now, so the Constructor need not to return MethodHandle. */ - private static final Constructor<?> DEFAULT_CONSTRUCTOR = createDefaultConstructor(CACHED_CLASS); - private static final Constructor<?> INITIAL_CAPACITY_CONSTRUCTOR = createInitialCapacityConstructor(CACHED_CLASS); + private static final Constructor<? extends StringMap> DEFAULT_CONSTRUCTOR = createDefaultConstructor(CACHED_CLASS); + private static final Constructor<? extends StringMap> INITIAL_CAPACITY_CONSTRUCTOR = + createInitialCapacityConstructor(CACHED_CLASS); private static final StringMap EMPTY_STRING_MAP = createContextData(0); @@ -76,7 +77,8 @@ public class ContextDataFactory { } } - private static Constructor<?> createDefaultConstructor(final Class<? extends StringMap> cachedClass){ + private static Constructor<? extends StringMap> createDefaultConstructor( + final Class<? extends StringMap> cachedClass) { if (cachedClass == null) { return null; } @@ -87,7 +89,8 @@ public class ContextDataFactory { } } - private static Constructor<?> createInitialCapacityConstructor(final Class<? extends StringMap> cachedClass){ + private static Constructor<? extends StringMap> createInitialCapacityConstructor( + final Class<? extends StringMap> cachedClass) { if (cachedClass == null) { return null; } @@ -103,7 +106,7 @@ public class ContextDataFactory { return new SortedArrayStringMap(); } try { - return (IndexedStringMap) DEFAULT_CONSTRUCTOR.newInstance(); + return DEFAULT_CONSTRUCTOR.newInstance(); } catch (final Throwable ignored) { return new SortedArrayStringMap(); } @@ -114,7 +117,7 @@ public class ContextDataFactory { return new SortedArrayStringMap(initialCapacity); } try { - return (IndexedStringMap) INITIAL_CAPACITY_CONSTRUCTOR.newInstance(initialCapacity); + return INITIAL_CAPACITY_CONSTRUCTOR.newInstance(initialCapacity); } catch (final Throwable ignored) { return new SortedArrayStringMap(initialCapacity); } diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/MulticastDnsAdvertiser.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/MulticastDnsAdvertiser.java index b573743c57..37417ff219 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/MulticastDnsAdvertiser.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/MulticastDnsAdvertiser.java @@ -136,7 +136,7 @@ public class MulticastDnsAdvertiser implements Advertiser { private static Object createJmDnsVersion1() { try { - return jmDNSClass.getConstructor().newInstance(); + return LoaderUtil.newInstanceOf(jmDNSClass); } catch (final InstantiationException | IllegalAccessException | NoSuchMethodException | InvocationTargetException e) { LOGGER.warn("Unable to instantiate JMDNS", e); }
