class sun.nio.ch.SocketChannelImpl extends java.nio.channels.SocketChannel implements sun.nio.ch.SelChImpl
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.nio.ch.SocketChannelImpl
super_class: java.nio.channels.SocketChannel
{
private static sun.nio.ch.NativeDispatcher nd;
descriptor: Lsun/nio/ch/NativeDispatcher;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private final java.io.FileDescriptor fd;
descriptor: Ljava/io/FileDescriptor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int fdVal;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile long readerThread;
descriptor: J
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile long writerThread;
descriptor: J
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final java.lang.Object readLock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Object writeLock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Object stateLock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final int ST_UNINITIALIZED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -1
private static final int ST_UNCONNECTED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int ST_PENDING;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int ST_CONNECTED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int ST_KILLPENDING;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final int ST_KILLED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private int state;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.net.InetSocketAddress localAddress;
descriptor: Ljava/net/InetSocketAddress;
flags: (0x0002) ACC_PRIVATE
private java.net.InetSocketAddress remoteAddress;
descriptor: Ljava/net/InetSocketAddress;
flags: (0x0002) ACC_PRIVATE
private boolean isInputOpen;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean isOutputOpen;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean readyToConnect;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private sun.nio.ch.SocketOpts$IP$TCP options;
descriptor: Lsun/nio/ch/SocketOpts$IP$TCP;
flags: (0x0002) ACC_PRIVATE
private java.net.Socket socket;
descriptor: Ljava/net/Socket;
flags: (0x0002) ACC_PRIVATE
public static final int SHUT_RD;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 0
public static final int SHUT_WR;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1
public static final int SHUT_RDWR;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 2
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lsun/nio/ch/SocketChannelImpl;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
3: invokestatic sun.nio.ch.IOUtil.load:()V
4: new sun.nio.ch.SocketDispatcher
dup
invokespecial sun.nio.ch.SocketDispatcher.<init>:()V
putstatic sun.nio.ch.SocketChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
5: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(java.nio.channels.spi.SelectorProvider);
descriptor: (Ljava/nio/channels/spi/SelectorProvider;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial java.nio.channels.SocketChannel.<init>:(Ljava/nio/channels/spi/SelectorProvider;)V
1: aload 0
lconst_0
putfield sun.nio.ch.SocketChannelImpl.readerThread:J
2: aload 0
lconst_0
putfield sun.nio.ch.SocketChannelImpl.writerThread:J
3: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/lang/Object;
4: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/lang/Object;
5: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
6: aload 0
iconst_m1
putfield sun.nio.ch.SocketChannelImpl.state:I
7: aload 0
iconst_1
putfield sun.nio.ch.SocketChannelImpl.isInputOpen:Z
8: aload 0
iconst_1
putfield sun.nio.ch.SocketChannelImpl.isOutputOpen:Z
9: aload 0
iconst_0
putfield sun.nio.ch.SocketChannelImpl.readyToConnect:Z
10: aload 0
aconst_null
putfield sun.nio.ch.SocketChannelImpl.options:Lsun/nio/ch/SocketOpts$IP$TCP;
11: aload 0
aconst_null
putfield sun.nio.ch.SocketChannelImpl.socket:Ljava/net/Socket;
12: aload 0
iconst_1
invokestatic sun.nio.ch.Net.socket:(Z)Ljava/io/FileDescriptor;
putfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
13: aload 0
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
invokestatic sun.nio.ch.IOUtil.fdVal:(Ljava/io/FileDescriptor;)I
putfield sun.nio.ch.SocketChannelImpl.fdVal:I
14: aload 0
iconst_0
putfield sun.nio.ch.SocketChannelImpl.state:I
15: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lsun/nio/ch/SocketChannelImpl;
0 16 1 sp Ljava/nio/channels/spi/SelectorProvider;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
sp
void <init>(java.nio.channels.spi.SelectorProvider, java.io.FileDescriptor, java.net.InetSocketAddress);
descriptor: (Ljava/nio/channels/spi/SelectorProvider;Ljava/io/FileDescriptor;Ljava/net/InetSocketAddress;)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokespecial java.nio.channels.SocketChannel.<init>:(Ljava/nio/channels/spi/SelectorProvider;)V
1: aload 0
lconst_0
putfield sun.nio.ch.SocketChannelImpl.readerThread:J
2: aload 0
lconst_0
putfield sun.nio.ch.SocketChannelImpl.writerThread:J
3: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/lang/Object;
4: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/lang/Object;
5: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
6: aload 0
iconst_m1
putfield sun.nio.ch.SocketChannelImpl.state:I
7: aload 0
iconst_1
putfield sun.nio.ch.SocketChannelImpl.isInputOpen:Z
8: aload 0
iconst_1
putfield sun.nio.ch.SocketChannelImpl.isOutputOpen:Z
9: aload 0
iconst_0
putfield sun.nio.ch.SocketChannelImpl.readyToConnect:Z
10: aload 0
aconst_null
putfield sun.nio.ch.SocketChannelImpl.options:Lsun/nio/ch/SocketOpts$IP$TCP;
11: aload 0
aconst_null
putfield sun.nio.ch.SocketChannelImpl.socket:Ljava/net/Socket;
12: aload 0
aload 2
putfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
13: aload 0
aload 2
invokestatic sun.nio.ch.IOUtil.fdVal:(Ljava/io/FileDescriptor;)I
putfield sun.nio.ch.SocketChannelImpl.fdVal:I
14: aload 0
iconst_2
putfield sun.nio.ch.SocketChannelImpl.state:I
15: aload 0
aload 3
putfield sun.nio.ch.SocketChannelImpl.remoteAddress:Ljava/net/InetSocketAddress;
16: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/nio/ch/SocketChannelImpl;
0 17 1 sp Ljava/nio/channels/spi/SelectorProvider;
0 17 2 fd Ljava/io/FileDescriptor;
0 17 3 remote Ljava/net/InetSocketAddress;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
sp
fd
remote
public java.net.Socket socket();
descriptor: ()Ljava/net/Socket;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield sun.nio.ch.SocketChannelImpl.socket:Ljava/net/Socket;
ifnonnull 3
2: aload 0
aload 0
invokestatic sun.nio.ch.SocketAdaptor.create:(Lsun/nio/ch/SocketChannelImpl;)Ljava/net/Socket;
putfield sun.nio.ch.SocketChannelImpl.socket:Ljava/net/Socket;
3: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.socket:Ljava/net/Socket;
aload 1
monitorexit
4: areturn
5: StackMap locals:
StackMap stack: java.lang.Throwable
aload 1
monitorexit
6: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/nio/ch/SocketChannelImpl;
Exception table:
from to target type
1 4 5 any
5 6 5 any
private boolean ensureReadOpen();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 3
2: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
3: StackMap locals: java.lang.Object
StackMap stack:
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isConnected:()Z
ifne 5
4: new java.nio.channels.NotYetConnectedException
dup
invokespecial java.nio.channels.NotYetConnectedException.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputOpen:Z
ifne 8
6: aload 1
monitorexit
7: iconst_0
ireturn
8: StackMap locals:
StackMap stack:
aload 1
monitorexit
9: iconst_1
ireturn
10: StackMap locals:
StackMap stack: java.lang.Throwable
aload 1
monitorexit
11: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/nio/ch/SocketChannelImpl;
Exception table:
from to target type
1 7 10 any
8 9 10 any
10 11 10 any
Exceptions:
throws java.nio.channels.ClosedChannelException
private void ensureWriteOpen();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 3
2: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
3: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.isOutputOpen:Z
ifne 5
4: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isConnected:()Z
ifne 7
6: new java.nio.channels.NotYetConnectedException
dup
invokespecial java.nio.channels.NotYetConnectedException.<init>:()V
athrow
7: StackMap locals:
StackMap stack:
aload 1
monitorexit
8: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
9: aload 1
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/nio/ch/SocketChannelImpl;
Exception table:
from to target type
1 8 9 any
9 10 9 any
Exceptions:
throws java.nio.channels.ClosedChannelException
private void readerCleanup();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
lconst_0
putfield sun.nio.ch.SocketChannelImpl.readerThread:J
2: aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_3
if_icmpne 4
3: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.kill:()V
4: StackMap locals: java.lang.Object
StackMap stack:
aload 1
monitorexit
5: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
6: aload 1
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/nio/ch/SocketChannelImpl;
Exception table:
from to target type
1 5 6 any
6 7 6 any
Exceptions:
throws java.io.IOException
private void writerCleanup();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
lconst_0
putfield sun.nio.ch.SocketChannelImpl.writerThread:J
2: aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_3
if_icmpne 4
3: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.kill:()V
4: StackMap locals: java.lang.Object
StackMap stack:
aload 1
monitorexit
5: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
6: aload 1
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/nio/ch/SocketChannelImpl;
Exception table:
from to target type
1 5 6 any
6 7 6 any
Exceptions:
throws java.io.IOException
public int read(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=8, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/lang/Object;
dup
astore 2
monitorenter
3: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.ensureReadOpen:()Z
ifne 6
4: aload 2
monitorexit
5: iconst_m1
ireturn
6: StackMap locals: java.lang.Object
StackMap stack:
iconst_0
istore 3
start local 3 7: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.begin:()V
8: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 4
monitorenter
9: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 27
10: aload 4
monitorexit
11: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.readerCleanup:()V
12: aload 0
iload 3
ifgt 13
iload 3
bipush -2
if_icmpeq 13
iconst_0
goto 14
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer java.lang.Object int java.lang.Object
StackMap stack: sun.nio.ch.SocketChannelImpl
13: iconst_1
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer java.lang.Object int java.lang.Object
StackMap stack: sun.nio.ch.SocketChannelImpl int
14: invokevirtual sun.nio.ch.SocketChannelImpl.end:(Z)V
15: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 7
monitorenter
16: iload 3
ifgt 20
aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputOpen:Z
ifne 20
17: aload 7
monitorexit
18: aload 2
monitorexit
19: iconst_m1
ireturn
20: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer java.lang.Object int java.lang.Object top top java.lang.Object
StackMap stack:
aload 7
monitorexit
21: goto 24
StackMap locals:
StackMap stack: java.lang.Throwable
22: aload 7
monitorexit
23: athrow
24: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer java.lang.Object int java.lang.Object
StackMap stack:
getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 25
iload 3
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 25
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
StackMap locals:
StackMap stack:
25: aload 2
monitorexit
26: iconst_0
ireturn
27: StackMap locals:
StackMap stack:
aload 0
invokestatic sun.nio.ch.NativeThread.current:()J
putfield sun.nio.ch.SocketChannelImpl.readerThread:J
28: aload 4
monitorexit
29: goto 32
StackMap locals:
StackMap stack: java.lang.Throwable
30: aload 4
monitorexit
31: athrow
32: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
aload 1
ldc -1
getstatic sun.nio.ch.SocketChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/lang/Object;
invokestatic sun.nio.ch.IOUtil.read:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;Ljava/lang/Object;)I
istore 3
33: iload 3
bipush -3
if_icmpne 35
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifeq 35
34: goto 32
35: StackMap locals:
StackMap stack:
iload 3
invokestatic sun.nio.ch.IOStatus.normalize:(I)I
istore 6
36: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.readerCleanup:()V
37: aload 0
iload 3
ifgt 38
iload 3
bipush -2
if_icmpeq 38
iconst_0
goto 39
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer java.lang.Object int top top int
StackMap stack: sun.nio.ch.SocketChannelImpl
38: iconst_1
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer java.lang.Object int top top int
StackMap stack: sun.nio.ch.SocketChannelImpl int
39: invokevirtual sun.nio.ch.SocketChannelImpl.end:(Z)V
40: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 7
monitorenter
41: iload 3
ifgt 45
aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputOpen:Z
ifne 45
42: aload 7
monitorexit
43: aload 2
monitorexit
44: iconst_m1
ireturn
45: StackMap locals: java.lang.Object
StackMap stack:
aload 7
monitorexit
46: goto 49
StackMap locals:
StackMap stack: java.lang.Throwable
47: aload 7
monitorexit
48: athrow
49: StackMap locals:
StackMap stack:
getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 50
iload 3
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 50
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
50: StackMap locals:
StackMap stack:
aload 2
monitorexit
51: iload 6
ireturn
52: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer java.lang.Object int
StackMap stack: java.lang.Throwable
astore 5
53: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.readerCleanup:()V
54: aload 0
iload 3
ifgt 55
iload 3
bipush -2
if_icmpeq 55
iconst_0
goto 56
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer java.lang.Object int top java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl
55: iconst_1
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer java.lang.Object int top java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl int
56: invokevirtual sun.nio.ch.SocketChannelImpl.end:(Z)V
57: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 7
monitorenter
58: iload 3
ifgt 62
aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputOpen:Z
ifne 62
59: aload 7
monitorexit
60: aload 2
monitorexit
61: iconst_m1
ireturn
62: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer java.lang.Object int top java.lang.Throwable top java.lang.Object
StackMap stack:
aload 7
monitorexit
63: goto 66
StackMap locals:
StackMap stack: java.lang.Throwable
64: aload 7
monitorexit
65: athrow
66: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer java.lang.Object int top java.lang.Throwable
StackMap stack:
getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 67
iload 3
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 67
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
67: StackMap locals:
StackMap stack:
aload 5
athrow
end local 3 68: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer java.lang.Object
StackMap stack: java.lang.Throwable
aload 2
monitorexit
69: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 70 0 this Lsun/nio/ch/SocketChannelImpl;
0 70 1 buf Ljava/nio/ByteBuffer;
7 68 3 n I
Exception table:
from to target type
16 18 22 any
20 21 22 any
22 23 22 any
9 11 30 any
27 29 30 any
30 31 30 any
41 43 47 any
45 46 47 any
47 48 47 any
7 11 52 any
27 36 52 any
58 60 64 any
62 63 64 any
64 65 64 any
3 5 68 any
6 19 68 any
20 26 68 any
27 44 68 any
45 51 68 any
52 61 68 any
62 69 68 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
buf
private long read0(java.nio.ByteBuffer[]);
descriptor: ([Ljava/nio/ByteBuffer;)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=10, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/lang/Object;
dup
astore 2
monitorenter
3: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.ensureReadOpen:()Z
ifne 6
4: aload 2
monitorexit
5: ldc -1
lreturn
6: StackMap locals: java.lang.Object
StackMap stack:
lconst_0
lstore 3
start local 3 7: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.begin:()V
8: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 5
monitorenter
9: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 27
10: aload 5
monitorexit
11: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.readerCleanup:()V
12: aload 0
lload 3
lconst_0
lcmp
ifgt 13
lload 3
ldc -2
lcmp
ifeq 13
iconst_0
goto 14
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] java.lang.Object long java.lang.Object
StackMap stack: sun.nio.ch.SocketChannelImpl
13: iconst_1
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] java.lang.Object long java.lang.Object
StackMap stack: sun.nio.ch.SocketChannelImpl int
14: invokevirtual sun.nio.ch.SocketChannelImpl.end:(Z)V
15: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 9
monitorenter
16: lload 3
lconst_0
lcmp
ifgt 20
aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputOpen:Z
ifne 20
17: aload 9
monitorexit
18: aload 2
monitorexit
19: ldc -1
lreturn
20: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] java.lang.Object long java.lang.Object top top top java.lang.Object
StackMap stack:
aload 9
monitorexit
21: goto 24
StackMap locals:
StackMap stack: java.lang.Throwable
22: aload 9
monitorexit
23: athrow
24: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] java.lang.Object long java.lang.Object
StackMap stack:
getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 25
lload 3
invokestatic sun.nio.ch.IOStatus.check:(J)Z
ifne 25
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
StackMap locals:
StackMap stack:
25: aload 2
monitorexit
26: lconst_0
lreturn
27: StackMap locals:
StackMap stack:
aload 0
invokestatic sun.nio.ch.NativeThread.current:()J
putfield sun.nio.ch.SocketChannelImpl.readerThread:J
28: aload 5
monitorexit
29: goto 32
StackMap locals:
StackMap stack: java.lang.Throwable
30: aload 5
monitorexit
31: athrow
32: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
aload 1
getstatic sun.nio.ch.SocketChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
invokestatic sun.nio.ch.IOUtil.read:(Ljava/io/FileDescriptor;[Ljava/nio/ByteBuffer;Lsun/nio/ch/NativeDispatcher;)J
lstore 3
33: lload 3
ldc -3
lcmp
ifne 35
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifeq 35
34: goto 32
35: StackMap locals:
StackMap stack:
lload 3
invokestatic sun.nio.ch.IOStatus.normalize:(J)J
lstore 7
36: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.readerCleanup:()V
37: aload 0
lload 3
lconst_0
lcmp
ifgt 38
lload 3
ldc -2
lcmp
ifeq 38
iconst_0
goto 39
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] java.lang.Object long top top long
StackMap stack: sun.nio.ch.SocketChannelImpl
38: iconst_1
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] java.lang.Object long top top long
StackMap stack: sun.nio.ch.SocketChannelImpl int
39: invokevirtual sun.nio.ch.SocketChannelImpl.end:(Z)V
40: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 9
monitorenter
41: lload 3
lconst_0
lcmp
ifgt 45
aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputOpen:Z
ifne 45
42: aload 9
monitorexit
43: aload 2
monitorexit
44: ldc -1
lreturn
45: StackMap locals: java.lang.Object
StackMap stack:
aload 9
monitorexit
46: goto 49
StackMap locals:
StackMap stack: java.lang.Throwable
47: aload 9
monitorexit
48: athrow
49: StackMap locals:
StackMap stack:
getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 50
lload 3
invokestatic sun.nio.ch.IOStatus.check:(J)Z
ifne 50
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
50: StackMap locals:
StackMap stack:
aload 2
monitorexit
51: lload 7
lreturn
52: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] java.lang.Object long
StackMap stack: java.lang.Throwable
astore 6
53: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.readerCleanup:()V
54: aload 0
lload 3
lconst_0
lcmp
ifgt 55
lload 3
ldc -2
lcmp
ifeq 55
iconst_0
goto 56
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] java.lang.Object long top java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl
55: iconst_1
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] java.lang.Object long top java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl int
56: invokevirtual sun.nio.ch.SocketChannelImpl.end:(Z)V
57: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 9
monitorenter
58: lload 3
lconst_0
lcmp
ifgt 62
aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputOpen:Z
ifne 62
59: aload 9
monitorexit
60: aload 2
monitorexit
61: ldc -1
lreturn
62: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] java.lang.Object long top java.lang.Throwable top top java.lang.Object
StackMap stack:
aload 9
monitorexit
63: goto 66
StackMap locals:
StackMap stack: java.lang.Throwable
64: aload 9
monitorexit
65: athrow
66: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] java.lang.Object long top java.lang.Throwable
StackMap stack:
getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 67
lload 3
invokestatic sun.nio.ch.IOStatus.check:(J)Z
ifne 67
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
67: StackMap locals:
StackMap stack:
aload 6
athrow
end local 3 68: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] java.lang.Object
StackMap stack: java.lang.Throwable
aload 2
monitorexit
69: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 70 0 this Lsun/nio/ch/SocketChannelImpl;
0 70 1 bufs [Ljava/nio/ByteBuffer;
7 68 3 n J
Exception table:
from to target type
16 18 22 any
20 21 22 any
22 23 22 any
9 11 30 any
27 29 30 any
30 31 30 any
41 43 47 any
45 46 47 any
47 48 47 any
7 11 52 any
27 36 52 any
58 60 64 any
62 63 64 any
64 65 64 any
3 5 68 any
6 19 68 any
20 26 68 any
27 44 68 any
45 51 68 any
52 61 68 any
62 69 68 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
bufs
public long read(java.nio.ByteBuffer[], int, int);
descriptor: ([Ljava/nio/ByteBuffer;II)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
iflt 1
iload 3
iflt 1
iload 2
aload 1
arraylength
iload 3
isub
if_icmple 2
1: StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
iload 3
invokestatic sun.nio.ch.Util.subsequence:([Ljava/nio/ByteBuffer;II)[Ljava/nio/ByteBuffer;
invokevirtual sun.nio.ch.SocketChannelImpl.read0:([Ljava/nio/ByteBuffer;)J
lreturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/nio/ch/SocketChannelImpl;
0 3 1 dsts [Ljava/nio/ByteBuffer;
0 3 2 offset I
0 3 3 length I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
dsts
offset
length
public int write(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=8, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/lang/Object;
dup
astore 2
monitorenter
3: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.ensureWriteOpen:()V
4: iconst_0
istore 3
start local 3 5: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.begin:()V
6: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 4
monitorenter
7: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 23
8: aload 4
monitorexit
9: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.writerCleanup:()V
10: aload 0
iload 3
ifgt 11
iload 3
bipush -2
if_icmpeq 11
iconst_0
goto 12
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer java.lang.Object int java.lang.Object
StackMap stack: sun.nio.ch.SocketChannelImpl
11: iconst_1
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer java.lang.Object int java.lang.Object
StackMap stack: sun.nio.ch.SocketChannelImpl int
12: invokevirtual sun.nio.ch.SocketChannelImpl.end:(Z)V
13: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 7
monitorenter
14: iload 3
ifgt 16
aload 0
getfield sun.nio.ch.SocketChannelImpl.isOutputOpen:Z
ifne 16
15: new java.nio.channels.AsynchronousCloseException
dup
invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
athrow
16: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer java.lang.Object int java.lang.Object top top java.lang.Object
StackMap stack:
aload 7
monitorexit
17: goto 20
StackMap locals:
StackMap stack: java.lang.Throwable
18: aload 7
monitorexit
19: athrow
20: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer java.lang.Object int java.lang.Object
StackMap stack:
getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 21
iload 3
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 21
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
StackMap locals:
StackMap stack:
21: aload 2
monitorexit
22: iconst_0
ireturn
23: StackMap locals:
StackMap stack:
aload 0
invokestatic sun.nio.ch.NativeThread.current:()J
putfield sun.nio.ch.SocketChannelImpl.writerThread:J
24: aload 4
monitorexit
25: goto 28
StackMap locals:
StackMap stack: java.lang.Throwable
26: aload 4
monitorexit
27: athrow
28: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
aload 1
ldc -1
getstatic sun.nio.ch.SocketChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/lang/Object;
invokestatic sun.nio.ch.IOUtil.write:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;Ljava/lang/Object;)I
istore 3
29: iload 3
bipush -3
if_icmpne 31
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifeq 31
30: goto 28
31: StackMap locals:
StackMap stack:
iload 3
invokestatic sun.nio.ch.IOStatus.normalize:(I)I
istore 6
32: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.writerCleanup:()V
33: aload 0
iload 3
ifgt 34
iload 3
bipush -2
if_icmpeq 34
iconst_0
goto 35
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer java.lang.Object int top top int
StackMap stack: sun.nio.ch.SocketChannelImpl
34: iconst_1
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer java.lang.Object int top top int
StackMap stack: sun.nio.ch.SocketChannelImpl int
35: invokevirtual sun.nio.ch.SocketChannelImpl.end:(Z)V
36: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 7
monitorenter
37: iload 3
ifgt 39
aload 0
getfield sun.nio.ch.SocketChannelImpl.isOutputOpen:Z
ifne 39
38: new java.nio.channels.AsynchronousCloseException
dup
invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
athrow
39: StackMap locals: java.lang.Object
StackMap stack:
aload 7
monitorexit
40: goto 43
StackMap locals:
StackMap stack: java.lang.Throwable
41: aload 7
monitorexit
42: athrow
43: StackMap locals:
StackMap stack:
getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 44
iload 3
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 44
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
44: StackMap locals:
StackMap stack:
aload 2
monitorexit
45: iload 6
ireturn
46: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer java.lang.Object int
StackMap stack: java.lang.Throwable
astore 5
47: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.writerCleanup:()V
48: aload 0
iload 3
ifgt 49
iload 3
bipush -2
if_icmpeq 49
iconst_0
goto 50
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer java.lang.Object int top java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl
49: iconst_1
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer java.lang.Object int top java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl int
50: invokevirtual sun.nio.ch.SocketChannelImpl.end:(Z)V
51: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 7
monitorenter
52: iload 3
ifgt 54
aload 0
getfield sun.nio.ch.SocketChannelImpl.isOutputOpen:Z
ifne 54
53: new java.nio.channels.AsynchronousCloseException
dup
invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
athrow
54: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer java.lang.Object int top java.lang.Throwable top java.lang.Object
StackMap stack:
aload 7
monitorexit
55: goto 58
StackMap locals:
StackMap stack: java.lang.Throwable
56: aload 7
monitorexit
57: athrow
58: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer java.lang.Object int top java.lang.Throwable
StackMap stack:
getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 59
iload 3
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 59
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
59: StackMap locals:
StackMap stack:
aload 5
athrow
end local 3 60: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer java.lang.Object
StackMap stack: java.lang.Throwable
aload 2
monitorexit
61: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 62 0 this Lsun/nio/ch/SocketChannelImpl;
0 62 1 buf Ljava/nio/ByteBuffer;
5 60 3 n I
Exception table:
from to target type
14 17 18 any
18 19 18 any
7 9 26 any
23 25 26 any
26 27 26 any
37 40 41 any
41 42 41 any
5 9 46 any
23 32 46 any
52 55 56 any
56 57 56 any
3 22 60 any
23 45 60 any
46 61 60 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
buf
public long write0(java.nio.ByteBuffer[]);
descriptor: ([Ljava/nio/ByteBuffer;)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=10, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/lang/Object;
dup
astore 2
monitorenter
3: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.ensureWriteOpen:()V
4: lconst_0
lstore 3
start local 3 5: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.begin:()V
6: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 5
monitorenter
7: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 23
8: aload 5
monitorexit
9: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.writerCleanup:()V
10: aload 0
lload 3
lconst_0
lcmp
ifgt 11
lload 3
ldc -2
lcmp
ifeq 11
iconst_0
goto 12
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] java.lang.Object long java.lang.Object
StackMap stack: sun.nio.ch.SocketChannelImpl
11: iconst_1
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] java.lang.Object long java.lang.Object
StackMap stack: sun.nio.ch.SocketChannelImpl int
12: invokevirtual sun.nio.ch.SocketChannelImpl.end:(Z)V
13: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 9
monitorenter
14: lload 3
lconst_0
lcmp
ifgt 16
aload 0
getfield sun.nio.ch.SocketChannelImpl.isOutputOpen:Z
ifne 16
15: new java.nio.channels.AsynchronousCloseException
dup
invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
athrow
16: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] java.lang.Object long java.lang.Object top top top java.lang.Object
StackMap stack:
aload 9
monitorexit
17: goto 20
StackMap locals:
StackMap stack: java.lang.Throwable
18: aload 9
monitorexit
19: athrow
20: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] java.lang.Object long java.lang.Object
StackMap stack:
getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 21
lload 3
invokestatic sun.nio.ch.IOStatus.check:(J)Z
ifne 21
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
StackMap locals:
StackMap stack:
21: aload 2
monitorexit
22: lconst_0
lreturn
23: StackMap locals:
StackMap stack:
aload 0
invokestatic sun.nio.ch.NativeThread.current:()J
putfield sun.nio.ch.SocketChannelImpl.writerThread:J
24: aload 5
monitorexit
25: goto 28
StackMap locals:
StackMap stack: java.lang.Throwable
26: aload 5
monitorexit
27: athrow
28: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
aload 1
getstatic sun.nio.ch.SocketChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
invokestatic sun.nio.ch.IOUtil.write:(Ljava/io/FileDescriptor;[Ljava/nio/ByteBuffer;Lsun/nio/ch/NativeDispatcher;)J
lstore 3
29: lload 3
ldc -3
lcmp
ifne 31
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifeq 31
30: goto 28
31: StackMap locals:
StackMap stack:
lload 3
invokestatic sun.nio.ch.IOStatus.normalize:(J)J
lstore 7
32: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.writerCleanup:()V
33: aload 0
lload 3
lconst_0
lcmp
ifgt 34
lload 3
ldc -2
lcmp
ifeq 34
iconst_0
goto 35
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] java.lang.Object long top top long
StackMap stack: sun.nio.ch.SocketChannelImpl
34: iconst_1
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] java.lang.Object long top top long
StackMap stack: sun.nio.ch.SocketChannelImpl int
35: invokevirtual sun.nio.ch.SocketChannelImpl.end:(Z)V
36: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 9
monitorenter
37: lload 3
lconst_0
lcmp
ifgt 39
aload 0
getfield sun.nio.ch.SocketChannelImpl.isOutputOpen:Z
ifne 39
38: new java.nio.channels.AsynchronousCloseException
dup
invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
athrow
39: StackMap locals: java.lang.Object
StackMap stack:
aload 9
monitorexit
40: goto 43
StackMap locals:
StackMap stack: java.lang.Throwable
41: aload 9
monitorexit
42: athrow
43: StackMap locals:
StackMap stack:
getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 44
lload 3
invokestatic sun.nio.ch.IOStatus.check:(J)Z
ifne 44
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
44: StackMap locals:
StackMap stack:
aload 2
monitorexit
45: lload 7
lreturn
46: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] java.lang.Object long
StackMap stack: java.lang.Throwable
astore 6
47: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.writerCleanup:()V
48: aload 0
lload 3
lconst_0
lcmp
ifgt 49
lload 3
ldc -2
lcmp
ifeq 49
iconst_0
goto 50
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] java.lang.Object long top java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl
49: iconst_1
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] java.lang.Object long top java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl int
50: invokevirtual sun.nio.ch.SocketChannelImpl.end:(Z)V
51: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 9
monitorenter
52: lload 3
lconst_0
lcmp
ifgt 54
aload 0
getfield sun.nio.ch.SocketChannelImpl.isOutputOpen:Z
ifne 54
53: new java.nio.channels.AsynchronousCloseException
dup
invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
athrow
54: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] java.lang.Object long top java.lang.Throwable top top java.lang.Object
StackMap stack:
aload 9
monitorexit
55: goto 58
StackMap locals:
StackMap stack: java.lang.Throwable
56: aload 9
monitorexit
57: athrow
58: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] java.lang.Object long top java.lang.Throwable
StackMap stack:
getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 59
lload 3
invokestatic sun.nio.ch.IOStatus.check:(J)Z
ifne 59
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
59: StackMap locals:
StackMap stack:
aload 6
athrow
end local 3 60: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] java.lang.Object
StackMap stack: java.lang.Throwable
aload 2
monitorexit
61: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 62 0 this Lsun/nio/ch/SocketChannelImpl;
0 62 1 bufs [Ljava/nio/ByteBuffer;
5 60 3 n J
Exception table:
from to target type
14 17 18 any
18 19 18 any
7 9 26 any
23 25 26 any
26 27 26 any
37 40 41 any
41 42 41 any
5 9 46 any
23 32 46 any
52 55 56 any
56 57 56 any
3 22 60 any
23 45 60 any
46 61 60 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
bufs
public long write(java.nio.ByteBuffer[], int, int);
descriptor: ([Ljava/nio/ByteBuffer;II)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
iflt 1
iload 3
iflt 1
iload 2
aload 1
arraylength
iload 3
isub
if_icmple 2
1: StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
iload 3
invokestatic sun.nio.ch.Util.subsequence:([Ljava/nio/ByteBuffer;II)[Ljava/nio/ByteBuffer;
invokevirtual sun.nio.ch.SocketChannelImpl.write0:([Ljava/nio/ByteBuffer;)J
lreturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/nio/ch/SocketChannelImpl;
0 3 1 srcs [Ljava/nio/ByteBuffer;
0 3 2 offset I
0 3 3 length I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
srcs
offset
length
protected void implConfigureBlocking(boolean);
descriptor: (Z)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
iload 1
invokestatic sun.nio.ch.IOUtil.configureBlocking:(Ljava/io/FileDescriptor;Z)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/nio/ch/SocketChannelImpl;
0 2 1 block Z
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
block
public sun.nio.ch.SocketOpts options();
descriptor: ()Lsun/nio/ch/SocketOpts;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield sun.nio.ch.SocketChannelImpl.options:Lsun/nio/ch/SocketOpts$IP$TCP;
ifnonnull 5
2: new sun.nio.ch.SocketChannelImpl$1
dup
aload 0
invokespecial sun.nio.ch.SocketChannelImpl$1.<init>:(Lsun/nio/ch/SocketChannelImpl;)V
3: astore 2
start local 2 4: aload 0
new sun.nio.ch.SocketOptsImpl$IP$TCP
dup
aload 2
invokespecial sun.nio.ch.SocketOptsImpl$IP$TCP.<init>:(Lsun/nio/ch/SocketOptsImpl$Dispatcher;)V
putfield sun.nio.ch.SocketChannelImpl.options:Lsun/nio/ch/SocketOpts$IP$TCP;
end local 2 5: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.options:Lsun/nio/ch/SocketOpts$IP$TCP;
aload 1
monitorexit
6: areturn
7: StackMap locals:
StackMap stack: java.lang.Throwable
aload 1
monitorexit
8: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/nio/ch/SocketChannelImpl;
4 5 2 d Lsun/nio/ch/SocketOptsImpl$Dispatcher;
Exception table:
from to target type
1 6 7 any
7 8 7 any
public boolean isBound();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_2
if_icmpne 4
2: aload 1
monitorexit
3: iconst_1
ireturn
4: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.localAddress:Ljava/net/InetSocketAddress;
ifnull 5
iconst_1
goto 6
StackMap locals:
StackMap stack:
5: iconst_0
StackMap locals:
StackMap stack: int
6: aload 1
monitorexit
7: ireturn
8: StackMap locals:
StackMap stack: java.lang.Throwable
aload 1
monitorexit
9: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/nio/ch/SocketChannelImpl;
Exception table:
from to target type
1 3 8 any
4 7 8 any
8 9 8 any
public java.net.InetSocketAddress localAddress();
descriptor: ()Ljava/net/InetSocketAddress;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_2
if_icmpne 5
2: aload 0
getfield sun.nio.ch.SocketChannelImpl.localAddress:Ljava/net/InetSocketAddress;
ifnull 4
3: aload 0
getfield sun.nio.ch.SocketChannelImpl.localAddress:Ljava/net/InetSocketAddress;
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.isAnyLocalAddress:()Z
ifeq 5
4: StackMap locals: java.lang.Object
StackMap stack:
aload 0
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
invokestatic sun.nio.ch.Net.localAddress:(Ljava/io/FileDescriptor;)Ljava/net/InetSocketAddress;
putfield sun.nio.ch.SocketChannelImpl.localAddress:Ljava/net/InetSocketAddress;
5: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.localAddress:Ljava/net/InetSocketAddress;
invokestatic sun.nio.ch.Net.getRevealedLocalAddress:(Ljava/net/InetSocketAddress;)Ljava/net/InetSocketAddress;
aload 1
monitorexit
6: areturn
7: StackMap locals:
StackMap stack: java.lang.Throwable
aload 1
monitorexit
8: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/nio/ch/SocketChannelImpl;
Exception table:
from to target type
1 6 7 any
7 8 7 any
public java.net.SocketAddress remoteAddress();
descriptor: ()Ljava/net/SocketAddress;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield sun.nio.ch.SocketChannelImpl.remoteAddress:Ljava/net/InetSocketAddress;
aload 1
monitorexit
2: areturn
3: StackMap locals: sun.nio.ch.SocketChannelImpl java.lang.Object
StackMap stack: java.lang.Throwable
aload 1
monitorexit
4: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/nio/ch/SocketChannelImpl;
Exception table:
from to target type
1 2 3 any
3 4 3 any
public void bind(java.net.SocketAddress);
descriptor: (Ljava/net/SocketAddress;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/lang/Object;
dup
astore 3
monitorenter
2: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 4
monitorenter
3: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.ensureOpenAndUnconnected:()V
4: aload 0
getfield sun.nio.ch.SocketChannelImpl.localAddress:Ljava/net/InetSocketAddress;
ifnull 6
5: new sun.nio.ch.AlreadyBoundException
dup
invokespecial sun.nio.ch.AlreadyBoundException.<init>:()V
athrow
6: StackMap locals: java.lang.Object java.lang.Object java.lang.Object
StackMap stack:
aload 1
invokestatic sun.nio.ch.Net.checkAddress:(Ljava/net/SocketAddress;)Ljava/net/InetSocketAddress;
astore 5
start local 5 7: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 6
start local 6 8: aload 6
ifnull 10
9: aload 6
aload 5
invokevirtual java.net.InetSocketAddress.getPort:()I
invokevirtual java.lang.SecurityManager.checkListen:(I)V
10: StackMap locals: java.net.InetSocketAddress java.lang.SecurityManager
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
aload 5
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
aload 5
invokevirtual java.net.InetSocketAddress.getPort:()I
invokestatic sun.nio.ch.Net.bind:(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
11: aload 0
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
invokestatic sun.nio.ch.Net.localAddress:(Ljava/io/FileDescriptor;)Ljava/net/InetSocketAddress;
putfield sun.nio.ch.SocketChannelImpl.localAddress:Ljava/net/InetSocketAddress;
end local 6 end local 5 12: aload 4
monitorexit
13: goto 16
StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress java.lang.Object java.lang.Object java.lang.Object
StackMap stack: java.lang.Throwable
14: aload 4
monitorexit
15: athrow
16: StackMap locals:
StackMap stack:
aload 3
monitorexit
17: goto 20
StackMap locals:
StackMap stack: java.lang.Throwable
18: aload 3
monitorexit
19: athrow
20: StackMap locals:
StackMap stack:
aload 2
monitorexit
21: goto 24
StackMap locals:
StackMap stack: java.lang.Throwable
22: aload 2
monitorexit
23: athrow
24: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lsun/nio/ch/SocketChannelImpl;
0 25 1 local Ljava/net/SocketAddress;
7 12 5 isa Ljava/net/InetSocketAddress;
8 12 6 sm Ljava/lang/SecurityManager;
Exception table:
from to target type
3 13 14 any
14 15 14 any
2 17 18 any
18 19 18 any
1 21 22 any
22 23 22 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
local
public boolean isConnected();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_2
if_icmpne 2
iconst_1
goto 3
StackMap locals: java.lang.Object
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: aload 1
monitorexit
4: ireturn
5: StackMap locals:
StackMap stack: java.lang.Throwable
aload 1
monitorexit
6: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/nio/ch/SocketChannelImpl;
Exception table:
from to target type
1 4 5 any
5 6 5 any
public boolean isConnectionPending();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_1
if_icmpne 2
iconst_1
goto 3
StackMap locals: java.lang.Object
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: aload 1
monitorexit
4: ireturn
5: StackMap locals:
StackMap stack: java.lang.Throwable
aload 1
monitorexit
6: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/nio/ch/SocketChannelImpl;
Exception table:
from to target type
1 4 5 any
5 6 5 any
void ensureOpenAndUnconnected();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 3
2: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
3: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_2
if_icmpne 5
4: new java.nio.channels.AlreadyConnectedException
dup
invokespecial java.nio.channels.AlreadyConnectedException.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_1
if_icmpne 7
6: new java.nio.channels.ConnectionPendingException
dup
invokespecial java.nio.channels.ConnectionPendingException.<init>:()V
athrow
7: StackMap locals:
StackMap stack:
aload 1
monitorexit
8: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
9: aload 1
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/nio/ch/SocketChannelImpl;
Exception table:
from to target type
1 8 9 any
9 10 9 any
Exceptions:
throws java.io.IOException
public boolean connect(java.net.SocketAddress);
descriptor: (Ljava/net/SocketAddress;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=11, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/lang/Object;
dup
astore 3
monitorenter
2: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/lang/Object;
dup
astore 4
monitorenter
3: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.ensureOpenAndUnconnected:()V
4: aload 1
invokestatic sun.nio.ch.Net.checkAddress:(Ljava/net/SocketAddress;)Ljava/net/InetSocketAddress;
astore 5
start local 5 5: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 6
start local 6 6: aload 6
ifnull 10
7: aload 6
aload 5
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
8: aload 5
invokevirtual java.net.InetSocketAddress.getPort:()I
9: invokevirtual java.lang.SecurityManager.checkConnect:(Ljava/lang/String;I)V
10: StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress int java.lang.Object java.lang.Object java.net.InetSocketAddress java.lang.SecurityManager
StackMap stack:
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.blockingLock:()Ljava/lang/Object;
dup
astore 7
monitorenter
11: iconst_0
istore 8
start local 8 12: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.begin:()V
13: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 9
monitorenter
14: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 25
15: aload 9
monitorexit
16: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.readerCleanup:()V
17: aload 0
iload 8
ifgt 18
iload 8
bipush -2
if_icmpeq 18
iconst_0
goto 19
StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress int java.lang.Object java.lang.Object java.net.InetSocketAddress java.lang.SecurityManager java.lang.Object int java.lang.Object
StackMap stack: sun.nio.ch.SocketChannelImpl
18: iconst_1
StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress int java.lang.Object java.lang.Object java.net.InetSocketAddress java.lang.SecurityManager java.lang.Object int java.lang.Object
StackMap stack: sun.nio.ch.SocketChannelImpl int
19: invokevirtual sun.nio.ch.SocketChannelImpl.end:(Z)V
20: getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 21
iload 8
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 21
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
StackMap locals:
StackMap stack:
21: aload 7
monitorexit
22: aload 4
monitorexit
23: aload 3
monitorexit
24: iconst_0
ireturn
25: StackMap locals:
StackMap stack:
aload 0
invokestatic sun.nio.ch.NativeThread.current:()J
putfield sun.nio.ch.SocketChannelImpl.readerThread:J
26: aload 9
monitorexit
27: goto 30
StackMap locals:
StackMap stack: java.lang.Throwable
28: aload 9
monitorexit
29: athrow
30: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
astore 9
start local 9 31: aload 9
invokevirtual java.net.InetAddress.isAnyLocalAddress:()Z
ifeq 33
32: invokestatic java.net.InetAddress.getLocalHost:()Ljava/net/InetAddress;
astore 9
33: StackMap locals: java.net.InetAddress
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
34: aload 9
35: aload 5
invokevirtual java.net.InetSocketAddress.getPort:()I
36: iload 2
37: invokestatic sun.nio.ch.Net.connect:(Ljava/io/FileDescriptor;Ljava/net/InetAddress;II)I
istore 8
38: iload 8
bipush -3
if_icmpne 48
39: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifeq 48
end local 9 40: goto 30
41: StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress int java.lang.Object java.lang.Object java.net.InetSocketAddress java.lang.SecurityManager java.lang.Object int
StackMap stack: java.lang.Throwable
astore 10
42: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.readerCleanup:()V
43: aload 0
iload 8
ifgt 44
iload 8
bipush -2
if_icmpeq 44
iconst_0
goto 45
StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress int java.lang.Object java.lang.Object java.net.InetSocketAddress java.lang.SecurityManager java.lang.Object int top java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl
44: iconst_1
StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress int java.lang.Object java.lang.Object java.net.InetSocketAddress java.lang.SecurityManager java.lang.Object int top java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl int
45: invokevirtual sun.nio.ch.SocketChannelImpl.end:(Z)V
46: getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 47
iload 8
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 47
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
47: StackMap locals:
StackMap stack:
aload 10
athrow
48: StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress int java.lang.Object java.lang.Object java.net.InetSocketAddress java.lang.SecurityManager java.lang.Object int
StackMap stack:
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.readerCleanup:()V
49: aload 0
iload 8
ifgt 50
iload 8
bipush -2
if_icmpeq 50
iconst_0
goto 51
StackMap locals:
StackMap stack: sun.nio.ch.SocketChannelImpl
50: iconst_1
StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress int java.lang.Object java.lang.Object java.net.InetSocketAddress java.lang.SecurityManager java.lang.Object int
StackMap stack: sun.nio.ch.SocketChannelImpl int
51: invokevirtual sun.nio.ch.SocketChannelImpl.end:(Z)V
52: getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 56
iload 8
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 56
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
53: StackMap locals:
StackMap stack: java.io.IOException
astore 9
start local 9 54: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.close:()V
55: aload 9
athrow
end local 9 56: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 9
monitorenter
57: aload 0
aload 5
putfield sun.nio.ch.SocketChannelImpl.remoteAddress:Ljava/net/InetSocketAddress;
58: iload 8
ifle 65
59: aload 0
iconst_2
putfield sun.nio.ch.SocketChannelImpl.state:I
60: aload 9
monitorexit
61: aload 7
monitorexit
62: aload 4
monitorexit
63: aload 3
monitorexit
64: iconst_1
ireturn
65: StackMap locals: java.lang.Object
StackMap stack:
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isBlocking:()Z
ifne 67
66: aload 0
iconst_1
putfield sun.nio.ch.SocketChannelImpl.state:I
goto 68
67: StackMap locals:
StackMap stack:
getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 68
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
68: StackMap locals:
StackMap stack:
aload 9
monitorexit
69: goto 72
StackMap locals:
StackMap stack: java.lang.Throwable
70: aload 9
monitorexit
71: athrow
end local 8 72: StackMap locals:
StackMap stack:
aload 7
monitorexit
73: goto 76
StackMap locals:
StackMap stack: java.lang.Throwable
74: aload 7
monitorexit
75: athrow
76: StackMap locals:
StackMap stack:
aload 4
monitorexit
77: aload 3
monitorexit
78: iconst_0
ireturn
end local 6 end local 5 79: StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress int java.lang.Object java.lang.Object
StackMap stack: java.lang.Throwable
aload 4
monitorexit
80: athrow
81: StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress int java.lang.Object
StackMap stack: java.lang.Throwable
aload 3
monitorexit
82: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 83 0 this Lsun/nio/ch/SocketChannelImpl;
0 83 1 sa Ljava/net/SocketAddress;
1 83 2 trafficClass I
5 79 5 isa Ljava/net/InetSocketAddress;
6 79 6 sm Ljava/lang/SecurityManager;
12 72 8 n I
31 40 9 ia Ljava/net/InetAddress;
54 56 9 x Ljava/io/IOException;
Exception table:
from to target type
14 16 28 any
25 27 28 any
28 29 28 any
12 16 41 any
25 41 41 any
12 21 53 Class java.io.IOException
25 53 53 Class java.io.IOException
57 61 70 any
65 69 70 any
70 71 70 any
11 22 74 any
25 62 74 any
65 73 74 any
74 75 74 any
3 23 79 any
25 63 79 any
65 77 79 any
79 80 79 any
2 24 81 any
25 64 81 any
65 78 81 any
79 82 81 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
sa
public boolean finishConnect();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=8, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/lang/Object;
dup
astore 2
monitorenter
2: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 3
monitorenter
3: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 5
4: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
5: StackMap locals: java.lang.Object java.lang.Object java.lang.Object
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_2
if_icmpne 10
6: aload 3
monitorexit
7: aload 2
monitorexit
8: aload 1
monitorexit
9: iconst_1
ireturn
10: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_1
if_icmpeq 12
11: new java.nio.channels.NoConnectionPendingException
dup
invokespecial java.nio.channels.NoConnectionPendingException.<init>:()V
athrow
12: StackMap locals:
StackMap stack:
aload 3
monitorexit
13: goto 16
StackMap locals:
StackMap stack: java.lang.Throwable
14: aload 3
monitorexit
15: athrow
16: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 17: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.begin:()V
18: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.blockingLock:()Ljava/lang/Object;
dup
astore 4
monitorenter
19: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 5
monitorenter
20: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 39
21: aload 5
monitorexit
22: aload 4
monitorexit
23: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 7
monitorenter
24: aload 0
lconst_0
putfield sun.nio.ch.SocketChannelImpl.readerThread:J
25: aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_3
if_icmpne 28
26: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.kill:()V
27: iconst_0
istore 3
28: StackMap locals: sun.nio.ch.SocketChannelImpl java.lang.Object java.lang.Object int java.lang.Object java.lang.Object top java.lang.Object
StackMap stack:
aload 7
monitorexit
29: goto 32
StackMap locals:
StackMap stack: java.lang.Throwable
30: aload 7
monitorexit
31: athrow
32: StackMap locals: sun.nio.ch.SocketChannelImpl java.lang.Object java.lang.Object int java.lang.Object java.lang.Object
StackMap stack:
aload 0
iload 3
ifgt 33
iload 3
bipush -2
if_icmpeq 33
iconst_0
goto 34
StackMap locals:
StackMap stack: sun.nio.ch.SocketChannelImpl
33: iconst_1
StackMap locals: sun.nio.ch.SocketChannelImpl java.lang.Object java.lang.Object int java.lang.Object java.lang.Object
StackMap stack: sun.nio.ch.SocketChannelImpl int
34: invokevirtual sun.nio.ch.SocketChannelImpl.end:(Z)V
35: getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 36
iload 3
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 36
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
StackMap locals:
StackMap stack:
36: aload 2
monitorexit
37: aload 1
monitorexit
38: iconst_0
ireturn
39: StackMap locals:
StackMap stack:
aload 0
invokestatic sun.nio.ch.NativeThread.current:()J
putfield sun.nio.ch.SocketChannelImpl.readerThread:J
40: aload 5
monitorexit
41: goto 44
StackMap locals:
StackMap stack: java.lang.Throwable
42: aload 5
monitorexit
43: athrow
44: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isBlocking:()Z
ifne 51
45: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
iconst_0
46: aload 0
getfield sun.nio.ch.SocketChannelImpl.readyToConnect:Z
47: invokestatic sun.nio.ch.SocketChannelImpl.checkConnect:(Ljava/io/FileDescriptor;ZZ)I
istore 3
48: iload 3
bipush -3
if_icmpne 59
49: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifeq 59
50: goto 45
51: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
iconst_1
52: aload 0
getfield sun.nio.ch.SocketChannelImpl.readyToConnect:Z
53: invokestatic sun.nio.ch.SocketChannelImpl.checkConnect:(Ljava/io/FileDescriptor;ZZ)I
istore 3
54: iload 3
ifne 56
55: goto 51
56: StackMap locals:
StackMap stack:
iload 3
bipush -3
if_icmpne 59
57: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifeq 59
58: goto 51
59: StackMap locals:
StackMap stack:
aload 4
monitorexit
60: goto 78
StackMap locals:
StackMap stack: java.lang.Throwable
61: aload 4
monitorexit
62: athrow
63: StackMap locals: sun.nio.ch.SocketChannelImpl java.lang.Object java.lang.Object int
StackMap stack: java.lang.Throwable
astore 6
64: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 7
monitorenter
65: aload 0
lconst_0
putfield sun.nio.ch.SocketChannelImpl.readerThread:J
66: aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_3
if_icmpne 69
67: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.kill:()V
68: iconst_0
istore 3
69: StackMap locals: sun.nio.ch.SocketChannelImpl java.lang.Object java.lang.Object int top top java.lang.Throwable java.lang.Object
StackMap stack:
aload 7
monitorexit
70: goto 73
StackMap locals:
StackMap stack: java.lang.Throwable
71: aload 7
monitorexit
72: athrow
73: StackMap locals:
StackMap stack:
aload 0
iload 3
ifgt 74
iload 3
bipush -2
if_icmpeq 74
iconst_0
goto 75
StackMap locals:
StackMap stack: sun.nio.ch.SocketChannelImpl
74: iconst_1
StackMap locals: sun.nio.ch.SocketChannelImpl java.lang.Object java.lang.Object int top top java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl int
75: invokevirtual sun.nio.ch.SocketChannelImpl.end:(Z)V
76: getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 77
iload 3
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 77
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
77: StackMap locals:
StackMap stack:
aload 6
athrow
78: StackMap locals: sun.nio.ch.SocketChannelImpl java.lang.Object java.lang.Object int
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 7
monitorenter
79: aload 0
lconst_0
putfield sun.nio.ch.SocketChannelImpl.readerThread:J
80: aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_3
if_icmpne 83
81: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.kill:()V
82: iconst_0
istore 3
83: StackMap locals: sun.nio.ch.SocketChannelImpl java.lang.Object java.lang.Object int top top top java.lang.Object
StackMap stack:
aload 7
monitorexit
84: goto 87
StackMap locals:
StackMap stack: java.lang.Throwable
85: aload 7
monitorexit
86: athrow
87: StackMap locals: sun.nio.ch.SocketChannelImpl java.lang.Object java.lang.Object int
StackMap stack:
aload 0
iload 3
ifgt 88
iload 3
bipush -2
if_icmpeq 88
iconst_0
goto 89
StackMap locals:
StackMap stack: sun.nio.ch.SocketChannelImpl
88: iconst_1
StackMap locals: sun.nio.ch.SocketChannelImpl java.lang.Object java.lang.Object int
StackMap stack: sun.nio.ch.SocketChannelImpl int
89: invokevirtual sun.nio.ch.SocketChannelImpl.end:(Z)V
90: getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 94
iload 3
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 94
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
91: StackMap locals:
StackMap stack: java.io.IOException
astore 4
start local 4 92: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.close:()V
93: aload 4
athrow
end local 4 94: StackMap locals:
StackMap stack:
iload 3
ifle 104
95: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 4
monitorenter
96: aload 0
iconst_2
putfield sun.nio.ch.SocketChannelImpl.state:I
97: aload 4
monitorexit
98: goto 101
StackMap locals: sun.nio.ch.SocketChannelImpl java.lang.Object java.lang.Object int java.lang.Object
StackMap stack: java.lang.Throwable
99: aload 4
monitorexit
100: athrow
101: StackMap locals:
StackMap stack:
aload 2
monitorexit
102: aload 1
monitorexit
103: iconst_1
ireturn
104: StackMap locals:
StackMap stack:
aload 2
monitorexit
105: aload 1
monitorexit
106: iconst_0
ireturn
end local 3 107: StackMap locals: sun.nio.ch.SocketChannelImpl java.lang.Object java.lang.Object
StackMap stack: java.lang.Throwable
aload 2
monitorexit
108: athrow
109: StackMap locals: sun.nio.ch.SocketChannelImpl java.lang.Object
StackMap stack: java.lang.Throwable
aload 1
monitorexit
110: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 111 0 this Lsun/nio/ch/SocketChannelImpl;
17 107 3 n I
92 94 4 x Ljava/io/IOException;
Exception table:
from to target type
3 7 14 any
10 13 14 any
14 15 14 any
24 29 30 any
30 31 30 any
20 22 42 any
39 41 42 any
42 43 42 any
19 23 61 any
39 60 61 any
61 62 61 any
17 23 63 any
39 63 63 any
65 70 71 any
71 72 71 any
79 84 85 any
85 86 85 any
17 36 91 Class java.io.IOException
39 91 91 Class java.io.IOException
96 98 99 any
99 100 99 any
2 8 107 any
10 37 107 any
39 102 107 any
104 105 107 any
107 108 107 any
1 9 109 any
10 38 109 any
39 103 109 any
104 106 109 any
107 110 109 any
Exceptions:
throws java.io.IOException
public void shutdownInput();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 3
2: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
3: StackMap locals: java.lang.Object
StackMap stack:
aload 0
iconst_0
putfield sun.nio.ch.SocketChannelImpl.isInputOpen:Z
4: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
iconst_0
invokestatic sun.nio.ch.SocketChannelImpl.shutdown:(Ljava/io/FileDescriptor;I)V
5: aload 0
getfield sun.nio.ch.SocketChannelImpl.readerThread:J
lconst_0
lcmp
ifeq 7
6: aload 0
getfield sun.nio.ch.SocketChannelImpl.readerThread:J
invokestatic sun.nio.ch.NativeThread.signal:(J)V
7: StackMap locals:
StackMap stack:
aload 1
monitorexit
8: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
9: aload 1
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/nio/ch/SocketChannelImpl;
Exception table:
from to target type
1 8 9 any
9 10 9 any
Exceptions:
throws java.io.IOException
public void shutdownOutput();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 3
2: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
3: StackMap locals: java.lang.Object
StackMap stack:
aload 0
iconst_0
putfield sun.nio.ch.SocketChannelImpl.isOutputOpen:Z
4: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
iconst_1
invokestatic sun.nio.ch.SocketChannelImpl.shutdown:(Ljava/io/FileDescriptor;I)V
5: aload 0
getfield sun.nio.ch.SocketChannelImpl.writerThread:J
lconst_0
lcmp
ifeq 7
6: aload 0
getfield sun.nio.ch.SocketChannelImpl.writerThread:J
invokestatic sun.nio.ch.NativeThread.signal:(J)V
7: StackMap locals:
StackMap stack:
aload 1
monitorexit
8: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
9: aload 1
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/nio/ch/SocketChannelImpl;
Exception table:
from to target type
1 8 9 any
9 10 9 any
Exceptions:
throws java.io.IOException
public boolean isInputOpen();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputOpen:Z
aload 1
monitorexit
2: ireturn
3: StackMap locals: sun.nio.ch.SocketChannelImpl java.lang.Object
StackMap stack: java.lang.Throwable
aload 1
monitorexit
4: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/nio/ch/SocketChannelImpl;
Exception table:
from to target type
1 2 3 any
3 4 3 any
public boolean isOutputOpen();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield sun.nio.ch.SocketChannelImpl.isOutputOpen:Z
aload 1
monitorexit
2: ireturn
3: StackMap locals: sun.nio.ch.SocketChannelImpl java.lang.Object
StackMap stack: java.lang.Throwable
aload 1
monitorexit
4: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/nio/ch/SocketChannelImpl;
Exception table:
from to target type
1 2 3 any
3 4 3 any
protected void implCloseSelectableChannel();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
iconst_0
putfield sun.nio.ch.SocketChannelImpl.isInputOpen:Z
2: aload 0
iconst_0
putfield sun.nio.ch.SocketChannelImpl.isOutputOpen:Z
3: getstatic sun.nio.ch.SocketChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
invokevirtual sun.nio.ch.NativeDispatcher.preClose:(Ljava/io/FileDescriptor;)V
4: aload 0
getfield sun.nio.ch.SocketChannelImpl.readerThread:J
lconst_0
lcmp
ifeq 6
5: aload 0
getfield sun.nio.ch.SocketChannelImpl.readerThread:J
invokestatic sun.nio.ch.NativeThread.signal:(J)V
6: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.writerThread:J
lconst_0
lcmp
ifeq 8
7: aload 0
getfield sun.nio.ch.SocketChannelImpl.writerThread:J
invokestatic sun.nio.ch.NativeThread.signal:(J)V
8: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isRegistered:()Z
ifne 10
9: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.kill:()V
10: StackMap locals:
StackMap stack:
aload 1
monitorexit
11: goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
12: aload 1
monitorexit
13: athrow
14: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lsun/nio/ch/SocketChannelImpl;
Exception table:
from to target type
1 11 12 any
12 13 12 any
Exceptions:
throws java.io.IOException
public void kill();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_4
if_icmpne 4
2: aload 1
monitorexit
3: return
4: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_m1
if_icmpne 8
5: aload 0
iconst_4
putfield sun.nio.ch.SocketChannelImpl.state:I
6: aload 1
monitorexit
7: return
8: StackMap locals:
StackMap stack:
getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 10
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 9
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isRegistered:()Z
ifeq 10
StackMap locals:
StackMap stack:
9: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
10: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.readerThread:J
lconst_0
lcmp
ifne 14
aload 0
getfield sun.nio.ch.SocketChannelImpl.writerThread:J
lconst_0
lcmp
ifne 14
11: getstatic sun.nio.ch.SocketChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
invokevirtual sun.nio.ch.NativeDispatcher.close:(Ljava/io/FileDescriptor;)V
12: aload 0
iconst_4
putfield sun.nio.ch.SocketChannelImpl.state:I
13: goto 15
14: StackMap locals:
StackMap stack:
aload 0
iconst_3
putfield sun.nio.ch.SocketChannelImpl.state:I
15: StackMap locals:
StackMap stack:
aload 1
monitorexit
16: goto 19
StackMap locals:
StackMap stack: java.lang.Throwable
17: aload 1
monitorexit
18: athrow
19: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lsun/nio/ch/SocketChannelImpl;
Exception table:
from to target type
1 3 17 any
4 7 17 any
8 16 17 any
17 18 17 any
Exceptions:
throws java.io.IOException
public boolean translateReadyOps(int, int, sun.nio.ch.SelectionKeyImpl);
descriptor: (IILsun/nio/ch/SelectionKeyImpl;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
invokevirtual sun.nio.ch.SelectionKeyImpl.nioInterestOps:()I
istore 4
start local 4 1: aload 3
invokevirtual sun.nio.ch.SelectionKeyImpl.nioReadyOps:()I
istore 5
start local 5 2: iload 2
istore 6
start local 6 3: iload 1
bipush 32
iand
ifeq 5
4: iconst_0
ireturn
5: StackMap locals: int int int
StackMap stack:
iload 1
bipush 24
iand
ifeq 11
6: iload 4
istore 6
7: aload 3
iload 6
invokevirtual sun.nio.ch.SelectionKeyImpl.nioReadyOps:(I)V
8: aload 0
iconst_1
putfield sun.nio.ch.SocketChannelImpl.readyToConnect:Z
9: iload 6
iload 5
iconst_m1
ixor
iand
ifeq 10
iconst_1
ireturn
StackMap locals:
StackMap stack:
10: iconst_0
ireturn
11: StackMap locals:
StackMap stack:
iload 1
iconst_1
iand
ifeq 15
12: iload 4
iconst_1
iand
ifeq 15
13: aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_2
if_icmpne 15
14: iload 6
iconst_1
ior
istore 6
15: StackMap locals:
StackMap stack:
iload 1
iconst_4
iand
ifeq 20
16: iload 4
bipush 8
iand
ifeq 20
17: aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
ifeq 18
aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_1
if_icmpne 20
18: StackMap locals:
StackMap stack:
iload 6
bipush 8
ior
istore 6
19: aload 0
iconst_1
putfield sun.nio.ch.SocketChannelImpl.readyToConnect:Z
20: StackMap locals:
StackMap stack:
iload 1
iconst_4
iand
ifeq 24
21: iload 4
iconst_4
iand
ifeq 24
22: aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_2
if_icmpne 24
23: iload 6
iconst_4
ior
istore 6
24: StackMap locals:
StackMap stack:
aload 3
iload 6
invokevirtual sun.nio.ch.SelectionKeyImpl.nioReadyOps:(I)V
25: iload 6
iload 5
iconst_m1
ixor
iand
ifeq 26
iconst_1
ireturn
StackMap locals:
StackMap stack:
26: iconst_0
ireturn
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 27 0 this Lsun/nio/ch/SocketChannelImpl;
0 27 1 ops I
0 27 2 initialOps I
0 27 3 sk Lsun/nio/ch/SelectionKeyImpl;
1 27 4 intOps I
2 27 5 oldOps I
3 27 6 newOps I
MethodParameters:
Name Flags
ops
initialOps
sk
public boolean translateAndUpdateReadyOps(int, sun.nio.ch.SelectionKeyImpl);
descriptor: (ILsun/nio/ch/SelectionKeyImpl;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
aload 2
invokevirtual sun.nio.ch.SelectionKeyImpl.nioReadyOps:()I
aload 2
invokevirtual sun.nio.ch.SocketChannelImpl.translateReadyOps:(IILsun/nio/ch/SelectionKeyImpl;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/SocketChannelImpl;
0 1 1 ops I
0 1 2 sk Lsun/nio/ch/SelectionKeyImpl;
MethodParameters:
Name Flags
ops
sk
public boolean translateAndSetReadyOps(int, sun.nio.ch.SelectionKeyImpl);
descriptor: (ILsun/nio/ch/SelectionKeyImpl;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
iconst_0
aload 2
invokevirtual sun.nio.ch.SocketChannelImpl.translateReadyOps:(IILsun/nio/ch/SelectionKeyImpl;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/SocketChannelImpl;
0 1 1 ops I
0 1 2 sk Lsun/nio/ch/SelectionKeyImpl;
MethodParameters:
Name Flags
ops
sk
public void translateAndSetInterestOps(int, sun.nio.ch.SelectionKeyImpl);
descriptor: (ILsun/nio/ch/SelectionKeyImpl;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: iload 1
iconst_1
iand
ifeq 3
2: iload 3
iconst_1
ior
istore 3
3: StackMap locals: int
StackMap stack:
iload 1
iconst_4
iand
ifeq 5
4: iload 3
iconst_4
ior
istore 3
5: StackMap locals:
StackMap stack:
iload 1
bipush 8
iand
ifeq 7
6: iload 3
iconst_4
ior
istore 3
7: StackMap locals:
StackMap stack:
aload 2
getfield sun.nio.ch.SelectionKeyImpl.selector:Lsun/nio/ch/SelectorImpl;
aload 2
iload 3
invokevirtual sun.nio.ch.SelectorImpl.putEventOps:(Lsun/nio/ch/SelectionKeyImpl;I)V
8: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/nio/ch/SocketChannelImpl;
0 9 1 ops I
0 9 2 sk Lsun/nio/ch/SelectionKeyImpl;
1 9 3 newOps I
MethodParameters:
Name Flags
ops
sk
public java.io.FileDescriptor getFD();
descriptor: ()Ljava/io/FileDescriptor;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/SocketChannelImpl;
public int getFDVal();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.fdVal:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/SocketChannelImpl;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: new java.lang.StringBuffer
dup
invokespecial java.lang.StringBuffer.<init>:()V
astore 1
start local 1 1: aload 1
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
2: aload 1
bipush 91
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
3: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 5
4: aload 1
ldc "closed"
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
goto 27
5: StackMap locals: java.lang.StringBuffer
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 2
monitorenter
6: aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
tableswitch { // 0 - 2
0: 7
1: 9
2: 11
default: 16
}
7: StackMap locals: java.lang.Object
StackMap stack:
aload 1
ldc "unconnected"
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
8: goto 16
9: StackMap locals:
StackMap stack:
aload 1
ldc "connection-pending"
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
10: goto 16
11: StackMap locals:
StackMap stack:
aload 1
ldc "connected"
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
12: aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputOpen:Z
ifne 14
13: aload 1
ldc " ishut"
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
14: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.isOutputOpen:Z
ifne 16
15: aload 1
ldc " oshut"
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
16: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.localAddress:()Ljava/net/InetSocketAddress;
astore 3
start local 3 17: aload 3
ifnull 20
18: aload 1
ldc " local="
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
19: aload 1
aload 3
invokestatic sun.nio.ch.Net.getRevealedLocalAddressAsString:(Ljava/net/InetSocketAddress;)Ljava/lang/String;
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
20: StackMap locals: java.net.InetSocketAddress
StackMap stack:
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.remoteAddress:()Ljava/net/SocketAddress;
ifnull 23
21: aload 1
ldc " remote="
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
22: aload 1
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.remoteAddress:()Ljava/net/SocketAddress;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
end local 3 23: StackMap locals:
StackMap stack:
aload 2
monitorexit
24: goto 27
StackMap locals:
StackMap stack: java.lang.Throwable
25: aload 2
monitorexit
26: athrow
27: StackMap locals:
StackMap stack:
aload 1
bipush 93
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
28: aload 1
invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lsun/nio/ch/SocketChannelImpl;
1 29 1 sb Ljava/lang/StringBuffer;
17 23 3 addr Ljava/net/InetSocketAddress;
Exception table:
from to target type
6 24 25 any
25 26 25 any
private static native int checkConnect(java.io.FileDescriptor, boolean, boolean);
descriptor: (Ljava/io/FileDescriptor;ZZ)I
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
block
ready
private static native void shutdown(java.io.FileDescriptor, int);
descriptor: (Ljava/io/FileDescriptor;I)V
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
how
}
SourceFile: "SocketChannelImpl.java"
NestMembers:
sun.nio.ch.SocketChannelImpl$1
InnerClasses:
sun.nio.ch.SocketChannelImpl$1
public abstract IP = sun.nio.ch.SocketOpts$IP of sun.nio.ch.SocketOpts
public abstract TCP = sun.nio.ch.SocketOpts$IP$TCP of sun.nio.ch.SocketOpts$IP
abstract Dispatcher = sun.nio.ch.SocketOptsImpl$Dispatcher of sun.nio.ch.SocketOptsImpl
IP = sun.nio.ch.SocketOptsImpl$IP of sun.nio.ch.SocketOptsImpl
public TCP = sun.nio.ch.SocketOptsImpl$IP$TCP of sun.nio.ch.SocketOptsImpl$IP