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

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

commit 529a672997497380c5a69ac51dcb39bbe50d9168
Author: PanLongfei <[email protected]>
AuthorDate: Fri Mar 22 11:03:52 2024 +0800

    Fix issue 2380: use args.length to calculate noThrowableArgCount
---
 .../java/org/apache/logging/log4j/message/ParameterFormatter.java  | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git 
a/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterFormatter.java
 
b/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterFormatter.java
index 89d657dc02..9964d118b7 100644
--- 
a/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterFormatter.java
+++ 
b/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterFormatter.java
@@ -239,17 +239,18 @@ final class ParameterFormatter {
             final MessagePatternAnalysis analysis) {
 
         // Short-circuit if there is nothing interesting
-        if (pattern == null || args == null || args.length == 0 || 
analysis.placeholderCount == 0) {
+        if (pattern == null || args == null || analysis.placeholderCount == 0) 
{
             buffer.append(pattern);
             return;
         }
 
         // check if there are insufficient arguments that do not include 
Throwable arg
-        final int noThrowableArgCount = argCount - ((args[argCount - 1] 
instanceof Throwable) ? 1 : 0);
+        final int realArgCount = args.length;
+        final int noThrowableArgCount = realArgCount - ((args[realArgCount - 
1] instanceof Throwable) ? 1 : 0);
         if (analysis.placeholderCount != noThrowableArgCount) {
             final String message = String.format(
                     "found %d argument placeholders, but provided %d for 
pattern `%s`",
-                    analysis.placeholderCount, args.length, pattern);
+                    analysis.placeholderCount, realArgCount, pattern);
             STATUS_LOGGER.warn(message);
         }
 

Reply via email to