Commit 84e16b88 authored by rpopma's avatar rpopma
Browse files

LOG4J2-1665 make IntegerPatternConverter garbage-free

parent e0058d67
Showing with 10 additions and 9 deletions
+10 -9
......@@ -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());
}
}
}
......@@ -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>
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment