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); }
