This code needs comments to warn against future changes. Gary ---------- Forwarded message ---------- From: <[email protected]> Date: Nov 5, 2016 11:59 PM Subject: logging-log4j2 git commit: LOG4J2-1665 make IntegerPatternConverter garbage-free To: <[email protected]> Cc:
Repository: logging-log4j2 Updated Branches: refs/heads/master e0058d672 -> 84e16b884 LOG4J2-1665 make IntegerPatternConverter garbage-free Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/ commit/84e16b88 Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/84e16b88 Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/84e16b88 Branch: refs/heads/master Commit: 84e16b8843f32c124f623ffdec8a68e20cc5483a Parents: e0058d6 Author: rpopma <[email protected]> Authored: Sun Nov 6 15:59:00 2016 +0900 Committer: rpopma <[email protected]> Committed: Sun Nov 6 15:59:00 2016 +0900 ---------------------------------------------------------------------- .../log4j/core/pattern/IntegerPatternConverter.java | 16 +++++++--------- src/changes/changes.xml | 3 +++ 2 files changed, 10 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ 84e16b88/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/ IntegerPatternConverter.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/IntegerPatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/ IntegerPatternConverter.java index 5380d45..9e6d419 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/ IntegerPatternConverter.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/ IntegerPatternConverter.java @@ -20,14 +20,13 @@ import java.util.Date; import org.apache.logging.log4j.core.config.plugins.Plugin; - /** * Formats an integer. */ @Plugin(name = "IntegerPatternConverter", category = "FileConverter") @ConverterKeys({ "i", "index" }) public final class IntegerPatternConverter extends AbstractPatternConverter implements ArrayPatternConverter { - + /** * Singleton. */ @@ -46,16 +45,15 @@ public final class IntegerPatternConverter extends AbstractPatternConverter impl * @param options options, may be null. * @return instance of pattern converter. */ - public static IntegerPatternConverter newInstance( - final String[] options) { + public static IntegerPatternConverter newInstance(final String[] options) { return INSTANCE; } @Override public void format(final StringBuilder toAppendTo, final Object... objects) { - for (final Object obj : objects) { - if (obj instanceof Integer) { - format(obj, toAppendTo); + for (int i = 0; i < objects.length; i++) { + if (objects[i] instanceof Integer) { + format(objects[i], toAppendTo); break; } } @@ -67,9 +65,9 @@ public final class IntegerPatternConverter extends AbstractPatternConverter impl @Override public void format(final Object obj, final StringBuilder toAppendTo) { if (obj instanceof Integer) { - toAppendTo.append(obj.toString()); + toAppendTo.append(((Integer) obj).intValue()); } else if (obj instanceof Date) { - toAppendTo.append(Long.toString(((Date) obj).getTime())); + toAppendTo.append(((Date) obj).getTime()); } } } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/ 84e16b88/src/changes/changes.xml ---------------------------------------------------------------------- diff --git a/src/changes/changes.xml b/src/changes/changes.xml index a204389..1925175 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -24,6 +24,9 @@ </properties> <body> <release version="2.8" date="2016-MM-DD" description="GA Release 2.8"> + <action issue="LOG4J2-1665" dev="rpopma" type="fix"> + (GC) Avoid allocating temporary objects in IntegerPatternConverter. + </action> <action issue="LOG4J2-1637" dev="rpopma" type="fix"> Fixed problems when used in OSGi containers (IllegalAccessError, NoClassDefFoundError). </action>
