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 boolean isReuseAddress;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
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 java.net.Socket socket;
descriptor: Ljava/net/Socket;
flags: (0x0002) ACC_PRIVATE
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
iconst_1
invokestatic sun.nio.ch.Net.socket:(Z)Ljava/io/FileDescriptor;
putfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
11: 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
12: aload 0
iconst_0
putfield sun.nio.ch.SocketChannelImpl.state:I
13: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lsun/nio/ch/SocketChannelImpl;
0 14 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, boolean);
descriptor: (Ljava/nio/channels/spi/SelectorProvider;Ljava/io/FileDescriptor;Z)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
aload 2
putfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
11: aload 0
aload 2
invokestatic sun.nio.ch.IOUtil.fdVal:(Ljava/io/FileDescriptor;)I
putfield sun.nio.ch.SocketChannelImpl.fdVal:I
12: aload 0
iconst_0
putfield sun.nio.ch.SocketChannelImpl.state:I
13: iload 3
ifeq 15
14: aload 0
aload 2
invokestatic sun.nio.ch.Net.localAddress:(Ljava/io/FileDescriptor;)Ljava/net/InetSocketAddress;
putfield sun.nio.ch.SocketChannelImpl.localAddress:Ljava/net/InetSocketAddress;
15: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.channels.spi.SelectorProvider java.io.FileDescriptor int
StackMap stack:
return
end local 3 end local 2 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;
0 16 2 fd Ljava/io/FileDescriptor;
0 16 3 bound Z
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
sp
fd
bound
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
aload 2
putfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
11: aload 0
aload 2
invokestatic sun.nio.ch.IOUtil.fdVal:(Ljava/io/FileDescriptor;)I
putfield sun.nio.ch.SocketChannelImpl.fdVal:I
12: aload 0
iconst_2
putfield sun.nio.ch.SocketChannelImpl.state:I
13: aload 0
aload 2
invokestatic sun.nio.ch.Net.localAddress:(Ljava/io/FileDescriptor;)Ljava/net/InetSocketAddress;
putfield sun.nio.ch.SocketChannelImpl.localAddress:Ljava/net/InetSocketAddress;
14: aload 0
aload 3
putfield sun.nio.ch.SocketChannelImpl.remoteAddress:Ljava/net/InetSocketAddress;
15: return
end local 3 end local 2 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;
0 16 2 fd Ljava/io/FileDescriptor;
0 16 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
public java.net.SocketAddress getLocalAddress();
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
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.localAddress:Ljava/net/InetSocketAddress;
invokestatic sun.nio.ch.Net.getRevealedLocalAddress:(Ljava/net/InetSocketAddress;)Ljava/net/InetSocketAddress;
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
Exceptions:
throws java.io.IOException
public java.net.SocketAddress getRemoteAddress();
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
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.remoteAddress:Ljava/net/InetSocketAddress;
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
Exceptions:
throws java.io.IOException
public <T> java.nio.channels.SocketChannel setOption(java.net.SocketOption<T>, T);
descriptor: (Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/nio/channels/SocketChannel;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 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
invokevirtual sun.nio.ch.SocketChannelImpl.supportedOptions:()Ljava/util/Set;
aload 1
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 4
3: new java.lang.UnsupportedOperationException
dup
new java.lang.StringBuilder
dup
ldc "'"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "' not supported"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 3
monitorenter
5: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 7
6: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
7: StackMap locals: java.lang.Object
StackMap stack:
aload 1
getstatic java.net.StandardSocketOptions.IP_TOS:Ljava/net/SocketOption;
if_acmpne 15
8: invokestatic sun.nio.ch.Net.isIPv6Available:()Z
ifeq 10
9: getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
goto 11
StackMap locals:
StackMap stack:
10: getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
11: StackMap locals:
StackMap stack: java.net.StandardProtocolFamily
astore 4
start local 4 12: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
aload 4
aload 1
aload 2
invokestatic sun.nio.ch.Net.setSocketOption:(Ljava/io/FileDescriptor;Ljava/net/ProtocolFamily;Ljava/net/SocketOption;Ljava/lang/Object;)V
13: aload 0
aload 3
monitorexit
14: areturn
end local 4 15: StackMap locals:
StackMap stack:
aload 1
getstatic java.net.StandardSocketOptions.SO_REUSEADDR:Ljava/net/SocketOption;
if_acmpne 19
invokestatic sun.nio.ch.Net.useExclusiveBind:()Z
ifeq 19
16: aload 0
aload 2
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
putfield sun.nio.ch.SocketChannelImpl.isReuseAddress:Z
17: aload 0
aload 3
monitorexit
18: areturn
19: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
getstatic sun.nio.ch.Net.UNSPEC:Ljava/net/ProtocolFamily;
aload 1
aload 2
invokestatic sun.nio.ch.Net.setSocketOption:(Ljava/io/FileDescriptor;Ljava/net/ProtocolFamily;Ljava/net/SocketOption;Ljava/lang/Object;)V
20: aload 0
aload 3
monitorexit
21: areturn
22: StackMap locals:
StackMap stack: java.lang.Throwable
aload 3
monitorexit
23: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lsun/nio/ch/SocketChannelImpl;
0 24 1 name Ljava/net/SocketOption<TT;>;
0 24 2 value TT;
12 15 4 family Ljava/net/ProtocolFamily;
Exception table:
from to target type
5 14 22 any
15 18 22 any
19 21 22 any
22 23 22 any
Exceptions:
throws java.io.IOException
Signature: <T:Ljava/lang/Object;>(Ljava/net/SocketOption<TT;>;TT;)Ljava/nio/channels/SocketChannel;
MethodParameters:
Name Flags
name
value
public <T> T getOption(java.net.SocketOption<T>);
descriptor: (Ljava/net/SocketOption;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, 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
invokevirtual sun.nio.ch.SocketChannelImpl.supportedOptions:()Ljava/util/Set;
aload 1
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 4
3: new java.lang.UnsupportedOperationException
dup
new java.lang.StringBuilder
dup
ldc "'"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "' not supported"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 2
monitorenter
5: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 7
6: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
7: StackMap locals: java.lang.Object
StackMap stack:
aload 1
getstatic java.net.StandardSocketOptions.SO_REUSEADDR:Ljava/net/SocketOption;
if_acmpne 11
8: invokestatic sun.nio.ch.Net.useExclusiveBind:()Z
ifeq 11
9: aload 0
getfield sun.nio.ch.SocketChannelImpl.isReuseAddress:Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 2
monitorexit
10: areturn
11: StackMap locals:
StackMap stack:
aload 1
getstatic java.net.StandardSocketOptions.IP_TOS:Ljava/net/SocketOption;
if_acmpne 18
12: invokestatic sun.nio.ch.Net.isIPv6Available:()Z
ifeq 14
13: getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
goto 15
StackMap locals:
StackMap stack:
14: getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
15: StackMap locals:
StackMap stack: java.net.StandardProtocolFamily
astore 3
start local 3 16: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
aload 3
aload 1
invokestatic sun.nio.ch.Net.getSocketOption:(Ljava/io/FileDescriptor;Ljava/net/ProtocolFamily;Ljava/net/SocketOption;)Ljava/lang/Object;
aload 2
monitorexit
17: areturn
end local 3 18: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
getstatic sun.nio.ch.Net.UNSPEC:Ljava/net/ProtocolFamily;
aload 1
invokestatic sun.nio.ch.Net.getSocketOption:(Ljava/io/FileDescriptor;Ljava/net/ProtocolFamily;Ljava/net/SocketOption;)Ljava/lang/Object;
aload 2
monitorexit
19: areturn
20: StackMap locals:
StackMap stack: java.lang.Throwable
aload 2
monitorexit
21: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lsun/nio/ch/SocketChannelImpl;
0 22 1 name Ljava/net/SocketOption<TT;>;
16 18 3 family Ljava/net/ProtocolFamily;
Exception table:
from to target type
5 10 20 any
11 17 20 any
18 19 20 any
20 21 20 any
Exceptions:
throws java.io.IOException
Signature: <T:Ljava/lang/Object;>(Ljava/net/SocketOption<TT;>;)TT;
MethodParameters:
Name Flags
name
public final java.util.Set<java.net.SocketOption<?>> supportedOptions();
descriptor: ()Ljava/util/Set;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic sun.nio.ch.SocketChannelImpl$DefaultOptionsHolder.defaultOptions:Ljava/util/Set;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/SocketChannelImpl;
Signature: ()Ljava/util/Set<Ljava/net/SocketOption<*>;>;
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=5, 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;
invokestatic sun.nio.ch.IOUtil.read:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)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
public long read(java.nio.ByteBuffer[], int, int);
descriptor: ([Ljava/nio/ByteBuffer;II)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=12, 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
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/lang/Object;
dup
astore 4
monitorenter
3: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.ensureReadOpen:()Z
ifne 6
4: aload 4
monitorexit
5: ldc -1
lreturn
6: StackMap locals: java.lang.Object
StackMap stack:
lconst_0
lstore 5
start local 5 7: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.begin:()V
8: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 7
monitorenter
9: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 27
10: aload 7
monitorexit
11: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.readerCleanup:()V
12: aload 0
lload 5
lconst_0
lcmp
ifgt 13
lload 5
ldc -2
lcmp
ifeq 13
iconst_0
goto 14
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int 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[] int int 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 11
monitorenter
16: lload 5
lconst_0
lcmp
ifgt 20
aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputOpen:Z
ifne 20
17: aload 11
monitorexit
18: aload 4
monitorexit
19: ldc -1
lreturn
20: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long java.lang.Object top top top java.lang.Object
StackMap stack:
aload 11
monitorexit
21: goto 24
StackMap locals:
StackMap stack: java.lang.Throwable
22: aload 11
monitorexit
23: athrow
24: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long java.lang.Object
StackMap stack:
getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 25
lload 5
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 4
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 7
monitorexit
29: goto 32
StackMap locals:
StackMap stack: java.lang.Throwable
30: aload 7
monitorexit
31: athrow
32: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
aload 1
iload 2
iload 3
getstatic sun.nio.ch.SocketChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
invokestatic sun.nio.ch.IOUtil.read:(Ljava/io/FileDescriptor;[Ljava/nio/ByteBuffer;IILsun/nio/ch/NativeDispatcher;)J
lstore 5
33: lload 5
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 5
invokestatic sun.nio.ch.IOStatus.normalize:(J)J
lstore 9
36: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.readerCleanup:()V
37: aload 0
lload 5
lconst_0
lcmp
ifgt 38
lload 5
ldc -2
lcmp
ifeq 38
iconst_0
goto 39
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int 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[] int int 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 11
monitorenter
41: lload 5
lconst_0
lcmp
ifgt 45
aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputOpen:Z
ifne 45
42: aload 11
monitorexit
43: aload 4
monitorexit
44: ldc -1
lreturn
45: StackMap locals: java.lang.Object
StackMap stack:
aload 11
monitorexit
46: goto 49
StackMap locals:
StackMap stack: java.lang.Throwable
47: aload 11
monitorexit
48: athrow
49: StackMap locals:
StackMap stack:
getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 50
lload 5
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 4
monitorexit
51: lload 9
lreturn
52: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long
StackMap stack: java.lang.Throwable
astore 8
53: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.readerCleanup:()V
54: aload 0
lload 5
lconst_0
lcmp
ifgt 55
lload 5
ldc -2
lcmp
ifeq 55
iconst_0
goto 56
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int 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[] int int 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 11
monitorenter
58: lload 5
lconst_0
lcmp
ifgt 62
aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputOpen:Z
ifne 62
59: aload 11
monitorexit
60: aload 4
monitorexit
61: ldc -1
lreturn
62: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long top java.lang.Throwable top top java.lang.Object
StackMap stack:
aload 11
monitorexit
63: goto 66
StackMap locals:
StackMap stack: java.lang.Throwable
64: aload 11
monitorexit
65: athrow
66: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long top java.lang.Throwable
StackMap stack:
getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 67
lload 5
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 8
athrow
end local 5 68: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int java.lang.Object
StackMap stack: java.lang.Throwable
aload 4
monitorexit
69: athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 70 0 this Lsun/nio/ch/SocketChannelImpl;
0 70 1 dsts [Ljava/nio/ByteBuffer;
0 70 2 offset I
0 70 3 length I
7 68 5 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
dsts
offset
length
public int write(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, 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;
invokestatic sun.nio.ch.IOUtil.write:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)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 write(java.nio.ByteBuffer[], int, int);
descriptor: ([Ljava/nio/ByteBuffer;II)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=12, 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
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/lang/Object;
dup
astore 4
monitorenter
3: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.ensureWriteOpen:()V
4: lconst_0
lstore 5
start local 5 5: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.begin:()V
6: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 7
monitorenter
7: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 23
8: aload 7
monitorexit
9: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.writerCleanup:()V
10: aload 0
lload 5
lconst_0
lcmp
ifgt 11
lload 5
ldc -2
lcmp
ifeq 11
iconst_0
goto 12
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int 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[] int int 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 11
monitorenter
14: lload 5
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[] int int java.lang.Object long java.lang.Object top top top java.lang.Object
StackMap stack:
aload 11
monitorexit
17: goto 20
StackMap locals:
StackMap stack: java.lang.Throwable
18: aload 11
monitorexit
19: athrow
20: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long java.lang.Object
StackMap stack:
getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 21
lload 5
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 4
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 7
monitorexit
25: goto 28
StackMap locals:
StackMap stack: java.lang.Throwable
26: aload 7
monitorexit
27: athrow
28: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
aload 1
iload 2
iload 3
getstatic sun.nio.ch.SocketChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
invokestatic sun.nio.ch.IOUtil.write:(Ljava/io/FileDescriptor;[Ljava/nio/ByteBuffer;IILsun/nio/ch/NativeDispatcher;)J
lstore 5
29: lload 5
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 5
invokestatic sun.nio.ch.IOStatus.normalize:(J)J
lstore 9
32: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.writerCleanup:()V
33: aload 0
lload 5
lconst_0
lcmp
ifgt 34
lload 5
ldc -2
lcmp
ifeq 34
iconst_0
goto 35
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int 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[] int int 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 11
monitorenter
37: lload 5
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 11
monitorexit
40: goto 43
StackMap locals:
StackMap stack: java.lang.Throwable
41: aload 11
monitorexit
42: athrow
43: StackMap locals:
StackMap stack:
getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 44
lload 5
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 4
monitorexit
45: lload 9
lreturn
46: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long
StackMap stack: java.lang.Throwable
astore 8
47: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.writerCleanup:()V
48: aload 0
lload 5
lconst_0
lcmp
ifgt 49
lload 5
ldc -2
lcmp
ifeq 49
iconst_0
goto 50
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int 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[] int int 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 11
monitorenter
52: lload 5
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[] int int java.lang.Object long top java.lang.Throwable top top java.lang.Object
StackMap stack:
aload 11
monitorexit
55: goto 58
StackMap locals:
StackMap stack: java.lang.Throwable
56: aload 11
monitorexit
57: athrow
58: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long top java.lang.Throwable
StackMap stack:
getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 59
lload 5
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 8
athrow
end local 5 60: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int java.lang.Object
StackMap stack: java.lang.Throwable
aload 4
monitorexit
61: athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 62 0 this Lsun/nio/ch/SocketChannelImpl;
0 62 1 srcs [Ljava/nio/ByteBuffer;
0 62 2 offset I
0 62 3 length I
5 60 5 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
srcs
offset
length
int sendOutOfBandData(byte);
descriptor: (B)I
flags: (0x0000)
Code:
stack=3, locals=8, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.ensureWriteOpen:()V
2: iconst_0
istore 3
start local 3 3: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.begin:()V
4: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 4
monitorenter
5: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 21
6: aload 4
monitorexit
7: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.writerCleanup:()V
8: aload 0
iload 3
ifgt 9
iload 3
bipush -2
if_icmpeq 9
iconst_0
goto 10
StackMap locals: sun.nio.ch.SocketChannelImpl int java.lang.Object int java.lang.Object
StackMap stack: sun.nio.ch.SocketChannelImpl
9: iconst_1
StackMap locals: sun.nio.ch.SocketChannelImpl int java.lang.Object int java.lang.Object
StackMap stack: sun.nio.ch.SocketChannelImpl int
10: invokevirtual sun.nio.ch.SocketChannelImpl.end:(Z)V
11: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 7
monitorenter
12: iload 3
ifgt 14
aload 0
getfield sun.nio.ch.SocketChannelImpl.isOutputOpen:Z
ifne 14
13: new java.nio.channels.AsynchronousCloseException
dup
invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
athrow
14: StackMap locals: sun.nio.ch.SocketChannelImpl int java.lang.Object int java.lang.Object top top java.lang.Object
StackMap stack:
aload 7
monitorexit
15: goto 18
StackMap locals:
StackMap stack: java.lang.Throwable
16: aload 7
monitorexit
17: athrow
18: StackMap locals: sun.nio.ch.SocketChannelImpl int java.lang.Object int java.lang.Object
StackMap stack:
getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 19
iload 3
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 19
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
StackMap locals:
StackMap stack:
19: aload 2
monitorexit
20: iconst_0
ireturn
21: StackMap locals:
StackMap stack:
aload 0
invokestatic sun.nio.ch.NativeThread.current:()J
putfield sun.nio.ch.SocketChannelImpl.writerThread:J
22: aload 4
monitorexit
23: goto 26
StackMap locals:
StackMap stack: java.lang.Throwable
24: aload 4
monitorexit
25: athrow
26: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
iload 1
invokestatic sun.nio.ch.SocketChannelImpl.sendOutOfBandData:(Ljava/io/FileDescriptor;B)I
istore 3
27: iload 3
bipush -3
if_icmpne 29
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifeq 29
28: goto 26
29: StackMap locals:
StackMap stack:
iload 3
invokestatic sun.nio.ch.IOStatus.normalize:(I)I
istore 6
30: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.writerCleanup:()V
31: aload 0
iload 3
ifgt 32
iload 3
bipush -2
if_icmpeq 32
iconst_0
goto 33
StackMap locals: sun.nio.ch.SocketChannelImpl int java.lang.Object int top top int
StackMap stack: sun.nio.ch.SocketChannelImpl
32: iconst_1
StackMap locals: sun.nio.ch.SocketChannelImpl int java.lang.Object int top top int
StackMap stack: sun.nio.ch.SocketChannelImpl int
33: invokevirtual sun.nio.ch.SocketChannelImpl.end:(Z)V
34: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 7
monitorenter
35: iload 3
ifgt 37
aload 0
getfield sun.nio.ch.SocketChannelImpl.isOutputOpen:Z
ifne 37
36: new java.nio.channels.AsynchronousCloseException
dup
invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
athrow
37: StackMap locals: java.lang.Object
StackMap stack:
aload 7
monitorexit
38: goto 41
StackMap locals:
StackMap stack: java.lang.Throwable
39: aload 7
monitorexit
40: athrow
41: StackMap locals:
StackMap stack:
getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 42
iload 3
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 42
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
42: StackMap locals:
StackMap stack:
aload 2
monitorexit
43: iload 6
ireturn
44: StackMap locals: sun.nio.ch.SocketChannelImpl int java.lang.Object int
StackMap stack: java.lang.Throwable
astore 5
45: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.writerCleanup:()V
46: aload 0
iload 3
ifgt 47
iload 3
bipush -2
if_icmpeq 47
iconst_0
goto 48
StackMap locals: sun.nio.ch.SocketChannelImpl int java.lang.Object int top java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl
47: iconst_1
StackMap locals: sun.nio.ch.SocketChannelImpl int java.lang.Object int top java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl int
48: invokevirtual sun.nio.ch.SocketChannelImpl.end:(Z)V
49: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 7
monitorenter
50: iload 3
ifgt 52
aload 0
getfield sun.nio.ch.SocketChannelImpl.isOutputOpen:Z
ifne 52
51: new java.nio.channels.AsynchronousCloseException
dup
invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
athrow
52: StackMap locals: sun.nio.ch.SocketChannelImpl int java.lang.Object int top java.lang.Throwable top java.lang.Object
StackMap stack:
aload 7
monitorexit
53: goto 56
StackMap locals:
StackMap stack: java.lang.Throwable
54: aload 7
monitorexit
55: athrow
56: StackMap locals: sun.nio.ch.SocketChannelImpl int java.lang.Object int top java.lang.Throwable
StackMap stack:
getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 57
iload 3
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 57
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
57: StackMap locals:
StackMap stack:
aload 5
athrow
end local 3 58: StackMap locals: sun.nio.ch.SocketChannelImpl int java.lang.Object
StackMap stack: java.lang.Throwable
aload 2
monitorexit
59: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 60 0 this Lsun/nio/ch/SocketChannelImpl;
0 60 1 b B
3 58 3 n I
Exception table:
from to target type
12 15 16 any
16 17 16 any
5 7 24 any
21 23 24 any
24 25 24 any
35 38 39 any
39 40 39 any
3 7 44 any
21 30 44 any
50 53 54 any
54 55 54 any
1 20 58 any
21 43 58 any
44 59 58 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
b
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 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.localAddress: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 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 java.nio.channels.SocketChannel bind(java.net.SocketAddress);
descriptor: (Ljava/net/SocketAddress;)Ljava/nio/channels/SocketChannel;
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.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_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 0
getfield sun.nio.ch.SocketChannelImpl.localAddress:Ljava/net/InetSocketAddress;
ifnull 9
8: new java.nio.channels.AlreadyBoundException
dup
invokespecial java.nio.channels.AlreadyBoundException.<init>:()V
athrow
9: StackMap locals:
StackMap stack:
aload 1
ifnonnull 11
10: new java.net.InetSocketAddress
dup
iconst_0
invokespecial java.net.InetSocketAddress.<init>:(I)V
goto 12
StackMap locals:
StackMap stack:
11: aload 1
invokestatic sun.nio.ch.Net.checkAddress:(Ljava/net/SocketAddress;)Ljava/net/InetSocketAddress;
12: StackMap locals:
StackMap stack: java.net.InetSocketAddress
astore 5
start local 5 13: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 6
start local 6 14: aload 6
ifnull 16
15: aload 6
aload 5
invokevirtual java.net.InetSocketAddress.getPort:()I
invokevirtual java.lang.SecurityManager.checkListen:(I)V
16: 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.net.NetHooks.beforeTcpBind:(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
17: 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
18: 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 19: aload 4
monitorexit
20: goto 23
StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress java.lang.Object java.lang.Object java.lang.Object
StackMap stack: java.lang.Throwable
21: aload 4
monitorexit
22: athrow
23: StackMap locals:
StackMap stack:
aload 3
monitorexit
24: goto 27
StackMap locals:
StackMap stack: java.lang.Throwable
25: aload 3
monitorexit
26: athrow
27: StackMap locals:
StackMap stack:
aload 2
monitorexit
28: goto 31
StackMap locals:
StackMap stack: java.lang.Throwable
29: aload 2
monitorexit
30: athrow
31: StackMap locals:
StackMap stack:
aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lsun/nio/ch/SocketChannelImpl;
0 32 1 local Ljava/net/SocketAddress;
13 19 5 isa Ljava/net/InetSocketAddress;
14 19 6 sm Ljava/lang/SecurityManager;
Exception table:
from to target type
3 20 21 any
21 22 21 any
2 24 25 any
25 26 25 any
1 28 29 any
29 30 29 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=3, locals=10, 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
invokevirtual sun.nio.ch.SocketChannelImpl.ensureOpenAndUnconnected:()V
3: aload 1
invokestatic sun.nio.ch.Net.checkAddress:(Ljava/net/SocketAddress;)Ljava/net/InetSocketAddress;
astore 4
start local 4 4: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 5
start local 5 5: aload 5
ifnull 9
6: aload 5
aload 4
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
7: aload 4
invokevirtual java.net.InetSocketAddress.getPort:()I
8: invokevirtual java.lang.SecurityManager.checkConnect:(Ljava/lang/String;I)V
9: StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress 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 6
monitorenter
10: iconst_0
istore 7
start local 7 11: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.begin:()V
12: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 8
monitorenter
13: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 24
14: aload 8
monitorexit
15: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.readerCleanup:()V
16: aload 0
iload 7
ifgt 17
iload 7
bipush -2
if_icmpeq 17
iconst_0
goto 18
StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress 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
17: iconst_1
StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress 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
18: invokevirtual sun.nio.ch.SocketChannelImpl.end:(Z)V
19: getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 20
iload 7
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 20
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
StackMap locals:
StackMap stack:
20: aload 6
monitorexit
21: aload 3
monitorexit
22: aload 2
monitorexit
23: iconst_0
ireturn
24: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.localAddress:Ljava/net/InetSocketAddress;
ifnonnull 29
25: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
26: aload 4
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
27: aload 4
invokevirtual java.net.InetSocketAddress.getPort:()I
28: invokestatic sun.net.NetHooks.beforeTcpConnect:(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
29: StackMap locals:
StackMap stack:
aload 0
invokestatic sun.nio.ch.NativeThread.current:()J
putfield sun.nio.ch.SocketChannelImpl.readerThread:J
30: aload 8
monitorexit
31: goto 34
StackMap locals:
StackMap stack: java.lang.Throwable
32: aload 8
monitorexit
33: athrow
34: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
astore 8
start local 8 35: aload 8
invokevirtual java.net.InetAddress.isAnyLocalAddress:()Z
ifeq 37
36: invokestatic java.net.InetAddress.getLocalHost:()Ljava/net/InetAddress;
astore 8
37: StackMap locals: java.net.InetAddress
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
38: aload 8
39: aload 4
invokevirtual java.net.InetSocketAddress.getPort:()I
40: invokestatic sun.nio.ch.Net.connect:(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)I
istore 7
41: iload 7
bipush -3
if_icmpne 51
42: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifeq 51
end local 8 43: goto 34
44: StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress java.lang.Object java.lang.Object java.net.InetSocketAddress java.lang.SecurityManager java.lang.Object int
StackMap stack: java.lang.Throwable
astore 9
45: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.readerCleanup:()V
46: aload 0
iload 7
ifgt 47
iload 7
bipush -2
if_icmpeq 47
iconst_0
goto 48
StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress 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
47: iconst_1
StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress 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
48: invokevirtual sun.nio.ch.SocketChannelImpl.end:(Z)V
49: getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 50
iload 7
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 9
athrow
51: StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress 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
52: aload 0
iload 7
ifgt 53
iload 7
bipush -2
if_icmpeq 53
iconst_0
goto 54
StackMap locals:
StackMap stack: sun.nio.ch.SocketChannelImpl
53: iconst_1
StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress java.lang.Object java.lang.Object java.net.InetSocketAddress java.lang.SecurityManager java.lang.Object int
StackMap stack: sun.nio.ch.SocketChannelImpl int
54: invokevirtual sun.nio.ch.SocketChannelImpl.end:(Z)V
55: getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 59
iload 7
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 59
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
56: StackMap locals:
StackMap stack: java.io.IOException
astore 8
start local 8 57: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.close:()V
58: aload 8
athrow
end local 8 59: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 8
monitorenter
60: aload 0
aload 4
putfield sun.nio.ch.SocketChannelImpl.remoteAddress:Ljava/net/InetSocketAddress;
61: iload 7
ifle 70
62: aload 0
iconst_2
putfield sun.nio.ch.SocketChannelImpl.state:I
63: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifeq 65
64: 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;
65: StackMap locals: java.lang.Object
StackMap stack:
aload 8
monitorexit
66: aload 6
monitorexit
67: aload 3
monitorexit
68: aload 2
monitorexit
69: iconst_1
ireturn
70: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isBlocking:()Z
ifne 72
71: aload 0
iconst_1
putfield sun.nio.ch.SocketChannelImpl.state:I
goto 73
72: StackMap locals:
StackMap stack:
getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 73
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
73: StackMap locals:
StackMap stack:
aload 8
monitorexit
74: goto 77
StackMap locals:
StackMap stack: java.lang.Throwable
75: aload 8
monitorexit
76: athrow
end local 7 77: StackMap locals:
StackMap stack:
aload 6
monitorexit
78: goto 81
StackMap locals:
StackMap stack: java.lang.Throwable
79: aload 6
monitorexit
80: athrow
81: StackMap locals:
StackMap stack:
aload 3
monitorexit
82: aload 2
monitorexit
83: iconst_0
ireturn
end local 5 end local 4 84: StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress java.lang.Object java.lang.Object
StackMap stack: java.lang.Throwable
aload 3
monitorexit
85: athrow
86: StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress java.lang.Object
StackMap stack: java.lang.Throwable
aload 2
monitorexit
87: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 88 0 this Lsun/nio/ch/SocketChannelImpl;
0 88 1 sa Ljava/net/SocketAddress;
4 84 4 isa Ljava/net/InetSocketAddress;
5 84 5 sm Ljava/lang/SecurityManager;
11 77 7 n I
35 43 8 ia Ljava/net/InetAddress;
57 59 8 x Ljava/io/IOException;
Exception table:
from to target type
13 15 32 any
24 31 32 any
32 33 32 any
11 15 44 any
24 44 44 any
11 20 56 Class java.io.IOException
24 56 56 Class java.io.IOException
60 66 75 any
70 74 75 any
75 76 75 any
10 21 79 any
24 67 79 any
70 78 79 any
79 80 79 any
2 22 84 any
24 68 84 any
70 82 84 any
84 85 84 any
1 23 86 any
24 69 86 any
70 83 86 any
84 87 86 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 106
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 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifeq 99
98: 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;
99: StackMap locals: java.lang.Object
StackMap stack:
aload 4
monitorexit
100: goto 103
StackMap locals:
StackMap stack: java.lang.Throwable
101: aload 4
monitorexit
102: athrow
103: StackMap locals:
StackMap stack:
aload 2
monitorexit
104: aload 1
monitorexit
105: iconst_1
ireturn
106: StackMap locals:
StackMap stack:
aload 2
monitorexit
107: aload 1
monitorexit
108: iconst_0
ireturn
end local 3 109: StackMap locals: sun.nio.ch.SocketChannelImpl java.lang.Object java.lang.Object
StackMap stack: java.lang.Throwable
aload 2
monitorexit
110: athrow
111: StackMap locals: sun.nio.ch.SocketChannelImpl java.lang.Object
StackMap stack: java.lang.Throwable
aload 1
monitorexit
112: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 113 0 this Lsun/nio/ch/SocketChannelImpl;
17 109 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 100 101 any
101 102 101 any
2 8 109 any
10 37 109 any
39 104 109 any
106 107 109 any
109 110 109 any
1 9 111 any
10 38 111 any
39 105 111 any
106 108 111 any
109 112 111 any
Exceptions:
throws java.io.IOException
public java.nio.channels.SocketChannel shutdownInput();
descriptor: ()Ljava/nio/channels/SocketChannel;
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
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
ifeq 10
6: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
iconst_0
invokestatic sun.nio.ch.Net.shutdown:(Ljava/io/FileDescriptor;I)V
7: aload 0
getfield sun.nio.ch.SocketChannelImpl.readerThread:J
lconst_0
lcmp
ifeq 9
8: aload 0
getfield sun.nio.ch.SocketChannelImpl.readerThread:J
invokestatic sun.nio.ch.NativeThread.signal:(J)V
9: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.nio.ch.SocketChannelImpl.isInputOpen:Z
10: StackMap locals:
StackMap stack:
aload 0
aload 1
monitorexit
11: areturn
12: StackMap locals:
StackMap stack: java.lang.Throwable
aload 1
monitorexit
13: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 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 java.nio.channels.SocketChannel shutdownOutput();
descriptor: ()Ljava/nio/channels/SocketChannel;
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
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.isOutputOpen:Z
ifeq 10
6: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
iconst_1
invokestatic sun.nio.ch.Net.shutdown:(Ljava/io/FileDescriptor;I)V
7: aload 0
getfield sun.nio.ch.SocketChannelImpl.writerThread:J
lconst_0
lcmp
ifeq 9
8: aload 0
getfield sun.nio.ch.SocketChannelImpl.writerThread:J
invokestatic sun.nio.ch.NativeThread.signal:(J)V
9: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.nio.ch.SocketChannelImpl.isOutputOpen:Z
10: StackMap locals:
StackMap stack:
aload 0
aload 1
monitorexit
11: areturn
12: StackMap locals:
StackMap stack: java.lang.Throwable
aload 1
monitorexit
13: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 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 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: aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_4
if_icmpeq 5
4: 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
5: StackMap locals: java.lang.Object
StackMap stack:
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 0
getfield sun.nio.ch.SocketChannelImpl.writerThread:J
lconst_0
lcmp
ifeq 9
8: aload 0
getfield sun.nio.ch.SocketChannelImpl.writerThread:J
invokestatic sun.nio.ch.NativeThread.signal:(J)V
9: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isRegistered:()Z
ifne 11
10: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.kill:()V
11: StackMap locals:
StackMap stack:
aload 1
monitorexit
12: goto 15
StackMap locals:
StackMap stack: java.lang.Throwable
13: aload 1
monitorexit
14: athrow
15: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lsun/nio/ch/SocketChannelImpl;
Exception table:
from to target type
1 12 13 any
13 14 13 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
getstatic sun.nio.ch.Net.POLLNVAL:S
iand
ifeq 5
4: iconst_0
ireturn
5: StackMap locals: int int int
StackMap stack:
iload 1
getstatic sun.nio.ch.Net.POLLERR:S
getstatic sun.nio.ch.Net.POLLHUP:S
ior
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
getstatic sun.nio.ch.Net.POLLIN:S
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
getstatic sun.nio.ch.Net.POLLCONN:S
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
getstatic sun.nio.ch.Net.POLLOUT:S
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
int poll(int, long);
descriptor: (IJ)I
flags: (0x0000)
Code:
stack=4, locals=8, args_size=3
start local 0 start local 1 start local 2 0: getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 2
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.blockingLock:()Ljava/lang/Object;
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
ifeq 1
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isBlocking:()Z
ifeq 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/lang/Object;
dup
astore 4
monitorenter
3: iconst_0
istore 5
start local 5 4: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.begin:()V
5: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 6
monitorenter
6: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 13
7: aload 6
monitorexit
8: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.readerCleanup:()V
9: aload 0
iload 5
ifle 10
iconst_1
goto 11
StackMap locals: sun.nio.ch.SocketChannelImpl int long java.lang.Object int java.lang.Object
StackMap stack: sun.nio.ch.SocketChannelImpl
10: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl int long java.lang.Object int java.lang.Object
StackMap stack: sun.nio.ch.SocketChannelImpl int
11: invokevirtual sun.nio.ch.SocketChannelImpl.end:(Z)V
aload 4
monitorexit
12: iconst_0
ireturn
13: StackMap locals:
StackMap stack:
aload 0
invokestatic sun.nio.ch.NativeThread.current:()J
putfield sun.nio.ch.SocketChannelImpl.readerThread:J
14: aload 6
monitorexit
15: goto 18
StackMap locals:
StackMap stack: java.lang.Throwable
16: aload 6
monitorexit
17: athrow
18: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
iload 1
lload 2
invokestatic sun.nio.ch.Net.poll:(Ljava/io/FileDescriptor;IJ)I
istore 5
19: goto 26
StackMap locals:
StackMap stack: java.lang.Throwable
20: astore 7
21: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.readerCleanup:()V
22: aload 0
iload 5
ifle 23
iconst_1
goto 24
StackMap locals: sun.nio.ch.SocketChannelImpl int long java.lang.Object int top java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl
23: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl int long java.lang.Object int top java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl int
24: invokevirtual sun.nio.ch.SocketChannelImpl.end:(Z)V
25: aload 7
athrow
26: StackMap locals: sun.nio.ch.SocketChannelImpl int long java.lang.Object int
StackMap stack:
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.readerCleanup:()V
27: aload 0
iload 5
ifle 28
iconst_1
goto 29
StackMap locals:
StackMap stack: sun.nio.ch.SocketChannelImpl
28: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl int long java.lang.Object int
StackMap stack: sun.nio.ch.SocketChannelImpl int
29: invokevirtual sun.nio.ch.SocketChannelImpl.end:(Z)V
30: iload 5
aload 4
monitorexit
31: ireturn
end local 5 32: StackMap locals: sun.nio.ch.SocketChannelImpl int long java.lang.Object
StackMap stack: java.lang.Throwable
aload 4
monitorexit
33: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lsun/nio/ch/SocketChannelImpl;
0 34 1 events I
0 34 2 timeout J
4 32 5 n I
Exception table:
from to target type
6 8 16 any
13 15 16 any
16 17 16 any
4 8 20 any
13 20 20 any
3 12 32 any
13 31 32 any
32 33 32 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
events
timeout
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
getstatic sun.nio.ch.Net.POLLIN:S
ior
istore 3
3: StackMap locals: int
StackMap stack:
iload 1
iconst_4
iand
ifeq 5
4: iload 3
getstatic sun.nio.ch.Net.POLLOUT:S
ior
istore 3
5: StackMap locals:
StackMap stack:
iload 1
bipush 8
iand
ifeq 7
6: iload 3
getstatic sun.nio.ch.Net.POLLCONN:S
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 int sendOutOfBandData(java.io.FileDescriptor, byte);
descriptor: (Ljava/io/FileDescriptor;B)I
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
data
public java.nio.channels.NetworkChannel bind(java.net.SocketAddress);
descriptor: (Ljava/net/SocketAddress;)Ljava/nio/channels/NetworkChannel;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
invokevirtual sun.nio.ch.SocketChannelImpl.bind:(Ljava/net/SocketAddress;)Ljava/nio/channels/SocketChannel;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.io.IOException
public java.nio.channels.NetworkChannel setOption(java.net.SocketOption, java.lang.Object);
descriptor: (Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/nio/channels/NetworkChannel;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
checkcast java.net.SocketOption
aload 2
checkcast java.lang.Object
invokevirtual sun.nio.ch.SocketChannelImpl.setOption:(Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/nio/channels/SocketChannel;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.io.IOException
}
SourceFile: "SocketChannelImpl.java"
NestMembers:
sun.nio.ch.SocketChannelImpl$DefaultOptionsHolder
InnerClasses:
private DefaultOptionsHolder = sun.nio.ch.SocketChannelImpl$DefaultOptionsHolder of sun.nio.ch.SocketChannelImpl