public class org.apache.logging.log4j.core.layout.StringBuilderEncoder extends java.lang.Object implements org.apache.logging.log4j.core.layout.Encoder
{
private final java.lang.ThreadLocal threadLocal;
private final java.nio.charset.Charset charset;
private final int charBufferSize;
private final int byteBufferSize;
public void <init>(java.nio.charset.Charset)
{
java.nio.charset.Charset v;
int v, v;
org.apache.logging.log4j.core.layout.StringBuilderEncoder v;
v := @this: org.apache.logging.log4j.core.layout.StringBuilderEncoder;
v := @parameter: java.nio.charset.Charset;
v = <org.apache.logging.log4j.core.util.Constants: int ENCODER_CHAR_BUFFER_SIZE>;
v = <org.apache.logging.log4j.core.util.Constants: int ENCODER_BYTE_BUFFER_SIZE>;
specialinvoke v.<org.apache.logging.log4j.core.layout.StringBuilderEncoder: void <init>(java.nio.charset.Charset,int,int)>(v, v, v);
return;
}
public void <init>(java.nio.charset.Charset, int, int)
{
java.lang.ThreadLocal v;
java.nio.charset.Charset v;
int v, v;
java.lang.Object v;
org.apache.logging.log4j.core.layout.StringBuilderEncoder v;
v := @this: org.apache.logging.log4j.core.layout.StringBuilderEncoder;
v := @parameter: java.nio.charset.Charset;
v := @parameter: int;
v := @parameter: int;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.lang.ThreadLocal;
specialinvoke v.<java.lang.ThreadLocal: void <init>()>();
v.<org.apache.logging.log4j.core.layout.StringBuilderEncoder: java.lang.ThreadLocal threadLocal> = v;
v.<org.apache.logging.log4j.core.layout.StringBuilderEncoder: int charBufferSize> = v;
v.<org.apache.logging.log4j.core.layout.StringBuilderEncoder: int byteBufferSize> = v;
v = staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object,java.lang.String)>(v, "charset");
v.<org.apache.logging.log4j.core.layout.StringBuilderEncoder: java.nio.charset.Charset charset> = v;
return;
}
public void encode(java.lang.StringBuilder, org.apache.logging.log4j.core.layout.ByteBufferDestination)
{
java.lang.Object[] v;
org.apache.logging.log4j.core.layout.StringBuilderEncoder v;
java.lang.Exception v;
java.nio.charset.Charset v;
org.apache.logging.log4j.core.layout.ByteBufferDestination v;
java.lang.Object v, v, v;
java.lang.StringBuilder v;
v := @this: org.apache.logging.log4j.core.layout.StringBuilderEncoder;
v := @parameter: java.lang.StringBuilder;
v := @parameter: org.apache.logging.log4j.core.layout.ByteBufferDestination;
label:
v = specialinvoke v.<org.apache.logging.log4j.core.layout.StringBuilderEncoder: java.lang.Object[] getThreadLocalState()>();
v = v[0];
v = v[1];
v = v[2];
staticinvoke <org.apache.logging.log4j.core.layout.TextEncoderHelper: void encodeText(java.nio.charset.CharsetEncoder,java.nio.CharBuffer,java.nio.ByteBuffer,java.lang.StringBuilder,org.apache.logging.log4j.core.layout.ByteBufferDestination)>(v, v, v, v, v);
label:
goto label;
label:
v := @caughtexception;
staticinvoke <org.apache.logging.log4j.core.layout.StringBuilderEncoder: void logEncodeTextException(java.lang.Exception,java.lang.StringBuilder)>(v, v);
v = v.<org.apache.logging.log4j.core.layout.StringBuilderEncoder: java.nio.charset.Charset charset>;
staticinvoke <org.apache.logging.log4j.core.layout.TextEncoderHelper: void encodeTextFallBack(java.nio.charset.Charset,java.lang.StringBuilder,org.apache.logging.log4j.core.layout.ByteBufferDestination)>(v, v, v);
label:
return;
catch java.lang.Exception from label to label with label;
}
private java.lang.Object[] getThreadLocalState()
{
java.lang.Object[] v;
java.nio.ByteBuffer v;
java.nio.charset.Charset v;
java.nio.charset.CodingErrorAction v, v;
int v, v;
java.lang.ThreadLocal v, v;
java.nio.CharBuffer v;
org.apache.logging.log4j.core.layout.StringBuilderEncoder v;
java.nio.charset.CharsetEncoder v, v, v;
java.lang.Object v, v, v, v;
v := @this: org.apache.logging.log4j.core.layout.StringBuilderEncoder;
v = v.<org.apache.logging.log4j.core.layout.StringBuilderEncoder: java.lang.ThreadLocal threadLocal>;
v = virtualinvoke v.<java.lang.ThreadLocal: java.lang.Object get()>();
if v != null goto label;
v = newarray (java.lang.Object)[3];
v = v.<org.apache.logging.log4j.core.layout.StringBuilderEncoder: java.nio.charset.Charset charset>;
v = virtualinvoke v.<java.nio.charset.Charset: java.nio.charset.CharsetEncoder newEncoder()>();
v = <java.nio.charset.CodingErrorAction: java.nio.charset.CodingErrorAction REPLACE>;
v = virtualinvoke v.<java.nio.charset.CharsetEncoder: java.nio.charset.CharsetEncoder onMalformedInput(java.nio.charset.CodingErrorAction)>(v);
v = <java.nio.charset.CodingErrorAction: java.nio.charset.CodingErrorAction REPLACE>;
v = virtualinvoke v.<java.nio.charset.CharsetEncoder: java.nio.charset.CharsetEncoder onUnmappableCharacter(java.nio.charset.CodingErrorAction)>(v);
v[0] = v;
v = v.<org.apache.logging.log4j.core.layout.StringBuilderEncoder: int charBufferSize>;
v = staticinvoke <java.nio.CharBuffer: java.nio.CharBuffer allocate(int)>(v);
v[1] = v;
v = v.<org.apache.logging.log4j.core.layout.StringBuilderEncoder: int byteBufferSize>;
v = staticinvoke <java.nio.ByteBuffer: java.nio.ByteBuffer allocate(int)>(v);
v[2] = v;
v = v;
v = v.<org.apache.logging.log4j.core.layout.StringBuilderEncoder: java.lang.ThreadLocal threadLocal>;
virtualinvoke v.<java.lang.ThreadLocal: void set(java.lang.Object)>(v);
goto label;
label:
v = v[0];
virtualinvoke v.<java.nio.charset.CharsetEncoder: java.nio.charset.CharsetEncoder reset()>();
v = v[1];
virtualinvoke v.<java.nio.CharBuffer: java.nio.CharBuffer clear()>();
v = v[2];
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer clear()>();
label:
return v;
}
private static void logEncodeTextException(java.lang.Exception, java.lang.StringBuilder)
{
org.apache.logging.log4j.status.StatusLogger v;
java.lang.StringBuilder v;
java.lang.Exception v;
v := @parameter: java.lang.Exception;
v := @parameter: java.lang.StringBuilder;
v = staticinvoke <org.apache.logging.log4j.status.StatusLogger: org.apache.logging.log4j.status.StatusLogger getLogger()>();
virtualinvoke v.<org.apache.logging.log4j.status.StatusLogger: void error(java.lang.String,java.lang.Object,java.lang.Object,java.lang.Object)>("Recovering from StringBuilderEncoder.encode(\'{}\') error: {}", v, v, v);
return;
}
}