The @PerformanceSensitive("allocation") annotation was what we were using
for that.On 6 November 2016 at 08:17, Gary Gregory <[email protected]> wrote: > 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/8 > 4e16b88/log4j-core/src/main/java/org/apache/logging/log4j/co > re/pattern/IntegerPatternConverter.java > ---------------------------------------------------------------------- > diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pat > tern/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/pat > tern/IntegerPatternConverter.java > +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pat > tern/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/8 > 4e16b88/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> > > -- Matt Sicker <[email protected]>
