Refactor StringBuilder ThreadLocal condtruction for reuse. Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/8ec15963 Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/8ec15963 Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/8ec15963
Branch: refs/heads/master Commit: 8ec15963974bc227ee52cb012f7bc6a9437544ed Parents: 84974dc Author: ggregory <[email protected]> Authored: Tue Sep 22 00:42:14 2015 -0700 Committer: ggregory <[email protected]> Committed: Tue Sep 22 00:42:14 2015 -0700 ---------------------------------------------------------------------- .../logging/log4j/core/layout/AbstractStringLayout.java | 9 +++++++++ .../org/apache/logging/log4j/core/layout/PatternLayout.java | 7 +------ 2 files changed, 10 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/8ec15963/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractStringLayout.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractStringLayout.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractStringLayout.java index 82225b5..395d717 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractStringLayout.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractStringLayout.java @@ -45,6 +45,15 @@ public abstract class AbstractStringLayout extends AbstractLayout<String> { return null; } + protected static ThreadLocal<StringBuilder> newStringBuilderThreadLocal() { + return new ThreadLocal<StringBuilder>() { + @Override + protected StringBuilder initialValue() { + return new StringBuilder(DEFAULT_STRING_BUILDER_SIZE); + } + }; + } + /** * The charset for the formatted message. */ http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/8ec15963/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternLayout.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternLayout.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternLayout.java index e9674f5..e0f8fad 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternLayout.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternLayout.java @@ -86,12 +86,7 @@ public final class PatternLayout extends AbstractStringLayout { */ private final PatternFormatter[] formatters; - private static ThreadLocal<StringBuilder> strBuilder = new ThreadLocal<StringBuilder>() { - @Override - protected StringBuilder initialValue() { - return new StringBuilder(DEFAULT_STRING_BUILDER_SIZE); - } - }; + private static ThreadLocal<StringBuilder> strBuilder = newStringBuilderThreadLocal(); /** * Conversion pattern.
