Wow, I do not like these cascading if elses but there is no way around it
unless we go through many hoops. Like a map from class to... a closure,
Java 8 or 7.

Gary
---------- Forwarded message ----------
From: <[email protected]>
Date: Jun 18, 2016 8:55 PM
Subject: logging-log4j2 git commit: LOG4J2-1437 ObjectMessage and
ReusableObjectMessage now avoid calling toString() on auto-boxed primitive
parameters
To: <[email protected]>
Cc:

Repository: logging-log4j2
> Updated Branches:
>   refs/heads/master 6eff4fc46 -> b225685f3
>
>
> LOG4J2-1437  ObjectMessage and ReusableObjectMessage now avoid calling
> toString() on auto-boxed primitive parameters
>
>
> Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
> Commit:
> http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/b225685f
> Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/b225685f
> Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/b225685f
>
> Branch: refs/heads/master
> Commit: b225685f30b08229b29a64c91d4e29d06a1724ee
> Parents: 6eff4fc
> Author: rpopma <[email protected]>
> Authored: Sun Jun 19 12:55:22 2016 +0900
> Committer: rpopma <[email protected]>
> Committed: Sun Jun 19 12:55:22 2016 +0900
>
> ----------------------------------------------------------------------
>  .../apache/logging/log4j/message/ObjectMessage.java   | 14 ++++++++++++++
>  .../logging/log4j/message/ReusableObjectMessage.java  | 14 ++++++++++++++
>  src/changes/changes.xml                               |  3 +++
>  3 files changed, 31 insertions(+)
> ----------------------------------------------------------------------
>
>
>
> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/b225685f/log4j-api/src/main/java/org/apache/logging/log4j/message/ObjectMessage.java
> ----------------------------------------------------------------------
> diff --git
> a/log4j-api/src/main/java/org/apache/logging/log4j/message/ObjectMessage.java
> b/log4j-api/src/main/java/org/apache/logging/log4j/message/ObjectMessage.java
> index db8c31b..7ab9a48 100644
> ---
> a/log4j-api/src/main/java/org/apache/logging/log4j/message/ObjectMessage.java
> +++
> b/log4j-api/src/main/java/org/apache/logging/log4j/message/ObjectMessage.java
> @@ -64,6 +64,20 @@ public class ObjectMessage implements Message,
> StringBuilderFormattable {
>              ((StringBuilderFormattable) obj).formatTo(buffer);
>          } else if (obj instanceof CharSequence) {
>              buffer.append((CharSequence) obj);
> +        } else if (obj instanceof Integer) { // LOG4J2-1437 unbox
> auto-boxed primitives to avoid calling toString()
> +            buffer.append(((Integer) obj).intValue());
> +        } else if (obj instanceof Long) {
> +            buffer.append(((Long) obj).longValue());
> +        } else if (obj instanceof Double) {
> +            buffer.append(((Double) obj).doubleValue());
> +        } else if (obj instanceof Boolean) {
> +            buffer.append(((Boolean) obj).booleanValue());
> +        } else if (obj instanceof Character) {
> +            buffer.append(((Character) obj).charValue());
> +        } else if (obj instanceof Short) {
> +            buffer.append(((Short) obj).shortValue());
> +        } else if (obj instanceof Float) {
> +            buffer.append(((Float) obj).floatValue());
>          } else {
>              buffer.append(obj);
>          }
>
>
> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/b225685f/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableObjectMessage.java
> ----------------------------------------------------------------------
> diff --git
> a/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableObjectMessage.java
> b/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableObjectMessage.java
> index 21e9f98..fb3f176 100644
> ---
> a/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableObjectMessage.java
> +++
> b/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableObjectMessage.java
> @@ -52,6 +52,20 @@ public class ReusableObjectMessage implements
> ReusableMessage {
>              ((StringBuilderFormattable) obj).formatTo(buffer);
>          } else if (obj instanceof CharSequence) {
>              buffer.append((CharSequence) obj);
> +        } else if (obj instanceof Integer) { // LOG4J2-1437 unbox
> auto-boxed primitives to avoid calling toString()
> +            buffer.append(((Integer) obj).intValue());
> +        } else if (obj instanceof Long) {
> +            buffer.append(((Long) obj).longValue());
> +        } else if (obj instanceof Double) {
> +            buffer.append(((Double) obj).doubleValue());
> +        } else if (obj instanceof Boolean) {
> +            buffer.append(((Boolean) obj).booleanValue());
> +        } else if (obj instanceof Character) {
> +            buffer.append(((Character) obj).charValue());
> +        } else if (obj instanceof Short) {
> +            buffer.append(((Short) obj).shortValue());
> +        } else if (obj instanceof Float) {
> +            buffer.append(((Float) obj).floatValue());
>          } else {
>              buffer.append(obj);
>          }
>
>
> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/b225685f/src/changes/changes.xml
> ----------------------------------------------------------------------
> diff --git a/src/changes/changes.xml b/src/changes/changes.xml
> index 84ff494..7f5eeaa 100644
> --- a/src/changes/changes.xml
> +++ b/src/changes/changes.xml
> @@ -43,6 +43,9 @@
>        <action issue="LOG4J2-1422" dev="rpopma" type="fix">
>          Fixed issue where AsyncAppenderQueueFullPolicyTest sometimes
> hangs.
>        </action>
> +      <action issue="LOG4J2-1437" dev="rpopma" type="add">
> +        (GC) ObjectMessage and ReusableObjectMessage now avoid calling
> toString() on auto-boxed primitive parameters.
> +      </action>
>        <action issue="LOG4J2-1415" dev="rpopma" type="add">
>          (GC) ParameterFormatter now avoids calling toString() on
> auto-boxed primitive message parameters.
>        </action>
>
>

Reply via email to