class java.lang.StringCoding
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: java.lang.StringCoding
super_class: java.lang.Object
{
private static java.lang.ThreadLocal decoder;
descriptor: Ljava/lang/ThreadLocal;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static java.lang.ThreadLocal encoder;
descriptor: Ljava/lang/ThreadLocal;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static boolean warnUnsupportedCharset;
descriptor: Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new java.lang.ThreadLocal
dup
invokespecial java.lang.ThreadLocal.<init>:()V
putstatic java.lang.StringCoding.decoder:Ljava/lang/ThreadLocal;
1: new java.lang.ThreadLocal
dup
invokespecial java.lang.ThreadLocal.<init>:()V
putstatic java.lang.StringCoding.encoder:Ljava/lang/ThreadLocal;
2: iconst_1
putstatic java.lang.StringCoding.warnUnsupportedCharset:Z
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/StringCoding;
private static java.lang.Object deref(java.lang.ThreadLocal);
descriptor: (Ljava/lang/ThreadLocal;)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast java.lang.ref.SoftReference
astore 1
start local 1 1: aload 1
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: java.lang.ref.SoftReference
StackMap stack:
aload 1
invokevirtual java.lang.ref.SoftReference.get:()Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 tl Ljava/lang/ThreadLocal;
1 4 1 sr Ljava/lang/ref/SoftReference;
MethodParameters:
Name Flags
tl
private static void set(java.lang.ThreadLocal, java.lang.Object);
descriptor: (Ljava/lang/ThreadLocal;Ljava/lang/Object;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new java.lang.ref.SoftReference
dup
aload 1
invokespecial java.lang.ref.SoftReference.<init>:(Ljava/lang/Object;)V
invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 tl Ljava/lang/ThreadLocal;
0 2 1 ob Ljava/lang/Object;
MethodParameters:
Name Flags
tl
ob
private static byte[] safeTrim(byte[], int, java.nio.charset.Charset);
descriptor: ([BILjava/nio/charset/Charset;)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 1
aload 0
arraylength
if_icmpne 4
1: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
ifnull 3
2: aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getClassLoader0:()Ljava/lang/ClassLoader;
ifnonnull 4
3: StackMap locals:
StackMap stack:
aload 0
areturn
4: StackMap locals:
StackMap stack:
aload 0
iload 1
invokestatic java.util.Arrays.copyOf:([BI)[B
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 ba [B
0 5 1 len I
0 5 2 cs Ljava/nio/charset/Charset;
MethodParameters:
Name Flags
ba
len
cs
private static char[] safeTrim(char[], int, java.nio.charset.Charset);
descriptor: ([CILjava/nio/charset/Charset;)[C
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 1
aload 0
arraylength
if_icmpne 4
1: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
ifnull 3
2: aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getClassLoader0:()Ljava/lang/ClassLoader;
ifnonnull 4
3: StackMap locals:
StackMap stack:
aload 0
areturn
4: StackMap locals:
StackMap stack:
aload 0
iload 1
invokestatic java.util.Arrays.copyOf:([CI)[C
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 ca [C
0 5 1 len I
0 5 2 cs Ljava/nio/charset/Charset;
MethodParameters:
Name Flags
ca
len
cs
private static int scale(int, float);
descriptor: (IF)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: iload 0
i2d
fload 1
f2d
dmul
d2i
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 len I
0 1 1 expansionFactor F
MethodParameters:
Name Flags
len
expansionFactor
private static java.nio.charset.Charset lookupCharset(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/nio/charset/Charset;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokestatic java.nio.charset.Charset.isSupported:(Ljava/lang/String;)Z
ifeq 5
1: aload 0
invokestatic java.nio.charset.Charset.forName:(Ljava/lang/String;)Ljava/nio/charset/Charset;
2: areturn
3: StackMap locals:
StackMap stack: java.nio.charset.UnsupportedCharsetException
astore 1
start local 1 4: new java.lang.Error
dup
aload 1
invokespecial java.lang.Error.<init>:(Ljava/lang/Throwable;)V
athrow
end local 1 5: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 csn Ljava/lang/String;
4 5 1 x Ljava/nio/charset/UnsupportedCharsetException;
Exception table:
from to target type
1 2 3 Class java.nio.charset.UnsupportedCharsetException
MethodParameters:
Name Flags
csn
private static void warnUnsupportedCharset(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic java.lang.StringCoding.warnUnsupportedCharset:Z
ifeq 5
1: new java.lang.StringBuilder
dup
ldc "WARNING: Default charset "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: ldc " not supported, using ISO-8859-1 instead"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
3: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.misc.MessageUtils.err:(Ljava/lang/String;)V
4: iconst_0
putstatic java.lang.StringCoding.warnUnsupportedCharset:Z
5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 csn Ljava/lang/String;
MethodParameters:
Name Flags
csn
static char[] decode(java.lang.String, byte[], int, int);
descriptor: (Ljava/lang/String;[BII)[C
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic java.lang.StringCoding.decoder:Ljava/lang/ThreadLocal;
invokestatic java.lang.StringCoding.deref:(Ljava/lang/ThreadLocal;)Ljava/lang/Object;
checkcast java.lang.StringCoding$StringDecoder
astore 4
start local 4 1: aload 0
ifnonnull 2
ldc "ISO-8859-1"
goto 3
StackMap locals: java.lang.StringCoding$StringDecoder
StackMap stack:
2: aload 0
StackMap locals:
StackMap stack: java.lang.String
3: astore 5
start local 5 4: aload 4
ifnull 6
aload 5
aload 4
invokevirtual java.lang.StringCoding$StringDecoder.requestedCharsetName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 15
5: aload 5
aload 4
invokevirtual java.lang.StringCoding$StringDecoder.charsetName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 15
6: StackMap locals: java.lang.String
StackMap stack:
aconst_null
astore 4
7: aload 5
invokestatic java.lang.StringCoding.lookupCharset:(Ljava/lang/String;)Ljava/nio/charset/Charset;
astore 6
start local 6 8: aload 6
ifnull 12
9: new java.lang.StringCoding$StringDecoder
dup
aload 6
aload 5
invokespecial java.lang.StringCoding$StringDecoder.<init>:(Ljava/nio/charset/Charset;Ljava/lang/String;)V
astore 4
end local 6 10: goto 12
StackMap locals:
StackMap stack: java.nio.charset.IllegalCharsetNameException
11: pop
12: StackMap locals:
StackMap stack:
aload 4
ifnonnull 14
13: new java.io.UnsupportedEncodingException
dup
aload 5
invokespecial java.io.UnsupportedEncodingException.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals:
StackMap stack:
getstatic java.lang.StringCoding.decoder:Ljava/lang/ThreadLocal;
aload 4
invokestatic java.lang.StringCoding.set:(Ljava/lang/ThreadLocal;Ljava/lang/Object;)V
15: StackMap locals:
StackMap stack:
aload 4
aload 1
iload 2
iload 3
invokevirtual java.lang.StringCoding$StringDecoder.decode:([BII)[C
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 charsetName Ljava/lang/String;
0 16 1 ba [B
0 16 2 off I
0 16 3 len I
1 16 4 sd Ljava/lang/StringCoding$StringDecoder;
4 16 5 csn Ljava/lang/String;
8 10 6 cs Ljava/nio/charset/Charset;
Exception table:
from to target type
7 10 11 Class java.nio.charset.IllegalCharsetNameException
Exceptions:
throws java.io.UnsupportedEncodingException
MethodParameters:
Name Flags
charsetName
ba
off
len
static char[] decode(java.nio.charset.Charset, byte[], int, int);
descriptor: (Ljava/nio/charset/Charset;[BII)[C
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new java.lang.StringCoding$StringDecoder
dup
aload 0
aload 0
invokevirtual java.nio.charset.Charset.name:()Ljava/lang/String;
invokespecial java.lang.StringCoding$StringDecoder.<init>:(Ljava/nio/charset/Charset;Ljava/lang/String;)V
astore 4
start local 4 1: aload 4
aload 1
iload 2
iload 2
iload 3
iadd
invokestatic java.util.Arrays.copyOfRange:([BII)[B
iconst_0
iload 3
invokevirtual java.lang.StringCoding$StringDecoder.decode:([BII)[C
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 cs Ljava/nio/charset/Charset;
0 2 1 ba [B
0 2 2 off I
0 2 3 len I
1 2 4 sd Ljava/lang/StringCoding$StringDecoder;
MethodParameters:
Name Flags
cs
ba
off
len
static char[] decode(byte[], int, int);
descriptor: ([BII)[C
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: invokestatic java.nio.charset.Charset.defaultCharset:()Ljava/nio/charset/Charset;
invokevirtual java.nio.charset.Charset.name:()Ljava/lang/String;
astore 3
start local 3 1: aload 3
aload 0
iload 1
iload 2
invokestatic java.lang.StringCoding.decode:(Ljava/lang/String;[BII)[C
2: areturn
3: StackMap locals: byte[] int int java.lang.String
StackMap stack: java.io.UnsupportedEncodingException
pop
4: aload 3
invokestatic java.lang.StringCoding.warnUnsupportedCharset:(Ljava/lang/String;)V
5: ldc "ISO-8859-1"
aload 0
iload 1
iload 2
invokestatic java.lang.StringCoding.decode:(Ljava/lang/String;[BII)[C
6: areturn
7: StackMap locals:
StackMap stack: java.io.UnsupportedEncodingException
astore 4
start local 4 8: new java.lang.StringBuilder
dup
ldc "ISO-8859-1 charset not available: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
9: aload 4
invokevirtual java.io.UnsupportedEncodingException.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
10: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.misc.MessageUtils.err:(Ljava/lang/String;)V
11: iconst_1
invokestatic java.lang.System.exit:(I)V
12: aconst_null
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 ba [B
0 13 1 off I
0 13 2 len I
1 13 3 csn Ljava/lang/String;
8 13 4 x Ljava/io/UnsupportedEncodingException;
Exception table:
from to target type
1 2 3 Class java.io.UnsupportedEncodingException
5 6 7 Class java.io.UnsupportedEncodingException
MethodParameters:
Name Flags
ba
off
len
static byte[] encode(java.lang.String, char[], int, int);
descriptor: (Ljava/lang/String;[CII)[B
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic java.lang.StringCoding.encoder:Ljava/lang/ThreadLocal;
invokestatic java.lang.StringCoding.deref:(Ljava/lang/ThreadLocal;)Ljava/lang/Object;
checkcast java.lang.StringCoding$StringEncoder
astore 4
start local 4 1: aload 0
ifnonnull 2
ldc "ISO-8859-1"
goto 3
StackMap locals: java.lang.StringCoding$StringEncoder
StackMap stack:
2: aload 0
StackMap locals:
StackMap stack: java.lang.String
3: astore 5
start local 5 4: aload 4
ifnull 6
aload 5
aload 4
invokevirtual java.lang.StringCoding$StringEncoder.requestedCharsetName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 15
5: aload 5
aload 4
invokevirtual java.lang.StringCoding$StringEncoder.charsetName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 15
6: StackMap locals: java.lang.String
StackMap stack:
aconst_null
astore 4
7: aload 5
invokestatic java.lang.StringCoding.lookupCharset:(Ljava/lang/String;)Ljava/nio/charset/Charset;
astore 6
start local 6 8: aload 6
ifnull 12
9: new java.lang.StringCoding$StringEncoder
dup
aload 6
aload 5
invokespecial java.lang.StringCoding$StringEncoder.<init>:(Ljava/nio/charset/Charset;Ljava/lang/String;)V
astore 4
end local 6 10: goto 12
StackMap locals:
StackMap stack: java.nio.charset.IllegalCharsetNameException
11: pop
12: StackMap locals:
StackMap stack:
aload 4
ifnonnull 14
13: new java.io.UnsupportedEncodingException
dup
aload 5
invokespecial java.io.UnsupportedEncodingException.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals:
StackMap stack:
getstatic java.lang.StringCoding.encoder:Ljava/lang/ThreadLocal;
aload 4
invokestatic java.lang.StringCoding.set:(Ljava/lang/ThreadLocal;Ljava/lang/Object;)V
15: StackMap locals:
StackMap stack:
aload 4
aload 1
iload 2
iload 3
invokevirtual java.lang.StringCoding$StringEncoder.encode:([CII)[B
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 charsetName Ljava/lang/String;
0 16 1 ca [C
0 16 2 off I
0 16 3 len I
1 16 4 se Ljava/lang/StringCoding$StringEncoder;
4 16 5 csn Ljava/lang/String;
8 10 6 cs Ljava/nio/charset/Charset;
Exception table:
from to target type
7 10 11 Class java.nio.charset.IllegalCharsetNameException
Exceptions:
throws java.io.UnsupportedEncodingException
MethodParameters:
Name Flags
charsetName
ca
off
len
static byte[] encode(java.nio.charset.Charset, char[], int, int);
descriptor: (Ljava/nio/charset/Charset;[CII)[B
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new java.lang.StringCoding$StringEncoder
dup
aload 0
aload 0
invokevirtual java.nio.charset.Charset.name:()Ljava/lang/String;
invokespecial java.lang.StringCoding$StringEncoder.<init>:(Ljava/nio/charset/Charset;Ljava/lang/String;)V
astore 4
start local 4 1: aload 4
aload 1
iload 2
iload 2
iload 3
iadd
invokestatic java.util.Arrays.copyOfRange:([CII)[C
iconst_0
iload 3
invokevirtual java.lang.StringCoding$StringEncoder.encode:([CII)[B
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 cs Ljava/nio/charset/Charset;
0 2 1 ca [C
0 2 2 off I
0 2 3 len I
1 2 4 se Ljava/lang/StringCoding$StringEncoder;
MethodParameters:
Name Flags
cs
ca
off
len
static byte[] encode(char[], int, int);
descriptor: ([CII)[B
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: invokestatic java.nio.charset.Charset.defaultCharset:()Ljava/nio/charset/Charset;
invokevirtual java.nio.charset.Charset.name:()Ljava/lang/String;
astore 3
start local 3 1: aload 3
aload 0
iload 1
iload 2
invokestatic java.lang.StringCoding.encode:(Ljava/lang/String;[CII)[B
2: areturn
3: StackMap locals: char[] int int java.lang.String
StackMap stack: java.io.UnsupportedEncodingException
pop
4: aload 3
invokestatic java.lang.StringCoding.warnUnsupportedCharset:(Ljava/lang/String;)V
5: ldc "ISO-8859-1"
aload 0
iload 1
iload 2
invokestatic java.lang.StringCoding.encode:(Ljava/lang/String;[CII)[B
6: areturn
7: StackMap locals:
StackMap stack: java.io.UnsupportedEncodingException
astore 4
start local 4 8: new java.lang.StringBuilder
dup
ldc "ISO-8859-1 charset not available: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
9: aload 4
invokevirtual java.io.UnsupportedEncodingException.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
10: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.misc.MessageUtils.err:(Ljava/lang/String;)V
11: iconst_1
invokestatic java.lang.System.exit:(I)V
12: aconst_null
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 ca [C
0 13 1 off I
0 13 2 len I
1 13 3 csn Ljava/lang/String;
8 13 4 x Ljava/io/UnsupportedEncodingException;
Exception table:
from to target type
1 2 3 Class java.io.UnsupportedEncodingException
5 6 7 Class java.io.UnsupportedEncodingException
MethodParameters:
Name Flags
ca
off
len
}
SourceFile: "StringCoding.java"
NestMembers:
java.lang.StringCoding$StringDecoder java.lang.StringCoding$StringEncoder
InnerClasses:
private StringDecoder = java.lang.StringCoding$StringDecoder of java.lang.StringCoding
private StringEncoder = java.lang.StringCoding$StringEncoder of java.lang.StringCoding