public class BufferRecyclers extends Object
BufferRecycler
,
JsonStringEncoder
Modifier and Type | Field and Description |
---|---|
protected static ThreadLocal<SoftReference<JsonStringEncoder>> |
_encoderRef
This
ThreadLocal contains a SoftReference
to a BufferRecycler used to provide a low-cost
buffer recycling between reader and writer instances. |
protected static ThreadLocal<SoftReference<BufferRecycler>> |
_recyclerRef
This
ThreadLocal contains a SoftReference
to a BufferRecycler used to provide a low-cost
buffer recycling between reader and writer instances. |
static String |
SYSTEM_PROPERTY_TRACK_REUSABLE_BUFFERS
System property that is checked to see if recycled buffers (see
BufferRecycler )
should be tracked, for purpose of forcing release of all such buffers, typically
during major classloading. |
Constructor and Description |
---|
BufferRecyclers() |
Modifier and Type | Method and Description |
---|---|
static byte[] |
encodeAsUTF8(String text)
Helper method for encoding given String as UTF-8 encoded
|
static BufferRecycler |
getBufferRecycler()
Main accessor to call for accessing possibly recycled
BufferRecycler instance. |
static JsonStringEncoder |
getJsonStringEncoder() |
static void |
quoteAsJsonText(CharSequence input,
StringBuilder output) |
static char[] |
quoteAsJsonText(String rawText) |
static byte[] |
quoteAsJsonUTF8(String rawText) |
static int |
releaseBuffers()
Specialized method that will release all recycled
BufferRecycler if
(and only if) recycler tracking has been enabled
(see SYSTEM_PROPERTY_TRACK_REUSABLE_BUFFERS ). |
public static final String SYSTEM_PROPERTY_TRACK_REUSABLE_BUFFERS
BufferRecycler
)
should be tracked, for purpose of forcing release of all such buffers, typically
during major classloading.protected static final ThreadLocal<SoftReference<BufferRecycler>> _recyclerRef
ThreadLocal
contains a SoftReference
to a BufferRecycler
used to provide a low-cost
buffer recycling between reader and writer instances.protected static final ThreadLocal<SoftReference<JsonStringEncoder>> _encoderRef
ThreadLocal
contains a SoftReference
to a BufferRecycler
used to provide a low-cost
buffer recycling between reader and writer instances.public static BufferRecycler getBufferRecycler()
BufferRecycler
instance.public static int releaseBuffers()
BufferRecycler
if
(and only if) recycler tracking has been enabled
(see SYSTEM_PROPERTY_TRACK_REUSABLE_BUFFERS
).
This method is usually called on shutdown of the container like Application Server
to ensure that no references are reachable via ThreadLocal
s as this may cause
unintentional retention of sizable amounts of memory. It may also be called regularly
if GC for some reason does not clear up SoftReference
s aggressively enough.public static JsonStringEncoder getJsonStringEncoder()
public static byte[] encodeAsUTF8(String text)
public static char[] quoteAsJsonText(String rawText)
public static void quoteAsJsonText(CharSequence input, StringBuilder output)
public static byte[] quoteAsJsonUTF8(String rawText)
Copyright © 2008–2019 FasterXML. All rights reserved.