LOG4J2-324 reduce memory usage of status messages Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/842c4ad5 Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/842c4ad5 Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/842c4ad5
Branch: refs/heads/LOG4J-1181 Commit: 842c4ad5a7d9a27e1e0ff59f5c8937150fdcfb21 Parents: 7db16dd Author: rpopma <[email protected]> Authored: Sun Nov 29 15:45:45 2015 +0900 Committer: rpopma <[email protected]> Committed: Sun Nov 29 15:45:45 2015 +0900 ---------------------------------------------------------------------- .../ParameterizedNoReferenceMessageFactory.java | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/842c4ad5/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedNoReferenceMessageFactory.java ---------------------------------------------------------------------- diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedNoReferenceMessageFactory.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedNoReferenceMessageFactory.java index 413227e..3ffef91 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedNoReferenceMessageFactory.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedNoReferenceMessageFactory.java @@ -19,8 +19,8 @@ package org.apache.logging.log4j.message; import org.apache.logging.log4j.status.StatusLogger; /** - * Specialized {@link ParameterizedMessageFactory} that creates {@link ParameterizedMessage} objects that do not retain - * a reference to the parameter object. + * Specialized {@link ParameterizedMessageFactory} that creates {@link SimpleMessage} objects that do not retain a + * reference to the parameter object. * <p> * Intended for use by the {@link StatusLogger}: this logger retains a queue of recently logged messages in memory, * causing memory leaks in web applications. (LOG4J2-1176) @@ -39,7 +39,7 @@ public final class ParameterizedNoReferenceMessageFactory extends AbstractMessag private static final long serialVersionUID = 1L; /** - * Creates {@link ParameterizedMessage} instances. + * Creates {@link SimpleMessage} instances containing the formatted parameterized message string. * * @param message The message pattern. * @param params The message parameters. @@ -50,12 +50,9 @@ public final class ParameterizedNoReferenceMessageFactory extends AbstractMessag @Override public Message newMessage(final String message, final Object... params) { if (params == null) { - return new ParameterizedMessage(message, null); + return new SimpleMessage(message); } - String[] stringParams = new String[params.length]; - for (int i = 0; i < stringParams.length; i++) { - stringParams[i] = String.valueOf(params[i]); - } - return new ParameterizedMessage(message, stringParams); + final String formatted = new ParameterizedMessage(message, params).getFormattedMessage(); + return new SimpleMessage(formatted); } }
