public class com.caucho.hessian.io.UnsafeSerializer extends com.caucho.hessian.io.AbstractSerializer
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.caucho.hessian.io.UnsafeSerializer
super_class: com.caucho.hessian.io.AbstractSerializer
{
private static final java.util.logging.Logger log;
descriptor: Ljava/util/logging/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static boolean _isEnabled;
descriptor: Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static final sun.misc.Unsafe _unsafe;
descriptor: Lsun/misc/Unsafe;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.WeakHashMap<java.lang.Class<?>, java.lang.ref.SoftReference<com.caucho.hessian.io.UnsafeSerializer>> _serializerMap;
descriptor: Ljava/util/WeakHashMap;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/WeakHashMap<Ljava/lang/Class<*>;Ljava/lang/ref/SoftReference<Lcom/caucho/hessian/io/UnsafeSerializer;>;>;
private java.lang.reflect.Field[] _fields;
descriptor: [Ljava/lang/reflect/Field;
flags: (0x0002) ACC_PRIVATE
private com.caucho.hessian.io.UnsafeSerializer$FieldSerializer[] _fieldSerializers;
descriptor: [Lcom/caucho/hessian/io/UnsafeSerializer$FieldSerializer;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=8, args_size=0
0: ldc Lcom/caucho/hessian/io/UnsafeSerializer;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
1: putstatic com.caucho.hessian.io.UnsafeSerializer.log:Ljava/util/logging/Logger;
2: new java.util.WeakHashMap
dup
invokespecial java.util.WeakHashMap.<init>:()V
3: putstatic com.caucho.hessian.io.UnsafeSerializer._serializerMap:Ljava/util/WeakHashMap;
4: iconst_0
istore 0
start local 0 5: aconst_null
astore 1
start local 1 6: ldc "sun.misc.Unsafe"
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
astore 2
start local 2 7: aconst_null
astore 3
start local 3 8: aload 2
invokevirtual java.lang.Class.getDeclaredFields:()[Ljava/lang/reflect/Field;
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 13
StackMap locals: int sun.misc.Unsafe java.lang.Class java.lang.reflect.Field top int int java.lang.reflect.Field[]
StackMap stack:
9: aload 7
iload 5
aaload
astore 4
start local 4 10: aload 4
invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
ldc "theUnsafe"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 12
11: aload 4
astore 3
end local 4 12: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
13: iload 5
iload 6
if_icmplt 9
14: aload 3
ifnull 17
15: aload 3
iconst_1
invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
16: aload 3
aconst_null
invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.misc.Unsafe
astore 1
17: StackMap locals: int sun.misc.Unsafe java.lang.Class java.lang.reflect.Field
StackMap stack:
aload 1
ifnull 18
iconst_1
goto 19
StackMap locals:
StackMap stack:
18: iconst_0
StackMap locals:
StackMap stack: int
19: istore 0
20: ldc "com.caucho.hessian.unsafe"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 21: ldc "false"
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 26
22: iconst_0
istore 0
end local 4 end local 3 end local 2 23: goto 26
StackMap locals: int sun.misc.Unsafe
StackMap stack: java.lang.Throwable
24: astore 2
start local 2 25: getstatic com.caucho.hessian.io.UnsafeSerializer.log:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.ALL:Ljava/util/logging/Level;
aload 2
invokevirtual java.lang.Throwable.toString:()Ljava/lang/String;
aload 2
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
end local 2 26: StackMap locals:
StackMap stack:
aload 1
putstatic com.caucho.hessian.io.UnsafeSerializer._unsafe:Lsun/misc/Unsafe;
27: iload 0
putstatic com.caucho.hessian.io.UnsafeSerializer._isEnabled:Z
end local 1 end local 0 28: return
LocalVariableTable:
Start End Slot Name Signature
5 28 0 isEnabled Z
6 28 1 unsafe Lsun/misc/Unsafe;
7 23 2 unsafeClass Ljava/lang/Class<*>;
8 23 3 theUnsafe Ljava/lang/reflect/Field;
10 12 4 field Ljava/lang/reflect/Field;
21 23 4 unsafeProp Ljava/lang/String;
25 26 2 e Ljava/lang/Throwable;
Exception table:
from to target type
6 23 24 Class java.lang.Throwable
public static boolean isEnabled();
descriptor: ()Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic com.caucho.hessian.io.UnsafeSerializer._isEnabled:Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial com.caucho.hessian.io.AbstractSerializer.<init>:()V
1: aload 0
aload 1
invokevirtual com.caucho.hessian.io.UnsafeSerializer.introspect:(Ljava/lang/Class;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/caucho/hessian/io/UnsafeSerializer;
0 3 1 cl Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
cl
public static com.caucho.hessian.io.UnsafeSerializer create(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Lcom/caucho/hessian/io/UnsafeSerializer;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: getstatic com.caucho.hessian.io.UnsafeSerializer._serializerMap:Ljava/util/WeakHashMap;
dup
astore 1
monitorenter
1: getstatic com.caucho.hessian.io.UnsafeSerializer._serializerMap:Ljava/util/WeakHashMap;
aload 0
invokevirtual java.util.WeakHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.ref.SoftReference
2: astore 2
start local 2 3: aload 2
ifnull 4
aload 2
invokevirtual java.lang.ref.SoftReference.get:()Ljava/lang/Object;
checkcast com.caucho.hessian.io.UnsafeSerializer
goto 5
StackMap locals: java.util.WeakHashMap java.lang.ref.SoftReference
StackMap stack:
4: aconst_null
StackMap locals:
StackMap stack: com.caucho.hessian.io.UnsafeSerializer
5: astore 3
start local 3 6: aload 3
ifnonnull 12
7: aload 0
ldc Lcom/caucho/hessian/HessianUnshared;
invokevirtual java.lang.Class.isAnnotationPresent:(Ljava/lang/Class;)Z
ifeq 9
8: new com.caucho.hessian.io.UnsafeUnsharedSerializer
dup
aload 0
invokespecial com.caucho.hessian.io.UnsafeUnsharedSerializer.<init>:(Ljava/lang/Class;)V
astore 3
goto 10
9: StackMap locals: com.caucho.hessian.io.UnsafeSerializer
StackMap stack:
new com.caucho.hessian.io.UnsafeSerializer
dup
aload 0
invokespecial com.caucho.hessian.io.UnsafeSerializer.<init>:(Ljava/lang/Class;)V
astore 3
10: StackMap locals:
StackMap stack:
new java.lang.ref.SoftReference
dup
aload 3
invokespecial java.lang.ref.SoftReference.<init>:(Ljava/lang/Object;)V
astore 2
11: getstatic com.caucho.hessian.io.UnsafeSerializer._serializerMap:Ljava/util/WeakHashMap;
aload 0
aload 2
invokevirtual java.util.WeakHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
12: StackMap locals:
StackMap stack:
aload 3
aload 1
monitorexit
13: areturn
end local 3 end local 2 14: StackMap locals: java.lang.Class java.util.WeakHashMap
StackMap stack: java.lang.Throwable
aload 1
monitorexit
15: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 cl Ljava/lang/Class<*>;
3 14 2 baseRef Ljava/lang/ref/SoftReference<Lcom/caucho/hessian/io/UnsafeSerializer;>;
6 14 3 base Lcom/caucho/hessian/io/UnsafeSerializer;
Exception table:
from to target type
1 13 14 any
14 15 14 any
Signature: (Ljava/lang/Class<*>;)Lcom/caucho/hessian/io/UnsafeSerializer;
MethodParameters:
Name Flags
cl
protected void introspect(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 2: goto 19
3: StackMap locals: java.util.ArrayList java.util.ArrayList
StackMap stack:
aload 1
invokevirtual java.lang.Class.getDeclaredFields:()[Ljava/lang/reflect/Field;
astore 4
start local 4 4: iconst_0
istore 5
start local 5 5: goto 17
6: StackMap locals: java.lang.reflect.Field[] int
StackMap stack:
aload 4
iload 5
aaload
astore 6
start local 6 7: aload 6
invokevirtual java.lang.reflect.Field.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isTransient:(I)Z
ifne 16
8: aload 6
invokevirtual java.lang.reflect.Field.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
ifeq 10
9: goto 16
10: StackMap locals: java.lang.reflect.Field
StackMap stack:
aload 6
invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
invokevirtual java.lang.Class.isPrimitive:()Z
ifne 13
11: aload 6
invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
ldc "java.lang."
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 15
12: aload 6
invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
ldc Ljava/lang/Object;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 15
13: StackMap locals:
StackMap stack:
aload 2
aload 6
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
14: goto 16
15: StackMap locals:
StackMap stack:
aload 3
aload 6
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 6 16: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
17: iload 5
aload 4
arraylength
if_icmplt 6
end local 5 end local 4 18: aload 1
invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
astore 1
StackMap locals:
StackMap stack:
19: aload 1
ifnonnull 3
20: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 4
start local 4 21: aload 4
aload 2
invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
pop
22: aload 4
aload 3
invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
pop
23: aload 0
aload 4
invokevirtual java.util.ArrayList.size:()I
anewarray java.lang.reflect.Field
putfield com.caucho.hessian.io.UnsafeSerializer._fields:[Ljava/lang/reflect/Field;
24: aload 4
aload 0
getfield com.caucho.hessian.io.UnsafeSerializer._fields:[Ljava/lang/reflect/Field;
invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
pop
25: aload 0
aload 0
getfield com.caucho.hessian.io.UnsafeSerializer._fields:[Ljava/lang/reflect/Field;
arraylength
anewarray com.caucho.hessian.io.UnsafeSerializer$FieldSerializer
putfield com.caucho.hessian.io.UnsafeSerializer._fieldSerializers:[Lcom/caucho/hessian/io/UnsafeSerializer$FieldSerializer;
26: iconst_0
istore 5
start local 5 27: goto 30
28: StackMap locals: java.util.ArrayList int
StackMap stack:
aload 0
getfield com.caucho.hessian.io.UnsafeSerializer._fieldSerializers:[Lcom/caucho/hessian/io/UnsafeSerializer$FieldSerializer;
iload 5
aload 0
getfield com.caucho.hessian.io.UnsafeSerializer._fields:[Ljava/lang/reflect/Field;
iload 5
aaload
invokestatic com.caucho.hessian.io.UnsafeSerializer.getFieldSerializer:(Ljava/lang/reflect/Field;)Lcom/caucho/hessian/io/UnsafeSerializer$FieldSerializer;
aastore
29: iinc 5 1
StackMap locals:
StackMap stack:
30: iload 5
aload 0
getfield com.caucho.hessian.io.UnsafeSerializer._fields:[Ljava/lang/reflect/Field;
arraylength
if_icmplt 28
end local 5 31: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lcom/caucho/hessian/io/UnsafeSerializer;
0 32 1 cl Ljava/lang/Class<*>;
1 32 2 primitiveFields Ljava/util/ArrayList<Ljava/lang/reflect/Field;>;
2 32 3 compoundFields Ljava/util/ArrayList<Ljava/lang/reflect/Field;>;
4 18 4 fields [Ljava/lang/reflect/Field;
5 18 5 i I
7 16 6 field Ljava/lang/reflect/Field;
21 32 4 fields Ljava/util/ArrayList<Ljava/lang/reflect/Field;>;
27 31 5 i I
Signature: (Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
cl
public void writeObject(java.lang.Object, com.caucho.hessian.io.AbstractHessianOutput);
descriptor: (Ljava/lang/Object;Lcom/caucho/hessian/io/AbstractHessianOutput;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
aload 1
invokevirtual com.caucho.hessian.io.AbstractHessianOutput.addRef:(Ljava/lang/Object;)Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
astore 3
start local 3 3: aload 2
aload 3
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual com.caucho.hessian.io.AbstractHessianOutput.writeObjectBegin:(Ljava/lang/String;)I
istore 4
start local 4 4: iload 4
iflt 7
5: aload 0
aload 1
aload 2
invokevirtual com.caucho.hessian.io.UnsafeSerializer.writeInstance:(Ljava/lang/Object;Lcom/caucho/hessian/io/AbstractHessianOutput;)V
6: goto 13
7: StackMap locals: java.lang.Class int
StackMap stack:
iload 4
iconst_m1
if_icmpne 12
8: aload 0
aload 2
invokevirtual com.caucho.hessian.io.UnsafeSerializer.writeDefinition20:(Lcom/caucho/hessian/io/AbstractHessianOutput;)V
9: aload 2
aload 3
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual com.caucho.hessian.io.AbstractHessianOutput.writeObjectBegin:(Ljava/lang/String;)I
pop
10: aload 0
aload 1
aload 2
invokevirtual com.caucho.hessian.io.UnsafeSerializer.writeInstance:(Ljava/lang/Object;Lcom/caucho/hessian/io/AbstractHessianOutput;)V
11: goto 13
12: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual com.caucho.hessian.io.UnsafeSerializer.writeObject10:(Ljava/lang/Object;Lcom/caucho/hessian/io/AbstractHessianOutput;)V
13: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/caucho/hessian/io/UnsafeSerializer;
0 14 1 obj Ljava/lang/Object;
0 14 2 out Lcom/caucho/hessian/io/AbstractHessianOutput;
3 14 3 cl Ljava/lang/Class<*>;
4 14 4 ref I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
obj
out
protected void writeObject10(java.lang.Object, com.caucho.hessian.io.AbstractHessianOutput);
descriptor: (Ljava/lang/Object;Lcom/caucho/hessian/io/AbstractHessianOutput;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: goto 6
2: StackMap locals: int
StackMap stack:
aload 0
getfield com.caucho.hessian.io.UnsafeSerializer._fields:[Ljava/lang/reflect/Field;
iload 3
aaload
astore 4
start local 4 3: aload 2
aload 4
invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
invokevirtual com.caucho.hessian.io.AbstractHessianOutput.writeString:(Ljava/lang/String;)V
4: aload 0
getfield com.caucho.hessian.io.UnsafeSerializer._fieldSerializers:[Lcom/caucho/hessian/io/UnsafeSerializer$FieldSerializer;
iload 3
aaload
aload 2
aload 1
invokevirtual com.caucho.hessian.io.UnsafeSerializer$FieldSerializer.serialize:(Lcom/caucho/hessian/io/AbstractHessianOutput;Ljava/lang/Object;)V
end local 4 5: iinc 3 1
StackMap locals:
StackMap stack:
6: iload 3
aload 0
getfield com.caucho.hessian.io.UnsafeSerializer._fields:[Ljava/lang/reflect/Field;
arraylength
if_icmplt 2
end local 3 7: aload 2
invokevirtual com.caucho.hessian.io.AbstractHessianOutput.writeMapEnd:()V
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/caucho/hessian/io/UnsafeSerializer;
0 9 1 obj Ljava/lang/Object;
0 9 2 out Lcom/caucho/hessian/io/AbstractHessianOutput;
1 7 3 i I
3 5 4 field Ljava/lang/reflect/Field;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
obj
out
private void writeDefinition20(com.caucho.hessian.io.AbstractHessianOutput);
descriptor: (Lcom/caucho/hessian/io/AbstractHessianOutput;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield com.caucho.hessian.io.UnsafeSerializer._fields:[Ljava/lang/reflect/Field;
arraylength
invokevirtual com.caucho.hessian.io.AbstractHessianOutput.writeClassFieldLength:(I)V
1: iconst_0
istore 2
start local 2 2: goto 6
3: StackMap locals: int
StackMap stack:
aload 0
getfield com.caucho.hessian.io.UnsafeSerializer._fields:[Ljava/lang/reflect/Field;
iload 2
aaload
astore 3
start local 3 4: aload 1
aload 3
invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
invokevirtual com.caucho.hessian.io.AbstractHessianOutput.writeString:(Ljava/lang/String;)V
end local 3 5: iinc 2 1
StackMap locals:
StackMap stack:
6: iload 2
aload 0
getfield com.caucho.hessian.io.UnsafeSerializer._fields:[Ljava/lang/reflect/Field;
arraylength
if_icmplt 3
end local 2 7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/caucho/hessian/io/UnsafeSerializer;
0 8 1 out Lcom/caucho/hessian/io/AbstractHessianOutput;
2 7 2 i I
4 5 3 field Ljava/lang/reflect/Field;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
out
public final void writeInstance(java.lang.Object, com.caucho.hessian.io.AbstractHessianOutput);
descriptor: (Ljava/lang/Object;Lcom/caucho/hessian/io/AbstractHessianOutput;)V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.caucho.hessian.io.UnsafeSerializer._fieldSerializers:[Lcom/caucho/hessian/io/UnsafeSerializer$FieldSerializer;
astore 3
start local 3 1: aload 3
arraylength
istore 4
start local 4 2: iconst_0
istore 5
start local 5 3: goto 6
4: StackMap locals: com.caucho.hessian.io.UnsafeSerializer$FieldSerializer[] int int
StackMap stack:
aload 3
iload 5
aaload
aload 2
aload 1
invokevirtual com.caucho.hessian.io.UnsafeSerializer$FieldSerializer.serialize:(Lcom/caucho/hessian/io/AbstractHessianOutput;Ljava/lang/Object;)V
5: iinc 5 1
StackMap locals:
StackMap stack:
6: iload 5
iload 4
if_icmplt 4
end local 5 end local 4 end local 3 7: goto 20
StackMap locals: com.caucho.hessian.io.UnsafeSerializer java.lang.Object com.caucho.hessian.io.AbstractHessianOutput
StackMap stack: java.lang.RuntimeException
8: astore 3
start local 3 9: new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
aload 3
invokevirtual java.lang.RuntimeException.getMessage:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "\n class: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
10: aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
11: ldc " (object="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
12: aload 3
13: invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 14: StackMap locals:
StackMap stack: java.io.IOException
astore 3
start local 3 15: new com.caucho.hessian.io.IOExceptionWrapper
dup
new java.lang.StringBuilder
dup
aload 3
invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "\n class: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
16: aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
17: ldc " (object="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
18: aload 3
19: invokespecial com.caucho.hessian.io.IOExceptionWrapper.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 20: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lcom/caucho/hessian/io/UnsafeSerializer;
0 21 1 obj Ljava/lang/Object;
0 21 2 out Lcom/caucho/hessian/io/AbstractHessianOutput;
1 7 3 fieldSerializers [Lcom/caucho/hessian/io/UnsafeSerializer$FieldSerializer;
2 7 4 length I
3 7 5 i I
9 14 3 e Ljava/lang/RuntimeException;
15 20 3 e Ljava/io/IOException;
Exception table:
from to target type
0 7 8 Class java.lang.RuntimeException
0 7 14 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
obj
out
private static com.caucho.hessian.io.UnsafeSerializer$FieldSerializer getFieldSerializer(java.lang.reflect.Field);
descriptor: (Ljava/lang/reflect/Field;)Lcom/caucho/hessian/io/UnsafeSerializer$FieldSerializer;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
astore 1
start local 1 1: getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
aload 1
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 3
2: new com.caucho.hessian.io.UnsafeSerializer$BooleanFieldSerializer
dup
aload 0
invokespecial com.caucho.hessian.io.UnsafeSerializer$BooleanFieldSerializer.<init>:(Ljava/lang/reflect/Field;)V
areturn
3: StackMap locals: java.lang.Class
StackMap stack:
getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
aload 1
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 5
4: new com.caucho.hessian.io.UnsafeSerializer$ByteFieldSerializer
dup
aload 0
invokespecial com.caucho.hessian.io.UnsafeSerializer$ByteFieldSerializer.<init>:(Ljava/lang/reflect/Field;)V
areturn
5: StackMap locals:
StackMap stack:
getstatic java.lang.Character.TYPE:Ljava/lang/Class;
aload 1
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 7
6: new com.caucho.hessian.io.UnsafeSerializer$CharFieldSerializer
dup
aload 0
invokespecial com.caucho.hessian.io.UnsafeSerializer$CharFieldSerializer.<init>:(Ljava/lang/reflect/Field;)V
areturn
7: StackMap locals:
StackMap stack:
getstatic java.lang.Short.TYPE:Ljava/lang/Class;
aload 1
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 9
8: new com.caucho.hessian.io.UnsafeSerializer$ShortFieldSerializer
dup
aload 0
invokespecial com.caucho.hessian.io.UnsafeSerializer$ShortFieldSerializer.<init>:(Ljava/lang/reflect/Field;)V
areturn
9: StackMap locals:
StackMap stack:
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aload 1
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 11
10: new com.caucho.hessian.io.UnsafeSerializer$IntFieldSerializer
dup
aload 0
invokespecial com.caucho.hessian.io.UnsafeSerializer$IntFieldSerializer.<init>:(Ljava/lang/reflect/Field;)V
areturn
11: StackMap locals:
StackMap stack:
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aload 1
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 13
12: new com.caucho.hessian.io.UnsafeSerializer$LongFieldSerializer
dup
aload 0
invokespecial com.caucho.hessian.io.UnsafeSerializer$LongFieldSerializer.<init>:(Ljava/lang/reflect/Field;)V
areturn
13: StackMap locals:
StackMap stack:
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
aload 1
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 15
14: new com.caucho.hessian.io.UnsafeSerializer$DoubleFieldSerializer
dup
aload 0
invokespecial com.caucho.hessian.io.UnsafeSerializer$DoubleFieldSerializer.<init>:(Ljava/lang/reflect/Field;)V
areturn
15: StackMap locals:
StackMap stack:
getstatic java.lang.Float.TYPE:Ljava/lang/Class;
aload 1
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 17
16: new com.caucho.hessian.io.UnsafeSerializer$FloatFieldSerializer
dup
aload 0
invokespecial com.caucho.hessian.io.UnsafeSerializer$FloatFieldSerializer.<init>:(Ljava/lang/reflect/Field;)V
areturn
17: StackMap locals:
StackMap stack:
ldc Ljava/lang/String;
aload 1
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 19
18: new com.caucho.hessian.io.UnsafeSerializer$StringFieldSerializer
dup
aload 0
invokespecial com.caucho.hessian.io.UnsafeSerializer$StringFieldSerializer.<init>:(Ljava/lang/reflect/Field;)V
areturn
19: StackMap locals:
StackMap stack:
ldc Ljava/util/Date;
aload 1
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 23
20: ldc Ljava/sql/Date;
aload 1
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 23
21: ldc Ljava/sql/Timestamp;
aload 1
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 23
22: ldc Ljava/sql/Time;
aload 1
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 24
23: StackMap locals:
StackMap stack:
new com.caucho.hessian.io.UnsafeSerializer$DateFieldSerializer
dup
aload 0
invokespecial com.caucho.hessian.io.UnsafeSerializer$DateFieldSerializer.<init>:(Ljava/lang/reflect/Field;)V
areturn
24: StackMap locals:
StackMap stack:
new com.caucho.hessian.io.UnsafeSerializer$ObjectFieldSerializer
dup
aload 0
invokespecial com.caucho.hessian.io.UnsafeSerializer$ObjectFieldSerializer.<init>:(Ljava/lang/reflect/Field;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 field Ljava/lang/reflect/Field;
1 25 1 type Ljava/lang/Class<*>;
MethodParameters:
Name Flags
field
}
SourceFile: "UnsafeSerializer.java"
NestMembers:
com.caucho.hessian.io.UnsafeSerializer$BooleanFieldSerializer com.caucho.hessian.io.UnsafeSerializer$ByteFieldSerializer com.caucho.hessian.io.UnsafeSerializer$CharFieldSerializer com.caucho.hessian.io.UnsafeSerializer$DateFieldSerializer com.caucho.hessian.io.UnsafeSerializer$DoubleFieldSerializer com.caucho.hessian.io.UnsafeSerializer$FieldSerializer com.caucho.hessian.io.UnsafeSerializer$FloatFieldSerializer com.caucho.hessian.io.UnsafeSerializer$IntFieldSerializer com.caucho.hessian.io.UnsafeSerializer$LongFieldSerializer com.caucho.hessian.io.UnsafeSerializer$ObjectFieldSerializer com.caucho.hessian.io.UnsafeSerializer$ShortFieldSerializer com.caucho.hessian.io.UnsafeSerializer$StringFieldSerializer
InnerClasses:
final BooleanFieldSerializer = com.caucho.hessian.io.UnsafeSerializer$BooleanFieldSerializer of com.caucho.hessian.io.UnsafeSerializer
final ByteFieldSerializer = com.caucho.hessian.io.UnsafeSerializer$ByteFieldSerializer of com.caucho.hessian.io.UnsafeSerializer
final CharFieldSerializer = com.caucho.hessian.io.UnsafeSerializer$CharFieldSerializer of com.caucho.hessian.io.UnsafeSerializer
final DateFieldSerializer = com.caucho.hessian.io.UnsafeSerializer$DateFieldSerializer of com.caucho.hessian.io.UnsafeSerializer
final DoubleFieldSerializer = com.caucho.hessian.io.UnsafeSerializer$DoubleFieldSerializer of com.caucho.hessian.io.UnsafeSerializer
abstract FieldSerializer = com.caucho.hessian.io.UnsafeSerializer$FieldSerializer of com.caucho.hessian.io.UnsafeSerializer
final FloatFieldSerializer = com.caucho.hessian.io.UnsafeSerializer$FloatFieldSerializer of com.caucho.hessian.io.UnsafeSerializer
final IntFieldSerializer = com.caucho.hessian.io.UnsafeSerializer$IntFieldSerializer of com.caucho.hessian.io.UnsafeSerializer
final LongFieldSerializer = com.caucho.hessian.io.UnsafeSerializer$LongFieldSerializer of com.caucho.hessian.io.UnsafeSerializer
final ObjectFieldSerializer = com.caucho.hessian.io.UnsafeSerializer$ObjectFieldSerializer of com.caucho.hessian.io.UnsafeSerializer
final ShortFieldSerializer = com.caucho.hessian.io.UnsafeSerializer$ShortFieldSerializer of com.caucho.hessian.io.UnsafeSerializer
final StringFieldSerializer = com.caucho.hessian.io.UnsafeSerializer$StringFieldSerializer of com.caucho.hessian.io.UnsafeSerializer