public class com.caucho.hessian.io.JavaSerializer 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.JavaSerializer
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 final java.util.WeakHashMap<java.lang.Class<?>, java.lang.ref.SoftReference<com.caucho.hessian.io.JavaSerializer>> _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/JavaSerializer;>;>;
private java.lang.reflect.Field[] _fields;
descriptor: [Ljava/lang/reflect/Field;
flags: (0x0002) ACC_PRIVATE
private com.caucho.hessian.io.JavaSerializer$FieldSerializer[] _fieldSerializers;
descriptor: [Lcom/caucho/hessian/io/JavaSerializer$FieldSerializer;
flags: (0x0002) ACC_PRIVATE
private java.lang.Object _writeReplaceFactory;
descriptor: Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
private java.lang.reflect.Method _writeReplace;
descriptor: Ljava/lang/reflect/Method;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lcom/caucho/hessian/io/JavaSerializer;
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.JavaSerializer.log:Ljava/util/logging/Logger;
2: new java.util.WeakHashMap
dup
invokespecial java.util.WeakHashMap.<init>:()V
3: putstatic com.caucho.hessian.io.JavaSerializer._serializerMap:Ljava/util/WeakHashMap;
4: return
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.JavaSerializer.introspect:(Ljava/lang/Class;)V
2: aload 0
aload 1
invokestatic com.caucho.hessian.io.JavaSerializer.getWriteReplace:(Ljava/lang/Class;)Ljava/lang/reflect/Method;
putfield com.caucho.hessian.io.JavaSerializer._writeReplace:Ljava/lang/reflect/Method;
3: aload 0
getfield com.caucho.hessian.io.JavaSerializer._writeReplace:Ljava/lang/reflect/Method;
ifnull 5
4: aload 0
getfield com.caucho.hessian.io.JavaSerializer._writeReplace:Ljava/lang/reflect/Method;
iconst_1
invokevirtual java.lang.reflect.Method.setAccessible:(Z)V
5: StackMap locals: com.caucho.hessian.io.JavaSerializer java.lang.Class
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/caucho/hessian/io/JavaSerializer;
0 6 1 cl Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
cl
public static com.caucho.hessian.io.Serializer create(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Lcom/caucho/hessian/io/Serializer;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: getstatic com.caucho.hessian.io.JavaSerializer._serializerMap:Ljava/util/WeakHashMap;
dup
astore 1
monitorenter
1: getstatic com.caucho.hessian.io.JavaSerializer._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.JavaSerializer
goto 5
StackMap locals: java.util.WeakHashMap java.lang.ref.SoftReference
StackMap stack:
4: aconst_null
StackMap locals:
StackMap stack: com.caucho.hessian.io.JavaSerializer
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.JavaUnsharedSerializer
dup
aload 0
invokespecial com.caucho.hessian.io.JavaUnsharedSerializer.<init>:(Ljava/lang/Class;)V
astore 3
goto 10
9: StackMap locals: com.caucho.hessian.io.JavaSerializer
StackMap stack:
new com.caucho.hessian.io.JavaSerializer
dup
aload 0
invokespecial com.caucho.hessian.io.JavaSerializer.<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.JavaSerializer._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/JavaSerializer;>;
6 14 3 base Lcom/caucho/hessian/io/JavaSerializer;
Exception table:
from to target type
1 13 14 any
14 15 14 any
Signature: (Ljava/lang/Class<*>;)Lcom/caucho/hessian/io/Serializer;
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: aload 0
getfield com.caucho.hessian.io.JavaSerializer._writeReplace:Ljava/lang/reflect/Method;
ifnull 2
1: aload 0
getfield com.caucho.hessian.io.JavaSerializer._writeReplace:Ljava/lang/reflect/Method;
iconst_1
invokevirtual java.lang.reflect.Method.setAccessible:(Z)V
2: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 3: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 4: goto 21
5: 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 6: iconst_0
istore 5
start local 5 7: goto 19
8: StackMap locals: java.lang.reflect.Field[] int
StackMap stack:
aload 4
iload 5
aaload
astore 6
start local 6 9: aload 6
invokevirtual java.lang.reflect.Field.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isTransient:(I)Z
ifne 18
10: aload 6
invokevirtual java.lang.reflect.Field.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
ifeq 12
11: goto 18
12: StackMap locals: java.lang.reflect.Field
StackMap stack:
aload 6
iconst_1
invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
13: aload 6
invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
invokevirtual java.lang.Class.isPrimitive:()Z
ifne 16
14: 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 17
15: 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 17
16: StackMap locals:
StackMap stack:
aload 2
aload 6
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
goto 18
17: StackMap locals:
StackMap stack:
aload 3
aload 6
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 6 18: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
19: iload 5
aload 4
arraylength
if_icmplt 8
end local 5 end local 4 20: aload 1
invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
astore 1
StackMap locals:
StackMap stack:
21: aload 1
ifnonnull 5
22: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 4
start local 4 23: aload 4
aload 2
invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
pop
24: aload 4
aload 3
invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
pop
25: aload 0
aload 4
invokevirtual java.util.ArrayList.size:()I
anewarray java.lang.reflect.Field
putfield com.caucho.hessian.io.JavaSerializer._fields:[Ljava/lang/reflect/Field;
26: aload 4
aload 0
getfield com.caucho.hessian.io.JavaSerializer._fields:[Ljava/lang/reflect/Field;
invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
pop
27: aload 0
aload 0
getfield com.caucho.hessian.io.JavaSerializer._fields:[Ljava/lang/reflect/Field;
arraylength
anewarray com.caucho.hessian.io.JavaSerializer$FieldSerializer
putfield com.caucho.hessian.io.JavaSerializer._fieldSerializers:[Lcom/caucho/hessian/io/JavaSerializer$FieldSerializer;
28: iconst_0
istore 5
start local 5 29: goto 32
30: StackMap locals: java.util.ArrayList int
StackMap stack:
aload 0
getfield com.caucho.hessian.io.JavaSerializer._fieldSerializers:[Lcom/caucho/hessian/io/JavaSerializer$FieldSerializer;
iload 5
aload 0
getfield com.caucho.hessian.io.JavaSerializer._fields:[Ljava/lang/reflect/Field;
iload 5
aaload
invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
invokestatic com.caucho.hessian.io.JavaSerializer.getFieldSerializer:(Ljava/lang/Class;)Lcom/caucho/hessian/io/JavaSerializer$FieldSerializer;
aastore
31: iinc 5 1
StackMap locals:
StackMap stack:
32: iload 5
aload 0
getfield com.caucho.hessian.io.JavaSerializer._fields:[Ljava/lang/reflect/Field;
arraylength
if_icmplt 30
end local 5 33: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lcom/caucho/hessian/io/JavaSerializer;
0 34 1 cl Ljava/lang/Class<*>;
3 34 2 primitiveFields Ljava/util/ArrayList<Ljava/lang/reflect/Field;>;
4 34 3 compoundFields Ljava/util/ArrayList<Ljava/lang/reflect/Field;>;
6 20 4 fields [Ljava/lang/reflect/Field;
7 20 5 i I
9 18 6 field Ljava/lang/reflect/Field;
23 34 4 fields Ljava/util/ArrayList<Ljava/lang/reflect/Field;>;
29 33 5 i I
Signature: (Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
cl
protected static java.lang.reflect.Method getWriteReplace(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/reflect/Method;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: goto 11
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Class.getDeclaredMethods:()[Ljava/lang/reflect/Method;
astore 1
start local 1 2: iconst_0
istore 2
start local 2 3: goto 9
4: StackMap locals: java.lang.reflect.Method[] int
StackMap stack:
aload 1
iload 2
aaload
astore 3
start local 3 5: aload 3
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
ldc "writeReplace"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 8
6: aload 3
invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
arraylength
ifne 8
7: aload 3
areturn
end local 3 8: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
9: iload 2
aload 1
arraylength
if_icmplt 4
end local 2 end local 1 10: aload 0
invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
astore 0
StackMap locals:
StackMap stack:
11: aload 0
ifnonnull 1
12: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 cl Ljava/lang/Class<*>;
2 10 1 methods [Ljava/lang/reflect/Method;
3 10 2 i I
5 8 3 method Ljava/lang/reflect/Method;
Signature: (Ljava/lang/Class<*>;)Ljava/lang/reflect/Method;
MethodParameters:
Name Flags
cl
protected java.lang.reflect.Method getWriteReplace(java.lang.Class<?>, java.lang.Class<?>);
descriptor: (Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Method;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=7, args_size=3
start local 0 start local 1 start local 2 0: goto 10
1: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.Class.getDeclaredMethods:()[Ljava/lang/reflect/Method;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 8
StackMap locals: com.caucho.hessian.io.JavaSerializer java.lang.Class java.lang.Class top int int java.lang.reflect.Method[]
StackMap stack:
2: aload 6
iload 4
aaload
astore 3
start local 3 3: aload 3
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
ldc "writeReplace"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 7
4: aload 3
invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
arraylength
iconst_1
if_icmpne 7
5: aload 2
aload 3
invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
iconst_0
aaload
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 7
6: aload 3
areturn
end local 3 7: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
8: iload 4
iload 5
if_icmplt 2
9: aload 1
invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
astore 1
StackMap locals: com.caucho.hessian.io.JavaSerializer java.lang.Class java.lang.Class
StackMap stack:
10: aload 1
ifnonnull 1
11: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/caucho/hessian/io/JavaSerializer;
0 12 1 cl Ljava/lang/Class<*>;
0 12 2 param Ljava/lang/Class<*>;
3 7 3 method Ljava/lang/reflect/Method;
Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;)Ljava/lang/reflect/Method;
MethodParameters:
Name Flags
cl
param
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=6, locals=6, 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 0
getfield com.caucho.hessian.io.JavaSerializer._writeReplace:Ljava/lang/reflect/Method;
ifnull 21
4: aload 0
getfield com.caucho.hessian.io.JavaSerializer._writeReplaceFactory:Ljava/lang/Object;
ifnull 7
5: aload 0
getfield com.caucho.hessian.io.JavaSerializer._writeReplace:Ljava/lang/reflect/Method;
aload 0
getfield com.caucho.hessian.io.JavaSerializer._writeReplaceFactory:Ljava/lang/Object;
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
astore 4
start local 4 6: goto 8
end local 4 7: StackMap locals: java.lang.Class
StackMap stack:
aload 0
getfield com.caucho.hessian.io.JavaSerializer._writeReplace:Ljava/lang/reflect/Method;
aload 1
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
astore 4
start local 4 8: StackMap locals: java.lang.Object
StackMap stack:
aload 2
aload 3
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual com.caucho.hessian.io.AbstractHessianOutput.writeObjectBegin:(Ljava/lang/String;)I
istore 5
start local 5 9: iload 5
iconst_m1
if_icmpge 12
10: aload 0
aload 4
aload 2
invokevirtual com.caucho.hessian.io.JavaSerializer.writeObject10:(Ljava/lang/Object;Lcom/caucho/hessian/io/AbstractHessianOutput;)V
11: goto 16
12: StackMap locals: int
StackMap stack:
iload 5
iconst_m1
if_icmpne 15
13: aload 0
aload 2
invokevirtual com.caucho.hessian.io.JavaSerializer.writeDefinition20:(Lcom/caucho/hessian/io/AbstractHessianOutput;)V
14: aload 2
aload 3
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual com.caucho.hessian.io.AbstractHessianOutput.writeObjectBegin:(Ljava/lang/String;)I
pop
15: StackMap locals:
StackMap stack:
aload 0
aload 4
aload 2
invokevirtual com.caucho.hessian.io.JavaSerializer.writeInstance:(Ljava/lang/Object;Lcom/caucho/hessian/io/AbstractHessianOutput;)V
16: StackMap locals:
StackMap stack:
return
end local 5 end local 4 17: StackMap locals: com.caucho.hessian.io.JavaSerializer java.lang.Object com.caucho.hessian.io.AbstractHessianOutput java.lang.Class
StackMap stack: java.lang.RuntimeException
astore 4
start local 4 18: aload 4
athrow
end local 4 19: StackMap locals:
StackMap stack: java.lang.Exception
astore 4
start local 4 20: new java.lang.RuntimeException
dup
aload 4
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 4 21: StackMap locals:
StackMap stack:
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 22: iload 4
iconst_m1
if_icmpge 25
23: aload 0
aload 1
aload 2
invokevirtual com.caucho.hessian.io.JavaSerializer.writeObject10:(Ljava/lang/Object;Lcom/caucho/hessian/io/AbstractHessianOutput;)V
24: goto 29
25: StackMap locals: int
StackMap stack:
iload 4
iconst_m1
if_icmpne 28
26: aload 0
aload 2
invokevirtual com.caucho.hessian.io.JavaSerializer.writeDefinition20:(Lcom/caucho/hessian/io/AbstractHessianOutput;)V
27: aload 2
aload 3
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual com.caucho.hessian.io.AbstractHessianOutput.writeObjectBegin:(Ljava/lang/String;)I
pop
28: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual com.caucho.hessian.io.JavaSerializer.writeInstance:(Ljava/lang/Object;Lcom/caucho/hessian/io/AbstractHessianOutput;)V
29: 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 30 0 this Lcom/caucho/hessian/io/JavaSerializer;
0 30 1 obj Ljava/lang/Object;
0 30 2 out Lcom/caucho/hessian/io/AbstractHessianOutput;
3 30 3 cl Ljava/lang/Class<*>;
6 7 4 repl Ljava/lang/Object;
8 17 4 repl Ljava/lang/Object;
9 17 5 ref I
18 19 4 e Ljava/lang/RuntimeException;
20 21 4 e Ljava/lang/Exception;
22 30 4 ref I
Exception table:
from to target type
3 16 17 Class java.lang.RuntimeException
3 16 19 Class java.lang.Exception
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=4, 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.JavaSerializer._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.JavaSerializer._fieldSerializers:[Lcom/caucho/hessian/io/JavaSerializer$FieldSerializer;
iload 3
aaload
aload 2
aload 1
aload 4
invokevirtual com.caucho.hessian.io.JavaSerializer$FieldSerializer.serialize:(Lcom/caucho/hessian/io/AbstractHessianOutput;Ljava/lang/Object;Ljava/lang/reflect/Field;)V
end local 4 5: iinc 3 1
StackMap locals:
StackMap stack:
6: iload 3
aload 0
getfield com.caucho.hessian.io.JavaSerializer._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/JavaSerializer;
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.JavaSerializer._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.JavaSerializer._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.JavaSerializer._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/JavaSerializer;
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 void writeInstance(java.lang.Object, com.caucho.hessian.io.AbstractHessianOutput);
descriptor: (Ljava/lang/Object;Lcom/caucho/hessian/io/AbstractHessianOutput;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: goto 5
2: StackMap locals: int
StackMap stack:
aload 0
getfield com.caucho.hessian.io.JavaSerializer._fields:[Ljava/lang/reflect/Field;
iload 3
aaload
astore 4
start local 4 3: aload 0
getfield com.caucho.hessian.io.JavaSerializer._fieldSerializers:[Lcom/caucho/hessian/io/JavaSerializer$FieldSerializer;
iload 3
aaload
aload 2
aload 1
aload 4
invokevirtual com.caucho.hessian.io.JavaSerializer$FieldSerializer.serialize:(Lcom/caucho/hessian/io/AbstractHessianOutput;Ljava/lang/Object;Ljava/lang/reflect/Field;)V
end local 4 4: iinc 3 1
StackMap locals:
StackMap stack:
5: iload 3
aload 0
getfield com.caucho.hessian.io.JavaSerializer._fields:[Ljava/lang/reflect/Field;
arraylength
if_icmplt 2
end local 3 6: goto 19
StackMap locals: com.caucho.hessian.io.JavaSerializer java.lang.Object com.caucho.hessian.io.AbstractHessianOutput
StackMap stack: java.lang.RuntimeException
7: astore 3
start local 3 8: 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;
9: 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;
10: 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;
11: aload 3
12: invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 13: StackMap locals:
StackMap stack: java.io.IOException
astore 3
start local 3 14: 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;
15: 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;
16: 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;
17: aload 3
18: invokespecial com.caucho.hessian.io.IOExceptionWrapper.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 19: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lcom/caucho/hessian/io/JavaSerializer;
0 20 1 obj Ljava/lang/Object;
0 20 2 out Lcom/caucho/hessian/io/AbstractHessianOutput;
1 6 3 i I
3 4 4 field Ljava/lang/reflect/Field;
8 13 3 e Ljava/lang/RuntimeException;
14 19 3 e Ljava/io/IOException;
Exception table:
from to target type
0 6 7 Class java.lang.RuntimeException
0 6 13 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
obj
out
private static com.caucho.hessian.io.JavaSerializer$FieldSerializer getFieldSerializer(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Lcom/caucho/hessian/io/JavaSerializer$FieldSerializer;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aload 0
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 4
1: getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
aload 0
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 4
2: getstatic java.lang.Short.TYPE:Ljava/lang/Class;
aload 0
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 4
3: getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aload 0
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 5
4: StackMap locals:
StackMap stack:
getstatic com.caucho.hessian.io.JavaSerializer$IntFieldSerializer.SER:Lcom/caucho/hessian/io/JavaSerializer$FieldSerializer;
areturn
5: StackMap locals:
StackMap stack:
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aload 0
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 7
6: getstatic com.caucho.hessian.io.JavaSerializer$LongFieldSerializer.SER:Lcom/caucho/hessian/io/JavaSerializer$FieldSerializer;
areturn
7: StackMap locals:
StackMap stack:
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
aload 0
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 9
8: getstatic java.lang.Float.TYPE:Ljava/lang/Class;
aload 0
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 10
9: StackMap locals:
StackMap stack:
getstatic com.caucho.hessian.io.JavaSerializer$DoubleFieldSerializer.SER:Lcom/caucho/hessian/io/JavaSerializer$FieldSerializer;
areturn
10: StackMap locals:
StackMap stack:
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
aload 0
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 12
11: getstatic com.caucho.hessian.io.JavaSerializer$BooleanFieldSerializer.SER:Lcom/caucho/hessian/io/JavaSerializer$FieldSerializer;
areturn
12: StackMap locals:
StackMap stack:
ldc Ljava/lang/String;
aload 0
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 14
13: getstatic com.caucho.hessian.io.JavaSerializer$StringFieldSerializer.SER:Lcom/caucho/hessian/io/JavaSerializer$FieldSerializer;
areturn
14: StackMap locals:
StackMap stack:
ldc Ljava/util/Date;
aload 0
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 18
15: ldc Ljava/sql/Date;
aload 0
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 18
16: ldc Ljava/sql/Timestamp;
aload 0
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 18
17: ldc Ljava/sql/Time;
aload 0
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 19
18: StackMap locals:
StackMap stack:
getstatic com.caucho.hessian.io.JavaSerializer$DateFieldSerializer.SER:Lcom/caucho/hessian/io/JavaSerializer$FieldSerializer;
areturn
19: StackMap locals:
StackMap stack:
getstatic com.caucho.hessian.io.JavaSerializer$FieldSerializer.SER:Lcom/caucho/hessian/io/JavaSerializer$FieldSerializer;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 type Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Lcom/caucho/hessian/io/JavaSerializer$FieldSerializer;
MethodParameters:
Name Flags
type
}
SourceFile: "JavaSerializer.java"
NestMembers:
com.caucho.hessian.io.JavaSerializer$BooleanFieldSerializer com.caucho.hessian.io.JavaSerializer$DateFieldSerializer com.caucho.hessian.io.JavaSerializer$DoubleFieldSerializer com.caucho.hessian.io.JavaSerializer$FieldSerializer com.caucho.hessian.io.JavaSerializer$IntFieldSerializer com.caucho.hessian.io.JavaSerializer$LongFieldSerializer com.caucho.hessian.io.JavaSerializer$StringFieldSerializer
InnerClasses:
BooleanFieldSerializer = com.caucho.hessian.io.JavaSerializer$BooleanFieldSerializer of com.caucho.hessian.io.JavaSerializer
DateFieldSerializer = com.caucho.hessian.io.JavaSerializer$DateFieldSerializer of com.caucho.hessian.io.JavaSerializer
DoubleFieldSerializer = com.caucho.hessian.io.JavaSerializer$DoubleFieldSerializer of com.caucho.hessian.io.JavaSerializer
FieldSerializer = com.caucho.hessian.io.JavaSerializer$FieldSerializer of com.caucho.hessian.io.JavaSerializer
IntFieldSerializer = com.caucho.hessian.io.JavaSerializer$IntFieldSerializer of com.caucho.hessian.io.JavaSerializer
LongFieldSerializer = com.caucho.hessian.io.JavaSerializer$LongFieldSerializer of com.caucho.hessian.io.JavaSerializer
StringFieldSerializer = com.caucho.hessian.io.JavaSerializer$StringFieldSerializer of com.caucho.hessian.io.JavaSerializer