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 final java.util.concurrent.locks.ReentrantLock readLock;
descriptor: Ljava/util/concurrent/locks/ReentrantLock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.locks.ReentrantLock writeLock;
descriptor: Ljava/util/concurrent/locks/ReentrantLock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Object stateLock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile boolean isInputClosed;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile boolean isOutputClosed;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private boolean isReuseAddress;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private static final int ST_UNCONNECTED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int ST_CONNECTIONPENDING;
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_CLOSING;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final int ST_KILLPENDING;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int ST_KILLED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5
private volatile int state;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private long readerThread;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private long writerThread;
descriptor: J
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 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
new java.util.concurrent.locks.ReentrantLock
dup
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
putfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
2: aload 0
new java.util.concurrent.locks.ReentrantLock
dup
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
putfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
3: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
4: aload 0
iconst_1
invokestatic sun.nio.ch.Net.socket:(Z)Ljava/io/FileDescriptor;
putfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
5: 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
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/nio/ch/SocketChannelImpl;
0 7 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=5, 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
new java.util.concurrent.locks.ReentrantLock
dup
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
putfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
2: aload 0
new java.util.concurrent.locks.ReentrantLock
dup
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
putfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
3: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
4: aload 0
aload 2
putfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
5: aload 0
aload 2
invokestatic sun.nio.ch.IOUtil.fdVal:(Ljava/io/FileDescriptor;)I
putfield sun.nio.ch.SocketChannelImpl.fdVal:I
6: iload 3
ifeq 13
7: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 4
monitorenter
8: 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;
9: aload 4
monitorexit
10: goto 13
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.channels.spi.SelectorProvider java.io.FileDescriptor int java.lang.Object
StackMap stack: java.lang.Throwable
11: aload 4
monitorexit
12: athrow
13: StackMap locals:
StackMap stack:
return
end local 3 end local 2 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;
0 14 2 fd Ljava/io/FileDescriptor;
0 14 3 bound Z
Exception table:
from to target type
8 10 11 any
11 12 11 any
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=5, 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
new java.util.concurrent.locks.ReentrantLock
dup
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
putfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
2: aload 0
new java.util.concurrent.locks.ReentrantLock
dup
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
putfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
3: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
4: aload 0
aload 2
putfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
5: aload 0
aload 2
invokestatic sun.nio.ch.IOUtil.fdVal:(Ljava/io/FileDescriptor;)I
putfield sun.nio.ch.SocketChannelImpl.fdVal:I
6: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 4
monitorenter
7: 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;
8: aload 0
aload 3
putfield sun.nio.ch.SocketChannelImpl.remoteAddress:Ljava/net/InetSocketAddress;
9: aload 0
iconst_2
putfield sun.nio.ch.SocketChannelImpl.state:I
10: aload 4
monitorexit
11: goto 14
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.channels.spi.SelectorProvider java.io.FileDescriptor java.net.InetSocketAddress java.lang.Object
StackMap stack: java.lang.Throwable
12: aload 4
monitorexit
13: athrow
14: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lsun/nio/ch/SocketChannelImpl;
0 15 1 sp Ljava/nio/channels/spi/SelectorProvider;
0 15 2 fd Ljava/io/FileDescriptor;
0 15 3 isa Ljava/net/InetSocketAddress;
Exception table:
from to target type
7 11 12 any
12 13 12 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
sp
fd
isa
private void ensureOpen();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 2
1: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/nio/ch/SocketChannelImpl;
Exceptions:
throws java.nio.channels.ClosedChannelException
private void ensureOpenAndConnected();
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.state:I
istore 1
start local 1 1: iload 1
iconst_2
if_icmpge 3
2: new java.nio.channels.NotYetConnectedException
dup
invokespecial java.nio.channels.NotYetConnectedException.<init>:()V
athrow
3: StackMap locals: int
StackMap stack:
iload 1
iconst_2
if_icmple 5
4: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/nio/ch/SocketChannelImpl;
1 6 1 state I
Exceptions:
throws java.nio.channels.ClosedChannelException
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.ensureOpen:()V
2: 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
3: areturn
4: StackMap locals: sun.nio.ch.SocketChannelImpl java.lang.Object
StackMap stack: java.lang.Throwable
aload 1
monitorexit
5: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/nio/ch/SocketChannelImpl;
Exception table:
from to target type
1 3 4 any
4 5 4 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.ensureOpen:()V
2: aload 0
getfield sun.nio.ch.SocketChannelImpl.remoteAddress:Ljava/net/InetSocketAddress;
aload 1
monitorexit
3: areturn
4: StackMap locals: sun.nio.ch.SocketChannelImpl java.lang.Object
StackMap stack: java.lang.Throwable
aload 1
monitorexit
5: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/nio/ch/SocketChannelImpl;
Exception table:
from to target type
1 3 4 any
4 5 4 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
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.supportedOptions:()Ljava/util/Set;
aload 1
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 3
2: 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
3: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 3
monitorenter
4: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.ensureOpen:()V
5: aload 1
getstatic java.net.StandardSocketOptions.IP_TOS:Ljava/net/SocketOption;
if_acmpne 13
6: invokestatic sun.nio.ch.Net.isIPv6Available:()Z
ifeq 8
7: getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
goto 9
StackMap locals: java.lang.Object
StackMap stack:
8: getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
9: StackMap locals:
StackMap stack: java.net.StandardProtocolFamily
astore 4
start local 4 10: 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
11: aload 0
aload 3
monitorexit
12: areturn
end local 4 13: StackMap locals:
StackMap stack:
aload 1
getstatic java.net.StandardSocketOptions.SO_REUSEADDR:Ljava/net/SocketOption;
if_acmpne 17
invokestatic sun.nio.ch.Net.useExclusiveBind:()Z
ifeq 17
14: aload 0
aload 2
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
putfield sun.nio.ch.SocketChannelImpl.isReuseAddress:Z
15: aload 0
aload 3
monitorexit
16: areturn
17: 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
18: aload 0
aload 3
monitorexit
19: areturn
20: StackMap locals:
StackMap stack: java.lang.Throwable
aload 3
monitorexit
21: athrow
end local 2 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;>;
0 22 2 value TT;
10 13 4 family Ljava/net/ProtocolFamily;
Exception table:
from to target type
4 12 20 any
13 16 20 any
17 19 20 any
20 21 20 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
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.supportedOptions:()Ljava/util/Set;
aload 1
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 3
2: 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
3: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 2
monitorenter
4: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.ensureOpen:()V
5: aload 1
getstatic java.net.StandardSocketOptions.SO_REUSEADDR:Ljava/net/SocketOption;
if_acmpne 8
invokestatic sun.nio.ch.Net.useExclusiveBind:()Z
ifeq 8
6: aload 0
getfield sun.nio.ch.SocketChannelImpl.isReuseAddress:Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 2
monitorexit
7: areturn
8: StackMap locals: java.lang.Object
StackMap stack:
aload 1
getstatic java.net.StandardSocketOptions.IP_TOS:Ljava/net/SocketOption;
if_acmpne 15
9: invokestatic sun.nio.ch.Net.isIPv6Available:()Z
ifeq 11
10: getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
goto 12
StackMap locals:
StackMap stack:
11: getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
12: StackMap locals:
StackMap stack: java.net.StandardProtocolFamily
astore 3
start local 3 13: 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
14: areturn
end local 3 15: 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
16: areturn
17: StackMap locals:
StackMap stack: java.lang.Throwable
aload 2
monitorexit
18: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lsun/nio/ch/SocketChannelImpl;
0 19 1 name Ljava/net/SocketOption<TT;>;
13 15 3 family Ljava/net/ProtocolFamily;
Exception table:
from to target type
4 7 17 any
8 14 17 any
15 16 17 any
17 18 17 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 void beginRead(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: iload 1
ifeq 9
1: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.begin:()V
2: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 2
monitorenter
3: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.ensureOpenAndConnected:()V
4: aload 0
invokestatic sun.nio.ch.NativeThread.current:()J
putfield sun.nio.ch.SocketChannelImpl.readerThread:J
5: aload 2
monitorexit
6: goto 10
StackMap locals: sun.nio.ch.SocketChannelImpl int java.lang.Object
StackMap stack: java.lang.Throwable
7: aload 2
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.ensureOpenAndConnected:()V
10: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/nio/ch/SocketChannelImpl;
0 11 1 blocking Z
Exception table:
from to target type
3 6 7 any
7 8 7 any
Exceptions:
throws java.nio.channels.ClosedChannelException
MethodParameters:
Name Flags
blocking
private void endRead(boolean, boolean);
descriptor: (ZZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iload 1
ifeq 10
1: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 3
monitorenter
2: aload 0
lconst_0
putfield sun.nio.ch.SocketChannelImpl.readerThread:J
3: aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_3
if_icmpne 5
4: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
invokevirtual java.lang.Object.notifyAll:()V
5: StackMap locals: java.lang.Object
StackMap stack:
aload 3
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 3
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
aload 0
iload 2
invokevirtual sun.nio.ch.SocketChannelImpl.end:(Z)V
10: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/nio/ch/SocketChannelImpl;
0 11 1 blocking Z
0 11 2 completed Z
Exception table:
from to target type
2 6 7 any
7 8 7 any
Exceptions:
throws java.nio.channels.AsynchronousCloseException
MethodParameters:
Name Flags
blocking
completed
public int read(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
2: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isBlocking:()Z
istore 2
start local 2 3: iconst_0
istore 3
start local 3 4: aload 0
iload 2
invokevirtual sun.nio.ch.SocketChannelImpl.beginRead:(Z)V
5: aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputClosed:Z
ifeq 14
6: aload 0
iload 2
iload 3
ifle 7
iconst_1
goto 8
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer int int
StackMap stack: sun.nio.ch.SocketChannelImpl int
7: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer int int
StackMap stack: sun.nio.ch.SocketChannelImpl int int
8: invokevirtual sun.nio.ch.SocketChannelImpl.endRead:(ZZ)V
9: iload 3
ifgt 12
aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputClosed:Z
ifeq 12
10: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
11: iconst_m1
ireturn
12: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
13: iconst_m1
ireturn
14: StackMap locals:
StackMap stack:
iload 2
ifeq 18
15: 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
16: iload 3
bipush -3
if_icmpne 28
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 15
17: goto 28
18: 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
19: goto 28
StackMap locals:
StackMap stack: java.lang.Throwable
20: astore 4
21: aload 0
iload 2
iload 3
ifle 22
iconst_1
goto 23
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer int int java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl int
22: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer int int java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl int int
23: invokevirtual sun.nio.ch.SocketChannelImpl.endRead:(ZZ)V
24: iload 3
ifgt 27
aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputClosed:Z
ifeq 27
25: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
26: iconst_m1
ireturn
27: StackMap locals:
StackMap stack:
aload 4
athrow
28: StackMap locals:
StackMap stack:
aload 0
iload 2
iload 3
ifle 29
iconst_1
goto 30
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer int int
StackMap stack: sun.nio.ch.SocketChannelImpl int
29: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer int int
StackMap stack: sun.nio.ch.SocketChannelImpl int int
30: invokevirtual sun.nio.ch.SocketChannelImpl.endRead:(ZZ)V
31: iload 3
ifgt 34
aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputClosed:Z
ifeq 34
32: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
33: iconst_m1
ireturn
34: StackMap locals:
StackMap stack:
iload 3
invokestatic sun.nio.ch.IOStatus.normalize:(I)I
istore 6
35: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
36: iload 6
ireturn
end local 3 end local 2 37: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer
StackMap stack: java.lang.Throwable
astore 5
38: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
39: aload 5
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 40 0 this Lsun/nio/ch/SocketChannelImpl;
0 40 1 buf Ljava/nio/ByteBuffer;
3 37 2 blocking Z
4 37 3 n I
Exception table:
from to target type
4 6 20 any
14 20 20 any
2 10 37 any
14 25 37 any
27 32 37 any
34 35 37 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=6, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
iload 3
aload 1
arraylength
invokestatic java.util.Objects.checkFromIndexSize:(III)I
pop
1: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
2: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isBlocking:()Z
istore 4
start local 4 3: lconst_0
lstore 5
start local 5 4: aload 0
iload 4
invokevirtual sun.nio.ch.SocketChannelImpl.beginRead:(Z)V
5: aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputClosed:Z
ifeq 14
6: aload 0
iload 4
lload 5
lconst_0
lcmp
ifle 7
iconst_1
goto 8
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int int long
StackMap stack: sun.nio.ch.SocketChannelImpl int
7: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int int long
StackMap stack: sun.nio.ch.SocketChannelImpl int int
8: invokevirtual sun.nio.ch.SocketChannelImpl.endRead:(ZZ)V
9: lload 5
lconst_0
lcmp
ifgt 12
aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputClosed:Z
ifeq 12
10: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
11: ldc -1
lreturn
12: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
13: ldc -1
lreturn
14: StackMap locals:
StackMap stack:
iload 4
ifeq 18
15: 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
16: lload 5
ldc -3
lcmp
ifne 28
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 15
17: goto 28
18: 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
19: goto 28
StackMap locals:
StackMap stack: java.lang.Throwable
20: astore 7
21: aload 0
iload 4
lload 5
lconst_0
lcmp
ifle 22
iconst_1
goto 23
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int int long java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl int
22: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int int long java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl int int
23: invokevirtual sun.nio.ch.SocketChannelImpl.endRead:(ZZ)V
24: lload 5
lconst_0
lcmp
ifgt 27
aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputClosed:Z
ifeq 27
25: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
26: ldc -1
lreturn
27: StackMap locals:
StackMap stack:
aload 7
athrow
28: StackMap locals:
StackMap stack:
aload 0
iload 4
lload 5
lconst_0
lcmp
ifle 29
iconst_1
goto 30
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int int long
StackMap stack: sun.nio.ch.SocketChannelImpl int
29: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int int long
StackMap stack: sun.nio.ch.SocketChannelImpl int int
30: invokevirtual sun.nio.ch.SocketChannelImpl.endRead:(ZZ)V
31: lload 5
lconst_0
lcmp
ifgt 34
aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputClosed:Z
ifeq 34
32: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
33: ldc -1
lreturn
34: StackMap locals:
StackMap stack:
lload 5
invokestatic sun.nio.ch.IOStatus.normalize:(J)J
lstore 9
35: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
36: lload 9
lreturn
end local 5 end local 4 37: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int
StackMap stack: java.lang.Throwable
astore 8
38: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
39: aload 8
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 40 0 this Lsun/nio/ch/SocketChannelImpl;
0 40 1 dsts [Ljava/nio/ByteBuffer;
0 40 2 offset I
0 40 3 length I
3 37 4 blocking Z
4 37 5 n J
Exception table:
from to target type
4 6 20 any
14 20 20 any
2 10 37 any
14 25 37 any
27 32 37 any
34 35 37 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
dsts
offset
length
private void beginWrite(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: iload 1
ifeq 11
1: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.begin:()V
2: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 2
monitorenter
3: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.ensureOpenAndConnected:()V
4: aload 0
getfield sun.nio.ch.SocketChannelImpl.isOutputClosed:Z
ifeq 6
5: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
6: StackMap locals: java.lang.Object
StackMap stack:
aload 0
invokestatic sun.nio.ch.NativeThread.current:()J
putfield sun.nio.ch.SocketChannelImpl.writerThread:J
7: aload 2
monitorexit
8: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
9: aload 2
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.ensureOpenAndConnected:()V
12: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/nio/ch/SocketChannelImpl;
0 13 1 blocking Z
Exception table:
from to target type
3 8 9 any
9 10 9 any
Exceptions:
throws java.nio.channels.ClosedChannelException
MethodParameters:
Name Flags
blocking
private void endWrite(boolean, boolean);
descriptor: (ZZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iload 1
ifeq 10
1: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 3
monitorenter
2: aload 0
lconst_0
putfield sun.nio.ch.SocketChannelImpl.writerThread:J
3: aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_3
if_icmpne 5
4: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
invokevirtual java.lang.Object.notifyAll:()V
5: StackMap locals: java.lang.Object
StackMap stack:
aload 3
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 3
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
aload 0
iload 2
invokevirtual sun.nio.ch.SocketChannelImpl.end:(Z)V
10: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/nio/ch/SocketChannelImpl;
0 11 1 blocking Z
0 11 2 completed Z
Exception table:
from to target type
2 6 7 any
7 8 7 any
Exceptions:
throws java.nio.channels.AsynchronousCloseException
MethodParameters:
Name Flags
blocking
completed
public int write(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
2: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isBlocking:()Z
istore 2
start local 2 3: iconst_0
istore 3
start local 3 4: aload 0
iload 2
invokevirtual sun.nio.ch.SocketChannelImpl.beginWrite:(Z)V
5: iload 2
ifeq 9
6: StackMap locals: int int
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
7: iload 3
bipush -3
if_icmpne 18
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 6
8: goto 18
9: 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
10: goto 18
StackMap locals:
StackMap stack: java.lang.Throwable
11: astore 4
12: aload 0
iload 2
iload 3
ifle 13
iconst_1
goto 14
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer int int java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl int
13: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer int int java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl int int
14: invokevirtual sun.nio.ch.SocketChannelImpl.endWrite:(ZZ)V
15: iload 3
ifgt 17
aload 0
getfield sun.nio.ch.SocketChannelImpl.isOutputClosed:Z
ifeq 17
16: new java.nio.channels.AsynchronousCloseException
dup
invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
athrow
17: StackMap locals:
StackMap stack:
aload 4
athrow
18: StackMap locals:
StackMap stack:
aload 0
iload 2
iload 3
ifle 19
iconst_1
goto 20
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer int int
StackMap stack: sun.nio.ch.SocketChannelImpl int
19: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer int int
StackMap stack: sun.nio.ch.SocketChannelImpl int int
20: invokevirtual sun.nio.ch.SocketChannelImpl.endWrite:(ZZ)V
21: iload 3
ifgt 23
aload 0
getfield sun.nio.ch.SocketChannelImpl.isOutputClosed:Z
ifeq 23
22: new java.nio.channels.AsynchronousCloseException
dup
invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
athrow
23: StackMap locals:
StackMap stack:
iload 3
invokestatic sun.nio.ch.IOStatus.normalize:(I)I
istore 6
24: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
25: iload 6
ireturn
end local 3 end local 2 26: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer
StackMap stack: java.lang.Throwable
astore 5
27: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
28: aload 5
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lsun/nio/ch/SocketChannelImpl;
0 29 1 buf Ljava/nio/ByteBuffer;
3 26 2 blocking Z
4 26 3 n I
Exception table:
from to target type
4 11 11 any
2 24 26 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=6, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
iload 3
aload 1
arraylength
invokestatic java.util.Objects.checkFromIndexSize:(III)I
pop
1: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
2: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isBlocking:()Z
istore 4
start local 4 3: lconst_0
lstore 5
start local 5 4: aload 0
iload 4
invokevirtual sun.nio.ch.SocketChannelImpl.beginWrite:(Z)V
5: iload 4
ifeq 9
6: StackMap locals: int long
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
7: lload 5
ldc -3
lcmp
ifne 18
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 6
8: goto 18
9: 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
10: goto 18
StackMap locals:
StackMap stack: java.lang.Throwable
11: astore 7
12: aload 0
iload 4
lload 5
lconst_0
lcmp
ifle 13
iconst_1
goto 14
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int int long java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl int
13: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int int long java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl int int
14: invokevirtual sun.nio.ch.SocketChannelImpl.endWrite:(ZZ)V
15: lload 5
lconst_0
lcmp
ifgt 17
aload 0
getfield sun.nio.ch.SocketChannelImpl.isOutputClosed:Z
ifeq 17
16: new java.nio.channels.AsynchronousCloseException
dup
invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
athrow
17: StackMap locals:
StackMap stack:
aload 7
athrow
18: StackMap locals:
StackMap stack:
aload 0
iload 4
lload 5
lconst_0
lcmp
ifle 19
iconst_1
goto 20
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int int long
StackMap stack: sun.nio.ch.SocketChannelImpl int
19: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int int long
StackMap stack: sun.nio.ch.SocketChannelImpl int int
20: invokevirtual sun.nio.ch.SocketChannelImpl.endWrite:(ZZ)V
21: lload 5
lconst_0
lcmp
ifgt 23
aload 0
getfield sun.nio.ch.SocketChannelImpl.isOutputClosed:Z
ifeq 23
22: new java.nio.channels.AsynchronousCloseException
dup
invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
athrow
23: StackMap locals:
StackMap stack:
lload 5
invokestatic sun.nio.ch.IOStatus.normalize:(J)J
lstore 9
24: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
25: lload 9
lreturn
end local 5 end local 4 26: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int
StackMap stack: java.lang.Throwable
astore 8
27: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
28: aload 8
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lsun/nio/ch/SocketChannelImpl;
0 29 1 srcs [Ljava/nio/ByteBuffer;
0 29 2 offset I
0 29 3 length I
3 26 4 blocking Z
4 26 5 n J
Exception table:
from to target type
4 11 11 any
2 24 26 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
srcs
offset
length
int sendOutOfBandData(byte);
descriptor: (B)I
flags: (0x0000)
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isBlocking:()Z
istore 2
start local 2 2: iconst_0
istore 3
start local 3 3: aload 0
iload 2
invokevirtual sun.nio.ch.SocketChannelImpl.beginWrite:(Z)V
4: iload 2
ifeq 8
5: StackMap locals: int int
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
6: iload 3
bipush -3
if_icmpne 17
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 5
7: goto 17
8: 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
9: goto 17
StackMap locals:
StackMap stack: java.lang.Throwable
10: astore 4
11: aload 0
iload 2
iload 3
ifle 12
iconst_1
goto 13
StackMap locals: sun.nio.ch.SocketChannelImpl int int int java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl int
12: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl int int int java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl int int
13: invokevirtual sun.nio.ch.SocketChannelImpl.endWrite:(ZZ)V
14: iload 3
ifgt 16
aload 0
getfield sun.nio.ch.SocketChannelImpl.isOutputClosed:Z
ifeq 16
15: new java.nio.channels.AsynchronousCloseException
dup
invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
athrow
16: StackMap locals:
StackMap stack:
aload 4
athrow
17: StackMap locals:
StackMap stack:
aload 0
iload 2
iload 3
ifle 18
iconst_1
goto 19
StackMap locals: sun.nio.ch.SocketChannelImpl int int int
StackMap stack: sun.nio.ch.SocketChannelImpl int
18: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl int int int
StackMap stack: sun.nio.ch.SocketChannelImpl int int
19: invokevirtual sun.nio.ch.SocketChannelImpl.endWrite:(ZZ)V
20: iload 3
ifgt 22
aload 0
getfield sun.nio.ch.SocketChannelImpl.isOutputClosed:Z
ifeq 22
21: new java.nio.channels.AsynchronousCloseException
dup
invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
athrow
22: StackMap locals:
StackMap stack:
iload 3
invokestatic sun.nio.ch.IOStatus.normalize:(I)I
istore 6
23: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
24: iload 6
ireturn
end local 3 end local 2 25: StackMap locals: sun.nio.ch.SocketChannelImpl int
StackMap stack: java.lang.Throwable
astore 5
26: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
27: aload 5
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lsun/nio/ch/SocketChannelImpl;
0 28 1 b B
2 25 2 blocking Z
3 25 3 n I
Exception table:
from to target type
3 10 10 any
1 23 25 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=5, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
2: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 2
monitorenter
3: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.ensureOpen:()V
4: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
iload 1
invokestatic sun.nio.ch.IOUtil.configureBlocking:(Ljava/io/FileDescriptor;Z)V
5: aload 2
monitorexit
6: goto 12
StackMap locals: sun.nio.ch.SocketChannelImpl int java.lang.Object
StackMap stack: java.lang.Throwable
7: aload 2
monitorexit
8: athrow
9: StackMap locals: sun.nio.ch.SocketChannelImpl int
StackMap stack: java.lang.Throwable
astore 3
10: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
11: aload 3
athrow
12: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
13: goto 17
StackMap locals:
StackMap stack: java.lang.Throwable
14: astore 4
15: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
16: aload 4
athrow
17: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
18: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lsun/nio/ch/SocketChannelImpl;
0 19 1 block Z
Exception table:
from to target type
3 6 7 any
7 8 7 any
2 9 9 any
1 14 14 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
block
java.net.InetSocketAddress localAddress();
descriptor: ()Ljava/net/InetSocketAddress;
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
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
java.net.InetSocketAddress remoteAddress();
descriptor: ()Ljava/net/InetSocketAddress;
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
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/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
2: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 2
monitorenter
3: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.ensureOpen:()V
4: aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_1
if_icmpne 6
5: new java.nio.channels.ConnectionPendingException
dup
invokespecial java.nio.channels.ConnectionPendingException.<init>:()V
athrow
6: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.localAddress:Ljava/net/InetSocketAddress;
ifnull 8
7: new java.nio.channels.AlreadyBoundException
dup
invokespecial java.nio.channels.AlreadyBoundException.<init>:()V
athrow
8: StackMap locals:
StackMap stack:
aload 1
ifnonnull 10
9: new java.net.InetSocketAddress
dup
iconst_0
invokespecial java.net.InetSocketAddress.<init>:(I)V
goto 11
StackMap locals:
StackMap stack:
10: aload 1
invokestatic sun.nio.ch.Net.checkAddress:(Ljava/net/SocketAddress;)Ljava/net/InetSocketAddress;
11: StackMap locals:
StackMap stack: java.net.InetSocketAddress
astore 3
start local 3 12: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 4
start local 4 13: aload 4
ifnull 15
14: aload 4
aload 3
invokevirtual java.net.InetSocketAddress.getPort:()I
invokevirtual java.lang.SecurityManager.checkListen:(I)V
15: StackMap locals: java.net.InetSocketAddress java.lang.SecurityManager
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
aload 3
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
aload 3
invokevirtual java.net.InetSocketAddress.getPort:()I
invokestatic sun.net.NetHooks.beforeTcpBind:(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
16: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
aload 3
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
aload 3
invokevirtual java.net.InetSocketAddress.getPort:()I
invokestatic sun.nio.ch.Net.bind:(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
17: 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 4 end local 3 18: aload 2
monitorexit
19: goto 25
StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress java.lang.Object
StackMap stack: java.lang.Throwable
20: aload 2
monitorexit
21: athrow
22: StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress
StackMap stack: java.lang.Throwable
astore 5
23: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
24: aload 5
athrow
25: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
26: goto 30
StackMap locals:
StackMap stack: java.lang.Throwable
27: astore 6
28: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
29: aload 6
athrow
30: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
31: 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;
12 18 3 isa Ljava/net/InetSocketAddress;
13 18 4 sm Ljava/lang/SecurityManager;
Exception table:
from to target type
3 19 20 any
20 21 20 any
2 22 22 any
1 27 27 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
local
public boolean isConnected();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_2
if_icmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/nio/ch/SocketChannelImpl;
public boolean isConnectionPending();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_1
if_icmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/nio/ch/SocketChannelImpl;
private void beginConnect(boolean, java.net.InetSocketAddress);
descriptor: (ZLjava/net/InetSocketAddress;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iload 1
ifeq 2
1: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.begin:()V
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 3
monitorenter
3: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.ensureOpen:()V
4: aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
istore 4
start local 4 5: iload 4
iconst_2
if_icmpne 7
6: new java.nio.channels.AlreadyConnectedException
dup
invokespecial java.nio.channels.AlreadyConnectedException.<init>:()V
athrow
7: StackMap locals: java.lang.Object int
StackMap stack:
iload 4
iconst_1
if_icmpne 9
8: new java.nio.channels.ConnectionPendingException
dup
invokespecial java.nio.channels.ConnectionPendingException.<init>:()V
athrow
9: StackMap locals:
StackMap stack:
getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 10
iload 4
ifeq 10
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
10: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.nio.ch.SocketChannelImpl.state:I
11: aload 0
getfield sun.nio.ch.SocketChannelImpl.localAddress:Ljava/net/InetSocketAddress;
ifnonnull 13
12: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
aload 2
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
aload 2
invokevirtual java.net.InetSocketAddress.getPort:()I
invokestatic sun.net.NetHooks.beforeTcpConnect:(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
13: StackMap locals:
StackMap stack:
aload 0
aload 2
putfield sun.nio.ch.SocketChannelImpl.remoteAddress:Ljava/net/InetSocketAddress;
14: iload 1
ifeq 16
15: aload 0
invokestatic sun.nio.ch.NativeThread.current:()J
putfield sun.nio.ch.SocketChannelImpl.readerThread:J
end local 4 16: StackMap locals:
StackMap stack:
aload 3
monitorexit
17: goto 20
StackMap locals:
StackMap stack: java.lang.Throwable
18: aload 3
monitorexit
19: athrow
20: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lsun/nio/ch/SocketChannelImpl;
0 21 1 blocking Z
0 21 2 isa Ljava/net/InetSocketAddress;
5 16 4 state I
Exception table:
from to target type
3 17 18 any
18 19 18 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
blocking
isa
private void endConnect(boolean, boolean);
descriptor: (ZZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
iload 2
invokevirtual sun.nio.ch.SocketChannelImpl.endRead:(ZZ)V
1: iload 2
ifeq 10
2: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 3
monitorenter
3: aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_1
if_icmpne 6
4: aload 0
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
invokestatic sun.nio.ch.Net.localAddress:(Ljava/io/FileDescriptor;)Ljava/net/InetSocketAddress;
putfield sun.nio.ch.SocketChannelImpl.localAddress:Ljava/net/InetSocketAddress;
5: aload 0
iconst_2
putfield sun.nio.ch.SocketChannelImpl.state:I
6: StackMap locals: java.lang.Object
StackMap stack:
aload 3
monitorexit
7: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
8: aload 3
monitorexit
9: athrow
10: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/nio/ch/SocketChannelImpl;
0 11 1 blocking Z
0 11 2 completed Z
Exception table:
from to target type
3 7 8 any
8 9 8 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
blocking
completed
public boolean connect(java.net.SocketAddress);
descriptor: (Ljava/net/SocketAddress;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=11, args_size=2
start local 0 start local 1 0: aload 1
invokestatic sun.nio.ch.Net.checkAddress:(Ljava/net/SocketAddress;)Ljava/net/InetSocketAddress;
astore 2
start local 2 1: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 3
start local 3 2: aload 3
ifnull 4
3: aload 3
aload 2
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
aload 2
invokevirtual java.net.InetSocketAddress.getPort:()I
invokevirtual java.lang.SecurityManager.checkConnect:(Ljava/lang/String;I)V
4: StackMap locals: java.net.InetSocketAddress java.lang.SecurityManager
StackMap stack:
aload 2
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
astore 4
start local 4 5: aload 4
invokevirtual java.net.InetAddress.isAnyLocalAddress:()Z
ifeq 7
6: invokestatic java.net.InetAddress.getLocalHost:()Ljava/net/InetAddress;
astore 4
7: StackMap locals: java.net.InetAddress
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
8: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
9: iconst_0
istore 5
start local 5 10: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isBlocking:()Z
istore 6
start local 6 11: aload 0
iload 6
aload 2
invokevirtual sun.nio.ch.SocketChannelImpl.beginConnect:(ZLjava/net/InetSocketAddress;)V
12: StackMap locals: int int
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
aload 4
aload 2
invokevirtual java.net.InetSocketAddress.getPort:()I
invokestatic sun.nio.ch.Net.connect:(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)I
istore 5
13: iload 5
bipush -3
if_icmpne 20
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 12
14: goto 20
StackMap locals:
StackMap stack: java.lang.Throwable
15: astore 7
16: aload 0
iload 6
iload 5
ifle 17
iconst_1
goto 18
StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress java.net.InetSocketAddress java.lang.SecurityManager java.net.InetAddress int int java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl int
17: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress java.net.InetSocketAddress java.lang.SecurityManager java.net.InetAddress int int java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl int int
18: invokevirtual sun.nio.ch.SocketChannelImpl.endConnect:(ZZ)V
19: aload 7
athrow
20: StackMap locals:
StackMap stack:
aload 0
iload 6
iload 5
ifle 21
iconst_1
goto 22
StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress java.net.InetSocketAddress java.lang.SecurityManager java.net.InetAddress int int
StackMap stack: sun.nio.ch.SocketChannelImpl int
21: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress java.net.InetSocketAddress java.lang.SecurityManager java.net.InetAddress int int
StackMap stack: sun.nio.ch.SocketChannelImpl int int
22: invokevirtual sun.nio.ch.SocketChannelImpl.endConnect:(ZZ)V
23: getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 24
iload 5
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 24
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
24: StackMap locals:
StackMap stack:
iload 5
ifle 25
iconst_1
goto 26
StackMap locals:
StackMap stack:
25: iconst_0
StackMap locals:
StackMap stack: int
26: istore 9
27: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
28: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
29: iload 9
ireturn
end local 6 end local 5 30: StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress java.net.InetSocketAddress java.lang.SecurityManager java.net.InetAddress
StackMap stack: java.lang.Throwable
astore 8
31: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
32: aload 8
athrow
33: StackMap locals:
StackMap stack: java.lang.Throwable
astore 10
34: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
35: aload 10
athrow
36: StackMap locals:
StackMap stack: java.io.IOException
astore 5
start local 5 37: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.close:()V
38: aload 5
aload 2
invokestatic sun.net.util.SocketExceptions.of:(Ljava/io/IOException;Ljava/net/InetSocketAddress;)Ljava/io/IOException;
athrow
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 39 0 this Lsun/nio/ch/SocketChannelImpl;
0 39 1 sa Ljava/net/SocketAddress;
1 39 2 isa Ljava/net/InetSocketAddress;
2 39 3 sm Ljava/lang/SecurityManager;
5 39 4 ia Ljava/net/InetAddress;
10 30 5 n I
11 30 6 blocking Z
37 39 5 ioe Ljava/io/IOException;
Exception table:
from to target type
11 15 15 any
9 27 30 any
8 28 33 any
30 33 33 any
7 29 36 Class java.io.IOException
30 36 36 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
sa
private void beginFinishConnect(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: iload 1
ifeq 2
1: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.begin:()V
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 2
monitorenter
3: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.ensureOpen:()V
4: aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_1
if_icmpeq 6
5: new java.nio.channels.NoConnectionPendingException
dup
invokespecial java.nio.channels.NoConnectionPendingException.<init>:()V
athrow
6: StackMap locals: java.lang.Object
StackMap stack:
iload 1
ifeq 8
7: aload 0
invokestatic sun.nio.ch.NativeThread.current:()J
putfield sun.nio.ch.SocketChannelImpl.readerThread:J
8: StackMap locals:
StackMap stack:
aload 2
monitorexit
9: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
10: aload 2
monitorexit
11: athrow
12: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/nio/ch/SocketChannelImpl;
0 13 1 blocking Z
Exception table:
from to target type
3 9 10 any
10 11 10 any
Exceptions:
throws java.nio.channels.ClosedChannelException
MethodParameters:
Name Flags
blocking
private void endFinishConnect(boolean, boolean);
descriptor: (ZZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
iload 2
invokevirtual sun.nio.ch.SocketChannelImpl.endRead:(ZZ)V
1: iload 2
ifeq 10
2: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 3
monitorenter
3: aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_1
if_icmpne 6
4: aload 0
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
invokestatic sun.nio.ch.Net.localAddress:(Ljava/io/FileDescriptor;)Ljava/net/InetSocketAddress;
putfield sun.nio.ch.SocketChannelImpl.localAddress:Ljava/net/InetSocketAddress;
5: aload 0
iconst_2
putfield sun.nio.ch.SocketChannelImpl.state:I
6: StackMap locals: java.lang.Object
StackMap stack:
aload 3
monitorexit
7: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
8: aload 3
monitorexit
9: athrow
10: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/nio/ch/SocketChannelImpl;
0 11 1 blocking Z
0 11 2 completed Z
Exception table:
from to target type
3 7 8 any
8 9 8 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
blocking
completed
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/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
2: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isConnected:()Z
ifeq 6
3: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
4: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
5: iconst_1
ireturn
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isBlocking:()Z
istore 1
start local 1 7: iconst_0
istore 2
start local 2 8: aload 0
iload 1
invokevirtual sun.nio.ch.SocketChannelImpl.beginFinishConnect:(Z)V
9: iconst_0
istore 3
start local 3 10: iload 1
ifeq 15
11: StackMap locals: int int int
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
iconst_1
invokestatic sun.nio.ch.SocketChannelImpl.checkConnect:(Ljava/io/FileDescriptor;Z)I
istore 3
12: iload 3
ifeq 13
iload 3
bipush -3
if_icmpne 16
StackMap locals:
StackMap stack:
13: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 11
14: goto 16
15: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
iconst_0
invokestatic sun.nio.ch.SocketChannelImpl.checkConnect:(Ljava/io/FileDescriptor;Z)I
istore 3
16: StackMap locals:
StackMap stack:
iload 3
ifle 17
iconst_1
goto 18
StackMap locals:
StackMap stack:
17: iconst_0
StackMap locals:
StackMap stack: int
18: istore 2
end local 3 19: goto 23
StackMap locals: sun.nio.ch.SocketChannelImpl int int
StackMap stack: java.lang.Throwable
20: astore 4
21: aload 0
iload 1
iload 2
invokevirtual sun.nio.ch.SocketChannelImpl.endFinishConnect:(ZZ)V
22: aload 4
athrow
23: StackMap locals:
StackMap stack:
aload 0
iload 1
iload 2
invokevirtual sun.nio.ch.SocketChannelImpl.endFinishConnect:(ZZ)V
24: getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 29
iload 1
ifeq 25
iload 2
ifeq 25
iconst_1
goto 26
StackMap locals:
StackMap stack:
25: iconst_0
StackMap locals:
StackMap stack: int
26: iload 1
ifeq 27
iconst_0
goto 28
StackMap locals:
StackMap stack: int
27: iconst_1
StackMap locals: sun.nio.ch.SocketChannelImpl int int
StackMap stack: int int
28: ixor
ifne 29
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
29: StackMap locals:
StackMap stack:
iload 2
istore 6
30: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
31: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
32: iload 6
ireturn
end local 2 end local 1 33: StackMap locals: sun.nio.ch.SocketChannelImpl
StackMap stack: java.lang.Throwable
astore 5
34: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
35: aload 5
athrow
36: StackMap locals:
StackMap stack: java.lang.Throwable
astore 7
37: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
38: aload 7
athrow
39: StackMap locals:
StackMap stack: java.io.IOException
astore 1
start local 1 40: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.close:()V
41: aload 1
aload 0
getfield sun.nio.ch.SocketChannelImpl.remoteAddress:Ljava/net/InetSocketAddress;
invokestatic sun.net.util.SocketExceptions.of:(Ljava/io/IOException;Ljava/net/InetSocketAddress;)Ljava/io/IOException;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 42 0 this Lsun/nio/ch/SocketChannelImpl;
7 33 1 blocking Z
8 33 2 connected Z
10 19 3 n I
40 42 1 ioe Ljava/io/IOException;
Exception table:
from to target type
8 20 20 any
2 3 33 any
6 30 33 any
1 4 36 any
6 31 36 any
33 36 36 any
0 5 39 Class java.io.IOException
6 32 39 Class java.io.IOException
33 39 39 Class java.io.IOException
Exceptions:
throws java.io.IOException
protected void implCloseSelectableChannel();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=9, args_size=1
start local 0 0: getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 2: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 4
monitorenter
3: getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 4
aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_3
if_icmplt 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals: sun.nio.ch.SocketChannelImpl top top int java.lang.Object
StackMap stack:
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isBlocking:()Z
istore 1
start local 1 5: aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_2
if_icmpne 6
iconst_1
goto 7
StackMap locals: sun.nio.ch.SocketChannelImpl int top int java.lang.Object
StackMap stack:
6: iconst_0
StackMap locals:
StackMap stack: int
7: istore 2
start local 2 8: aload 0
iconst_3
putfield sun.nio.ch.SocketChannelImpl.state:I
9: aload 4
monitorexit
10: goto 13
end local 2 end local 1 StackMap locals: sun.nio.ch.SocketChannelImpl top top int java.lang.Object
StackMap stack: java.lang.Throwable
11: aload 4
monitorexit
12: athrow
start local 1 start local 2 13: StackMap locals: sun.nio.ch.SocketChannelImpl int int int
StackMap stack:
iload 1
ifeq 35
14: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 4
monitorenter
15: getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 16
aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_3
if_icmpeq 16
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
16: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.readerThread:J
lstore 5
start local 5 17: aload 0
getfield sun.nio.ch.SocketChannelImpl.writerThread:J
lstore 7
start local 7 18: lload 5
lconst_0
lcmp
ifne 19
lload 7
lconst_0
lcmp
ifeq 31
19: StackMap locals: long long
StackMap stack:
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
20: iconst_0
istore 2
21: lload 5
lconst_0
lcmp
ifeq 23
22: lload 5
invokestatic sun.nio.ch.NativeThread.signal:(J)V
23: StackMap locals:
StackMap stack:
lload 7
lconst_0
lcmp
ifeq 30
24: lload 7
invokestatic sun.nio.ch.NativeThread.signal:(J)V
25: goto 30
26: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
invokevirtual java.lang.Object.wait:()V
27: goto 30
StackMap locals:
StackMap stack: java.lang.InterruptedException
28: pop
29: iconst_1
istore 3
30: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.readerThread:J
lconst_0
lcmp
ifne 26
aload 0
getfield sun.nio.ch.SocketChannelImpl.writerThread:J
lconst_0
lcmp
ifne 26
end local 7 end local 5 31: StackMap locals:
StackMap stack:
aload 4
monitorexit
32: goto 43
StackMap locals:
StackMap stack: java.lang.Throwable
33: aload 4
monitorexit
34: athrow
35: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
36: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
37: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
38: goto 42
StackMap locals:
StackMap stack: java.lang.Throwable
39: astore 4
40: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
41: aload 4
athrow
42: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
43: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 4
monitorenter
44: getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 45
aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_3
if_icmpeq 45
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
45: StackMap locals: java.lang.Object
StackMap stack:
iload 2
ifeq 54
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isRegistered:()Z
ifeq 54
46: getstatic java.net.StandardSocketOptions.SO_LINGER:Ljava/net/SocketOption;
astore 5
start local 5 47: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
getstatic sun.nio.ch.Net.UNSPEC:Ljava/net/ProtocolFamily;
aload 5
invokestatic sun.nio.ch.Net.getSocketOption:(Ljava/io/FileDescriptor;Ljava/net/ProtocolFamily;Ljava/net/SocketOption;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 6
start local 6 48: iload 6
ifeq 54
49: iload 6
ifle 51
50: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
getstatic sun.nio.ch.Net.UNSPEC:Ljava/net/ProtocolFamily;
aload 5
iconst_m1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic sun.nio.ch.Net.setSocketOption:(Ljava/io/FileDescriptor;Ljava/net/ProtocolFamily;Ljava/net/SocketOption;Ljava/lang/Object;)V
51: StackMap locals: java.net.SocketOption int
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
iconst_1
invokestatic sun.nio.ch.Net.shutdown:(Ljava/io/FileDescriptor;I)V
end local 6 end local 5 52: goto 54
StackMap locals: sun.nio.ch.SocketChannelImpl int int int java.lang.Object
StackMap stack: java.io.IOException
53: pop
54: StackMap locals:
StackMap stack:
aload 0
iconst_4
putfield sun.nio.ch.SocketChannelImpl.state:I
55: aload 4
monitorexit
56: goto 59
StackMap locals:
StackMap stack: java.lang.Throwable
57: aload 4
monitorexit
58: athrow
59: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isRegistered:()Z
ifne 61
60: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.kill:()V
61: StackMap locals:
StackMap stack:
iload 3
ifeq 63
62: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
63: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 64 0 this Lsun/nio/ch/SocketChannelImpl;
5 11 1 blocking Z
13 64 1 blocking Z
8 11 2 connected Z
13 64 2 connected Z
2 64 3 interrupted Z
17 31 5 reader J
18 31 7 writer J
47 52 5 opt Ljava/net/SocketOption<Ljava/lang/Integer;>;
48 52 6 interval I
Exception table:
from to target type
3 10 11 any
11 12 11 any
26 27 28 Class java.lang.InterruptedException
15 32 33 any
33 34 33 any
36 39 39 any
46 52 53 Class java.io.IOException
44 56 57 any
57 58 57 any
Exceptions:
throws java.io.IOException
public void kill();
descriptor: ()V
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_4
if_icmpne 4
2: aload 0
iconst_5
putfield sun.nio.ch.SocketChannelImpl.state:I
3: getstatic sun.nio.ch.SocketChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
invokevirtual sun.nio.ch.NativeDispatcher.close:(Ljava/io/FileDescriptor;)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 java.nio.channels.SocketChannel shutdownInput();
descriptor: ()Ljava/nio/channels/SocketChannel;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, 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.ensureOpen:()V
2: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isConnected:()Z
ifne 4
3: new java.nio.channels.NotYetConnectedException
dup
invokespecial java.nio.channels.NotYetConnectedException.<init>:()V
athrow
4: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputClosed:Z
ifne 10
5: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
iconst_0
invokestatic sun.nio.ch.Net.shutdown:(Ljava/io/FileDescriptor;I)V
6: aload 0
getfield sun.nio.ch.SocketChannelImpl.readerThread:J
lstore 2
start local 2 7: lload 2
lconst_0
lcmp
ifeq 9
8: lload 2
invokestatic sun.nio.ch.NativeThread.signal:(J)V
9: StackMap locals: long
StackMap stack:
aload 0
iconst_1
putfield sun.nio.ch.SocketChannelImpl.isInputClosed:Z
end local 2 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;
7 10 2 thread J
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=4, 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.ensureOpen:()V
2: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isConnected:()Z
ifne 4
3: new java.nio.channels.NotYetConnectedException
dup
invokespecial java.nio.channels.NotYetConnectedException.<init>:()V
athrow
4: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.isOutputClosed:Z
ifne 10
5: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
iconst_1
invokestatic sun.nio.ch.Net.shutdown:(Ljava/io/FileDescriptor;I)V
6: aload 0
getfield sun.nio.ch.SocketChannelImpl.writerThread:J
lstore 2
start local 2 7: lload 2
lconst_0
lcmp
ifeq 9
8: lload 2
invokestatic sun.nio.ch.NativeThread.signal:(J)V
9: StackMap locals: long
StackMap stack:
aload 0
iconst_1
putfield sun.nio.ch.SocketChannelImpl.isOutputClosed:Z
end local 2 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;
7 10 2 thread J
Exception table:
from to target type
1 11 12 any
12 13 12 any
Exceptions:
throws java.io.IOException
boolean isInputOpen();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputClosed:Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/nio/ch/SocketChannelImpl;
boolean isOutputOpen();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.isOutputClosed:Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/nio/ch/SocketChannelImpl;
boolean pollRead(long);
descriptor: (J)Z
flags: (0x0000)
Code:
stack=4, locals=9, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isBlocking:()Z
istore 3
start local 3 1: getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 3
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.blockingLock:()Ljava/lang/Object;
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
ifeq 2
iload 3
ifne 3
StackMap locals: int
StackMap stack:
2: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
4: iconst_0
istore 4
start local 4 5: aload 0
iload 3
invokevirtual sun.nio.ch.SocketChannelImpl.beginRead:(Z)V
6: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
getstatic sun.nio.ch.Net.POLLIN:S
lload 1
invokestatic sun.nio.ch.Net.poll:(Ljava/io/FileDescriptor;IJ)I
istore 5
start local 5 7: iload 5
ifeq 8
iconst_1
goto 9
StackMap locals: int int
StackMap stack:
8: iconst_0
StackMap locals:
StackMap stack: int
9: istore 4
end local 5 10: goto 14
StackMap locals: sun.nio.ch.SocketChannelImpl long int int
StackMap stack: java.lang.Throwable
11: astore 6
12: aload 0
iload 3
iload 4
invokevirtual sun.nio.ch.SocketChannelImpl.endRead:(ZZ)V
13: aload 6
athrow
14: StackMap locals:
StackMap stack:
aload 0
iload 3
iload 4
invokevirtual sun.nio.ch.SocketChannelImpl.endRead:(ZZ)V
15: iload 4
istore 8
16: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
17: iload 8
ireturn
end local 4 18: StackMap locals: sun.nio.ch.SocketChannelImpl long int
StackMap stack: java.lang.Throwable
astore 7
19: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
20: aload 7
athrow
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lsun/nio/ch/SocketChannelImpl;
0 21 1 timeout J
1 21 3 blocking Z
5 18 4 polled Z
7 10 5 events I
Exception table:
from to target type
5 11 11 any
4 16 18 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
timeout
boolean pollConnected(long);
descriptor: (J)Z
flags: (0x0000)
Code:
stack=4, locals=10, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isBlocking:()Z
istore 3
start local 3 1: getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 3
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.blockingLock:()Ljava/lang/Object;
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
ifeq 2
iload 3
ifne 3
StackMap locals: int
StackMap stack:
2: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
4: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
5: iconst_0
istore 4
start local 4 6: aload 0
iload 3
invokevirtual sun.nio.ch.SocketChannelImpl.beginFinishConnect:(Z)V
7: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
getstatic sun.nio.ch.Net.POLLCONN:S
lload 1
invokestatic sun.nio.ch.Net.poll:(Ljava/io/FileDescriptor;IJ)I
istore 5
start local 5 8: iload 5
ifeq 9
iconst_1
goto 10
StackMap locals: int int
StackMap stack:
9: iconst_0
StackMap locals:
StackMap stack: int
10: istore 4
end local 5 11: goto 15
StackMap locals: sun.nio.ch.SocketChannelImpl long int int
StackMap stack: java.lang.Throwable
12: astore 6
13: aload 0
iload 3
iconst_0
invokevirtual sun.nio.ch.SocketChannelImpl.endFinishConnect:(ZZ)V
14: aload 6
athrow
15: StackMap locals:
StackMap stack:
aload 0
iload 3
iconst_0
invokevirtual sun.nio.ch.SocketChannelImpl.endFinishConnect:(ZZ)V
16: iload 4
istore 8
17: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
18: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
19: iload 8
ireturn
end local 4 20: StackMap locals: sun.nio.ch.SocketChannelImpl long int
StackMap stack: java.lang.Throwable
astore 7
21: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
22: aload 7
athrow
23: StackMap locals:
StackMap stack: java.lang.Throwable
astore 9
24: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
25: aload 9
athrow
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lsun/nio/ch/SocketChannelImpl;
0 26 1 timeout J
1 26 3 blocking Z
6 20 4 polled Z
8 11 5 events I
Exception table:
from to target type
6 12 12 any
5 17 20 any
4 18 23 any
20 23 23 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
timeout
public boolean translateReadyOps(int, int, sun.nio.ch.SelectionKeyImpl);
descriptor: (IILsun/nio/ch/SelectionKeyImpl;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=8, 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 10
6: iload 4
istore 6
7: aload 3
iload 6
invokevirtual sun.nio.ch.SelectionKeyImpl.nioReadyOps:(I)V
8: iload 6
iload 5
iconst_m1
ixor
iand
ifeq 9
iconst_1
ireturn
StackMap locals:
StackMap stack:
9: iconst_0
ireturn
10: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isConnected:()Z
istore 7
start local 7 11: iload 1
getstatic sun.nio.ch.Net.POLLIN:S
iand
ifeq 14
12: iload 4
iconst_1
iand
ifeq 14
iload 7
ifeq 14
13: iload 6
iconst_1
ior
istore 6
14: StackMap locals: int
StackMap stack:
iload 1
getstatic sun.nio.ch.Net.POLLCONN:S
iand
ifeq 17
15: iload 4
bipush 8
iand
ifeq 17
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isConnectionPending:()Z
ifeq 17
16: iload 6
bipush 8
ior
istore 6
17: StackMap locals:
StackMap stack:
iload 1
getstatic sun.nio.ch.Net.POLLOUT:S
iand
ifeq 20
18: iload 4
iconst_4
iand
ifeq 20
iload 7
ifeq 20
19: iload 6
iconst_4
ior
istore 6
20: StackMap locals:
StackMap stack:
aload 3
iload 6
invokevirtual sun.nio.ch.SelectionKeyImpl.nioReadyOps:(I)V
21: iload 6
iload 5
iconst_m1
ixor
iand
ifeq 22
iconst_1
ireturn
StackMap locals:
StackMap stack:
22: iconst_0
ireturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lsun/nio/ch/SocketChannelImpl;
0 23 1 ops I
0 23 2 initialOps I
0 23 3 ski Lsun/nio/ch/SelectionKeyImpl;
1 23 4 intOps I
2 23 5 oldOps I
3 23 6 newOps I
11 23 7 connected Z
MethodParameters:
Name Flags
ops
initialOps
ski
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 ski Lsun/nio/ch/SelectionKeyImpl;
MethodParameters:
Name Flags
ops
ski
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 ski Lsun/nio/ch/SelectionKeyImpl;
MethodParameters:
Name Flags
ops
ski
public int translateInterestOps(int);
descriptor: (I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: iload 1
iconst_1
iand
ifeq 3
2: iload 2
getstatic sun.nio.ch.Net.POLLIN:S
ior
istore 2
3: StackMap locals: int
StackMap stack:
iload 1
iconst_4
iand
ifeq 5
4: iload 2
getstatic sun.nio.ch.Net.POLLOUT:S
ior
istore 2
5: StackMap locals:
StackMap stack:
iload 1
bipush 8
iand
ifeq 7
6: iload 2
getstatic sun.nio.ch.Net.POLLCONN:S
ior
istore 2
7: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/nio/ch/SocketChannelImpl;
0 8 1 ops I
1 8 2 newOps I
MethodParameters:
Name Flags
ops
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.StringBuilder
dup
invokespecial java.lang.StringBuilder.<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.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
2: aload 1
bipush 91
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
3: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 5
4: aload 1
ldc "closed"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
goto 27
5: StackMap locals: java.lang.StringBuilder
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.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
8: goto 16
9: StackMap locals:
StackMap stack:
aload 1
ldc "connection-pending"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
10: goto 16
11: StackMap locals:
StackMap stack:
aload 1
ldc "connected"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
12: aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputClosed:Z
ifeq 14
13: aload 1
ldc " ishut"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
14: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.isOutputClosed:Z
ifeq 16
15: aload 1
ldc " oshut"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
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.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
19: aload 1
aload 3
invokestatic sun.nio.ch.Net.getRevealedLocalAddressAsString:(Ljava/net/InetSocketAddress;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
20: StackMap locals: java.net.InetSocketAddress
StackMap stack:
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.remoteAddress:()Ljava/net/InetSocketAddress;
ifnull 23
21: aload 1
ldc " remote="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
22: aload 1
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.remoteAddress:()Ljava/net/InetSocketAddress;
invokevirtual java.net.InetSocketAddress.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
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.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
28: aload 1
invokevirtual java.lang.StringBuilder.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/StringBuilder;
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);
descriptor: (Ljava/io/FileDescriptor;Z)I
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
block
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