diff --git a/common/src/main/java/io/netty/util/internal/InternalThreadLocalMap.java b/common/src/main/java/io/netty/util/internal/InternalThreadLocalMap.java index 7d2a71d56e..1b0e4d611b 100644 --- a/common/src/main/java/io/netty/util/internal/InternalThreadLocalMap.java +++ b/common/src/main/java/io/netty/util/internal/InternalThreadLocalMap.java @@ -35,6 +35,7 @@ import java.util.WeakHashMap; */ public final class InternalThreadLocalMap extends UnpaddedInternalThreadLocalMap { + private static final int STRING_BUILDER_MAX_CAPACITY = 1024 << 6; private static final int DEFAULT_ARRAY_LIST_INITIAL_CAPACITY = 8; public static final Object UNSET = new Object(); @@ -164,7 +165,7 @@ public final class InternalThreadLocalMap extends UnpaddedInternalThreadLocalMap public StringBuilder stringBuilder() { StringBuilder builder = stringBuilder; - if (builder == null) { + if (builder == null || builder.capacity() > STRING_BUILDER_MAX_CAPACITY) { stringBuilder = builder = new StringBuilder(512); } else { builder.setLength(0);