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> > >
