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