public class java.io.ObjectInputStream extends java.io.InputStream implements java.io.ObjectInput, java.io.ObjectStreamConstants
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: java.io.ObjectInputStream
super_class: java.io.InputStream
{
private static final int NULL_HANDLE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -1
private static final java.lang.Object unsharedMarker;
descriptor: Ljava/lang/Object;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.Map<java.lang.String, java.lang.Class<?>> primClasses;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Class<*>;>;
private final java.io.ObjectInputStream$BlockDataInputStream bin;
descriptor: Ljava/io/ObjectInputStream$BlockDataInputStream;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.io.ObjectInputStream$ValidationList vlist;
descriptor: Ljava/io/ObjectInputStream$ValidationList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private long depth;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private long totalObjectRefs;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private boolean closed;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private final java.io.ObjectInputStream$HandleTable handles;
descriptor: Ljava/io/ObjectInputStream$HandleTable;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int passHandle;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean defaultDataEnd;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private final boolean enableOverride;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean enableResolve;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.io.SerialCallbackContext curContext;
descriptor: Ljava/io/SerialCallbackContext;
flags: (0x0002) ACC_PRIVATE
private java.io.ObjectInputFilter serialFilter;
descriptor: Ljava/io/ObjectInputFilter;
flags: (0x0002) ACC_PRIVATE
private static final jdk.internal.misc.Unsafe UNSAFE;
descriptor: Ljdk/internal/misc/Unsafe;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=18, locals=0, args_size=0
0: new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putstatic java.io.ObjectInputStream.unsharedMarker:Ljava/lang/Object;
1: ldc "boolean"
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
2: ldc "byte"
getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
3: ldc "char"
getstatic java.lang.Character.TYPE:Ljava/lang/Class;
4: ldc "short"
getstatic java.lang.Short.TYPE:Ljava/lang/Class;
5: ldc "int"
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
6: ldc "long"
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
7: ldc "float"
getstatic java.lang.Float.TYPE:Ljava/lang/Class;
8: ldc "double"
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
9: ldc "void"
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
10: invokestatic java.util.Map.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
11: putstatic java.io.ObjectInputStream.primClasses:Ljava/util/Map;
12: invokestatic jdk.internal.misc.Unsafe.getUnsafe:()Ljdk/internal/misc/Unsafe;
putstatic java.io.ObjectInputStream.UNSAFE:Ljdk/internal/misc/Unsafe;
13: invokedynamic checkArray()Ljdk/internal/misc/JavaObjectInputStreamAccess;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/io/ObjectInputStream;Ljava/lang/Class;I)V
java/io/ObjectInputStream.checkArray(Ljava/lang/Class;I)V (7)
(Ljava/io/ObjectInputStream;Ljava/lang/Class;I)V
invokestatic jdk.internal.misc.SharedSecrets.setJavaObjectInputStreamAccess:(Ljdk/internal/misc/JavaObjectInputStreamAccess;)V
14: invokedynamic readString()Ljdk/internal/misc/JavaObjectInputStreamReadString;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/io/ObjectInputStream;)Ljava/lang/String;
java/io/ObjectInputStream.readString()Ljava/lang/String; (7)
(Ljava/io/ObjectInputStream;)Ljava/lang/String;
invokestatic jdk.internal.misc.SharedSecrets.setJavaObjectInputStreamReadString:(Ljdk/internal/misc/JavaObjectInputStreamReadString;)V
15: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.io.InputStream);
descriptor: (Ljava/io/InputStream;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.io.InputStream.<init>:()V
1: aload 0
iconst_m1
putfield java.io.ObjectInputStream.passHandle:I
2: aload 0
iconst_0
putfield java.io.ObjectInputStream.defaultDataEnd:Z
3: aload 0
invokevirtual java.io.ObjectInputStream.verifySubclass:()V
4: aload 0
new java.io.ObjectInputStream$BlockDataInputStream
dup
aload 0
aload 1
invokespecial java.io.ObjectInputStream$BlockDataInputStream.<init>:(Ljava/io/ObjectInputStream;Ljava/io/InputStream;)V
putfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
5: aload 0
new java.io.ObjectInputStream$HandleTable
dup
bipush 10
invokespecial java.io.ObjectInputStream$HandleTable.<init>:(I)V
putfield java.io.ObjectInputStream.handles:Ljava/io/ObjectInputStream$HandleTable;
6: aload 0
new java.io.ObjectInputStream$ValidationList
dup
invokespecial java.io.ObjectInputStream$ValidationList.<init>:()V
putfield java.io.ObjectInputStream.vlist:Ljava/io/ObjectInputStream$ValidationList;
7: aload 0
invokestatic java.io.ObjectInputFilter$Config.getSerialFilter:()Ljava/io/ObjectInputFilter;
putfield java.io.ObjectInputStream.serialFilter:Ljava/io/ObjectInputFilter;
8: aload 0
iconst_0
putfield java.io.ObjectInputStream.enableOverride:Z
9: aload 0
invokevirtual java.io.ObjectInputStream.readStreamHeader:()V
10: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
iconst_1
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.setBlockDataMode:(Z)Z
pop
11: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/io/ObjectInputStream;
0 12 1 in Ljava/io/InputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
in
protected void <init>();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokespecial java.io.InputStream.<init>:()V
1: aload 0
iconst_m1
putfield java.io.ObjectInputStream.passHandle:I
2: aload 0
iconst_0
putfield java.io.ObjectInputStream.defaultDataEnd:Z
3: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 1
start local 1 4: aload 1
ifnull 6
5: aload 1
getstatic java.io.ObjectInputStream.SUBCLASS_IMPLEMENTATION_PERMISSION:Ljava/io/SerializablePermission;
invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
6: StackMap locals: java.io.ObjectInputStream java.lang.SecurityManager
StackMap stack:
aload 0
aconst_null
putfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
7: aload 0
aconst_null
putfield java.io.ObjectInputStream.handles:Ljava/io/ObjectInputStream$HandleTable;
8: aload 0
aconst_null
putfield java.io.ObjectInputStream.vlist:Ljava/io/ObjectInputStream$ValidationList;
9: aload 0
invokestatic java.io.ObjectInputFilter$Config.getSerialFilter:()Ljava/io/ObjectInputFilter;
putfield java.io.ObjectInputStream.serialFilter:Ljava/io/ObjectInputFilter;
10: aload 0
iconst_1
putfield java.io.ObjectInputStream.enableOverride:Z
11: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/io/ObjectInputStream;
4 12 1 sm Ljava/lang/SecurityManager;
Exceptions:
throws java.io.IOException, java.lang.SecurityException
public final java.lang.Object readObject();
descriptor: ()Ljava/lang/Object;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc Ljava/lang/Object;
invokevirtual java.io.ObjectInputStream.readObject:(Ljava/lang/Class;)Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/io/ObjectInputStream;
Exceptions:
throws java.io.IOException, java.lang.ClassNotFoundException
private java.lang.String readString();
descriptor: ()Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
ldc Ljava/lang/String;
invokevirtual java.io.ObjectInputStream.readObject:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast java.lang.String
1: areturn
2: StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
astore 1
start local 1 3: new java.lang.IllegalStateException
dup
aload 1
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/io/ObjectInputStream;
3 4 1 cnf Ljava/lang/ClassNotFoundException;
Exception table:
from to target type
0 1 2 Class java.lang.ClassNotFoundException
Exceptions:
throws java.io.IOException
private final readObject(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield java.io.ObjectInputStream.enableOverride:Z
ifeq 2
1: aload 0
invokevirtual java.io.ObjectInputStream.readObjectOverride:()Ljava/lang/Object;
areturn
2: StackMap locals:
StackMap stack:
aload 1
ldc Ljava/lang/Object;
if_acmpeq 4
aload 1
ldc Ljava/lang/String;
if_acmpeq 4
3: new java.lang.AssertionError
dup
ldc "internal error"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield java.io.ObjectInputStream.passHandle:I
istore 2
start local 2 5: aload 0
aload 1
iconst_0
invokevirtual java.io.ObjectInputStream.readObject0:(Ljava/lang/Class;Z)Ljava/lang/Object;
astore 3
start local 3 6: aload 0
getfield java.io.ObjectInputStream.handles:Ljava/io/ObjectInputStream$HandleTable;
iload 2
aload 0
getfield java.io.ObjectInputStream.passHandle:I
invokevirtual java.io.ObjectInputStream$HandleTable.markDependency:(II)V
7: aload 0
getfield java.io.ObjectInputStream.handles:Ljava/io/ObjectInputStream$HandleTable;
aload 0
getfield java.io.ObjectInputStream.passHandle:I
invokevirtual java.io.ObjectInputStream$HandleTable.lookupException:(I)Ljava/lang/ClassNotFoundException;
astore 4
start local 4 8: aload 4
ifnull 10
9: aload 4
athrow
10: StackMap locals: int java.lang.Object java.lang.ClassNotFoundException
StackMap stack:
aload 0
getfield java.io.ObjectInputStream.depth:J
lconst_0
lcmp
ifne 13
11: aload 0
getfield java.io.ObjectInputStream.vlist:Ljava/io/ObjectInputStream$ValidationList;
invokevirtual java.io.ObjectInputStream$ValidationList.doCallbacks:()V
12: aload 0
invokevirtual java.io.ObjectInputStream.freeze:()V
13: StackMap locals:
StackMap stack:
aload 3
astore 6
14: aload 0
iload 2
putfield java.io.ObjectInputStream.passHandle:I
15: aload 0
getfield java.io.ObjectInputStream.closed:Z
ifeq 17
aload 0
getfield java.io.ObjectInputStream.depth:J
lconst_0
lcmp
ifne 17
16: aload 0
invokevirtual java.io.ObjectInputStream.clear:()V
17: StackMap locals: java.io.ObjectInputStream java.lang.Class int java.lang.Object java.lang.ClassNotFoundException top java.lang.Object
StackMap stack:
aload 6
areturn
end local 4 end local 3 18: StackMap locals: java.io.ObjectInputStream java.lang.Class int
StackMap stack: java.lang.Throwable
astore 5
19: aload 0
iload 2
putfield java.io.ObjectInputStream.passHandle:I
20: aload 0
getfield java.io.ObjectInputStream.closed:Z
ifeq 22
aload 0
getfield java.io.ObjectInputStream.depth:J
lconst_0
lcmp
ifne 22
21: aload 0
invokevirtual java.io.ObjectInputStream.clear:()V
22: StackMap locals: java.io.ObjectInputStream java.lang.Class int top top java.lang.Throwable
StackMap stack:
aload 5
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Ljava/io/ObjectInputStream;
0 23 1 type Ljava/lang/Class<*>;
5 23 2 outerHandle I
6 18 3 obj Ljava/lang/Object;
8 18 4 ex Ljava/lang/ClassNotFoundException;
Exception table:
from to target type
5 14 18 any
Exceptions:
throws java.io.IOException, java.lang.ClassNotFoundException
Signature: (Ljava/lang/Class<*>;)Ljava/lang/Object;
MethodParameters:
Name Flags
type
protected java.lang.Object readObjectOverride();
descriptor: ()Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/io/ObjectInputStream;
Exceptions:
throws java.io.IOException, java.lang.ClassNotFoundException
public java.lang.Object readUnshared();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=1
start local 0 0: aload 0
getfield java.io.ObjectInputStream.passHandle:I
istore 1
start local 1 1: aload 0
ldc Ljava/lang/Object;
iconst_1
invokevirtual java.io.ObjectInputStream.readObject0:(Ljava/lang/Class;Z)Ljava/lang/Object;
astore 2
start local 2 2: aload 0
getfield java.io.ObjectInputStream.handles:Ljava/io/ObjectInputStream$HandleTable;
iload 1
aload 0
getfield java.io.ObjectInputStream.passHandle:I
invokevirtual java.io.ObjectInputStream$HandleTable.markDependency:(II)V
3: aload 0
getfield java.io.ObjectInputStream.handles:Ljava/io/ObjectInputStream$HandleTable;
aload 0
getfield java.io.ObjectInputStream.passHandle:I
invokevirtual java.io.ObjectInputStream$HandleTable.lookupException:(I)Ljava/lang/ClassNotFoundException;
astore 3
start local 3 4: aload 3
ifnull 6
5: aload 3
athrow
6: StackMap locals: int java.lang.Object java.lang.ClassNotFoundException
StackMap stack:
aload 0
getfield java.io.ObjectInputStream.depth:J
lconst_0
lcmp
ifne 9
7: aload 0
getfield java.io.ObjectInputStream.vlist:Ljava/io/ObjectInputStream$ValidationList;
invokevirtual java.io.ObjectInputStream$ValidationList.doCallbacks:()V
8: aload 0
invokevirtual java.io.ObjectInputStream.freeze:()V
9: StackMap locals:
StackMap stack:
aload 2
astore 5
10: aload 0
iload 1
putfield java.io.ObjectInputStream.passHandle:I
11: aload 0
getfield java.io.ObjectInputStream.closed:Z
ifeq 13
aload 0
getfield java.io.ObjectInputStream.depth:J
lconst_0
lcmp
ifne 13
12: aload 0
invokevirtual java.io.ObjectInputStream.clear:()V
13: StackMap locals: java.io.ObjectInputStream int java.lang.Object java.lang.ClassNotFoundException top java.lang.Object
StackMap stack:
aload 5
areturn
end local 3 end local 2 14: StackMap locals: java.io.ObjectInputStream int
StackMap stack: java.lang.Throwable
astore 4
15: aload 0
iload 1
putfield java.io.ObjectInputStream.passHandle:I
16: aload 0
getfield java.io.ObjectInputStream.closed:Z
ifeq 18
aload 0
getfield java.io.ObjectInputStream.depth:J
lconst_0
lcmp
ifne 18
17: aload 0
invokevirtual java.io.ObjectInputStream.clear:()V
18: StackMap locals: java.io.ObjectInputStream int top top java.lang.Throwable
StackMap stack:
aload 4
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Ljava/io/ObjectInputStream;
1 19 1 outerHandle I
2 14 2 obj Ljava/lang/Object;
4 14 3 ex Ljava/lang/ClassNotFoundException;
Exception table:
from to target type
1 10 14 any
Exceptions:
throws java.io.IOException, java.lang.ClassNotFoundException
public void defaultReadObject();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=1
start local 0 0: aload 0
getfield java.io.ObjectInputStream.curContext:Ljava/io/SerialCallbackContext;
astore 1
start local 1 1: aload 1
ifnonnull 3
2: new java.io.NotActiveException
dup
ldc "not in call to readObject"
invokespecial java.io.NotActiveException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: java.io.SerialCallbackContext
StackMap stack:
aload 1
invokevirtual java.io.SerialCallbackContext.getObj:()Ljava/lang/Object;
astore 2
start local 2 4: aload 1
invokevirtual java.io.SerialCallbackContext.getDesc:()Ljava/io/ObjectStreamClass;
astore 3
start local 3 5: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
iconst_0
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.setBlockDataMode:(Z)Z
pop
6: aload 0
aload 2
aload 3
invokevirtual java.io.ObjectInputStream.defaultReadFields:(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)Ljava/io/ObjectInputStream$FieldValues;
astore 4
start local 4 7: aload 2
ifnull 10
8: aload 0
aload 2
aload 3
aload 4
invokevirtual java.io.ObjectInputStream.defaultCheckFieldValues:(Ljava/lang/Object;Ljava/io/ObjectStreamClass;Ljava/io/ObjectInputStream$FieldValues;)V
9: aload 0
aload 2
aload 3
aload 4
invokevirtual java.io.ObjectInputStream.defaultSetFieldValues:(Ljava/lang/Object;Ljava/io/ObjectStreamClass;Ljava/io/ObjectInputStream$FieldValues;)V
10: StackMap locals: java.lang.Object java.io.ObjectStreamClass java.io.ObjectInputStream$FieldValues
StackMap stack:
aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
iconst_1
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.setBlockDataMode:(Z)Z
pop
11: aload 3
invokevirtual java.io.ObjectStreamClass.hasWriteObjectData:()Z
ifne 13
12: aload 0
iconst_1
putfield java.io.ObjectInputStream.defaultDataEnd:Z
13: StackMap locals:
StackMap stack:
aload 0
getfield java.io.ObjectInputStream.handles:Ljava/io/ObjectInputStream$HandleTable;
aload 0
getfield java.io.ObjectInputStream.passHandle:I
invokevirtual java.io.ObjectInputStream$HandleTable.lookupException:(I)Ljava/lang/ClassNotFoundException;
astore 5
start local 5 14: aload 5
ifnull 16
15: aload 5
athrow
16: StackMap locals: java.lang.ClassNotFoundException
StackMap stack:
return
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 17 0 this Ljava/io/ObjectInputStream;
1 17 1 ctx Ljava/io/SerialCallbackContext;
4 17 2 curObj Ljava/lang/Object;
5 17 3 curDesc Ljava/io/ObjectStreamClass;
7 17 4 vals Ljava/io/ObjectInputStream$FieldValues;
14 17 5 ex Ljava/lang/ClassNotFoundException;
Exceptions:
throws java.io.IOException, java.lang.ClassNotFoundException
public java.io.ObjectInputStream$GetField readFields();
descriptor: ()Ljava/io/ObjectInputStream$GetField;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: aload 0
getfield java.io.ObjectInputStream.curContext:Ljava/io/SerialCallbackContext;
astore 1
start local 1 1: aload 1
ifnonnull 3
2: new java.io.NotActiveException
dup
ldc "not in call to readObject"
invokespecial java.io.NotActiveException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: java.io.SerialCallbackContext
StackMap stack:
aload 1
invokevirtual java.io.SerialCallbackContext.checkAndSetUsed:()V
4: aload 1
invokevirtual java.io.SerialCallbackContext.getDesc:()Ljava/io/ObjectStreamClass;
astore 2
start local 2 5: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
iconst_0
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.setBlockDataMode:(Z)Z
pop
6: new java.io.ObjectInputStream$GetFieldImpl
dup
aload 0
aload 2
invokespecial java.io.ObjectInputStream$GetFieldImpl.<init>:(Ljava/io/ObjectInputStream;Ljava/io/ObjectStreamClass;)V
astore 3
start local 3 7: aload 3
invokevirtual java.io.ObjectInputStream$GetFieldImpl.readFields:()V
8: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
iconst_1
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.setBlockDataMode:(Z)Z
pop
9: aload 2
invokevirtual java.io.ObjectStreamClass.hasWriteObjectData:()Z
ifne 11
10: aload 0
iconst_1
putfield java.io.ObjectInputStream.defaultDataEnd:Z
11: StackMap locals: java.io.ObjectStreamClass java.io.ObjectInputStream$GetFieldImpl
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/io/ObjectInputStream;
1 12 1 ctx Ljava/io/SerialCallbackContext;
5 12 2 curDesc Ljava/io/ObjectStreamClass;
7 12 3 getField Ljava/io/ObjectInputStream$GetFieldImpl;
Exceptions:
throws java.io.IOException, java.lang.ClassNotFoundException
public void registerValidation(java.io.ObjectInputValidation, int);
descriptor: (Ljava/io/ObjectInputValidation;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield java.io.ObjectInputStream.depth:J
lconst_0
lcmp
ifne 2
1: new java.io.NotActiveException
dup
ldc "stream inactive"
invokespecial java.io.NotActiveException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield java.io.ObjectInputStream.vlist:Ljava/io/ObjectInputStream$ValidationList;
aload 1
iload 2
invokevirtual java.io.ObjectInputStream$ValidationList.register:(Ljava/io/ObjectInputValidation;I)V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/io/ObjectInputStream;
0 4 1 obj Ljava/io/ObjectInputValidation;
0 4 2 prio I
Exceptions:
throws java.io.NotActiveException, java.io.InvalidObjectException
MethodParameters:
Name Flags
obj
prio
protected java.lang.Class<?> resolveClass(java.io.ObjectStreamClass);
descriptor: (Ljava/io/ObjectStreamClass;)Ljava/lang/Class;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.io.ObjectStreamClass.getName:()Ljava/lang/String;
astore 2
start local 2 1: aload 2
iconst_0
invokestatic java.io.ObjectInputStream.latestUserDefinedLoader:()Ljava/lang/ClassLoader;
invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
2: areturn
3: StackMap locals: java.io.ObjectInputStream java.io.ObjectStreamClass java.lang.String
StackMap stack: java.lang.ClassNotFoundException
astore 3
start local 3 4: getstatic java.io.ObjectInputStream.primClasses:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Class
astore 4
start local 4 5: aload 4
ifnull 7
6: aload 4
areturn
7: StackMap locals: java.lang.ClassNotFoundException java.lang.Class
StackMap stack:
aload 3
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/io/ObjectInputStream;
0 8 1 desc Ljava/io/ObjectStreamClass;
1 8 2 name Ljava/lang/String;
4 8 3 ex Ljava/lang/ClassNotFoundException;
5 8 4 cl Ljava/lang/Class<*>;
Exception table:
from to target type
1 2 3 Class java.lang.ClassNotFoundException
Exceptions:
throws java.io.IOException, java.lang.ClassNotFoundException
Signature: (Ljava/io/ObjectStreamClass;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
desc
protected java.lang.Class<?> resolveProxyClass(java.lang.String[]);
descriptor: ([Ljava/lang/String;)Ljava/lang/Class;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=8, args_size=2
start local 0 start local 1 0: invokestatic java.io.ObjectInputStream.latestUserDefinedLoader:()Ljava/lang/ClassLoader;
astore 2
start local 2 1: aconst_null
astore 3
start local 3 2: iconst_0
istore 4
start local 4 3: aload 1
arraylength
anewarray java.lang.Class
astore 5
start local 5 4: iconst_0
istore 6
start local 6 5: goto 17
6: StackMap locals: java.io.ObjectInputStream java.lang.String[] java.lang.ClassLoader java.lang.ClassLoader int java.lang.Class[] int
StackMap stack:
aload 1
iload 6
aaload
iconst_0
aload 2
invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
astore 7
start local 7 7: aload 7
invokevirtual java.lang.Class.getModifiers:()I
iconst_1
iand
ifne 15
8: iload 4
ifeq 13
9: aload 3
aload 7
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
if_acmpeq 15
10: new java.lang.IllegalAccessError
dup
11: ldc "conflicting non-public interface class loaders"
12: invokespecial java.lang.IllegalAccessError.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals: java.lang.Class
StackMap stack:
aload 7
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
astore 3
14: iconst_1
istore 4
15: StackMap locals:
StackMap stack:
aload 5
iload 6
aload 7
aastore
end local 7 16: iinc 6 1
StackMap locals:
StackMap stack:
17: iload 6
aload 1
arraylength
if_icmplt 6
end local 6 18: iload 4
ifeq 19
aload 3
goto 20
StackMap locals:
StackMap stack:
19: aload 2
20: StackMap locals:
StackMap stack: java.lang.ClassLoader
aload 5
21: invokestatic java.lang.reflect.Proxy.getProxyClass:(Ljava/lang/ClassLoader;[Ljava/lang/Class;)Ljava/lang/Class;
astore 6
start local 6 22: aload 6
23: areturn
end local 6 24: StackMap locals:
StackMap stack: java.lang.IllegalArgumentException
astore 6
start local 6 25: new java.lang.ClassNotFoundException
dup
aconst_null
aload 6
invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 6 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 26 0 this Ljava/io/ObjectInputStream;
0 26 1 interfaces [Ljava/lang/String;
1 26 2 latestLoader Ljava/lang/ClassLoader;
2 26 3 nonPublicLoader Ljava/lang/ClassLoader;
3 26 4 hasNonPublicInterface Z
4 26 5 classObjs [Ljava/lang/Class;
5 18 6 i I
7 16 7 cl Ljava/lang/Class<*>;
22 24 6 proxyClass Ljava/lang/Class<*>;
25 26 6 e Ljava/lang/IllegalArgumentException;
Exception table:
from to target type
18 23 24 Class java.lang.IllegalArgumentException
Exceptions:
throws java.io.IOException, java.lang.ClassNotFoundException
Signature: ([Ljava/lang/String;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
interfaces
protected java.lang.Object resolveObject(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/io/ObjectInputStream;
0 1 1 obj Ljava/lang/Object;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
obj
protected boolean enableResolveObject(boolean);
descriptor: (Z)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: iload 1
aload 0
getfield java.io.ObjectInputStream.enableResolve:Z
if_icmpne 2
1: iload 1
ireturn
2: StackMap locals:
StackMap stack:
iload 1
ifeq 6
3: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 2
start local 2 4: aload 2
ifnull 6
5: aload 2
getstatic java.io.ObjectInputStream.SUBSTITUTION_PERMISSION:Ljava/io/SerializablePermission;
invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
end local 2 6: StackMap locals:
StackMap stack:
aload 0
iload 1
putfield java.io.ObjectInputStream.enableResolve:Z
7: aload 0
getfield java.io.ObjectInputStream.enableResolve:Z
ifeq 8
iconst_0
goto 9
StackMap locals:
StackMap stack:
8: iconst_1
StackMap locals:
StackMap stack: int
9: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljava/io/ObjectInputStream;
0 10 1 enable Z
4 6 2 sm Ljava/lang/SecurityManager;
Exceptions:
throws java.lang.SecurityException
MethodParameters:
Name Flags
enable
protected void ();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=3, args_size=1
start local 0 0: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.readShort:()S
istore 1
start local 1 1: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.readShort:()S
istore 2
start local 2 2: iload 1
sipush -21267
if_icmpne 3
iload 2
iconst_5
if_icmpeq 6
3: StackMap locals: int int
StackMap stack:
new java.io.StreamCorruptedException
dup
4: ldc "invalid stream header: %04X%04X"
iconst_2
anewarray java.lang.Object
dup
iconst_0
iload 1
invokestatic java.lang.Short.valueOf:(S)Ljava/lang/Short;
aastore
dup
iconst_1
iload 2
invokestatic java.lang.Short.valueOf:(S)Ljava/lang/Short;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
5: invokespecial java.io.StreamCorruptedException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/io/ObjectInputStream;
1 7 1 s0 S
2 7 2 s1 S
Exceptions:
throws java.io.IOException, java.io.StreamCorruptedException
protected java.io.ObjectStreamClass readClassDescriptor();
descriptor: ()Ljava/io/ObjectStreamClass;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=1
start local 0 0: new java.io.ObjectStreamClass
dup
invokespecial java.io.ObjectStreamClass.<init>:()V
astore 1
start local 1 1: aload 1
aload 0
invokevirtual java.io.ObjectStreamClass.readNonProxy:(Ljava/io/ObjectInputStream;)V
2: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/io/ObjectInputStream;
1 3 1 desc Ljava/io/ObjectStreamClass;
Exceptions:
throws java.io.IOException, java.lang.ClassNotFoundException
public int read();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.read:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/io/ObjectInputStream;
Exceptions:
throws java.io.IOException
public int read(byte[], int, int);
descriptor: ([BII)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
iload 2
iload 3
iadd
istore 4
start local 4 3: iload 2
iflt 4
iload 3
iflt 4
iload 4
aload 1
arraylength
if_icmpgt 4
iload 4
ifge 5
4: StackMap locals: int
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
aload 1
iload 2
iload 3
iconst_0
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.read:([BIIZ)I
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/io/ObjectInputStream;
0 6 1 buf [B
0 6 2 off I
0 6 3 len I
3 6 4 endoff I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
buf
off
len
public int available();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.available:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/io/ObjectInputStream;
Exceptions:
throws java.io.IOException
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield java.io.ObjectInputStream.closed:Z
1: aload 0
getfield java.io.ObjectInputStream.depth:J
lconst_0
lcmp
ifne 3
2: aload 0
invokevirtual java.io.ObjectInputStream.clear:()V
3: StackMap locals:
StackMap stack:
aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.close:()V
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/io/ObjectInputStream;
Exceptions:
throws java.io.IOException
public boolean readBoolean();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.readBoolean:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/io/ObjectInputStream;
Exceptions:
throws java.io.IOException
public byte readByte();
descriptor: ()B
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.readByte:()B
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/io/ObjectInputStream;
Exceptions:
throws java.io.IOException
public int readUnsignedByte();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.readUnsignedByte:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/io/ObjectInputStream;
Exceptions:
throws java.io.IOException
public char readChar();
descriptor: ()C
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.readChar:()C
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/io/ObjectInputStream;
Exceptions:
throws java.io.IOException
public short readShort();
descriptor: ()S
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.readShort:()S
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/io/ObjectInputStream;
Exceptions:
throws java.io.IOException
public int readUnsignedShort();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.readUnsignedShort:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/io/ObjectInputStream;
Exceptions:
throws java.io.IOException
public int readInt();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.readInt:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/io/ObjectInputStream;
Exceptions:
throws java.io.IOException
public long readLong();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.readLong:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/io/ObjectInputStream;
Exceptions:
throws java.io.IOException
public float readFloat();
descriptor: ()F
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.readFloat:()F
freturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/io/ObjectInputStream;
Exceptions:
throws java.io.IOException
public double readDouble();
descriptor: ()D
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.readDouble:()D
dreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/io/ObjectInputStream;
Exceptions:
throws java.io.IOException
public void readFully(byte[]);
descriptor: ([B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
aload 1
iconst_0
aload 1
arraylength
iconst_0
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.readFully:([BIIZ)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/io/ObjectInputStream;
0 2 1 buf [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
buf
public void readFully(byte[], int, int);
descriptor: ([BII)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
iload 3
iadd
istore 4
start local 4 1: iload 2
iflt 2
iload 3
iflt 2
iload 4
aload 1
arraylength
if_icmpgt 2
iload 4
ifge 3
2: StackMap locals: int
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
athrow
3: StackMap locals:
StackMap stack:
aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
aload 1
iload 2
iload 3
iconst_0
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.readFully:([BIIZ)V
4: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/io/ObjectInputStream;
0 5 1 buf [B
0 5 2 off I
0 5 3 len I
1 5 4 endoff I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
buf
off
len
public int skipBytes(int);
descriptor: (I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
iload 1
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.skipBytes:(I)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/io/ObjectInputStream;
0 1 1 len I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
len
public java.lang.String readLine();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.readLine:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/io/ObjectInputStream;
Exceptions:
throws java.io.IOException
RuntimeVisibleAnnotations:
java.lang.Deprecated()
public java.lang.String readUTF();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.readUTF:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/io/ObjectInputStream;
Exceptions:
throws java.io.IOException
public final java.io.ObjectInputFilter getObjectInputFilter();
descriptor: ()Ljava/io/ObjectInputFilter;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.io.ObjectInputStream.serialFilter:Ljava/io/ObjectInputFilter;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/io/ObjectInputStream;
public final void setObjectInputFilter(java.io.ObjectInputFilter);
descriptor: (Ljava/io/ObjectInputFilter;)V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 2
start local 2 1: aload 2
ifnull 3
2: aload 2
getstatic java.io.ObjectStreamConstants.SERIAL_FILTER_PERMISSION:Ljava/io/SerializablePermission;
invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
3: StackMap locals: java.lang.SecurityManager
StackMap stack:
aload 0
getfield java.io.ObjectInputStream.serialFilter:Ljava/io/ObjectInputFilter;
ifnull 6
4: aload 0
getfield java.io.ObjectInputStream.serialFilter:Ljava/io/ObjectInputFilter;
invokestatic java.io.ObjectInputFilter$Config.getSerialFilter:()Ljava/io/ObjectInputFilter;
if_acmpeq 6
5: new java.lang.IllegalStateException
dup
ldc "filter can not be set more than once"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield java.io.ObjectInputStream.totalObjectRefs:J
lconst_0
lcmp
ifle 10
getstatic java.io.ObjectInputStream$Caches.SET_FILTER_AFTER_READ:Z
ifne 10
7: new java.lang.IllegalStateException
dup
8: ldc "filter can not be set after an object has been read"
9: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield java.io.ObjectInputStream.serialFilter:Ljava/io/ObjectInputFilter;
11: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/io/ObjectInputStream;
0 12 1 filter Ljava/io/ObjectInputFilter;
1 12 2 sm Ljava/lang/SecurityManager;
MethodParameters:
Name Flags
filter
private void filterCheck(java.lang.Class<?>, );
descriptor: (Ljava/lang/Class;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=12, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield java.io.ObjectInputStream.serialFilter:Ljava/io/ObjectInputFilter;
ifnull 25
1: aconst_null
astore 3
start local 3 2: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
ifnonnull 3
lconst_0
goto 4
StackMap locals: java.lang.RuntimeException
StackMap stack:
3: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.getBytesRead:()J
StackMap locals:
StackMap stack: long
4: lstore 5
start local 5 5: aload 0
getfield java.io.ObjectInputStream.serialFilter:Ljava/io/ObjectInputFilter;
new java.io.ObjectInputStream$FilterValues
dup
aload 1
iload 2
i2l
6: aload 0
getfield java.io.ObjectInputStream.totalObjectRefs:J
aload 0
getfield java.io.ObjectInputStream.depth:J
lload 5
invokespecial java.io.ObjectInputStream$FilterValues.<init>:(Ljava/lang/Class;JJJJ)V
7: invokeinterface java.io.ObjectInputFilter.checkInput:(Ljava/io/ObjectInputFilter$FilterInfo;)Ljava/io/ObjectInputFilter$Status;
astore 4
start local 4 8: goto 12
end local 4 StackMap locals: java.io.ObjectInputStream java.lang.Class int java.lang.RuntimeException top long
StackMap stack: java.lang.RuntimeException
9: astore 7
start local 7 10: getstatic java.io.ObjectInputFilter$Status.REJECTED:Ljava/io/ObjectInputFilter$Status;
astore 4
start local 4 11: aload 7
astore 3
end local 7 12: StackMap locals: java.io.ObjectInputStream java.lang.Class int java.lang.RuntimeException java.io.ObjectInputFilter$Status long
StackMap stack:
getstatic java.io.ObjectInputStream$Logging.filterLogger:Ljava/lang/System$Logger;
ifnull 20
13: getstatic java.io.ObjectInputStream$Logging.filterLogger:Ljava/lang/System$Logger;
aload 4
ifnull 14
aload 4
getstatic java.io.ObjectInputFilter$Status.REJECTED:Ljava/io/ObjectInputFilter$Status;
if_acmpne 15
14: StackMap locals:
StackMap stack: java.lang.System$Logger
getstatic java.lang.System$Logger$Level.DEBUG:Ljava/lang/System$Logger$Level;
goto 16
15: StackMap locals:
StackMap stack: java.lang.System$Logger
getstatic java.lang.System$Logger$Level.TRACE:Ljava/lang/System$Logger$Level;
16: StackMap locals: java.io.ObjectInputStream java.lang.Class int java.lang.RuntimeException java.io.ObjectInputFilter$Status long
StackMap stack: java.lang.System$Logger java.lang.System$Logger$Level
ldc "ObjectInputFilter {0}: {1}, array length: {2}, nRefs: {3}, depth: {4}, bytes: {5}, ex: {6}"
bipush 7
anewarray java.lang.Object
dup
iconst_0
17: aload 4
aastore
dup
iconst_1
aload 1
aastore
dup
iconst_2
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_3
aload 0
getfield java.io.ObjectInputStream.totalObjectRefs:J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_4
aload 0
getfield java.io.ObjectInputStream.depth:J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_5
lload 5
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
bipush 6
18: aload 3
ldc "n/a"
invokestatic java.util.Objects.toString:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/String;
aastore
19: invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/lang/String;[Ljava/lang/Object;)V
20: StackMap locals:
StackMap stack:
aload 4
ifnull 22
21: aload 4
getstatic java.io.ObjectInputFilter$Status.REJECTED:Ljava/io/ObjectInputFilter$Status;
if_acmpne 25
22: StackMap locals:
StackMap stack:
new java.io.InvalidClassException
dup
new java.lang.StringBuilder
dup
ldc "filter status: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.InvalidClassException.<init>:(Ljava/lang/String;)V
astore 7
start local 7 23: aload 7
aload 3
invokevirtual java.io.InvalidClassException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
24: aload 7
athrow
end local 7 end local 5 end local 4 end local 3 25: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Ljava/io/ObjectInputStream;
0 26 1 clazz Ljava/lang/Class<*>;
0 26 2 arrayLength I
2 25 3 ex Ljava/lang/RuntimeException;
8 9 4 status Ljava/io/ObjectInputFilter$Status;
11 25 4 status Ljava/io/ObjectInputFilter$Status;
5 25 5 bytesRead J
10 12 7 e Ljava/lang/RuntimeException;
23 25 7 ice Ljava/io/InvalidClassException;
Exception table:
from to target type
5 8 9 Class java.lang.RuntimeException
Exceptions:
throws java.io.InvalidClassException
Signature: (Ljava/lang/Class<*>;I)V
MethodParameters:
Name Flags
clazz
arrayLength
private void checkArray(java.lang.Class<?>, );
descriptor: (Ljava/lang/Class;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual java.lang.Class.isArray:()Z
ifne 2
1: new java.lang.IllegalArgumentException
dup
ldc "not an array type"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iload 2
ifge 4
3: new java.lang.NegativeArraySizeException
dup
invokespecial java.lang.NegativeArraySizeException.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
invokevirtual java.io.ObjectInputStream.filterCheck:(Ljava/lang/Class;I)V
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/io/ObjectInputStream;
0 6 1 arrayType Ljava/lang/Class<*>;
0 6 2 arrayLength I
Exceptions:
throws java.io.InvalidClassException
Signature: (Ljava/lang/Class<*>;I)V
MethodParameters:
Name Flags
arrayType
arrayLength
private void verifySubclass();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
astore 1
start local 1 1: aload 1
ldc Ljava/io/ObjectInputStream;
if_acmpne 3
2: return
3: StackMap locals: java.lang.Class
StackMap stack:
invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 2
start local 2 4: aload 2
ifnonnull 6
5: return
6: StackMap locals: java.lang.SecurityManager
StackMap stack:
getstatic java.io.ObjectInputStream$Caches.subclassAuditsQueue:Ljava/lang/ref/ReferenceQueue;
getstatic java.io.ObjectInputStream$Caches.subclassAudits:Ljava/util/concurrent/ConcurrentMap;
invokestatic java.io.ObjectStreamClass.processQueue:(Ljava/lang/ref/ReferenceQueue;Ljava/util/concurrent/ConcurrentMap;)V
7: new java.io.ObjectStreamClass$WeakClassKey
dup
aload 1
getstatic java.io.ObjectInputStream$Caches.subclassAuditsQueue:Ljava/lang/ref/ReferenceQueue;
invokespecial java.io.ObjectStreamClass$WeakClassKey.<init>:(Ljava/lang/Class;Ljava/lang/ref/ReferenceQueue;)V
astore 3
start local 3 8: getstatic java.io.ObjectInputStream$Caches.subclassAudits:Ljava/util/concurrent/ConcurrentMap;
aload 3
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Boolean
astore 4
start local 4 9: aload 4
ifnonnull 12
10: aload 1
invokestatic java.io.ObjectInputStream.auditSubclass:(Ljava/lang/Class;)Ljava/lang/Boolean;
astore 4
11: getstatic java.io.ObjectInputStream$Caches.subclassAudits:Ljava/util/concurrent/ConcurrentMap;
aload 3
aload 4
invokeinterface java.util.concurrent.ConcurrentMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
12: StackMap locals: java.io.ObjectStreamClass$WeakClassKey java.lang.Boolean
StackMap stack:
aload 4
invokevirtual java.lang.Boolean.booleanValue:()Z
ifne 14
13: aload 2
getstatic java.io.ObjectInputStream.SUBCLASS_IMPLEMENTATION_PERMISSION:Ljava/io/SerializablePermission;
invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
14: 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 15 0 this Ljava/io/ObjectInputStream;
1 15 1 cl Ljava/lang/Class<*>;
4 15 2 sm Ljava/lang/SecurityManager;
8 15 3 key Ljava/io/ObjectStreamClass$WeakClassKey;
9 15 4 result Ljava/lang/Boolean;
private static java.lang.Boolean auditSubclass(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/Boolean;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.io.ObjectInputStream$1
dup
aload 0
invokespecial java.io.ObjectInputStream$1.<init>:(Ljava/lang/Class;)V
1: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.Boolean
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 subcl Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Ljava/lang/Boolean;
MethodParameters:
Name Flags
subcl
private void clear();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.io.ObjectInputStream.handles:Ljava/io/ObjectInputStream$HandleTable;
invokevirtual java.io.ObjectInputStream$HandleTable.clear:()V
1: aload 0
getfield java.io.ObjectInputStream.vlist:Ljava/io/ObjectInputStream$ValidationList;
invokevirtual java.io.ObjectInputStream$ValidationList.clear:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/io/ObjectInputStream;
private readObject0(java.lang.Class<?>, boolean);
descriptor: (Ljava/lang/Class;Z)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.getBlockDataMode:()Z
istore 3
start local 3 1: iload 3
ifeq 11
2: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.currentBlockRemaining:()I
istore 4
start local 4 3: iload 4
ifle 5
4: new java.io.OptionalDataException
dup
iload 4
invokespecial java.io.OptionalDataException.<init>:(I)V
athrow
5: StackMap locals: int int
StackMap stack:
aload 0
getfield java.io.ObjectInputStream.defaultDataEnd:Z
ifeq 7
6: new java.io.OptionalDataException
dup
iconst_1
invokespecial java.io.OptionalDataException.<init>:(Z)V
athrow
7: StackMap locals:
StackMap stack:
aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
iconst_0
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.setBlockDataMode:(Z)Z
pop
end local 4 8: goto 11
start local 4 9: StackMap locals: java.io.ObjectInputStream java.lang.Class int int int
StackMap stack:
aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.readByte:()B
pop
10: aload 0
invokevirtual java.io.ObjectInputStream.handleReset:()V
end local 4 11: StackMap locals:
StackMap stack:
aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.peekByte:()B
dup
istore 4
start local 4 12: bipush 121
if_icmpeq 9
13: aload 0
dup
getfield java.io.ObjectInputStream.depth:J
lconst_1
ladd
putfield java.io.ObjectInputStream.depth:J
14: aload 0
dup
getfield java.io.ObjectInputStream.totalObjectRefs:J
lconst_1
ladd
putfield java.io.ObjectInputStream.totalObjectRefs:J
15: iload 4
tableswitch { // 112 - 126
112: 16
113: 20
114: 30
115: 52
116: 36
117: 40
118: 24
119: 62
120: 71
121: 76
122: 62
123: 58
124: 36
125: 30
126: 46
default: 76
}
16: StackMap locals: int
StackMap stack:
aload 0
invokevirtual java.io.ObjectInputStream.readNull:()Ljava/lang/Object;
astore 7
17: aload 0
dup
getfield java.io.ObjectInputStream.depth:J
lconst_1
lsub
putfield java.io.ObjectInputStream.depth:J
18: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
iload 3
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.setBlockDataMode:(Z)Z
pop
19: aload 7
areturn
20: StackMap locals:
StackMap stack:
aload 1
aload 0
iload 2
invokevirtual java.io.ObjectInputStream.readHandle:(Z)Ljava/lang/Object;
invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
astore 7
21: aload 0
dup
getfield java.io.ObjectInputStream.depth:J
lconst_1
lsub
putfield java.io.ObjectInputStream.depth:J
22: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
iload 3
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.setBlockDataMode:(Z)Z
pop
23: aload 7
areturn
24: StackMap locals:
StackMap stack:
aload 1
ldc Ljava/lang/String;
if_acmpne 26
25: new java.lang.ClassCastException
dup
ldc "Cannot cast a class to java.lang.String"
invokespecial java.lang.ClassCastException.<init>:(Ljava/lang/String;)V
athrow
26: StackMap locals:
StackMap stack:
aload 0
iload 2
invokevirtual java.io.ObjectInputStream.readClass:(Z)Ljava/lang/Class;
astore 7
27: aload 0
dup
getfield java.io.ObjectInputStream.depth:J
lconst_1
lsub
putfield java.io.ObjectInputStream.depth:J
28: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
iload 3
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.setBlockDataMode:(Z)Z
pop
29: aload 7
areturn
30: StackMap locals:
StackMap stack:
aload 1
ldc Ljava/lang/String;
if_acmpne 32
31: new java.lang.ClassCastException
dup
ldc "Cannot cast a class to java.lang.String"
invokespecial java.lang.ClassCastException.<init>:(Ljava/lang/String;)V
athrow
32: StackMap locals:
StackMap stack:
aload 0
iload 2
invokevirtual java.io.ObjectInputStream.readClassDesc:(Z)Ljava/io/ObjectStreamClass;
astore 7
33: aload 0
dup
getfield java.io.ObjectInputStream.depth:J
lconst_1
lsub
putfield java.io.ObjectInputStream.depth:J
34: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
iload 3
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.setBlockDataMode:(Z)Z
pop
35: aload 7
areturn
36: StackMap locals:
StackMap stack:
aload 0
aload 0
iload 2
invokevirtual java.io.ObjectInputStream.readString:(Z)Ljava/lang/String;
invokevirtual java.io.ObjectInputStream.checkResolve:(Ljava/lang/Object;)Ljava/lang/Object;
astore 7
37: aload 0
dup
getfield java.io.ObjectInputStream.depth:J
lconst_1
lsub
putfield java.io.ObjectInputStream.depth:J
38: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
iload 3
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.setBlockDataMode:(Z)Z
pop
39: aload 7
areturn
40: StackMap locals:
StackMap stack:
aload 1
ldc Ljava/lang/String;
if_acmpne 42
41: new java.lang.ClassCastException
dup
ldc "Cannot cast an array to java.lang.String"
invokespecial java.lang.ClassCastException.<init>:(Ljava/lang/String;)V
athrow
42: StackMap locals:
StackMap stack:
aload 0
aload 0
iload 2
invokevirtual java.io.ObjectInputStream.readArray:(Z)Ljava/lang/Object;
invokevirtual java.io.ObjectInputStream.checkResolve:(Ljava/lang/Object;)Ljava/lang/Object;
astore 7
43: aload 0
dup
getfield java.io.ObjectInputStream.depth:J
lconst_1
lsub
putfield java.io.ObjectInputStream.depth:J
44: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
iload 3
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.setBlockDataMode:(Z)Z
pop
45: aload 7
areturn
46: StackMap locals:
StackMap stack:
aload 1
ldc Ljava/lang/String;
if_acmpne 48
47: new java.lang.ClassCastException
dup
ldc "Cannot cast an enum to java.lang.String"
invokespecial java.lang.ClassCastException.<init>:(Ljava/lang/String;)V
athrow
48: StackMap locals:
StackMap stack:
aload 0
aload 0
iload 2
invokevirtual java.io.ObjectInputStream.readEnum:(Z)Ljava/lang/Enum;
invokevirtual java.io.ObjectInputStream.checkResolve:(Ljava/lang/Object;)Ljava/lang/Object;
astore 7
49: aload 0
dup
getfield java.io.ObjectInputStream.depth:J
lconst_1
lsub
putfield java.io.ObjectInputStream.depth:J
50: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
iload 3
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.setBlockDataMode:(Z)Z
pop
51: aload 7
areturn
52: StackMap locals:
StackMap stack:
aload 1
ldc Ljava/lang/String;
if_acmpne 54
53: new java.lang.ClassCastException
dup
ldc "Cannot cast an object to java.lang.String"
invokespecial java.lang.ClassCastException.<init>:(Ljava/lang/String;)V
athrow
54: StackMap locals:
StackMap stack:
aload 0
aload 0
iload 2
invokevirtual java.io.ObjectInputStream.readOrdinaryObject:(Z)Ljava/lang/Object;
invokevirtual java.io.ObjectInputStream.checkResolve:(Ljava/lang/Object;)Ljava/lang/Object;
astore 7
55: aload 0
dup
getfield java.io.ObjectInputStream.depth:J
lconst_1
lsub
putfield java.io.ObjectInputStream.depth:J
56: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
iload 3
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.setBlockDataMode:(Z)Z
pop
57: aload 7
areturn
58: StackMap locals:
StackMap stack:
aload 1
ldc Ljava/lang/String;
if_acmpne 60
59: new java.lang.ClassCastException
dup
ldc "Cannot cast an exception to java.lang.String"
invokespecial java.lang.ClassCastException.<init>:(Ljava/lang/String;)V
athrow
60: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.io.ObjectInputStream.readFatalException:()Ljava/io/IOException;
astore 5
start local 5 61: new java.io.WriteAbortedException
dup
ldc "writing aborted"
aload 5
invokespecial java.io.WriteAbortedException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
athrow
end local 5 62: StackMap locals:
StackMap stack:
iload 3
ifeq 68
63: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
iconst_1
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.setBlockDataMode:(Z)Z
pop
64: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.peek:()I
pop
65: new java.io.OptionalDataException
dup
66: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.currentBlockRemaining:()I
67: invokespecial java.io.OptionalDataException.<init>:(I)V
athrow
68: StackMap locals:
StackMap stack:
new java.io.StreamCorruptedException
dup
69: ldc "unexpected block data"
70: invokespecial java.io.StreamCorruptedException.<init>:(Ljava/lang/String;)V
athrow
71: StackMap locals:
StackMap stack:
iload 3
ifeq 73
72: new java.io.OptionalDataException
dup
iconst_1
invokespecial java.io.OptionalDataException.<init>:(Z)V
athrow
73: StackMap locals:
StackMap stack:
new java.io.StreamCorruptedException
dup
74: ldc "unexpected end of block data"
75: invokespecial java.io.StreamCorruptedException.<init>:(Ljava/lang/String;)V
athrow
76: StackMap locals:
StackMap stack:
new java.io.StreamCorruptedException
dup
77: ldc "invalid type code: %02X"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 4
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
78: invokespecial java.io.StreamCorruptedException.<init>:(Ljava/lang/String;)V
athrow
79: StackMap locals:
StackMap stack: java.lang.Throwable
astore 6
80: aload 0
dup
getfield java.io.ObjectInputStream.depth:J
lconst_1
lsub
putfield java.io.ObjectInputStream.depth:J
81: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
iload 3
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.setBlockDataMode:(Z)Z
pop
82: aload 6
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 83 0 this Ljava/io/ObjectInputStream;
0 83 1 type Ljava/lang/Class<*>;
0 83 2 unshared Z
1 83 3 oldMode Z
3 8 4 remain I
9 11 4 tc B
12 83 4 tc B
61 62 5 ex Ljava/io/IOException;
Exception table:
from to target type
15 17 79 any
20 21 79 any
24 27 79 any
30 33 79 any
36 37 79 any
40 43 79 any
46 49 79 any
52 55 79 any
58 79 79 any
Exceptions:
throws java.io.IOException
Signature: (Ljava/lang/Class<*>;Z)Ljava/lang/Object;
MethodParameters:
Name Flags
type
unshared
private java.lang.Object checkResolve(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield java.io.ObjectInputStream.enableResolve:Z
ifeq 1
aload 0
getfield java.io.ObjectInputStream.handles:Ljava/io/ObjectInputStream$HandleTable;
aload 0
getfield java.io.ObjectInputStream.passHandle:I
invokevirtual java.io.ObjectInputStream$HandleTable.lookupException:(I)Ljava/lang/ClassNotFoundException;
ifnull 2
1: StackMap locals:
StackMap stack:
aload 1
areturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual java.io.ObjectInputStream.resolveObject:(Ljava/lang/Object;)Ljava/lang/Object;
astore 2
start local 2 3: aload 2
aload 1
if_acmpeq 10
4: aload 2
ifnull 9
5: aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.isArray:()Z
ifeq 8
6: aload 0
aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aload 2
invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
invokevirtual java.io.ObjectInputStream.filterCheck:(Ljava/lang/Class;I)V
7: goto 9
8: StackMap locals: java.lang.Object
StackMap stack:
aload 0
aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
iconst_m1
invokevirtual java.io.ObjectInputStream.filterCheck:(Ljava/lang/Class;I)V
9: StackMap locals:
StackMap stack:
aload 0
getfield java.io.ObjectInputStream.handles:Ljava/io/ObjectInputStream$HandleTable;
aload 0
getfield java.io.ObjectInputStream.passHandle:I
aload 2
invokevirtual java.io.ObjectInputStream$HandleTable.setObject:(ILjava/lang/Object;)V
10: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljava/io/ObjectInputStream;
0 11 1 obj Ljava/lang/Object;
3 11 2 rep Ljava/lang/Object;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
obj
java.lang.String readTypeString();
descriptor: ()Ljava/lang/String;
flags: (0x0000)
Code:
stack=7, locals=5, args_size=1
start local 0 0: aload 0
getfield java.io.ObjectInputStream.passHandle:I
istore 1
start local 1 1: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.peekByte:()B
istore 2
start local 2 2: iload 2
lookupswitch { // 4
112: 3
113: 6
116: 9
124: 9
default: 12
}
3: StackMap locals: int int
StackMap stack:
aload 0
invokevirtual java.io.ObjectInputStream.readNull:()Ljava/lang/Object;
checkcast java.lang.String
astore 4
4: aload 0
iload 1
putfield java.io.ObjectInputStream.passHandle:I
5: aload 4
areturn
6: StackMap locals:
StackMap stack:
aload 0
iconst_0
invokevirtual java.io.ObjectInputStream.readHandle:(Z)Ljava/lang/Object;
checkcast java.lang.String
astore 4
7: aload 0
iload 1
putfield java.io.ObjectInputStream.passHandle:I
8: aload 4
areturn
9: StackMap locals:
StackMap stack:
aload 0
iconst_0
invokevirtual java.io.ObjectInputStream.readString:(Z)Ljava/lang/String;
astore 4
10: aload 0
iload 1
putfield java.io.ObjectInputStream.passHandle:I
11: aload 4
areturn
12: StackMap locals:
StackMap stack:
new java.io.StreamCorruptedException
dup
13: ldc "invalid type code: %02X"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 2
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
14: invokespecial java.io.StreamCorruptedException.<init>:(Ljava/lang/String;)V
athrow
end local 2 15: StackMap locals: java.io.ObjectInputStream int
StackMap stack: java.lang.Throwable
astore 3
16: aload 0
iload 1
putfield java.io.ObjectInputStream.passHandle:I
17: aload 3
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Ljava/io/ObjectInputStream;
1 18 1 oldHandle I
2 15 2 tc B
Exception table:
from to target type
1 4 15 any
6 7 15 any
9 10 15 any
12 15 15 any
Exceptions:
throws java.io.IOException
private java.lang.Object readNull();
descriptor: ()Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.readByte:()B
bipush 112
if_icmpeq 2
1: new java.lang.InternalError
dup
invokespecial java.lang.InternalError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
iconst_m1
putfield java.io.ObjectInputStream.passHandle:I
3: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/io/ObjectInputStream;
Exceptions:
throws java.io.IOException
private java.lang.Object readHandle(boolean);
descriptor: (Z)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.readByte:()B
bipush 113
if_icmpeq 2
1: new java.lang.InternalError
dup
invokespecial java.lang.InternalError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.readInt:()I
ldc 8257536
isub
putfield java.io.ObjectInputStream.passHandle:I
3: aload 0
getfield java.io.ObjectInputStream.passHandle:I
iflt 4
aload 0
getfield java.io.ObjectInputStream.passHandle:I
aload 0
getfield java.io.ObjectInputStream.handles:Ljava/io/ObjectInputStream$HandleTable;
invokevirtual java.io.ObjectInputStream$HandleTable.size:()I
if_icmplt 9
4: StackMap locals:
StackMap stack:
new java.io.StreamCorruptedException
dup
5: ldc "invalid handle value: %08X"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield java.io.ObjectInputStream.passHandle:I
6: ldc 8257536
iadd
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
7: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
8: invokespecial java.io.StreamCorruptedException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals:
StackMap stack:
iload 1
ifeq 13
10: new java.io.InvalidObjectException
dup
11: ldc "cannot read back reference as unshared"
12: invokespecial java.io.InvalidObjectException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals:
StackMap stack:
aload 0
getfield java.io.ObjectInputStream.handles:Ljava/io/ObjectInputStream$HandleTable;
aload 0
getfield java.io.ObjectInputStream.passHandle:I
invokevirtual java.io.ObjectInputStream$HandleTable.lookupObject:(I)Ljava/lang/Object;
astore 2
start local 2 14: aload 2
getstatic java.io.ObjectInputStream.unsharedMarker:Ljava/lang/Object;
if_acmpne 18
15: new java.io.InvalidObjectException
dup
16: ldc "cannot read back reference to unshared object"
17: invokespecial java.io.InvalidObjectException.<init>:(Ljava/lang/String;)V
athrow
18: StackMap locals: java.lang.Object
StackMap stack:
aload 0
aconst_null
iconst_m1
invokevirtual java.io.ObjectInputStream.filterCheck:(Ljava/lang/Class;I)V
19: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Ljava/io/ObjectInputStream;
0 20 1 unshared Z
14 20 2 obj Ljava/lang/Object;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
unshared
private java.lang.Class<?> readClass(boolean);
descriptor: (Z)Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.readByte:()B
bipush 118
if_icmpeq 2
1: new java.lang.InternalError
dup
invokespecial java.lang.InternalError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
iconst_0
invokevirtual java.io.ObjectInputStream.readClassDesc:(Z)Ljava/io/ObjectStreamClass;
astore 2
start local 2 3: aload 2
invokevirtual java.io.ObjectStreamClass.forClass:()Ljava/lang/Class;
astore 3
start local 3 4: aload 0
aload 0
getfield java.io.ObjectInputStream.handles:Ljava/io/ObjectInputStream$HandleTable;
iload 1
ifeq 5
getstatic java.io.ObjectInputStream.unsharedMarker:Ljava/lang/Object;
goto 6
StackMap locals: java.io.ObjectInputStream int java.io.ObjectStreamClass java.lang.Class
StackMap stack: java.io.ObjectInputStream java.io.ObjectInputStream$HandleTable
5: aload 3
StackMap locals: java.io.ObjectInputStream int java.io.ObjectStreamClass java.lang.Class
StackMap stack: java.io.ObjectInputStream java.io.ObjectInputStream$HandleTable java.lang.Object
6: invokevirtual java.io.ObjectInputStream$HandleTable.assign:(Ljava/lang/Object;)I
putfield java.io.ObjectInputStream.passHandle:I
7: aload 2
invokevirtual java.io.ObjectStreamClass.getResolveException:()Ljava/lang/ClassNotFoundException;
astore 4
start local 4 8: aload 4
ifnull 10
9: aload 0
getfield java.io.ObjectInputStream.handles:Ljava/io/ObjectInputStream$HandleTable;
aload 0
getfield java.io.ObjectInputStream.passHandle:I
aload 4
invokevirtual java.io.ObjectInputStream$HandleTable.markException:(ILjava/lang/ClassNotFoundException;)V
10: StackMap locals: java.lang.ClassNotFoundException
StackMap stack:
aload 0
getfield java.io.ObjectInputStream.handles:Ljava/io/ObjectInputStream$HandleTable;
aload 0
getfield java.io.ObjectInputStream.passHandle:I
invokevirtual java.io.ObjectInputStream$HandleTable.finish:(I)V
11: aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/io/ObjectInputStream;
0 12 1 unshared Z
3 12 2 desc Ljava/io/ObjectStreamClass;
4 12 3 cl Ljava/lang/Class<*>;
8 12 4 resolveEx Ljava/lang/ClassNotFoundException;
Exceptions:
throws java.io.IOException
Signature: (Z)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
unshared
private java.io.ObjectStreamClass readClassDesc(boolean);
descriptor: (Z)Ljava/io/ObjectStreamClass;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.peekByte:()B
istore 2
start local 2 1: iload 2
lookupswitch { // 4
112: 2
113: 4
114: 9
125: 7
default: 11
}
2: StackMap locals: int
StackMap stack:
aload 0
invokevirtual java.io.ObjectInputStream.readNull:()Ljava/lang/Object;
checkcast java.io.ObjectStreamClass
astore 3
start local 3 3: goto 14
end local 3 4: StackMap locals:
StackMap stack:
aload 0
iload 1
invokevirtual java.io.ObjectInputStream.readHandle:(Z)Ljava/lang/Object;
checkcast java.io.ObjectStreamClass
astore 3
start local 3 5: aload 3
invokevirtual java.io.ObjectStreamClass.checkInitialized:()V
6: goto 14
end local 3 7: StackMap locals:
StackMap stack:
aload 0
iload 1
invokevirtual java.io.ObjectInputStream.readProxyDesc:(Z)Ljava/io/ObjectStreamClass;
astore 3
start local 3 8: goto 14
end local 3 9: StackMap locals:
StackMap stack:
aload 0
iload 1
invokevirtual java.io.ObjectInputStream.readNonProxyDesc:(Z)Ljava/io/ObjectStreamClass;
astore 3
start local 3 10: goto 14
end local 3 11: StackMap locals:
StackMap stack:
new java.io.StreamCorruptedException
dup
12: ldc "invalid type code: %02X"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 2
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
13: invokespecial java.io.StreamCorruptedException.<init>:(Ljava/lang/String;)V
athrow
start local 3 14: StackMap locals: java.io.ObjectStreamClass
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Ljava/io/ObjectInputStream;
0 15 1 unshared Z
1 15 2 tc B
3 4 3 descriptor Ljava/io/ObjectStreamClass;
5 7 3 descriptor Ljava/io/ObjectStreamClass;
8 9 3 descriptor Ljava/io/ObjectStreamClass;
10 11 3 descriptor Ljava/io/ObjectStreamClass;
14 15 3 descriptor Ljava/io/ObjectStreamClass;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
unshared
private boolean isCustomSubclass();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
1: ldc Ljava/io/ObjectInputStream;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
2: if_acmpeq 3
iconst_1
ireturn
StackMap locals:
StackMap stack:
3: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/io/ObjectInputStream;
private java.io.ObjectStreamClass readProxyDesc(boolean);
descriptor: (Z)Ljava/io/ObjectStreamClass;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=12, args_size=2
start local 0 start local 1 0: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.readByte:()B
bipush 125
if_icmpeq 2
1: new java.lang.InternalError
dup
invokespecial java.lang.InternalError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
new java.io.ObjectStreamClass
dup
invokespecial java.io.ObjectStreamClass.<init>:()V
astore 2
start local 2 3: aload 0
getfield java.io.ObjectInputStream.handles:Ljava/io/ObjectInputStream$HandleTable;
iload 1
ifeq 4
getstatic java.io.ObjectInputStream.unsharedMarker:Ljava/lang/Object;
goto 5
StackMap locals: java.io.ObjectInputStream int java.io.ObjectStreamClass
StackMap stack: java.io.ObjectInputStream$HandleTable
4: aload 2
StackMap locals: java.io.ObjectInputStream int java.io.ObjectStreamClass
StackMap stack: java.io.ObjectInputStream$HandleTable java.lang.Object
5: invokevirtual java.io.ObjectInputStream$HandleTable.assign:(Ljava/lang/Object;)I
istore 3
start local 3 6: aload 0
iconst_m1
putfield java.io.ObjectInputStream.passHandle:I
7: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.readInt:()I
istore 4
start local 4 8: iload 4
ldc 65535
if_icmple 12
9: new java.io.InvalidObjectException
dup
new java.lang.StringBuilder
dup
ldc "interface limit exceeded: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
10: iload 4
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
11: invokespecial java.io.InvalidObjectException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals: int int
StackMap stack:
iload 4
anewarray java.lang.String
astore 5
start local 5 13: iconst_0
istore 6
start local 6 14: goto 17
15: StackMap locals: java.lang.String[] int
StackMap stack:
aload 5
iload 6
aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.readUTF:()Ljava/lang/String;
aastore
16: iinc 6 1
StackMap locals:
StackMap stack:
17: iload 6
iload 4
if_icmplt 15
end local 6 18: aconst_null
astore 6
start local 6 19: aconst_null
astore 7
start local 7 20: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
iconst_1
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.setBlockDataMode:(Z)Z
pop
21: aload 0
aload 5
invokevirtual java.io.ObjectInputStream.resolveProxyClass:([Ljava/lang/String;)Ljava/lang/Class;
dup
astore 6
ifnonnull 24
22: new java.lang.ClassNotFoundException
dup
ldc "null class"
invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;)V
astore 7
23: goto 37
StackMap locals: java.io.ObjectInputStream int java.io.ObjectStreamClass int int java.lang.String[] java.lang.Class java.lang.ClassNotFoundException
StackMap stack:
24: aload 6
invokestatic java.lang.reflect.Proxy.isProxyClass:(Ljava/lang/Class;)Z
ifne 26
25: new java.io.InvalidClassException
dup
ldc "Not a proxy"
invokespecial java.io.InvalidClassException.<init>:(Ljava/lang/String;)V
athrow
26: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
27: aload 6
invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
28: invokestatic sun.reflect.misc.ReflectUtil.checkProxyPackageAccess:(Ljava/lang/ClassLoader;[Ljava/lang/Class;)V
29: aload 6
invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
dup
astore 11
arraylength
istore 10
iconst_0
istore 9
goto 33
StackMap locals: java.io.ObjectInputStream int java.io.ObjectStreamClass int int java.lang.String[] java.lang.Class java.lang.ClassNotFoundException top int int java.lang.Class[]
StackMap stack:
30: aload 11
iload 9
aaload
astore 8
start local 8 31: aload 0
aload 8
iconst_m1
invokevirtual java.io.ObjectInputStream.filterCheck:(Ljava/lang/Class;I)V
end local 8 32: iinc 9 1
StackMap locals:
StackMap stack:
33: iload 9
iload 10
if_icmplt 30
34: goto 37
StackMap locals: java.io.ObjectInputStream int java.io.ObjectStreamClass int int java.lang.String[] java.lang.Class java.lang.ClassNotFoundException
StackMap stack: java.lang.ClassNotFoundException
35: astore 8
start local 8 36: aload 8
astore 7
end local 8 37: StackMap locals:
StackMap stack:
aload 0
aload 6
iconst_m1
invokevirtual java.io.ObjectInputStream.filterCheck:(Ljava/lang/Class;I)V
38: aload 0
invokevirtual java.io.ObjectInputStream.skipCustomData:()V
39: aload 0
dup
getfield java.io.ObjectInputStream.totalObjectRefs:J
lconst_1
ladd
putfield java.io.ObjectInputStream.totalObjectRefs:J
40: aload 0
dup
getfield java.io.ObjectInputStream.depth:J
lconst_1
ladd
putfield java.io.ObjectInputStream.depth:J
41: aload 2
aload 6
aload 7
aload 0
iconst_0
invokevirtual java.io.ObjectInputStream.readClassDesc:(Z)Ljava/io/ObjectStreamClass;
invokevirtual java.io.ObjectStreamClass.initProxy:(Ljava/lang/Class;Ljava/lang/ClassNotFoundException;Ljava/io/ObjectStreamClass;)V
42: goto 46
StackMap locals:
StackMap stack: java.lang.Throwable
43: astore 8
44: aload 0
dup
getfield java.io.ObjectInputStream.depth:J
lconst_1
lsub
putfield java.io.ObjectInputStream.depth:J
45: aload 8
athrow
46: StackMap locals:
StackMap stack:
aload 0
dup
getfield java.io.ObjectInputStream.depth:J
lconst_1
lsub
putfield java.io.ObjectInputStream.depth:J
47: aload 0
getfield java.io.ObjectInputStream.handles:Ljava/io/ObjectInputStream$HandleTable;
iload 3
invokevirtual java.io.ObjectInputStream$HandleTable.finish:(I)V
48: aload 0
iload 3
putfield java.io.ObjectInputStream.passHandle:I
49: aload 2
areturn
end local 7 end local 6 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 50 0 this Ljava/io/ObjectInputStream;
0 50 1 unshared Z
3 50 2 desc Ljava/io/ObjectStreamClass;
6 50 3 descHandle I
8 50 4 numIfaces I
13 50 5 ifaces [Ljava/lang/String;
14 18 6 i I
19 50 6 cl Ljava/lang/Class<*>;
20 50 7 resolveEx Ljava/lang/ClassNotFoundException;
31 32 8 clazz Ljava/lang/Class<*>;
36 37 8 ex Ljava/lang/ClassNotFoundException;
Exception table:
from to target type
21 34 35 Class java.lang.ClassNotFoundException
39 43 43 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
unshared
private java.io.ObjectStreamClass readNonProxyDesc(boolean);
descriptor: (Z)Ljava/io/ObjectStreamClass;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=9, args_size=2
start local 0 start local 1 0: aload 0
getfield java.io.ObjectInputStream.bin:Ljava/io/ObjectInputStream$BlockDataInputStream;
invokevirtual java.io.ObjectInputStream$BlockDataInputStream.readByte:()B
bipush 114
if_icmpeq 2
1: new java.lang.InternalError
dup
invokespecial java.lang.InternalError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
new java.io.ObjectStreamClass
dup
invokespecial java.io.ObjectStreamClass.<init>:()V
astore 2
start local 2 3: aload 0
getfield java.io.ObjectInputStream.handles:Ljava/io/ObjectInputStream$HandleTable;
iload 1
ifeq 4