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 final sun.nio.ch.NativeDispatcher nd;
descriptor: Lsun/nio/ch/NativeDispatcher;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.net.ProtocolFamily family;
descriptor: Ljava/net/ProtocolFamily;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
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 connectionReset;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
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_CLOSED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
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.SocketAddress localAddress;
descriptor: Ljava/net/SocketAddress;
flags: (0x0002) ACC_PRIVATE
private java.net.SocketAddress remoteAddress;
descriptor: Ljava/net/SocketAddress;
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: new sun.nio.ch.SocketDispatcher
dup
invokespecial sun.nio.ch.SocketDispatcher.<init>:()V
putstatic sun.nio.ch.SocketChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
4: 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
invokestatic sun.nio.ch.Net.isIPv6Available:()Z
ifeq 1
getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
goto 2
StackMap locals: uninitialized-this java.nio.channels.spi.SelectorProvider
StackMap stack: uninitialized-this java.nio.channels.spi.SelectorProvider
1: getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
StackMap locals: uninitialized-this java.nio.channels.spi.SelectorProvider
StackMap stack: uninitialized-this java.nio.channels.spi.SelectorProvider java.net.StandardProtocolFamily
2: invokespecial sun.nio.ch.SocketChannelImpl.<init>:(Ljava/nio/channels/spi/SelectorProvider;Ljava/net/ProtocolFamily;)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/nio/ch/SocketChannelImpl;
0 4 1 sp Ljava/nio/channels/spi/SelectorProvider;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
sp
void <init>(java.nio.channels.spi.SelectorProvider, java.net.ProtocolFamily);
descriptor: (Ljava/nio/channels/spi/SelectorProvider;Ljava/net/ProtocolFamily;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 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 2
ldc "'family' is null"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
5: aload 2
getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
if_acmpeq 7
aload 2
getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
if_acmpeq 7
aload 2
getstatic java.net.StandardProtocolFamily.UNIX:Ljava/net/StandardProtocolFamily;
if_acmpeq 7
6: new java.lang.UnsupportedOperationException
dup
ldc "Protocol family not supported"
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.channels.spi.SelectorProvider java.net.ProtocolFamily
StackMap stack:
aload 2
getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
if_acmpne 9
invokestatic sun.nio.ch.Net.isIPv6Available:()Z
ifne 9
8: new java.lang.UnsupportedOperationException
dup
ldc "IPv6 not available"
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals:
StackMap stack:
aload 0
aload 2
putfield sun.nio.ch.SocketChannelImpl.family:Ljava/net/ProtocolFamily;
10: aload 2
getstatic java.net.StandardProtocolFamily.UNIX:Ljava/net/StandardProtocolFamily;
if_acmpne 13
11: aload 0
invokestatic sun.nio.ch.UnixDomainSockets.socket:()Ljava/io/FileDescriptor;
putfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
12: goto 14
13: StackMap locals:
StackMap stack:
aload 0
aload 2
iconst_1
invokestatic sun.nio.ch.Net.socket:(Ljava/net/ProtocolFamily;Z)Ljava/io/FileDescriptor;
putfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
14: StackMap locals:
StackMap stack:
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
15: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lsun/nio/ch/SocketChannelImpl;
0 16 1 sp Ljava/nio/channels/spi/SelectorProvider;
0 16 2 family Ljava/net/ProtocolFamily;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
sp
family
void <init>(java.nio.channels.spi.SelectorProvider, java.net.ProtocolFamily, java.io.FileDescriptor, java.net.SocketAddress);
descriptor: (Ljava/nio/channels/spi/SelectorProvider;Ljava/net/ProtocolFamily;Ljava/io/FileDescriptor;Ljava/net/SocketAddress;)V
flags: (0x0000)
Code:
stack=3, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 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.family:Ljava/net/ProtocolFamily;
5: aload 0
aload 3
putfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
6: aload 0
aload 3
invokestatic sun.nio.ch.IOUtil.fdVal:(Ljava/io/FileDescriptor;)I
putfield sun.nio.ch.SocketChannelImpl.fdVal:I
7: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 5
monitorenter
8: aload 2
getstatic java.net.StandardProtocolFamily.UNIX:Ljava/net/StandardProtocolFamily;
if_acmpne 11
9: aload 0
aload 3
invokestatic sun.nio.ch.UnixDomainSockets.localAddress:(Ljava/io/FileDescriptor;)Ljava/net/UnixDomainSocketAddress;
putfield sun.nio.ch.SocketChannelImpl.localAddress:Ljava/net/SocketAddress;
10: goto 12
11: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.channels.spi.SelectorProvider java.net.ProtocolFamily java.io.FileDescriptor java.net.SocketAddress java.lang.Object
StackMap stack:
aload 0
aload 3
invokestatic sun.nio.ch.Net.localAddress:(Ljava/io/FileDescriptor;)Ljava/net/InetSocketAddress;
putfield sun.nio.ch.SocketChannelImpl.localAddress:Ljava/net/SocketAddress;
12: StackMap locals:
StackMap stack:
aload 0
aload 4
putfield sun.nio.ch.SocketChannelImpl.remoteAddress:Ljava/net/SocketAddress;
13: aload 0
iconst_2
putfield sun.nio.ch.SocketChannelImpl.state:I
14: aload 5
monitorexit
15: goto 18
StackMap locals:
StackMap stack: java.lang.Throwable
16: aload 5
monitorexit
17: athrow
18: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lsun/nio/ch/SocketChannelImpl;
0 19 1 sp Ljava/nio/channels/spi/SelectorProvider;
0 19 2 family Ljava/net/ProtocolFamily;
0 19 3 fd Ljava/io/FileDescriptor;
0 19 4 remoteAddress Ljava/net/SocketAddress;
Exception table:
from to target type
8 15 16 any
16 17 16 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
sp
family
fd
remoteAddress
boolean isNetSocket();
descriptor: ()Z
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.family:Ljava/net/ProtocolFamily;
getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
if_acmpeq 1
aload 0
getfield sun.nio.ch.SocketChannelImpl.family:Ljava/net/ProtocolFamily;
getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
if_acmpeq 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/nio/ch/SocketChannelImpl;
boolean isUnixSocket();
descriptor: ()Z
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.family:Ljava/net/ProtocolFamily;
getstatic java.net.StandardProtocolFamily.UNIX:Ljava/net/StandardProtocolFamily;
if_acmpne 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 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=3, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield sun.nio.ch.SocketChannelImpl.socket:Ljava/net/Socket;
ifnonnull 6
2: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isNetSocket:()Z
ifeq 5
3: 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;
4: goto 6
5: StackMap locals: java.lang.Object
StackMap stack:
new java.lang.UnsupportedOperationException
dup
ldc "Not supported"
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.socket:Ljava/net/Socket;
aload 1
monitorexit
7: areturn
8: StackMap locals:
StackMap stack: java.lang.Throwable
aload 1
monitorexit
9: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/nio/ch/SocketChannelImpl;
Exception table:
from to target type
1 7 8 any
8 9 8 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
invokevirtual sun.nio.ch.SocketChannelImpl.isUnixSocket:()Z
ifeq 5
3: aload 0
getfield sun.nio.ch.SocketChannelImpl.localAddress:Ljava/net/SocketAddress;
invokestatic sun.nio.ch.UnixDomainSockets.getRevealedLocalAddress:(Ljava/net/SocketAddress;)Ljava/net/UnixDomainSocketAddress;
aload 1
monitorexit
4: areturn
5: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.localAddress:Ljava/net/SocketAddress;
invokestatic sun.nio.ch.Net.getRevealedLocalAddress:(Ljava/net/SocketAddress;)Ljava/net/InetSocketAddress;
aload 1
monitorexit
6: areturn
7: StackMap locals:
StackMap stack: java.lang.Throwable
aload 1
monitorexit
8: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/nio/ch/SocketChannelImpl;
Exception table:
from to target type
1 4 7 any
5 6 7 any
7 8 7 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/SocketAddress;
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=4, 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 1
invokeinterface java.net.SocketOption.type:()Ljava/lang/Class;
aload 2
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifne 5
4: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Invalid value '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 3
monitorenter
6: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.ensureOpen:()V
7: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isNetSocket:()Z
ifeq 16
8: aload 1
getstatic java.net.StandardSocketOptions.IP_TOS:Ljava/net/SocketOption;
if_acmpne 12
9: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
aload 0
getfield sun.nio.ch.SocketChannelImpl.family: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
10: aload 0
aload 3
monitorexit
11: areturn
12: StackMap locals: java.lang.Object
StackMap stack:
aload 1
getstatic java.net.StandardSocketOptions.SO_REUSEADDR:Ljava/net/SocketOption;
if_acmpne 16
invokestatic sun.nio.ch.Net.useExclusiveBind:()Z
ifeq 16
13: aload 0
aload 2
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
putfield sun.nio.ch.SocketChannelImpl.isReuseAddress:Z
14: aload 0
aload 3
monitorexit
15: areturn
16: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
aload 1
aload 2
invokestatic sun.nio.ch.Net.setSocketOption:(Ljava/io/FileDescriptor;Ljava/net/SocketOption;Ljava/lang/Object;)V
17: aload 0
aload 3
monitorexit
18: areturn
19: StackMap locals:
StackMap stack: java.lang.Throwable
aload 3
monitorexit
20: athrow
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 name Ljava/net/SocketOption<TT;>;
0 21 2 value TT;
Exception table:
from to target type
6 11 19 any
12 15 19 any
16 18 19 any
19 20 19 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=3, 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 0
invokevirtual sun.nio.ch.SocketChannelImpl.isNetSocket:()Z
ifeq 12
6: aload 1
getstatic java.net.StandardSocketOptions.IP_TOS:Ljava/net/SocketOption;
if_acmpne 9
7: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
aload 0
getfield sun.nio.ch.SocketChannelImpl.family: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
8: areturn
9: StackMap locals: java.lang.Object
StackMap stack:
aload 1
getstatic java.net.StandardSocketOptions.SO_REUSEADDR:Ljava/net/SocketOption;
if_acmpne 12
invokestatic sun.nio.ch.Net.useExclusiveBind:()Z
ifeq 12
10: aload 0
getfield sun.nio.ch.SocketChannelImpl.isReuseAddress:Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 2
monitorexit
11: areturn
12: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
aload 1
invokestatic sun.nio.ch.Net.getSocketOption:(Ljava/io/FileDescriptor;Ljava/net/SocketOption;)Ljava/lang/Object;
aload 2
monitorexit
13: areturn
14: StackMap locals:
StackMap stack: java.lang.Throwable
aload 2
monitorexit
15: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lsun/nio/ch/SocketChannelImpl;
0 16 1 name Ljava/net/SocketOption<TT;>;
Exception table:
from to target type
4 8 14 any
9 11 14 any
12 13 14 any
14 15 14 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: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isUnixSocket:()Z
ifeq 2
1: getstatic sun.nio.ch.SocketChannelImpl$DefaultOptionsHolder.defaultUnixOptions:Ljava/util/Set;
areturn
2: StackMap locals:
StackMap stack:
getstatic sun.nio.ch.SocketChannelImpl$DefaultOptionsHolder.defaultInetOptions:Ljava/util/Set;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 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.ensureOpen:()V
4: aload 0
invokestatic sun.nio.ch.NativeThread.current:()J
putfield sun.nio.ch.SocketChannelImpl.readerThread:J
5: aload 2
monitorexit
6: goto 9
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:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/nio/ch/SocketChannelImpl;
0 10 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
invokevirtual sun.nio.ch.SocketChannelImpl.tryFinishClose:()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
private void throwConnectionReset();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.net.SocketException
dup
ldc "Connection reset"
invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/SocketChannelImpl;
Exceptions:
throws java.net.SocketException
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.ensureOpenAndConnected:()V
3: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isBlocking:()Z
istore 2
start local 2 4: iconst_0
istore 3
start local 3 5: aload 0
iload 2
invokevirtual sun.nio.ch.SocketChannelImpl.beginRead:(Z)V
6: aload 0
getfield sun.nio.ch.SocketChannelImpl.connectionReset:Z
ifeq 8
7: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.throwConnectionReset:()V
8: StackMap locals: int int
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputClosed:Z
ifeq 17
9: aload 0
iload 2
iload 3
ifle 10
iconst_1
goto 11
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer int int
StackMap stack: sun.nio.ch.SocketChannelImpl int
10: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer int int
StackMap stack: sun.nio.ch.SocketChannelImpl int int
11: invokevirtual sun.nio.ch.SocketChannelImpl.endRead:(ZZ)V
12: iload 3
ifgt 15
aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputClosed:Z
ifeq 15
13: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
14: iconst_m1
ireturn
15: 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
16: iconst_m1
ireturn
17: 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
18: iload 2
ifeq 41
19: goto 22
20: StackMap locals:
StackMap stack:
aload 0
getstatic sun.nio.ch.Net.POLLIN:S
invokevirtual sun.nio.ch.SocketChannelImpl.park:(I)V
21: 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
22: StackMap locals:
StackMap stack:
iload 3
i2l
invokestatic sun.nio.ch.IOStatus.okayToRetry:(J)Z
ifeq 41
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 20
23: goto 41
StackMap locals:
StackMap stack: sun.net.ConnectionResetException
24: pop
25: aload 0
iconst_1
putfield sun.nio.ch.SocketChannelImpl.connectionReset:Z
26: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.throwConnectionReset:()V
27: aload 0
iload 2
iload 3
ifle 28
iconst_1
goto 29
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer int int
StackMap stack: sun.nio.ch.SocketChannelImpl int
28: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer int int
StackMap stack: sun.nio.ch.SocketChannelImpl int int
29: invokevirtual sun.nio.ch.SocketChannelImpl.endRead:(ZZ)V
30: iload 3
ifgt 47
aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputClosed:Z
ifeq 47
31: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
32: iconst_m1
ireturn
33: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
34: aload 0
iload 2
iload 3
ifle 35
iconst_1
goto 36
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer int int java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl int
35: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer int int java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl int int
36: invokevirtual sun.nio.ch.SocketChannelImpl.endRead:(ZZ)V
37: iload 3
ifgt 40
aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputClosed:Z
ifeq 40
38: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
39: iconst_m1
ireturn
40: StackMap locals:
StackMap stack:
aload 4
athrow
41: StackMap locals:
StackMap stack:
aload 0
iload 2
iload 3
ifle 42
iconst_1
goto 43
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer int int
StackMap stack: sun.nio.ch.SocketChannelImpl int
42: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer int int
StackMap stack: sun.nio.ch.SocketChannelImpl int int
43: invokevirtual sun.nio.ch.SocketChannelImpl.endRead:(ZZ)V
44: iload 3
ifgt 47
aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputClosed:Z
ifeq 47
45: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
46: iconst_m1
ireturn
47: StackMap locals:
StackMap stack:
iload 3
invokestatic sun.nio.ch.IOStatus.normalize:(I)I
istore 6
48: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
49: iload 6
ireturn
end local 3 end local 2 50: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer
StackMap stack: java.lang.Throwable
astore 5
51: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
52: aload 5
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 53 0 this Lsun/nio/ch/SocketChannelImpl;
0 53 1 buf Ljava/nio/ByteBuffer;
4 50 2 blocking Z
5 50 3 n I
Exception table:
from to target type
5 9 24 Class sun.net.ConnectionResetException
17 23 24 Class sun.net.ConnectionResetException
5 9 33 any
17 27 33 any
2 13 50 any
17 31 50 any
33 38 50 any
40 45 50 any
47 48 50 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.ensureOpenAndConnected:()V
3: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isBlocking:()Z
istore 4
start local 4 4: lconst_0
lstore 5
start local 5 5: aload 0
iload 4
invokevirtual sun.nio.ch.SocketChannelImpl.beginRead:(Z)V
6: aload 0
getfield sun.nio.ch.SocketChannelImpl.connectionReset:Z
ifeq 8
7: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.throwConnectionReset:()V
8: StackMap locals: int long
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputClosed:Z
ifeq 17
9: aload 0
iload 4
lload 5
lconst_0
lcmp
ifle 10
iconst_1
goto 11
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int int long
StackMap stack: sun.nio.ch.SocketChannelImpl int
10: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int int long
StackMap stack: sun.nio.ch.SocketChannelImpl int int
11: invokevirtual sun.nio.ch.SocketChannelImpl.endRead:(ZZ)V
12: lload 5
lconst_0
lcmp
ifgt 15
aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputClosed:Z
ifeq 15
13: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
14: ldc -1
lreturn
15: 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
16: ldc -1
lreturn
17: 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
18: iload 4
ifeq 41
19: goto 22
20: StackMap locals:
StackMap stack:
aload 0
getstatic sun.nio.ch.Net.POLLIN:S
invokevirtual sun.nio.ch.SocketChannelImpl.park:(I)V
21: 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
22: StackMap locals:
StackMap stack:
lload 5
invokestatic sun.nio.ch.IOStatus.okayToRetry:(J)Z
ifeq 41
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 20
23: goto 41
StackMap locals:
StackMap stack: sun.net.ConnectionResetException
24: pop
25: aload 0
iconst_1
putfield sun.nio.ch.SocketChannelImpl.connectionReset:Z
26: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.throwConnectionReset:()V
27: aload 0
iload 4
lload 5
lconst_0
lcmp
ifle 28
iconst_1
goto 29
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int int long
StackMap stack: sun.nio.ch.SocketChannelImpl int
28: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int int long
StackMap stack: sun.nio.ch.SocketChannelImpl int int
29: invokevirtual sun.nio.ch.SocketChannelImpl.endRead:(ZZ)V
30: lload 5
lconst_0
lcmp
ifgt 47
aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputClosed:Z
ifeq 47
31: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
32: ldc -1
lreturn
33: StackMap locals:
StackMap stack: java.lang.Throwable
astore 7
34: aload 0
iload 4
lload 5
lconst_0
lcmp
ifle 35
iconst_1
goto 36
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int int long java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl int
35: 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
36: invokevirtual sun.nio.ch.SocketChannelImpl.endRead:(ZZ)V
37: lload 5
lconst_0
lcmp
ifgt 40
aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputClosed:Z
ifeq 40
38: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
39: ldc -1
lreturn
40: StackMap locals:
StackMap stack:
aload 7
athrow
41: StackMap locals:
StackMap stack:
aload 0
iload 4
lload 5
lconst_0
lcmp
ifle 42
iconst_1
goto 43
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int int long
StackMap stack: sun.nio.ch.SocketChannelImpl int
42: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int int long
StackMap stack: sun.nio.ch.SocketChannelImpl int int
43: invokevirtual sun.nio.ch.SocketChannelImpl.endRead:(ZZ)V
44: lload 5
lconst_0
lcmp
ifgt 47
aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputClosed:Z
ifeq 47
45: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
46: ldc -1
lreturn
47: StackMap locals:
StackMap stack:
lload 5
invokestatic sun.nio.ch.IOStatus.normalize:(J)J
lstore 9
48: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
49: lload 9
lreturn
end local 5 end local 4 50: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int
StackMap stack: java.lang.Throwable
astore 8
51: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
52: aload 8
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 53 0 this Lsun/nio/ch/SocketChannelImpl;
0 53 1 dsts [Ljava/nio/ByteBuffer;
0 53 2 offset I
0 53 3 length I
4 50 4 blocking Z
5 50 5 n J
Exception table:
from to target type
5 9 24 Class sun.net.ConnectionResetException
17 23 24 Class sun.net.ConnectionResetException
5 9 33 any
17 27 33 any
2 13 50 any
17 31 50 any
33 38 50 any
40 45 50 any
47 48 50 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.ensureOpen:()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 11
StackMap locals:
StackMap stack: java.lang.Throwable
9: aload 2
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/nio/ch/SocketChannelImpl;
0 12 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
invokevirtual sun.nio.ch.SocketChannelImpl.tryFinishClose:()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.ensureOpenAndConnected:()V
3: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isBlocking:()Z
istore 2
start local 2 4: iconst_0
istore 3
start local 3 5: aload 0
iload 2
invokevirtual sun.nio.ch.SocketChannelImpl.beginWrite:(Z)V
6: 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 2
ifeq 20
8: goto 11
9: StackMap locals: int int
StackMap stack:
aload 0
getstatic sun.nio.ch.Net.POLLOUT:S
invokevirtual sun.nio.ch.SocketChannelImpl.park:(I)V
10: 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
11: StackMap locals:
StackMap stack:
iload 3
i2l
invokestatic sun.nio.ch.IOStatus.okayToRetry:(J)Z
ifeq 20
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 9
12: goto 20
StackMap locals:
StackMap stack: java.lang.Throwable
13: astore 4
14: aload 0
iload 2
iload 3
ifle 15
iconst_1
goto 16
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer int int java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl int
15: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer int int java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl int int
16: invokevirtual sun.nio.ch.SocketChannelImpl.endWrite:(ZZ)V
17: iload 3
ifgt 19
aload 0
getfield sun.nio.ch.SocketChannelImpl.isOutputClosed:Z
ifeq 19
18: new java.nio.channels.AsynchronousCloseException
dup
invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
athrow
19: StackMap locals:
StackMap stack:
aload 4
athrow
20: StackMap locals:
StackMap stack:
aload 0
iload 2
iload 3
ifle 21
iconst_1
goto 22
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer int int
StackMap stack: sun.nio.ch.SocketChannelImpl int
21: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer int int
StackMap stack: sun.nio.ch.SocketChannelImpl int int
22: invokevirtual sun.nio.ch.SocketChannelImpl.endWrite:(ZZ)V
23: iload 3
ifgt 25
aload 0
getfield sun.nio.ch.SocketChannelImpl.isOutputClosed:Z
ifeq 25
24: new java.nio.channels.AsynchronousCloseException
dup
invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
athrow
25: StackMap locals:
StackMap stack:
iload 3
invokestatic sun.nio.ch.IOStatus.normalize:(I)I
istore 6
26: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
27: iload 6
ireturn
end local 3 end local 2 28: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer
StackMap stack: java.lang.Throwable
astore 5
29: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
30: aload 5
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lsun/nio/ch/SocketChannelImpl;
0 31 1 buf Ljava/nio/ByteBuffer;
4 28 2 blocking Z
5 28 3 n I
Exception table:
from to target type
5 13 13 any
2 26 28 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.ensureOpenAndConnected:()V
3: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isBlocking:()Z
istore 4
start local 4 4: lconst_0
lstore 5
start local 5 5: aload 0
iload 4
invokevirtual sun.nio.ch.SocketChannelImpl.beginWrite:(Z)V
6: 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: iload 4
ifeq 20
8: goto 11
9: StackMap locals: int long
StackMap stack:
aload 0
getstatic sun.nio.ch.Net.POLLOUT:S
invokevirtual sun.nio.ch.SocketChannelImpl.park:(I)V
10: 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
11: StackMap locals:
StackMap stack:
lload 5
invokestatic sun.nio.ch.IOStatus.okayToRetry:(J)Z
ifeq 20
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 9
12: goto 20
StackMap locals:
StackMap stack: java.lang.Throwable
13: astore 7
14: aload 0
iload 4
lload 5
lconst_0
lcmp
ifle 15
iconst_1
goto 16
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int int long java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl int
15: 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
16: invokevirtual sun.nio.ch.SocketChannelImpl.endWrite:(ZZ)V
17: lload 5
lconst_0
lcmp
ifgt 19
aload 0
getfield sun.nio.ch.SocketChannelImpl.isOutputClosed:Z
ifeq 19
18: new java.nio.channels.AsynchronousCloseException
dup
invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
athrow
19: StackMap locals:
StackMap stack:
aload 7
athrow
20: StackMap locals:
StackMap stack:
aload 0
iload 4
lload 5
lconst_0
lcmp
ifle 21
iconst_1
goto 22
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int int long
StackMap stack: sun.nio.ch.SocketChannelImpl int
21: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int int long
StackMap stack: sun.nio.ch.SocketChannelImpl int int
22: invokevirtual sun.nio.ch.SocketChannelImpl.endWrite:(ZZ)V
23: lload 5
lconst_0
lcmp
ifgt 25
aload 0
getfield sun.nio.ch.SocketChannelImpl.isOutputClosed:Z
ifeq 25
24: new java.nio.channels.AsynchronousCloseException
dup
invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
athrow
25: StackMap locals:
StackMap stack:
lload 5
invokestatic sun.nio.ch.IOStatus.normalize:(J)J
lstore 9
26: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
27: lload 9
lreturn
end local 5 end local 4 28: StackMap locals: sun.nio.ch.SocketChannelImpl java.nio.ByteBuffer[] int int
StackMap stack: java.lang.Throwable
astore 8
29: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
30: aload 8
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lsun/nio/ch/SocketChannelImpl;
0 31 1 srcs [Ljava/nio/ByteBuffer;
0 31 2 offset I
0 31 3 length I
4 28 4 blocking Z
5 28 5 n J
Exception table:
from to target type
5 13 13 any
2 26 28 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.ensureOpenAndConnected:()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;
iload 1
invokestatic sun.nio.ch.Net.sendOOB:(Ljava/io/FileDescriptor;B)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;
iload 1
invokestatic sun.nio.ch.Net.sendOOB:(Ljava/io/FileDescriptor;B)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 int int int java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl int
13: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl int 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 int int int
StackMap stack: sun.nio.ch.SocketChannelImpl int
19: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl int 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 int
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 b B
3 26 2 blocking Z
4 26 3 n I
Exception table:
from to target type
4 11 11 any
1 24 26 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=4, 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
iload 1
invokevirtual sun.nio.ch.SocketChannelImpl.lockedConfigureBlocking:(Z)V
3: goto 7
StackMap locals:
StackMap stack: java.lang.Throwable
4: astore 2
5: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
6: aload 2
athrow
7: 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
8: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
9: astore 3
10: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock: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.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
13: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lsun/nio/ch/SocketChannelImpl;
0 14 1 block Z
Exception table:
from to target type
2 4 4 any
1 9 9 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
block
private void lockedConfigureBlocking(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 1
aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
ifne 1
aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 2
monitorenter
2: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.ensureOpen:()V
3: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
iload 1
invokestatic sun.nio.ch.IOUtil.configureBlocking:(Ljava/io/FileDescriptor;Z)V
4: aload 2
monitorexit
5: goto 8
StackMap locals: sun.nio.ch.SocketChannelImpl int java.lang.Object
StackMap stack: java.lang.Throwable
6: aload 2
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/nio/ch/SocketChannelImpl;
0 9 1 block Z
Exception table:
from to target type
2 5 6 any
6 7 6 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
block
private boolean tryLockedConfigureBlocking(boolean);
descriptor: (Z)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 1
aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
ifne 1
aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 2
monitorenter
2: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifeq 6
3: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
iload 1
invokestatic sun.nio.ch.IOUtil.configureBlocking:(Ljava/io/FileDescriptor;Z)V
4: aload 2
monitorexit
5: iconst_1
ireturn
6: StackMap locals: java.lang.Object
StackMap stack:
aload 2
monitorexit
7: iconst_0
ireturn
8: StackMap locals:
StackMap stack: java.lang.Throwable
aload 2
monitorexit
9: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/nio/ch/SocketChannelImpl;
0 10 1 block Z
Exception table:
from to target type
2 5 8 any
6 7 8 any
8 9 8 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
block
java.net.SocketAddress localAddress();
descriptor: ()Ljava/net/SocketAddress;
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/SocketAddress;
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.SocketAddress remoteAddress();
descriptor: ()Ljava/net/SocketAddress;
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/SocketAddress;
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=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.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/SocketAddress;
ifnull 8
7: new java.nio.channels.AlreadyBoundException
dup
invokespecial java.nio.channels.AlreadyBoundException.<init>:()V
athrow
8: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isUnixSocket:()Z
ifeq 11
9: aload 0
aload 0
aload 1
invokevirtual sun.nio.ch.SocketChannelImpl.unixBind:(Ljava/net/SocketAddress;)Ljava/net/SocketAddress;
putfield sun.nio.ch.SocketChannelImpl.localAddress:Ljava/net/SocketAddress;
10: goto 12
11: StackMap locals:
StackMap stack:
aload 0
aload 0
aload 1
invokevirtual sun.nio.ch.SocketChannelImpl.netBind:(Ljava/net/SocketAddress;)Ljava/net/SocketAddress;
putfield sun.nio.ch.SocketChannelImpl.localAddress:Ljava/net/SocketAddress;
12: StackMap locals:
StackMap stack:
aload 2
monitorexit
13: goto 19
StackMap locals:
StackMap stack: java.lang.Throwable
14: aload 2
monitorexit
15: athrow
16: StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress
StackMap stack: java.lang.Throwable
astore 3
17: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
18: aload 3
athrow
19: 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
20: goto 24
StackMap locals:
StackMap stack: java.lang.Throwable
21: astore 4
22: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
23: aload 4
athrow
24: 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
25: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lsun/nio/ch/SocketChannelImpl;
0 26 1 local Ljava/net/SocketAddress;
Exception table:
from to target type
3 13 14 any
14 15 14 any
2 16 16 any
1 21 21 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
local
private java.net.SocketAddress unixBind(java.net.SocketAddress);
descriptor: (Ljava/net/SocketAddress;)Ljava/net/SocketAddress;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: invokestatic sun.nio.ch.UnixDomainSockets.checkPermission:()V
1: aload 1
ifnonnull 3
2: getstatic sun.nio.ch.UnixDomainSockets.UNNAMED:Ljava/net/UnixDomainSocketAddress;
areturn
3: StackMap locals:
StackMap stack:
aload 1
invokestatic sun.nio.ch.UnixDomainSockets.checkAddress:(Ljava/net/SocketAddress;)Ljava/net/UnixDomainSocketAddress;
invokevirtual java.net.UnixDomainSocketAddress.getPath:()Ljava/nio/file/Path;
astore 2
start local 2 4: aload 2
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
invokevirtual java.lang.String.isEmpty:()Z
ifeq 6
5: getstatic sun.nio.ch.UnixDomainSockets.UNNAMED:Ljava/net/UnixDomainSocketAddress;
areturn
6: StackMap locals: java.nio.file.Path
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
aload 2
invokestatic sun.nio.ch.UnixDomainSockets.bind:(Ljava/io/FileDescriptor;Ljava/nio/file/Path;)V
7: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
invokestatic sun.nio.ch.UnixDomainSockets.localAddress:(Ljava/io/FileDescriptor;)Ljava/net/UnixDomainSocketAddress;
areturn
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 local Ljava/net/SocketAddress;
4 8 2 path Ljava/nio/file/Path;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
local
private java.net.SocketAddress netBind(java.net.SocketAddress);
descriptor: (Ljava/net/SocketAddress;)Ljava/net/SocketAddress;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 3
1: new java.net.InetSocketAddress
dup
aload 0
getfield sun.nio.ch.SocketChannelImpl.family:Ljava/net/ProtocolFamily;
invokestatic sun.nio.ch.Net.anyLocalAddress:(Ljava/net/ProtocolFamily;)Ljava/net/InetAddress;
iconst_0
invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
astore 2
start local 2 2: goto 4
end local 2 3: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield sun.nio.ch.SocketChannelImpl.family:Ljava/net/ProtocolFamily;
invokestatic sun.nio.ch.Net.checkAddress:(Ljava/net/SocketAddress;Ljava/net/ProtocolFamily;)Ljava/net/InetSocketAddress;
astore 2
start local 2 4: StackMap locals: java.net.InetSocketAddress
StackMap stack:
invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 3
start local 3 5: aload 3
ifnull 7
6: aload 3
aload 2
invokevirtual java.net.InetSocketAddress.getPort:()I
invokevirtual java.lang.SecurityManager.checkListen:(I)V
7: StackMap locals: java.lang.SecurityManager
StackMap stack:
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.beforeTcpBind:(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
8: aload 0
getfield sun.nio.ch.SocketChannelImpl.family:Ljava/net/ProtocolFamily;
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.nio.ch.Net.bind:(Ljava/net/ProtocolFamily;Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
9: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
invokestatic sun.nio.ch.Net.localAddress:(Ljava/io/FileDescriptor;)Ljava/net/InetSocketAddress;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/nio/ch/SocketChannelImpl;
0 10 1 local Ljava/net/SocketAddress;
2 3 2 isa Ljava/net/InetSocketAddress;
4 10 2 isa Ljava/net/InetSocketAddress;
5 10 3 sm Ljava/lang/SecurityManager;
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.SocketAddress);
descriptor: (ZLjava/net/SocketAddress;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, 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
invokevirtual sun.nio.ch.SocketChannelImpl.isNetSocket:()Z
ifeq 14
aload 0
getfield sun.nio.ch.SocketChannelImpl.localAddress:Ljava/net/SocketAddress;
ifnonnull 14
12: aload 2
checkcast java.net.InetSocketAddress
astore 5
start local 5 13: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
aload 5
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
aload 5
invokevirtual java.net.InetSocketAddress.getPort:()I
invokestatic sun.net.NetHooks.beforeTcpConnect:(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
end local 5 14: StackMap locals:
StackMap stack:
aload 0
aload 2
putfield sun.nio.ch.SocketChannelImpl.remoteAddress:Ljava/net/SocketAddress;
15: iload 1
ifeq 17
16: aload 0
invokestatic sun.nio.ch.NativeThread.current:()J
putfield sun.nio.ch.SocketChannelImpl.readerThread:J
end local 4 17: StackMap locals:
StackMap stack:
aload 3
monitorexit
18: goto 21
StackMap locals:
StackMap stack: java.lang.Throwable
19: aload 3
monitorexit
20: athrow
21: StackMap locals:
StackMap stack:
return
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 blocking Z
0 22 2 sa Ljava/net/SocketAddress;
5 17 4 state I
13 14 5 isa Ljava/net/InetSocketAddress;
Exception table:
from to target type
3 18 19 any
19 20 19 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
blocking
sa
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 13
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 9
4: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isUnixSocket:()Z
ifeq 7
5: aload 0
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
invokestatic sun.nio.ch.UnixDomainSockets.localAddress:(Ljava/io/FileDescriptor;)Ljava/net/UnixDomainSocketAddress;
putfield sun.nio.ch.SocketChannelImpl.localAddress:Ljava/net/SocketAddress;
6: goto 8
7: StackMap locals: java.lang.Object
StackMap stack:
aload 0
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
invokestatic sun.nio.ch.Net.localAddress:(Ljava/io/FileDescriptor;)Ljava/net/InetSocketAddress;
putfield sun.nio.ch.SocketChannelImpl.localAddress:Ljava/net/SocketAddress;
8: StackMap locals:
StackMap stack:
aload 0
iconst_2
putfield sun.nio.ch.SocketChannelImpl.state:I
9: StackMap locals:
StackMap stack:
aload 3
monitorexit
10: goto 13
StackMap locals:
StackMap stack: java.lang.Throwable
11: aload 3
monitorexit
12: athrow
13: StackMap locals:
StackMap stack:
return
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 blocking Z
0 14 2 completed Z
Exception table:
from to target type
3 10 11 any
11 12 11 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
blocking
completed
private java.net.SocketAddress checkRemote(java.net.SocketAddress);
descriptor: (Ljava/net/SocketAddress;)Ljava/net/SocketAddress;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isUnixSocket:()Z
ifeq 3
1: invokestatic sun.nio.ch.UnixDomainSockets.checkPermission:()V
2: aload 1
invokestatic sun.nio.ch.UnixDomainSockets.checkAddress:(Ljava/net/SocketAddress;)Ljava/net/UnixDomainSocketAddress;
areturn
3: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield sun.nio.ch.SocketChannelImpl.family:Ljava/net/ProtocolFamily;
invokestatic sun.nio.ch.Net.checkAddress:(Ljava/net/SocketAddress;Ljava/net/ProtocolFamily;)Ljava/net/InetSocketAddress;
astore 2
start local 2 4: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 3
start local 3 5: aload 3
ifnull 7
6: 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
7: 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 8: aload 4
invokevirtual java.net.InetAddress.isAnyLocalAddress:()Z
ifeq 14
9: aload 2
invokevirtual java.net.InetSocketAddress.getPort:()I
istore 5
start local 5 10: aload 4
instanceof java.net.Inet4Address
ifeq 12
11: new java.net.InetSocketAddress
dup
invokestatic sun.nio.ch.Net.inet4LoopbackAddress:()Ljava/net/InetAddress;
iload 5
invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
areturn
12: StackMap locals: java.net.InetAddress int
StackMap stack:
getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 13
aload 0
getfield sun.nio.ch.SocketChannelImpl.family:Ljava/net/ProtocolFamily;
getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
if_acmpeq 13
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
13: StackMap locals:
StackMap stack:
new java.net.InetSocketAddress
dup
invokestatic sun.nio.ch.Net.inet6LoopbackAddress:()Ljava/net/InetAddress;
iload 5
invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
areturn
end local 5 14: StackMap locals:
StackMap stack:
aload 2
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lsun/nio/ch/SocketChannelImpl;
0 15 1 sa Ljava/net/SocketAddress;
4 15 2 isa Ljava/net/InetSocketAddress;
5 15 3 sm Ljava/lang/SecurityManager;
8 15 4 address Ljava/net/InetAddress;
10 14 5 port I
MethodParameters:
Name Flags
sa
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 0
aload 1
invokevirtual sun.nio.ch.SocketChannelImpl.checkRemote:(Ljava/net/SocketAddress;)Ljava/net/SocketAddress;
astore 2
start local 2 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
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
3: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isBlocking:()Z
istore 3
start local 3 4: iconst_0
istore 4
start local 4 5: aload 0
iload 3
aload 2
invokevirtual sun.nio.ch.SocketChannelImpl.beginConnect:(ZLjava/net/SocketAddress;)V
6: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isUnixSocket:()Z
ifeq 9
7: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
aload 2
invokestatic sun.nio.ch.UnixDomainSockets.connect:(Ljava/io/FileDescriptor;Ljava/net/SocketAddress;)I
istore 5
start local 5 8: goto 10
end local 5 9: StackMap locals: java.net.SocketAddress int int
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.family:Ljava/net/ProtocolFamily;
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
aload 2
invokestatic sun.nio.ch.Net.connect:(Ljava/net/ProtocolFamily;Ljava/io/FileDescriptor;Ljava/net/SocketAddress;)I
istore 5
start local 5 10: StackMap locals: int
StackMap stack:
iload 5
ifle 13
11: iconst_1
istore 4
12: goto 27
StackMap locals:
StackMap stack:
13: iload 3
ifeq 27
14: getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 15
iload 5
i2l
invokestatic sun.nio.ch.IOStatus.okayToRetry:(J)Z
ifne 15
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
15: StackMap locals:
StackMap stack:
iconst_0
istore 6
start local 6 16: goto 19
17: StackMap locals: int
StackMap stack:
aload 0
getstatic sun.nio.ch.Net.POLLOUT:S
invokevirtual sun.nio.ch.SocketChannelImpl.park:(I)V
18: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
invokestatic sun.nio.ch.Net.pollConnectNow:(Ljava/io/FileDescriptor;)Z
istore 6
19: StackMap locals:
StackMap stack:
iload 6
ifne 20
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 17
20: StackMap locals:
StackMap stack:
iload 6
ifeq 21
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifeq 21
iconst_1
goto 22
StackMap locals:
StackMap stack:
21: iconst_0
StackMap locals:
StackMap stack: int
22: istore 4
end local 6 end local 5 23: goto 27
StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress java.net.SocketAddress int int
StackMap stack: java.lang.Throwable
24: astore 7
25: aload 0
iload 3
iload 4
invokevirtual sun.nio.ch.SocketChannelImpl.endConnect:(ZZ)V
26: aload 7
athrow
27: StackMap locals:
StackMap stack:
aload 0
iload 3
iload 4
invokevirtual sun.nio.ch.SocketChannelImpl.endConnect:(ZZ)V
28: iload 4
istore 9
29: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
30: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
31: iload 9
ireturn
end local 4 end local 3 32: StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress java.net.SocketAddress
StackMap stack: java.lang.Throwable
astore 8
33: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
34: aload 8
athrow
35: StackMap locals:
StackMap stack: java.lang.Throwable
astore 10
36: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
37: aload 10
athrow
38: StackMap locals:
StackMap stack: java.io.IOException
astore 3
start local 3 39: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.close:()V
40: aload 3
aload 2
invokestatic sun.net.util.SocketExceptions.of:(Ljava/io/IOException;Ljava/net/SocketAddress;)Ljava/io/IOException;
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 41 0 this Lsun/nio/ch/SocketChannelImpl;
0 41 1 remote Ljava/net/SocketAddress;
1 41 2 sa Ljava/net/SocketAddress;
4 32 3 blocking Z
5 32 4 connected Z
8 9 5 n I
10 23 5 n I
16 23 6 polled Z
39 41 3 ioe Ljava/io/IOException;
Exception table:
from to target type
5 24 24 any
3 29 32 any
2 30 35 any
32 35 35 any
1 31 38 Class java.io.IOException
32 38 38 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
remote
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 13
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 9
4: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isUnixSocket:()Z
ifeq 7
5: aload 0
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
invokestatic sun.nio.ch.UnixDomainSockets.localAddress:(Ljava/io/FileDescriptor;)Ljava/net/UnixDomainSocketAddress;
putfield sun.nio.ch.SocketChannelImpl.localAddress:Ljava/net/SocketAddress;
6: goto 8
7: StackMap locals: java.lang.Object
StackMap stack:
aload 0
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
invokestatic sun.nio.ch.Net.localAddress:(Ljava/io/FileDescriptor;)Ljava/net/InetSocketAddress;
putfield sun.nio.ch.SocketChannelImpl.localAddress:Ljava/net/SocketAddress;
8: StackMap locals:
StackMap stack:
aload 0
iconst_2
putfield sun.nio.ch.SocketChannelImpl.state:I
9: StackMap locals:
StackMap stack:
aload 3
monitorexit
10: goto 13
StackMap locals:
StackMap stack: java.lang.Throwable
11: aload 3
monitorexit
12: athrow
13: StackMap locals:
StackMap stack:
return
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 blocking Z
0 14 2 completed Z
Exception table:
from to target type
3 10 11 any
11 12 11 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: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
invokestatic sun.nio.ch.Net.pollConnectNow:(Ljava/io/FileDescriptor;)Z
istore 3
start local 3 10: iload 1
ifeq 15
11: goto 14
12: StackMap locals: int int int
StackMap stack:
aload 0
getstatic sun.nio.ch.Net.POLLOUT:S
invokevirtual sun.nio.ch.SocketChannelImpl.park:(I)V
13: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
invokestatic sun.nio.ch.Net.pollConnectNow:(Ljava/io/FileDescriptor;)Z
istore 3
14: StackMap locals:
StackMap stack:
iload 3
ifne 15
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 12
15: StackMap locals:
StackMap stack:
iload 3
ifeq 16
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifeq 16
iconst_1
goto 17
StackMap locals:
StackMap stack:
16: iconst_0
StackMap locals:
StackMap stack: int
17: istore 2
end local 3 18: goto 22
StackMap locals: sun.nio.ch.SocketChannelImpl int int
StackMap stack: java.lang.Throwable
19: astore 4
20: aload 0
iload 1
iload 2
invokevirtual sun.nio.ch.SocketChannelImpl.endFinishConnect:(ZZ)V
21: aload 4
athrow
22: StackMap locals:
StackMap stack:
aload 0
iload 1
iload 2
invokevirtual sun.nio.ch.SocketChannelImpl.endFinishConnect:(ZZ)V
23: getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 28
iload 1
ifeq 24
iload 2
ifeq 24
iconst_1
goto 25
StackMap locals:
StackMap stack:
24: iconst_0
StackMap locals:
StackMap stack: int
25: iload 1
ifeq 26
iconst_0
goto 27
StackMap locals:
StackMap stack: int
26: iconst_1
StackMap locals: sun.nio.ch.SocketChannelImpl int int
StackMap stack: int int
27: ixor
ifne 28
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
28: StackMap locals:
StackMap stack:
iload 2
istore 6
29: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
30: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
31: iload 6
ireturn
end local 2 end local 1 32: StackMap locals: sun.nio.ch.SocketChannelImpl
StackMap stack: java.lang.Throwable
astore 5
33: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
34: aload 5
athrow
35: StackMap locals:
StackMap stack: java.lang.Throwable
astore 7
36: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
37: aload 7
athrow
38: StackMap locals:
StackMap stack: java.io.IOException
astore 1
start local 1 39: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.close:()V
40: aload 1
aload 0
getfield sun.nio.ch.SocketChannelImpl.remoteAddress:Ljava/net/SocketAddress;
invokestatic sun.net.util.SocketExceptions.of:(Ljava/io/IOException;Ljava/net/SocketAddress;)Ljava/io/IOException;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 41 0 this Lsun/nio/ch/SocketChannelImpl;
7 32 1 blocking Z
8 32 2 connected Z
10 18 3 polled Z
39 41 1 ioe Ljava/io/IOException;
Exception table:
from to target type
8 19 19 any
2 3 32 any
6 29 32 any
1 4 35 any
6 30 35 any
32 35 35 any
0 5 38 Class java.io.IOException
6 31 38 Class java.io.IOException
32 38 38 Class java.io.IOException
Exceptions:
throws java.io.IOException
private boolean tryClose();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 2
aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
ifeq 1
aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_3
if_icmpeq 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.readerThread:J
lconst_0
lcmp
ifne 6
aload 0
getfield sun.nio.ch.SocketChannelImpl.writerThread:J
lconst_0
lcmp
ifne 6
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isRegistered:()Z
ifne 6
3: aload 0
iconst_4
putfield sun.nio.ch.SocketChannelImpl.state:I
4: getstatic sun.nio.ch.SocketChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
invokevirtual sun.nio.ch.NativeDispatcher.close:(Ljava/io/FileDescriptor;)V
5: iconst_1
ireturn
6: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/nio/ch/SocketChannelImpl;
Exceptions:
throws java.io.IOException
private void tryFinishClose();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.tryClose:()Z
pop
1: goto 3
StackMap locals:
StackMap stack: java.io.IOException
2: pop
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/nio/ch/SocketChannelImpl;
Exception table:
from to target type
0 1 2 Class java.io.IOException
private void implCloseBlockingMode();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 2
aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_3
if_icmplt 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: java.lang.Object
StackMap stack:
aload 0
iconst_3
putfield sun.nio.ch.SocketChannelImpl.state:I
3: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.tryClose:()Z
ifne 12
4: aload 0
getfield sun.nio.ch.SocketChannelImpl.readerThread:J
lstore 2
start local 2 5: aload 0
getfield sun.nio.ch.SocketChannelImpl.writerThread:J
lstore 4
start local 4 6: lload 2
lconst_0
lcmp
ifne 7
lload 4
lconst_0
lcmp
ifeq 12
7: 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
8: lload 2
lconst_0
lcmp
ifeq 10
9: lload 2
invokestatic sun.nio.ch.NativeThread.signal:(J)V
10: StackMap locals:
StackMap stack:
lload 4
lconst_0
lcmp
ifeq 12
11: lload 4
invokestatic sun.nio.ch.NativeThread.signal:(J)V
end local 4 end local 2 12: StackMap locals:
StackMap stack:
aload 1
monitorexit
13: goto 16
StackMap locals:
StackMap stack: java.lang.Throwable
14: aload 1
monitorexit
15: athrow
16: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/nio/ch/SocketChannelImpl;
5 12 2 reader J
6 12 4 writer J
Exception table:
from to target type
1 13 14 any
14 15 14 any
Exceptions:
throws java.io.IOException
private void implCloseNonBlockingMode();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 2
aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_3
if_icmplt 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: sun.nio.ch.SocketChannelImpl top java.lang.Object
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_2
if_icmpne 3
iconst_1
goto 4
StackMap locals:
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: istore 1
start local 1 5: aload 0
iconst_3
putfield sun.nio.ch.SocketChannelImpl.state:I
6: aload 2
monitorexit
7: goto 10
end local 1 StackMap locals:
StackMap stack: java.lang.Throwable
8: aload 2
monitorexit
9: athrow
start local 1 10: StackMap locals: sun.nio.ch.SocketChannelImpl int
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
11: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
12: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
13: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
14: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 2
monitorenter
15: aload 0
getfield sun.nio.ch.SocketChannelImpl.state:I
iconst_3
if_icmpne 24
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.tryClose:()Z
ifne 24
iload 1
ifeq 24
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isRegistered:()Z
ifeq 24
16: getstatic java.net.StandardSocketOptions.SO_LINGER:Ljava/net/SocketOption;
astore 3
start local 3 17: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
getstatic sun.nio.ch.Net.UNSPEC:Ljava/net/ProtocolFamily;
aload 3
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 4
start local 4 18: iload 4
ifeq 24
19: iload 4
ifle 21
20: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
getstatic sun.nio.ch.Net.UNSPEC:Ljava/net/ProtocolFamily;
aload 3
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
21: StackMap locals: java.lang.Object 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 4 end local 3 22: goto 24
StackMap locals: sun.nio.ch.SocketChannelImpl int java.lang.Object
StackMap stack: java.io.IOException
23: pop
24: StackMap locals:
StackMap stack:
aload 2
monitorexit
25: goto 28
StackMap locals:
StackMap stack: java.lang.Throwable
26: aload 2
monitorexit
27: athrow
28: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lsun/nio/ch/SocketChannelImpl;
5 8 1 connected Z
10 29 1 connected Z
17 22 3 opt Ljava/net/SocketOption<Ljava/lang/Integer;>;
18 22 4 interval I
Exception table:
from to target type
1 7 8 any
8 9 8 any
16 22 23 Class java.io.IOException
15 25 26 any
26 27 26 any
Exceptions:
throws java.io.IOException
protected void implCloseSelectableChannel();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, 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:
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isBlocking:()Z
ifeq 4
2: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.implCloseBlockingMode:()V
3: goto 5
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.implCloseNonBlockingMode:()V
5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/nio/ch/SocketChannelImpl;
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_3
if_icmpne 3
2: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.tryFinishClose:()V
3: StackMap locals: java.lang.Object
StackMap stack:
aload 1
monitorexit
4: goto 7
StackMap locals:
StackMap stack: java.lang.Throwable
5: aload 1
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/nio/ch/SocketChannelImpl;
Exception table:
from to target type
1 4 5 any
5 6 5 any
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;
private boolean finishTimedConnect(long);
descriptor: (J)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=8, args_size=2
start local 0 start local 1 0: invokestatic java.lang.System.nanoTime:()J
lstore 3
start local 3 1: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
invokestatic sun.nio.ch.Net.pollConnectNow:(Ljava/io/FileDescriptor;)Z
istore 5
start local 5 2: goto 8
3: StackMap locals: long int
StackMap stack:
lload 1
invokestatic java.lang.System.nanoTime:()J
lload 3
lsub
lsub
lstore 6
start local 6 4: lload 6
lconst_0
lcmp
ifgt 6
5: new java.net.SocketTimeoutException
dup
ldc "Connect timed out"
invokespecial java.net.SocketTimeoutException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: long
StackMap stack:
aload 0
getstatic sun.nio.ch.Net.POLLOUT:S
lload 6
invokevirtual sun.nio.ch.SocketChannelImpl.park:(IJ)V
7: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
invokestatic sun.nio.ch.Net.pollConnectNow:(Ljava/io/FileDescriptor;)Z
istore 5
end local 6 8: StackMap locals:
StackMap stack:
iload 5
ifne 9
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 3
9: StackMap locals:
StackMap stack:
iload 5
ifeq 10
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifeq 10
iconst_1
ireturn
StackMap locals:
StackMap stack:
10: iconst_0
ireturn
end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/nio/ch/SocketChannelImpl;
0 11 1 nanos J
1 11 3 startNanos J
2 11 5 polled Z
4 8 6 remainingNanos J
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
nanos
void blockingConnect(java.net.SocketAddress, long);
descriptor: (Ljava/net/SocketAddress;J)V
flags: (0x0000)
Code:
stack=3, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual sun.nio.ch.SocketChannelImpl.checkRemote:(Ljava/net/SocketAddress;)Ljava/net/SocketAddress;
astore 4
start local 4 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
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
3: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isBlocking:()Z
ifne 5
4: new java.nio.channels.IllegalBlockingModeException
dup
invokespecial java.nio.channels.IllegalBlockingModeException.<init>:()V
athrow
5: StackMap locals: java.net.SocketAddress
StackMap stack:
iconst_0
istore 5
start local 5 6: aload 0
iconst_1
aload 4
invokevirtual sun.nio.ch.SocketChannelImpl.beginConnect:(ZLjava/net/SocketAddress;)V
7: aload 0
iconst_0
invokevirtual sun.nio.ch.SocketChannelImpl.lockedConfigureBlocking:(Z)V
8: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isUnixSocket:()Z
ifeq 11
9: aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
aload 4
invokestatic sun.nio.ch.UnixDomainSockets.connect:(Ljava/io/FileDescriptor;Ljava/net/SocketAddress;)I
istore 6
start local 6 10: goto 12
end local 6 11: StackMap locals: int
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.family:Ljava/net/ProtocolFamily;
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
aload 4
invokestatic sun.nio.ch.Net.connect:(Ljava/net/ProtocolFamily;Ljava/io/FileDescriptor;Ljava/net/SocketAddress;)I
istore 6
start local 6 12: StackMap locals: int
StackMap stack:
iload 6
ifle 13
iconst_1
goto 14
StackMap locals:
StackMap stack:
13: aload 0
lload 2
invokevirtual sun.nio.ch.SocketChannelImpl.finishTimedConnect:(J)Z
StackMap locals:
StackMap stack: int
14: istore 5
end local 6 15: goto 19
StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress long java.net.SocketAddress int
StackMap stack: java.lang.Throwable
16: astore 7
17: aload 0
iconst_1
invokevirtual sun.nio.ch.SocketChannelImpl.tryLockedConfigureBlocking:(Z)Z
pop
18: aload 7
athrow
19: StackMap locals:
StackMap stack:
aload 0
iconst_1
invokevirtual sun.nio.ch.SocketChannelImpl.tryLockedConfigureBlocking:(Z)Z
pop
20: goto 24
StackMap locals:
StackMap stack: java.lang.Throwable
21: astore 8
22: aload 0
iconst_1
iload 5
invokevirtual sun.nio.ch.SocketChannelImpl.endConnect:(ZZ)V
23: aload 8
athrow
24: StackMap locals:
StackMap stack:
aload 0
iconst_1
iload 5
invokevirtual sun.nio.ch.SocketChannelImpl.endConnect:(ZZ)V
end local 5 25: goto 29
StackMap locals: sun.nio.ch.SocketChannelImpl java.net.SocketAddress long java.net.SocketAddress
StackMap stack: java.lang.Throwable
26: astore 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 9
athrow
29: 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
30: goto 34
StackMap locals:
StackMap stack: java.lang.Throwable
31: astore 10
32: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
33: aload 10
athrow
34: 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
35: goto 39
StackMap locals:
StackMap stack: java.io.IOException
36: astore 5
start local 5 37: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.close:()V
38: aload 5
aload 4
invokestatic sun.net.util.SocketExceptions.of:(Ljava/io/IOException;Ljava/net/SocketAddress;)Ljava/io/IOException;
athrow
end local 5 39: StackMap locals:
StackMap stack:
return
end local 4 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 remote Ljava/net/SocketAddress;
0 40 2 nanos J
1 40 4 sa Ljava/net/SocketAddress;
6 25 5 connected Z
10 11 6 n I
12 15 6 n I
37 39 5 ioe Ljava/io/IOException;
Exception table:
from to target type
8 16 16 any
6 21 21 any
3 26 26 any
2 31 31 any
1 35 36 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
remote
nanos
private int tryRead(byte[], int, int);
descriptor: ([BII)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 3
invokestatic sun.nio.ch.Util.getTemporaryDirectBuffer:(I)Ljava/nio/ByteBuffer;
astore 4
start local 4 1: getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 2
aload 4
invokevirtual java.nio.ByteBuffer.position:()I
ifeq 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: java.nio.ByteBuffer
StackMap stack:
getstatic sun.nio.ch.SocketChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
aload 4
checkcast sun.nio.ch.DirectBuffer
invokeinterface sun.nio.ch.DirectBuffer.address:()J
iload 3
invokevirtual sun.nio.ch.NativeDispatcher.read:(Ljava/io/FileDescriptor;JI)I
istore 5
start local 5 3: iload 5
ifle 5
4: aload 4
aload 1
iload 2
iload 5
invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
pop
5: StackMap locals: int
StackMap stack:
iload 5
istore 7
6: aload 4
invokestatic sun.nio.ch.Util.offerFirstTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
7: iload 7
ireturn
end local 5 8: StackMap locals: sun.nio.ch.SocketChannelImpl byte[] int int java.nio.ByteBuffer
StackMap stack: java.lang.Throwable
astore 6
9: aload 4
invokestatic sun.nio.ch.Util.offerFirstTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
10: aload 6
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/nio/ch/SocketChannelImpl;
0 11 1 b [B
0 11 2 off I
0 11 3 len I
1 11 4 dst Ljava/nio/ByteBuffer;
3 8 5 n I
Exception table:
from to target type
2 6 8 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
b
off
len
private int timedRead(byte[], int, int, long);
descriptor: ([BIIJ)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=11, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: invokestatic java.lang.System.nanoTime:()J
lstore 6
start local 6 1: aload 0
aload 1
iload 2
iload 3
invokevirtual sun.nio.ch.SocketChannelImpl.tryRead:([BII)I
istore 8
start local 8 2: goto 8
3: StackMap locals: long int
StackMap stack:
lload 4
invokestatic java.lang.System.nanoTime:()J
lload 6
lsub
lsub
lstore 9
start local 9 4: lload 9
lconst_0
lcmp
ifgt 6
5: new java.net.SocketTimeoutException
dup
ldc "Read timed out"
invokespecial java.net.SocketTimeoutException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: long
StackMap stack:
aload 0
getstatic sun.nio.ch.Net.POLLIN:S
lload 9
invokevirtual sun.nio.ch.SocketChannelImpl.park:(IJ)V
7: aload 0
aload 1
iload 2
iload 3
invokevirtual sun.nio.ch.SocketChannelImpl.tryRead:([BII)I
istore 8
end local 9 8: StackMap locals:
StackMap stack:
iload 8
bipush -2
if_icmpne 9
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 3
9: StackMap locals:
StackMap stack:
iload 8
ireturn
end local 8 end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/nio/ch/SocketChannelImpl;
0 10 1 b [B
0 10 2 off I
0 10 3 len I
0 10 4 nanos J
1 10 6 startNanos J
2 10 8 n I
4 8 9 remainingNanos J
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
b
off
len
nanos
int blockingRead(byte[], int, int, long);
descriptor: ([BIIJ)I
flags: (0x0000)
Code:
stack=6, locals=11, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 2
iload 3
aload 1
arraylength
invokestatic java.util.Objects.checkFromIndexSize:(III)I
pop
1: iload 3
ifne 3
2: iconst_0
ireturn
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
invokevirtual sun.nio.ch.SocketChannelImpl.ensureOpenAndConnected:()V
5: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isBlocking:()Z
ifne 7
6: new java.nio.channels.IllegalBlockingModeException
dup
invokespecial java.nio.channels.IllegalBlockingModeException.<init>:()V
athrow
7: StackMap locals:
StackMap stack:
iconst_0
istore 6
start local 6 8: aload 0
iconst_1
invokevirtual sun.nio.ch.SocketChannelImpl.beginRead:(Z)V
9: aload 0
getfield sun.nio.ch.SocketChannelImpl.connectionReset:Z
ifeq 11
10: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.throwConnectionReset:()V
11: StackMap locals: int
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputClosed:Z
ifeq 20
12: aload 0
iconst_1
iload 6
ifle 13
iconst_1
goto 14
StackMap locals: sun.nio.ch.SocketChannelImpl byte[] int int long int
StackMap stack: sun.nio.ch.SocketChannelImpl int
13: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl byte[] int int long int
StackMap stack: sun.nio.ch.SocketChannelImpl int int
14: invokevirtual sun.nio.ch.SocketChannelImpl.endRead:(ZZ)V
15: iload 6
ifgt 18
aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputClosed:Z
ifeq 18
16: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
17: iconst_m1
ireturn
18: 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
19: iconst_m1
ireturn
20: StackMap locals:
StackMap stack:
lload 4
lconst_0
lcmp
ifle 29
21: aload 0
iconst_0
invokevirtual sun.nio.ch.SocketChannelImpl.lockedConfigureBlocking:(Z)V
22: aload 0
aload 1
iload 2
iload 3
lload 4
invokevirtual sun.nio.ch.SocketChannelImpl.timedRead:([BIIJ)I
istore 6
23: goto 27
StackMap locals:
StackMap stack: java.lang.Throwable
24: astore 7
25: aload 0
iconst_1
invokevirtual sun.nio.ch.SocketChannelImpl.tryLockedConfigureBlocking:(Z)Z
pop
26: aload 7
athrow
27: StackMap locals:
StackMap stack:
aload 0
iconst_1
invokevirtual sun.nio.ch.SocketChannelImpl.tryLockedConfigureBlocking:(Z)Z
pop
28: goto 52
29: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
iload 3
invokevirtual sun.nio.ch.SocketChannelImpl.tryRead:([BII)I
istore 6
30: goto 33
31: StackMap locals:
StackMap stack:
aload 0
getstatic sun.nio.ch.Net.POLLIN:S
invokevirtual sun.nio.ch.SocketChannelImpl.park:(I)V
32: aload 0
aload 1
iload 2
iload 3
invokevirtual sun.nio.ch.SocketChannelImpl.tryRead:([BII)I
istore 6
33: StackMap locals:
StackMap stack:
iload 6
i2l
invokestatic sun.nio.ch.IOStatus.okayToRetry:(J)Z
ifeq 52
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 31
34: goto 52
StackMap locals:
StackMap stack: sun.net.ConnectionResetException
35: pop
36: aload 0
iconst_1
putfield sun.nio.ch.SocketChannelImpl.connectionReset:Z
37: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.throwConnectionReset:()V
38: aload 0
iconst_1
iload 6
ifle 39
iconst_1
goto 40
StackMap locals: sun.nio.ch.SocketChannelImpl byte[] int int long int
StackMap stack: sun.nio.ch.SocketChannelImpl int
39: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl byte[] int int long int
StackMap stack: sun.nio.ch.SocketChannelImpl int int
40: invokevirtual sun.nio.ch.SocketChannelImpl.endRead:(ZZ)V
41: iload 6
ifgt 58
aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputClosed:Z
ifeq 58
42: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
43: iconst_m1
ireturn
44: StackMap locals:
StackMap stack: java.lang.Throwable
astore 8
45: aload 0
iconst_1
iload 6
ifle 46
iconst_1
goto 47
StackMap locals: sun.nio.ch.SocketChannelImpl byte[] int int long int top java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl int
46: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl byte[] int int long int top java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl int int
47: invokevirtual sun.nio.ch.SocketChannelImpl.endRead:(ZZ)V
48: iload 6
ifgt 51
aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputClosed:Z
ifeq 51
49: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
50: iconst_m1
ireturn
51: StackMap locals:
StackMap stack:
aload 8
athrow
52: StackMap locals: sun.nio.ch.SocketChannelImpl byte[] int int long int
StackMap stack:
aload 0
iconst_1
iload 6
ifle 53
iconst_1
goto 54
StackMap locals: sun.nio.ch.SocketChannelImpl byte[] int int long int
StackMap stack: sun.nio.ch.SocketChannelImpl int
53: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl byte[] int int long int
StackMap stack: sun.nio.ch.SocketChannelImpl int int
54: invokevirtual sun.nio.ch.SocketChannelImpl.endRead:(ZZ)V
55: iload 6
ifgt 58
aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputClosed:Z
ifeq 58
56: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
57: iconst_m1
ireturn
58: StackMap locals:
StackMap stack:
getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 59
iload 6
ifgt 59
iload 6
iconst_m1
if_icmpeq 59
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
59: StackMap locals:
StackMap stack:
iload 6
istore 10
60: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
61: iload 10
ireturn
end local 6 62: StackMap locals: sun.nio.ch.SocketChannelImpl byte[] int int long
StackMap stack: java.lang.Throwable
astore 9
63: aload 0
getfield sun.nio.ch.SocketChannelImpl.readLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
64: aload 9
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 65 0 this Lsun/nio/ch/SocketChannelImpl;
0 65 1 b [B
0 65 2 off I
0 65 3 len I
0 65 4 nanos J
8 62 6 n I
Exception table:
from to target type
22 24 24 any
8 12 35 Class sun.net.ConnectionResetException
20 34 35 Class sun.net.ConnectionResetException
8 12 44 any
20 38 44 any
4 16 62 any
20 42 62 any
44 49 62 any
51 56 62 any
58 60 62 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
b
off
len
nanos
private int tryWrite(byte[], int, int);
descriptor: ([BII)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 3
invokestatic sun.nio.ch.Util.getTemporaryDirectBuffer:(I)Ljava/nio/ByteBuffer;
astore 4
start local 4 1: getstatic sun.nio.ch.SocketChannelImpl.$assertionsDisabled:Z
ifne 2
aload 4
invokevirtual java.nio.ByteBuffer.position:()I
ifeq 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 4
aload 1
iload 2
iload 3
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
3: getstatic sun.nio.ch.SocketChannelImpl.nd:Lsun/nio/ch/NativeDispatcher;
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
aload 4
checkcast sun.nio.ch.DirectBuffer
invokeinterface sun.nio.ch.DirectBuffer.address:()J
iload 3
invokevirtual sun.nio.ch.NativeDispatcher.write:(Ljava/io/FileDescriptor;JI)I
istore 6
4: aload 4
invokestatic sun.nio.ch.Util.offerFirstTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
5: iload 6
ireturn
6: StackMap locals:
StackMap stack: java.lang.Throwable
astore 5
7: aload 4
invokestatic sun.nio.ch.Util.offerFirstTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
8: aload 5
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/nio/ch/SocketChannelImpl;
0 9 1 b [B
0 9 2 off I
0 9 3 len I
1 9 4 src Ljava/nio/ByteBuffer;
Exception table:
from to target type
2 4 6 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
b
off
len
void blockingWriteFully(byte[], int, int);
descriptor: ([BII)V
flags: (0x0000)
Code:
stack=4, locals=10, 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: iload 3
ifne 3
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
4: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.ensureOpenAndConnected:()V
5: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isBlocking:()Z
ifne 7
6: new java.nio.channels.IllegalBlockingModeException
dup
invokespecial java.nio.channels.IllegalBlockingModeException.<init>:()V
athrow
7: StackMap locals:
StackMap stack:
iload 2
istore 4
start local 4 8: iload 2
iload 3
iadd
istore 5
start local 5 9: aload 0
iconst_1
invokevirtual sun.nio.ch.SocketChannelImpl.beginWrite:(Z)V
10: goto 19
11: StackMap locals: int int
StackMap stack:
iload 5
iload 4
isub
istore 6
start local 6 12: aload 0
aload 1
iload 4
iload 6
invokevirtual sun.nio.ch.SocketChannelImpl.tryWrite:([BII)I
istore 7
start local 7 13: goto 16
14: StackMap locals: int int
StackMap stack:
aload 0
getstatic sun.nio.ch.Net.POLLOUT:S
invokevirtual sun.nio.ch.SocketChannelImpl.park:(I)V
15: aload 0
aload 1
iload 4
iload 6
invokevirtual sun.nio.ch.SocketChannelImpl.tryWrite:([BII)I
istore 7
16: StackMap locals:
StackMap stack:
iload 7
i2l
invokestatic sun.nio.ch.IOStatus.okayToRetry:(J)Z
ifeq 17
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 14
17: StackMap locals:
StackMap stack:
iload 7
ifle 19
18: iload 4
iload 7
iadd
istore 4
end local 7 end local 6 19: StackMap locals:
StackMap stack:
iload 4
iload 5
if_icmpge 26
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isOpen:()Z
ifne 11
20: goto 26
StackMap locals:
StackMap stack: java.lang.Throwable
21: astore 8
22: aload 0
iconst_1
iload 4
iload 5
if_icmplt 23
iconst_1
goto 24
StackMap locals: sun.nio.ch.SocketChannelImpl byte[] int int int int top top java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl int
23: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl byte[] int int int int top top java.lang.Throwable
StackMap stack: sun.nio.ch.SocketChannelImpl int int
24: invokevirtual sun.nio.ch.SocketChannelImpl.endWrite:(ZZ)V
25: aload 8
athrow
26: StackMap locals: sun.nio.ch.SocketChannelImpl byte[] int int int int
StackMap stack:
aload 0
iconst_1
iload 4
iload 5
if_icmplt 27
iconst_1
goto 28
StackMap locals: sun.nio.ch.SocketChannelImpl byte[] int int int int
StackMap stack: sun.nio.ch.SocketChannelImpl int
27: iconst_0
StackMap locals: sun.nio.ch.SocketChannelImpl byte[] int int int int
StackMap stack: sun.nio.ch.SocketChannelImpl int int
28: invokevirtual sun.nio.ch.SocketChannelImpl.endWrite:(ZZ)V
end local 5 end local 4 29: goto 33
StackMap locals: sun.nio.ch.SocketChannelImpl byte[] int int
StackMap stack: java.lang.Throwable
30: astore 9
31: aload 0
getfield sun.nio.ch.SocketChannelImpl.writeLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
32: aload 9
athrow
33: 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
34: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lsun/nio/ch/SocketChannelImpl;
0 35 1 b [B
0 35 2 off I
0 35 3 len I
8 29 4 pos I
9 29 5 end I
12 19 6 size I
13 19 7 n I
Exception table:
from to target type
9 21 21 any
4 30 30 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
b
off
len
int available();
descriptor: ()I
flags: (0x0000)
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SocketChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.ensureOpenAndConnected:()V
2: aload 0
getfield sun.nio.ch.SocketChannelImpl.isInputClosed:Z
ifeq 5
3: aload 1
monitorexit
4: iconst_0
ireturn
5: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield sun.nio.ch.SocketChannelImpl.fd:Ljava/io/FileDescriptor;
invokestatic sun.nio.ch.Net.available:(Ljava/io/FileDescriptor;)I
aload 1
monitorexit
6: ireturn
7: StackMap locals:
StackMap stack: java.lang.Throwable
aload 1
monitorexit
8: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/nio/ch/SocketChannelImpl;
Exception table:
from to target type
1 4 7 any
5 6 7 any
7 8 7 any
Exceptions:
throws java.io.IOException
public boolean translateReadyOps(int, int, sun.nio.ch.SelectionKeyImpl);
descriptor: (IILsun/nio/ch/SelectionKeyImpl;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=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 30
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/SocketAddress;
astore 3
start local 3 17: aload 3
ifnull 23
18: aload 1
ldc " local="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
19: aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.isUnixSocket:()Z
ifeq 22
20: aload 1
aload 3
invokestatic sun.nio.ch.UnixDomainSockets.getRevealedLocalAddressAsString:(Ljava/net/SocketAddress;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
21: goto 23
22: StackMap locals: java.net.SocketAddress
StackMap stack:
aload 1
aload 3
invokestatic sun.nio.ch.Net.getRevealedLocalAddressAsString:(Ljava/net/SocketAddress;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
23: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.remoteAddress:()Ljava/net/SocketAddress;
ifnull 26
24: aload 1
ldc " remote="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
25: aload 1
aload 0
invokevirtual sun.nio.ch.SocketChannelImpl.remoteAddress:()Ljava/net/SocketAddress;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 3 26: StackMap locals:
StackMap stack:
aload 2
monitorexit
27: goto 30
StackMap locals:
StackMap stack: java.lang.Throwable
28: aload 2
monitorexit
29: athrow
30: StackMap locals:
StackMap stack:
aload 1
bipush 93
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
31: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lsun/nio/ch/SocketChannelImpl;
1 32 1 sb Ljava/lang/StringBuilder;
17 26 3 addr Ljava/net/SocketAddress;
Exception table:
from to target type
6 27 28 any
28 29 28 any
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