You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by vy...@apache.org on 2023/10/06 07:57:39 UTC

[logging-log4j2] 04/13: Use Java version-specific warnings in `StackLocator` (#1760)

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

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

commit af88da7cb926abb1d35d2dc208381097fed8bd4d
Author: Florian Schmaus <fl...@geekplace.eu>
AuthorDate: Thu Oct 5 14:54:44 2023 +0200

    Use Java version-specific warnings in `StackLocator` (#1760)
    
    Co-authored-by: Piotr P. Karwasz <pi...@karwasz.org>
    Co-authored-by: Volkan Yazıcı <vo...@yazi.ci>
---
 .../main/java/org/apache/logging/log4j/util/StackLocator.java | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/StackLocator.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/StackLocator.java
index d738f32a87..2ee943185e 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/util/StackLocator.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/StackLocator.java
@@ -72,12 +72,19 @@ public final class StackLocator {
             } else {
                 o = getCallerClassMethod.invoke(null, 1);
                 if (o == sunReflectionClass) {
-                    System.err.println("WARNING: Unexpected result from sun.reflect.Reflection.getCallerClass(int), adjusting offset for future calls.");
+                    LowLevelLogUtil.log(
+                            "WARNING: Unexpected result from sun.reflect.Reflection.getCallerClass(int), adjusting offset for future calls.");
                     java7u25CompensationOffset = 1;
                 }
             }
         } catch (final Exception | LinkageError e) {
-            System.err.println("WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.");
+            if (Constants.JAVA_MAJOR_VERSION > 8) {
+                LowLevelLogUtil.log(
+                        "WARNING: Runtime environment does not support multi-release JARs. This will impact location-based features.");
+            } else {
+                LowLevelLogUtil.log(
+                        "WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact location-based features.");
+            }
             getCallerClassMethod = null;
             java7u25CompensationOffset = -1;
         }