public class sun.nio.ch.SctpMultiChannelImpl extends com.sun.nio.sctp.SctpMultiChannel implements sun.nio.ch.SelChImpl
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.nio.ch.SctpMultiChannelImpl
super_class: com.sun.nio.sctp.SctpMultiChannel
{
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 receiverThread;
descriptor: J
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile long senderThread;
descriptor: J
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final java.lang.Object receiveLock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Object sendLock;
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 sun.nio.ch.SctpMultiChannelImpl$ChannelState state;
descriptor: Lsun/nio/ch/SctpMultiChannelImpl$ChannelState;
flags: (0x0002) ACC_PRIVATE
int port;
descriptor: I
flags: (0x0000)
private java.util.HashSet<java.net.InetSocketAddress> localAddresses;
descriptor: Ljava/util/HashSet;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/HashSet<Ljava/net/InetSocketAddress;>;
private boolean wildcard;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.util.HashMap<java.net.SocketAddress, com.sun.nio.sctp.Association> addressMap;
descriptor: Ljava/util/HashMap;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/HashMap<Ljava/net/SocketAddress;Lcom/sun/nio/sctp/Association;>;
private java.util.HashMap<com.sun.nio.sctp.Association, java.util.Set<java.net.SocketAddress>> associationMap;
descriptor: Ljava/util/HashMap;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/HashMap<Lcom/sun/nio/sctp/Association;Ljava/util/Set<Ljava/net/SocketAddress;>;>;
private final java.lang.ThreadLocal<com.sun.nio.sctp.Association> associationToRemove;
descriptor: Ljava/lang/ThreadLocal;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/lang/ThreadLocal<Lcom/sun/nio/sctp/Association;>;
private final java.lang.ThreadLocal<java.lang.Boolean> receiveInvoked;
descriptor: Ljava/lang/ThreadLocal;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/lang/ThreadLocal<Ljava/lang/Boolean;>;
private sun.nio.ch.SctpMultiChannelImpl$InternalNotificationHandler internalNotificationHandler;
descriptor: Lsun/nio/ch/SctpMultiChannelImpl$InternalNotificationHandler;
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=3, locals=0, args_size=0
0: ldc Lsun/nio/ch/SctpMultiChannelImpl;
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.SctpMultiChannelImpl.$assertionsDisabled:Z
3: invokestatic sun.nio.ch.IOUtil.load:()V
4: new sun.security.action.LoadLibraryAction
dup
ldc "sctp"
invokespecial sun.security.action.LoadLibraryAction.<init>:(Ljava/lang/String;)V
5: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
pop
6: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.nio.channels.spi.SelectorProvider);
descriptor: (Ljava/nio/channels/spi/SelectorProvider;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial com.sun.nio.sctp.SctpMultiChannel.<init>:(Ljava/nio/channels/spi/SelectorProvider;)V
1: aload 0
lconst_0
putfield sun.nio.ch.SctpMultiChannelImpl.receiverThread:J
2: aload 0
lconst_0
putfield sun.nio.ch.SctpMultiChannelImpl.senderThread:J
3: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.nio.ch.SctpMultiChannelImpl.receiveLock:Ljava/lang/Object;
4: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.nio.ch.SctpMultiChannelImpl.sendLock:Ljava/lang/Object;
5: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.nio.ch.SctpMultiChannelImpl.stateLock:Ljava/lang/Object;
6: aload 0
getstatic sun.nio.ch.SctpMultiChannelImpl$ChannelState.UNINITIALIZED:Lsun/nio/ch/SctpMultiChannelImpl$ChannelState;
putfield sun.nio.ch.SctpMultiChannelImpl.state:Lsun/nio/ch/SctpMultiChannelImpl$ChannelState;
7: aload 0
iconst_m1
putfield sun.nio.ch.SctpMultiChannelImpl.port:I
8: aload 0
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putfield sun.nio.ch.SctpMultiChannelImpl.localAddresses:Ljava/util/HashSet;
9: aload 0
10: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield sun.nio.ch.SctpMultiChannelImpl.addressMap:Ljava/util/HashMap;
11: aload 0
12: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield sun.nio.ch.SctpMultiChannelImpl.associationMap:Ljava/util/HashMap;
13: aload 0
14: new sun.nio.ch.SctpMultiChannelImpl$1
dup
aload 0
invokespecial sun.nio.ch.SctpMultiChannelImpl$1.<init>:(Lsun/nio/ch/SctpMultiChannelImpl;)V
putfield sun.nio.ch.SctpMultiChannelImpl.associationToRemove:Ljava/lang/ThreadLocal;
15: aload 0
16: new sun.nio.ch.SctpMultiChannelImpl$2
dup
aload 0
invokespecial sun.nio.ch.SctpMultiChannelImpl$2.<init>:(Lsun/nio/ch/SctpMultiChannelImpl;)V
putfield sun.nio.ch.SctpMultiChannelImpl.receiveInvoked:Ljava/lang/ThreadLocal;
17: aload 0
18: new sun.nio.ch.SctpMultiChannelImpl$InternalNotificationHandler
dup
aload 0
invokespecial sun.nio.ch.SctpMultiChannelImpl$InternalNotificationHandler.<init>:(Lsun/nio/ch/SctpMultiChannelImpl;)V
putfield sun.nio.ch.SctpMultiChannelImpl.internalNotificationHandler:Lsun/nio/ch/SctpMultiChannelImpl$InternalNotificationHandler;
19: aload 0
iconst_0
invokestatic sun.nio.ch.SctpNet.socket:(Z)Ljava/io/FileDescriptor;
putfield sun.nio.ch.SctpMultiChannelImpl.fd:Ljava/io/FileDescriptor;
20: aload 0
aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.fd:Ljava/io/FileDescriptor;
invokestatic sun.nio.ch.IOUtil.fdVal:(Ljava/io/FileDescriptor;)I
putfield sun.nio.ch.SctpMultiChannelImpl.fdVal:I
21: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lsun/nio/ch/SctpMultiChannelImpl;
0 22 1 provider Ljava/nio/channels/spi/SelectorProvider;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
provider
public com.sun.nio.sctp.SctpMultiChannel bind(java.net.SocketAddress, int);
descriptor: (Ljava/net/SocketAddress;I)Lcom/sun/nio/sctp/SctpMultiChannel;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.receiveLock:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.sendLock:Ljava/lang/Object;
dup
astore 4
monitorenter
2: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 5
monitorenter
3: aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.ensureOpen:()V
4: aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.isBound:()Z
ifeq 6
5: invokestatic sun.nio.ch.SctpNet.throwAlreadyBoundException:()Z
pop
6: StackMap locals: java.lang.Object java.lang.Object java.lang.Object
StackMap stack:
aload 1
ifnonnull 8
7: new java.net.InetSocketAddress
dup
iconst_0
invokespecial java.net.InetSocketAddress.<init>:(I)V
goto 9
StackMap locals:
StackMap stack:
8: aload 1
invokestatic sun.nio.ch.Net.checkAddress:(Ljava/net/SocketAddress;)Ljava/net/InetSocketAddress;
9: StackMap locals:
StackMap stack: java.net.InetSocketAddress
astore 6
start local 6 10: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 7
start local 7 11: aload 7
ifnull 13
12: aload 7
aload 6
invokevirtual java.net.InetSocketAddress.getPort:()I
invokevirtual java.lang.SecurityManager.checkListen:(I)V
13: StackMap locals: java.net.InetSocketAddress java.lang.SecurityManager
StackMap stack:
aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.fd:Ljava/io/FileDescriptor;
aload 6
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
aload 6
invokevirtual java.net.InetSocketAddress.getPort:()I
invokestatic sun.nio.ch.Net.bind:(Ljava/io/FileDescriptor;Ljava/net/InetAddress;I)V
14: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.fd:Ljava/io/FileDescriptor;
invokestatic sun.nio.ch.Net.localAddress:(Ljava/io/FileDescriptor;)Ljava/net/InetSocketAddress;
astore 8
start local 8 15: aload 0
aload 8
invokevirtual java.net.InetSocketAddress.getPort:()I
putfield sun.nio.ch.SctpMultiChannelImpl.port:I
16: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.localAddresses:Ljava/util/HashSet;
aload 6
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
17: aload 6
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.isAnyLocalAddress:()Z
ifeq 19
18: aload 0
iconst_1
putfield sun.nio.ch.SctpMultiChannelImpl.wildcard:Z
19: StackMap locals: java.net.InetSocketAddress
StackMap stack:
aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.fdVal:I
iload 2
iconst_1
if_icmpge 20
bipush 50
goto 21
StackMap locals:
StackMap stack: int
20: iload 2
StackMap locals: sun.nio.ch.SctpMultiChannelImpl java.net.SocketAddress int java.lang.Object java.lang.Object java.lang.Object java.net.InetSocketAddress java.lang.SecurityManager java.net.InetSocketAddress
StackMap stack: int int
21: invokestatic sun.nio.ch.SctpNet.listen:(II)V
end local 8 end local 7 end local 6 22: aload 5
monitorexit
23: goto 26
StackMap locals: sun.nio.ch.SctpMultiChannelImpl java.net.SocketAddress int java.lang.Object java.lang.Object java.lang.Object
StackMap stack: java.lang.Throwable
24: aload 5
monitorexit
25: athrow
26: StackMap locals:
StackMap stack:
aload 4
monitorexit
27: goto 30
StackMap locals:
StackMap stack: java.lang.Throwable
28: aload 4
monitorexit
29: athrow
30: StackMap locals:
StackMap stack:
aload 3
monitorexit
31: goto 34
StackMap locals:
StackMap stack: java.lang.Throwable
32: aload 3
monitorexit
33: athrow
34: StackMap locals:
StackMap stack:
aload 0
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lsun/nio/ch/SctpMultiChannelImpl;
0 35 1 local Ljava/net/SocketAddress;
0 35 2 backlog I
10 22 6 isa Ljava/net/InetSocketAddress;
11 22 7 sm Ljava/lang/SecurityManager;
15 22 8 boundIsa Ljava/net/InetSocketAddress;
Exception table:
from to target type
3 23 24 any
24 25 24 any
2 27 28 any
28 29 28 any
1 31 32 any
32 33 32 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
local
backlog
public com.sun.nio.sctp.SctpMultiChannel bindAddress(java.net.InetAddress);
descriptor: (Ljava/net/InetAddress;)Lcom/sun/nio/sctp/SctpMultiChannel;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_1
invokevirtual sun.nio.ch.SctpMultiChannelImpl.bindUnbindAddress:(Ljava/net/InetAddress;Z)Lcom/sun/nio/sctp/SctpMultiChannel;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/SctpMultiChannelImpl;
0 1 1 address Ljava/net/InetAddress;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
address
public com.sun.nio.sctp.SctpMultiChannel unbindAddress(java.net.InetAddress);
descriptor: (Ljava/net/InetAddress;)Lcom/sun/nio/sctp/SctpMultiChannel;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.bindUnbindAddress:(Ljava/net/InetAddress;Z)Lcom/sun/nio/sctp/SctpMultiChannel;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/SctpMultiChannelImpl;
0 1 1 address Ljava/net/InetAddress;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
address
private com.sun.nio.sctp.SctpMultiChannel bindUnbindAddress(java.net.InetAddress, boolean);
descriptor: (Ljava/net/InetAddress;Z)Lcom/sun/nio/sctp/SctpMultiChannel;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 2
1: new java.lang.IllegalArgumentException
dup
invokespecial java.lang.IllegalArgumentException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.receiveLock:Ljava/lang/Object;
dup
astore 3
monitorenter
3: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.sendLock:Ljava/lang/Object;
dup
astore 4
monitorenter
4: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 5
monitorenter
5: aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.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 java.lang.Object java.lang.Object
StackMap stack:
aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.isBound:()Z
ifne 9
8: new java.nio.channels.NotYetBoundException
dup
invokespecial java.nio.channels.NotYetBoundException.<init>:()V
athrow
9: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.wildcard:Z
ifeq 13
10: new java.lang.IllegalStateException
dup
11: ldc "Cannot add or remove addresses from a channel that is bound to the wildcard address"
12: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.net.InetAddress.isAnyLocalAddress:()Z
ifeq 17
14: new java.lang.IllegalArgumentException
dup
15: ldc "Cannot add or remove the wildcard address"
16: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
17: StackMap locals:
StackMap stack:
iload 2
ifeq 24
18: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.localAddresses:Ljava/util/HashSet;
invokevirtual java.util.HashSet.iterator:()Ljava/util/Iterator;
astore 7
goto 22
StackMap locals: sun.nio.ch.SctpMultiChannelImpl java.net.InetAddress int java.lang.Object java.lang.Object java.lang.Object top java.util.Iterator
StackMap stack:
19: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.net.InetSocketAddress
astore 6
start local 6 20: aload 6
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
aload 1
invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
ifeq 22
21: invokestatic sun.nio.ch.SctpNet.throwAlreadyBoundException:()Z
pop
end local 6 22: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 19
23: goto 35
24: StackMap locals: sun.nio.ch.SctpMultiChannelImpl java.net.InetAddress int java.lang.Object java.lang.Object java.lang.Object
StackMap stack:
aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.localAddresses:Ljava/util/HashSet;
invokevirtual java.util.HashSet.size:()I
iconst_1
if_icmpgt 26
25: new com.sun.nio.sctp.IllegalUnbindException
dup
ldc "Cannot remove address from a channel with only one address bound"
invokespecial com.sun.nio.sctp.IllegalUnbindException.<init>:(Ljava/lang/String;)V
athrow
26: StackMap locals:
StackMap stack:
iconst_0
istore 6
start local 6 27: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.localAddresses:Ljava/util/HashSet;
invokevirtual java.util.HashSet.iterator:()Ljava/util/Iterator;
astore 8
goto 32
StackMap locals: sun.nio.ch.SctpMultiChannelImpl java.net.InetAddress int java.lang.Object java.lang.Object java.lang.Object int top java.util.Iterator
StackMap stack:
28: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.net.InetSocketAddress
astore 7
start local 7 29: aload 7
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
aload 1
invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
ifeq 32
30: iconst_1
istore 6
31: goto 33
end local 7 32: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 28
33: StackMap locals: sun.nio.ch.SctpMultiChannelImpl java.net.InetAddress int java.lang.Object java.lang.Object java.lang.Object int
StackMap stack:
iload 6
ifne 35
34: new com.sun.nio.sctp.IllegalUnbindException
dup
ldc "Cannot remove address from a channel that is not bound to that address"
invokespecial com.sun.nio.sctp.IllegalUnbindException.<init>:(Ljava/lang/String;)V
athrow
end local 6 35: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.fdVal:I
iconst_1
anewarray java.net.InetAddress
dup
iconst_0
aload 1
aastore
aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.port:I
iload 2
invokestatic sun.nio.ch.SctpNet.bindx:(I[Ljava/net/InetAddress;IZ)V
36: iload 2
ifeq 38
37: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.localAddresses:Ljava/util/HashSet;
new java.net.InetSocketAddress
dup
aload 1
aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.port:I
invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
goto 44
38: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.localAddresses:Ljava/util/HashSet;
invokevirtual java.util.HashSet.iterator:()Ljava/util/Iterator;
astore 7
goto 43
StackMap locals: sun.nio.ch.SctpMultiChannelImpl java.net.InetAddress int java.lang.Object java.lang.Object java.lang.Object top java.util.Iterator
StackMap stack:
39: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.net.InetSocketAddress
astore 6
start local 6 40: aload 6
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
aload 1
invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
ifeq 43
41: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.localAddresses:Ljava/util/HashSet;
aload 6
invokevirtual java.util.HashSet.remove:(Ljava/lang/Object;)Z
pop
42: goto 44
end local 6 43: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 39
44: StackMap locals: sun.nio.ch.SctpMultiChannelImpl java.net.InetAddress int java.lang.Object java.lang.Object java.lang.Object
StackMap stack:
aload 5
monitorexit
45: goto 48
StackMap locals:
StackMap stack: java.lang.Throwable
46: aload 5
monitorexit
47: athrow
48: StackMap locals:
StackMap stack:
aload 4
monitorexit
49: goto 52
StackMap locals:
StackMap stack: java.lang.Throwable
50: aload 4
monitorexit
51: athrow
52: StackMap locals:
StackMap stack:
aload 3
monitorexit
53: goto 56
StackMap locals:
StackMap stack: java.lang.Throwable
54: aload 3
monitorexit
55: athrow
56: StackMap locals:
StackMap stack:
aload 0
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 57 0 this Lsun/nio/ch/SctpMultiChannelImpl;
0 57 1 address Ljava/net/InetAddress;
0 57 2 add Z
20 22 6 addr Ljava/net/InetSocketAddress;
27 35 6 foundAddress Z
29 32 7 addr Ljava/net/InetSocketAddress;
40 43 6 addr Ljava/net/InetSocketAddress;
Exception table:
from to target type
5 45 46 any
46 47 46 any
4 49 50 any
50 51 50 any
3 53 54 any
54 55 54 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
address
add
public java.util.Set<com.sun.nio.sctp.Association> associations();
descriptor: ()Ljava/util/Set;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.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.SctpMultiChannelImpl.isBound:()Z
ifne 5
4: new java.nio.channels.NotYetBoundException
dup
invokespecial java.nio.channels.NotYetBoundException.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.associationMap:Ljava/util/HashMap;
invokevirtual java.util.HashMap.keySet:()Ljava/util/Set;
invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
aload 1
monitorexit
6: areturn
7: StackMap locals:
StackMap stack: java.lang.Throwable
aload 1
monitorexit
8: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/nio/ch/SctpMultiChannelImpl;
Exception table:
from to target type
1 6 7 any
7 8 7 any
Exceptions:
throws java.nio.channels.ClosedChannelException, java.nio.channels.NotYetBoundException
Signature: ()Ljava/util/Set<Lcom/sun/nio/sctp/Association;>;
private boolean isBound();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.port:I
iconst_m1
if_icmpne 2
iconst_0
goto 3
StackMap locals: java.lang.Object
StackMap stack:
2: iconst_1
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/SctpMultiChannelImpl;
Exception table:
from to target type
1 4 5 any
5 6 5 any
private void ensureOpen();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.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 1
monitorexit
4: goto 7
StackMap locals:
StackMap stack: java.lang.Throwable
5: aload 1
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/nio/ch/SctpMultiChannelImpl;
Exception table:
from to target type
1 4 5 any
5 6 5 any
Exceptions:
throws java.io.IOException
private void receiverCleanup();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
lconst_0
putfield sun.nio.ch.SctpMultiChannelImpl.receiverThread:J
2: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.state:Lsun/nio/ch/SctpMultiChannelImpl$ChannelState;
getstatic sun.nio.ch.SctpMultiChannelImpl$ChannelState.KILLPENDING:Lsun/nio/ch/SctpMultiChannelImpl$ChannelState;
if_acmpne 4
3: aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.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/SctpMultiChannelImpl;
Exception table:
from to target type
1 5 6 any
6 7 6 any
Exceptions:
throws java.io.IOException
private void senderCleanup();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
lconst_0
putfield sun.nio.ch.SctpMultiChannelImpl.senderThread:J
2: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.state:Lsun/nio/ch/SctpMultiChannelImpl$ChannelState;
getstatic sun.nio.ch.SctpMultiChannelImpl$ChannelState.KILLPENDING:Lsun/nio/ch/SctpMultiChannelImpl$ChannelState;
if_acmpne 4
3: aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.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/SctpMultiChannelImpl;
Exception table:
from to target type
1 5 6 any
6 7 6 any
Exceptions:
throws java.io.IOException
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.SctpMultiChannelImpl.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/SctpMultiChannelImpl;
0 2 1 block Z
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
block
public void implCloseSelectableChannel();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.fdVal:I
invokestatic sun.nio.ch.SctpNet.preClose:(I)V
2: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.receiverThread:J
lconst_0
lcmp
ifeq 4
3: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.receiverThread:J
invokestatic sun.nio.ch.NativeThread.signal:(J)V
4: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.senderThread:J
lconst_0
lcmp
ifeq 6
5: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.senderThread:J
invokestatic sun.nio.ch.NativeThread.signal:(J)V
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.isRegistered:()Z
ifne 8
7: aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.kill:()V
8: StackMap locals:
StackMap stack:
aload 1
monitorexit
9: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
10: aload 1
monitorexit
11: athrow
12: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/nio/ch/SctpMultiChannelImpl;
Exception table:
from to target type
1 9 10 any
10 11 10 any
Exceptions:
throws java.io.IOException
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.SctpMultiChannelImpl.fd:Ljava/io/FileDescriptor;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/SctpMultiChannelImpl;
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.SctpMultiChannelImpl.fdVal:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/SctpMultiChannelImpl;
private boolean translateReadyOps(int, int, sun.nio.ch.SelectionKeyImpl);
descriptor: (IILsun/nio/ch/SelectionKeyImpl;)Z
flags: (0x0002) ACC_PRIVATE
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 10
6: iload 4
istore 6
7: aload 3
iload 6
invokevirtual sun.nio.ch.SelectionKeyImpl.nioReadyOps:(I)V
8: iload 6
iload 5
iconst_m1
ixor
iand
ifeq 9
iconst_1
ireturn
StackMap locals:
StackMap stack:
9: iconst_0
ireturn
10: StackMap locals:
StackMap stack:
iload 1
getstatic sun.nio.ch.Net.POLLIN:S
iand
ifeq 13
11: iload 4
iconst_1
iand
ifeq 13
12: iload 6
iconst_1
ior
istore 6
13: StackMap locals:
StackMap stack:
iload 1
getstatic sun.nio.ch.Net.POLLOUT:S
iand
ifeq 16
14: iload 4
iconst_4
iand
ifeq 16
15: iload 6
iconst_4
ior
istore 6
16: StackMap locals:
StackMap stack:
aload 3
iload 6
invokevirtual sun.nio.ch.SelectionKeyImpl.nioReadyOps:(I)V
17: iload 6
iload 5
iconst_m1
ixor
iand
ifeq 18
iconst_1
ireturn
StackMap locals:
StackMap stack:
18: 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 19 0 this Lsun/nio/ch/SctpMultiChannelImpl;
0 19 1 ops I
0 19 2 initialOps I
0 19 3 sk Lsun/nio/ch/SelectionKeyImpl;
1 19 4 intOps I
2 19 5 oldOps I
3 19 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.SctpMultiChannelImpl.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/SctpMultiChannelImpl;
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.SctpMultiChannelImpl.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/SctpMultiChannelImpl;
0 1 1 ops I
0 1 2 sk Lsun/nio/ch/SelectionKeyImpl;
MethodParameters:
Name Flags
ops
sk
public void translateAndSetInterestOps(int, sun.nio.ch.SelectionKeyImpl);
descriptor: (ILsun/nio/ch/SelectionKeyImpl;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: iload 1
iconst_1
iand
ifeq 3
2: iload 3
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:
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
6: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/nio/ch/SctpMultiChannelImpl;
0 7 1 ops I
0 7 2 sk Lsun/nio/ch/SelectionKeyImpl;
1 7 3 newOps I
MethodParameters:
Name Flags
ops
sk
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.SctpMultiChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.state:Lsun/nio/ch/SctpMultiChannelImpl$ChannelState;
getstatic sun.nio.ch.SctpMultiChannelImpl$ChannelState.KILLED:Lsun/nio/ch/SctpMultiChannelImpl$ChannelState;
if_acmpne 4
2: aload 1
monitorexit
3: return
4: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.state:Lsun/nio/ch/SctpMultiChannelImpl$ChannelState;
getstatic sun.nio.ch.SctpMultiChannelImpl$ChannelState.UNINITIALIZED:Lsun/nio/ch/SctpMultiChannelImpl$ChannelState;
if_acmpne 8
5: aload 0
getstatic sun.nio.ch.SctpMultiChannelImpl$ChannelState.KILLED:Lsun/nio/ch/SctpMultiChannelImpl$ChannelState;
putfield sun.nio.ch.SctpMultiChannelImpl.state:Lsun/nio/ch/SctpMultiChannelImpl$ChannelState;
6: aload 1
monitorexit
7: return
8: StackMap locals:
StackMap stack:
getstatic sun.nio.ch.SctpMultiChannelImpl.$assertionsDisabled:Z
ifne 10
aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.isOpen:()Z
ifne 9
aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.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.SctpMultiChannelImpl.receiverThread:J
lconst_0
lcmp
ifne 14
aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.senderThread:J
lconst_0
lcmp
ifne 14
11: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.fdVal:I
invokestatic sun.nio.ch.SctpNet.close:(I)V
12: aload 0
getstatic sun.nio.ch.SctpMultiChannelImpl$ChannelState.KILLED:Lsun/nio/ch/SctpMultiChannelImpl$ChannelState;
putfield sun.nio.ch.SctpMultiChannelImpl.state:Lsun/nio/ch/SctpMultiChannelImpl$ChannelState;
13: goto 15
14: StackMap locals:
StackMap stack:
aload 0
getstatic sun.nio.ch.SctpMultiChannelImpl$ChannelState.KILLPENDING:Lsun/nio/ch/SctpMultiChannelImpl$ChannelState;
putfield sun.nio.ch.SctpMultiChannelImpl.state:Lsun/nio/ch/SctpMultiChannelImpl$ChannelState;
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/SctpMultiChannelImpl;
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 <T> com.sun.nio.sctp.SctpMultiChannel setOption(com.sun.nio.sctp.SctpSocketOption<T>, T, com.sun.nio.sctp.Association);
descriptor: (Lcom/sun/nio/sctp/SctpSocketOption;Ljava/lang/Object;Lcom/sun/nio/sctp/Association;)Lcom/sun/nio/sctp/SctpMultiChannel;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 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.SctpMultiChannelImpl.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.SctpMultiChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 4
monitorenter
5: aload 3
ifnull 8
aload 1
getstatic com.sun.nio.sctp.SctpStandardSocketOptions.SCTP_PRIMARY_ADDR:Lcom/sun/nio/sctp/SctpSocketOption;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 7
6: aload 1
getstatic com.sun.nio.sctp.SctpStandardSocketOptions.SCTP_SET_PEER_PRIMARY_ADDR:Lcom/sun/nio/sctp/SctpSocketOption;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 8
7: StackMap locals: java.lang.Object
StackMap stack:
aload 0
aload 3
invokevirtual sun.nio.ch.SctpMultiChannelImpl.checkAssociation:(Lcom/sun/nio/sctp/Association;)Z
pop
8: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.isOpen:()Z
ifne 10
9: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
10: StackMap locals:
StackMap stack:
aload 3
ifnonnull 11
iconst_0
goto 12
StackMap locals:
StackMap stack:
11: aload 3
invokevirtual com.sun.nio.sctp.Association.associationID:()I
StackMap locals:
StackMap stack: int
12: istore 5
start local 5 13: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.fdVal:I
aload 1
aload 2
iload 5
invokestatic sun.nio.ch.SctpNet.setSocketOption:(ILcom/sun/nio/sctp/SctpSocketOption;Ljava/lang/Object;I)V
end local 5 14: aload 4
monitorexit
15: goto 18
StackMap locals:
StackMap stack: java.lang.Throwable
16: aload 4
monitorexit
17: athrow
18: StackMap locals:
StackMap stack:
aload 0
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lsun/nio/ch/SctpMultiChannelImpl;
0 19 1 name Lcom/sun/nio/sctp/SctpSocketOption<TT;>;
0 19 2 value TT;
0 19 3 association Lcom/sun/nio/sctp/Association;
13 14 5 assocId I
Exception table:
from to target type
5 15 16 any
16 17 16 any
Exceptions:
throws java.io.IOException
Signature: <T:Ljava/lang/Object;>(Lcom/sun/nio/sctp/SctpSocketOption<TT;>;TT;Lcom/sun/nio/sctp/Association;)Lcom/sun/nio/sctp/SctpMultiChannel;
MethodParameters:
Name Flags
name
value
association
public <T> T getOption(com.sun.nio.sctp.SctpSocketOption<T>, com.sun.nio.sctp.Association);
descriptor: (Lcom/sun/nio/sctp/SctpSocketOption;Lcom/sun/nio/sctp/Association;)Ljava/lang/Object;
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.SctpMultiChannelImpl.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.SctpMultiChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 3
monitorenter
5: aload 2
ifnull 8
aload 1
getstatic com.sun.nio.sctp.SctpStandardSocketOptions.SCTP_PRIMARY_ADDR:Lcom/sun/nio/sctp/SctpSocketOption;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 7
6: aload 1
getstatic com.sun.nio.sctp.SctpStandardSocketOptions.SCTP_SET_PEER_PRIMARY_ADDR:Lcom/sun/nio/sctp/SctpSocketOption;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 8
7: StackMap locals: java.lang.Object
StackMap stack:
aload 0
aload 2
invokevirtual sun.nio.ch.SctpMultiChannelImpl.checkAssociation:(Lcom/sun/nio/sctp/Association;)Z
pop
8: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.isOpen:()Z
ifne 10
9: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
10: StackMap locals:
StackMap stack:
aload 2
ifnonnull 11
iconst_0
goto 12
StackMap locals:
StackMap stack:
11: aload 2
invokevirtual com.sun.nio.sctp.Association.associationID:()I
StackMap locals:
StackMap stack: int
12: istore 4
start local 4 13: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.fdVal:I
aload 1
iload 4
invokestatic sun.nio.ch.SctpNet.getSocketOption:(ILcom/sun/nio/sctp/SctpSocketOption;I)Ljava/lang/Object;
aload 3
monitorexit
14: areturn
end local 4 15: StackMap locals:
StackMap stack: java.lang.Throwable
aload 3
monitorexit
16: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/nio/ch/SctpMultiChannelImpl;
0 17 1 name Lcom/sun/nio/sctp/SctpSocketOption<TT;>;
0 17 2 association Lcom/sun/nio/sctp/Association;
13 15 4 assocId I
Exception table:
from to target type
5 14 15 any
15 16 15 any
Exceptions:
throws java.io.IOException
Signature: <T:Ljava/lang/Object;>(Lcom/sun/nio/sctp/SctpSocketOption<TT;>;Lcom/sun/nio/sctp/Association;)TT;
MethodParameters:
Name Flags
name
association
public final java.util.Set<com.sun.nio.sctp.SctpSocketOption<?>> 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.SctpMultiChannelImpl$DefaultOptionsHolder.defaultOptions:Ljava/util/Set;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/SctpMultiChannelImpl;
Signature: ()Ljava/util/Set<Lcom/sun/nio/sctp/SctpSocketOption<*>;>;
public <T> com.sun.nio.sctp.MessageInfo receive(java.nio.ByteBuffer, T, com.sun.nio.sctp.NotificationHandler<T>);
descriptor: (Ljava/nio/ByteBuffer;Ljava/lang/Object;Lcom/sun/nio/sctp/NotificationHandler;)Lcom/sun/nio/sctp/MessageInfo;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=13, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
ifnonnull 2
1: new java.lang.IllegalArgumentException
dup
ldc "buffer cannot be null"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.isReadOnly:()Z
ifeq 4
3: new java.lang.IllegalArgumentException
dup
ldc "Read-only buffer"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.receiveInvoked:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 8
5: new com.sun.nio.sctp.IllegalReceiveException
dup
6: ldc "cannot invoke receive from handler"
7: invokespecial com.sun.nio.sctp.IllegalReceiveException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.receiveInvoked:Ljava/lang/ThreadLocal;
getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
9: new sun.nio.ch.SctpResultContainer
dup
invokespecial sun.nio.ch.SctpResultContainer.<init>:()V
astore 4
start local 4 10: StackMap locals: sun.nio.ch.SctpResultContainer
StackMap stack:
aload 4
invokevirtual sun.nio.ch.SctpResultContainer.clear:()V
11: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.receiveLock:Ljava/lang/Object;
dup
astore 5
monitorenter
12: aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.ensureOpen:()V
13: aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.isBound:()Z
ifne 15
14: new java.nio.channels.NotYetBoundException
dup
invokespecial java.nio.channels.NotYetBoundException.<init>:()V
athrow
15: StackMap locals: java.lang.Object
StackMap stack:
iconst_0
istore 6
start local 6 16: aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.begin:()V
17: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 7
monitorenter
18: aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.isOpen:()Z
ifne 28
19: aload 7
monitorexit
20: aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.receiverCleanup:()V
21: aload 0
iload 6
ifgt 22
iload 6
bipush -2
if_icmpeq 22
iconst_0
goto 23
StackMap locals: sun.nio.ch.SctpMultiChannelImpl java.nio.ByteBuffer java.lang.Object com.sun.nio.sctp.NotificationHandler sun.nio.ch.SctpResultContainer java.lang.Object int java.lang.Object
StackMap stack: sun.nio.ch.SctpMultiChannelImpl
22: iconst_1
StackMap locals: sun.nio.ch.SctpMultiChannelImpl java.nio.ByteBuffer java.lang.Object com.sun.nio.sctp.NotificationHandler sun.nio.ch.SctpResultContainer java.lang.Object int java.lang.Object
StackMap stack: sun.nio.ch.SctpMultiChannelImpl int
23: invokevirtual sun.nio.ch.SctpMultiChannelImpl.end:(Z)V
24: getstatic sun.nio.ch.SctpMultiChannelImpl.$assertionsDisabled:Z
ifne 25
iload 6
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 25
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
StackMap locals:
StackMap stack:
25: aload 5
monitorexit
26: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.receiveInvoked:Ljava/lang/ThreadLocal;
getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
27: aconst_null
areturn
28: StackMap locals:
StackMap stack:
aload 0
invokestatic sun.nio.ch.NativeThread.current:()J
putfield sun.nio.ch.SctpMultiChannelImpl.receiverThread:J
29: aload 7
monitorexit
30: goto 33
StackMap locals:
StackMap stack: java.lang.Throwable
31: aload 7
monitorexit
32: athrow
33: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.fdVal:I
aload 1
aload 4
invokevirtual sun.nio.ch.SctpMultiChannelImpl.receive:(ILjava/nio/ByteBuffer;Lsun/nio/ch/SctpResultContainer;)I
istore 6
34: iload 6
bipush -3
if_icmpne 43
aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.isOpen:()Z
ifne 33
35: goto 43
StackMap locals:
StackMap stack: java.lang.Throwable
36: astore 8
37: aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.receiverCleanup:()V
38: aload 0
iload 6
ifgt 39
iload 6
bipush -2
if_icmpeq 39
iconst_0
goto 40
StackMap locals: sun.nio.ch.SctpMultiChannelImpl java.nio.ByteBuffer java.lang.Object com.sun.nio.sctp.NotificationHandler sun.nio.ch.SctpResultContainer java.lang.Object int top java.lang.Throwable
StackMap stack: sun.nio.ch.SctpMultiChannelImpl
39: iconst_1
StackMap locals: sun.nio.ch.SctpMultiChannelImpl java.nio.ByteBuffer java.lang.Object com.sun.nio.sctp.NotificationHandler sun.nio.ch.SctpResultContainer java.lang.Object int top java.lang.Throwable
StackMap stack: sun.nio.ch.SctpMultiChannelImpl int
40: invokevirtual sun.nio.ch.SctpMultiChannelImpl.end:(Z)V
41: getstatic sun.nio.ch.SctpMultiChannelImpl.$assertionsDisabled:Z
ifne 42
iload 6
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 8
athrow
43: StackMap locals: sun.nio.ch.SctpMultiChannelImpl java.nio.ByteBuffer java.lang.Object com.sun.nio.sctp.NotificationHandler sun.nio.ch.SctpResultContainer java.lang.Object int
StackMap stack:
aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.receiverCleanup:()V
44: aload 0
iload 6
ifgt 45
iload 6
bipush -2
if_icmpeq 45
iconst_0
goto 46
StackMap locals:
StackMap stack: sun.nio.ch.SctpMultiChannelImpl
45: iconst_1
StackMap locals: sun.nio.ch.SctpMultiChannelImpl java.nio.ByteBuffer java.lang.Object com.sun.nio.sctp.NotificationHandler sun.nio.ch.SctpResultContainer java.lang.Object int
StackMap stack: sun.nio.ch.SctpMultiChannelImpl int
46: invokevirtual sun.nio.ch.SctpMultiChannelImpl.end:(Z)V
47: getstatic sun.nio.ch.SctpMultiChannelImpl.$assertionsDisabled:Z
ifne 48
iload 6
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 48
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
48: StackMap locals:
StackMap stack:
aload 4
invokevirtual sun.nio.ch.SctpResultContainer.isNotification:()Z
ifne 73
49: aload 4
invokevirtual sun.nio.ch.SctpResultContainer.hasSomething:()Z
ifeq 70
50: aload 4
invokevirtual sun.nio.ch.SctpResultContainer.getMessageInfo:()Lsun/nio/ch/SctpMessageInfoImpl;
51: astore 7
start local 7 52: aload 7
aload 0
aload 7
53: invokevirtual sun.nio.ch.SctpMessageInfoImpl.associationID:()I
54: invokevirtual sun.nio.ch.SctpMultiChannelImpl.lookupAssociation:(I)Lcom/sun/nio/sctp/Association;
invokevirtual sun.nio.ch.SctpMessageInfoImpl.setAssociation:(Lcom/sun/nio/sctp/Association;)V
55: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 8
start local 8 56: aload 8
ifnull 66
57: aload 7
invokevirtual sun.nio.ch.SctpMessageInfoImpl.address:()Ljava/net/SocketAddress;
checkcast java.net.InetSocketAddress
astore 9
start local 9 58: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.addressMap:Ljava/util/HashMap;
aload 9
invokevirtual java.util.HashMap.containsKey:(Ljava/lang/Object;)Z
ifne 66
59: aload 8
aload 9
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
60: aload 9
invokevirtual java.net.InetSocketAddress.getPort:()I
61: invokevirtual java.lang.SecurityManager.checkAccept:(Ljava/lang/String;I)V
62: goto 66
StackMap locals: sun.nio.ch.SctpMultiChannelImpl java.nio.ByteBuffer java.lang.Object com.sun.nio.sctp.NotificationHandler sun.nio.ch.SctpResultContainer java.lang.Object int sun.nio.ch.SctpMessageInfoImpl java.lang.SecurityManager java.net.InetSocketAddress
StackMap stack: java.lang.SecurityException
63: astore 10
start local 10 64: aload 1
invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
pop
65: aload 10
athrow
end local 10 end local 9 66: StackMap locals:
StackMap stack:
getstatic sun.nio.ch.SctpMultiChannelImpl.$assertionsDisabled:Z
ifne 67
aload 7
invokevirtual sun.nio.ch.SctpMessageInfoImpl.association:()Lcom/sun/nio/sctp/Association;
ifnonnull 67
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
67: StackMap locals:
StackMap stack:
aload 7
astore 12
aload 5
monitorexit
68: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.receiveInvoked:Ljava/lang/ThreadLocal;
getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
69: aload 12
areturn
end local 8 end local 7 70: StackMap locals:
StackMap stack:
aload 5
monitorexit
71: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.receiveInvoked:Ljava/lang/ThreadLocal;
getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
72: aconst_null
areturn
73: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 7
monitorenter
74: aload 0
75: aload 4
76: invokevirtual sun.nio.ch.SctpMultiChannelImpl.handleNotificationInternal:(Lsun/nio/ch/SctpResultContainer;)V
77: aload 7
monitorexit
78: goto 81
StackMap locals: sun.nio.ch.SctpMultiChannelImpl java.nio.ByteBuffer java.lang.Object com.sun.nio.sctp.NotificationHandler sun.nio.ch.SctpResultContainer java.lang.Object int java.lang.Object
StackMap stack: java.lang.Throwable
79: aload 7
monitorexit
80: athrow
end local 6 81: StackMap locals:
StackMap stack:
aload 5
monitorexit
82: goto 85
StackMap locals:
StackMap stack: java.lang.Throwable
83: aload 5
monitorexit
84: athrow
85: StackMap locals:
StackMap stack:
aload 3
ifnonnull 86
goto 10
86: StackMap locals:
StackMap stack:
aload 0
aload 4
aload 3
aload 2
invokevirtual sun.nio.ch.SctpMultiChannelImpl.invokeNotificationHandler:(Lsun/nio/ch/SctpResultContainer;Lcom/sun/nio/sctp/NotificationHandler;Ljava/lang/Object;)Lcom/sun/nio/sctp/HandlerResult;
87: getstatic com.sun.nio.sctp.HandlerResult.CONTINUE:Lcom/sun/nio/sctp/HandlerResult;
88: if_acmpeq 10
end local 4 89: goto 93
StackMap locals: sun.nio.ch.SctpMultiChannelImpl java.nio.ByteBuffer java.lang.Object com.sun.nio.sctp.NotificationHandler
StackMap stack: java.lang.Throwable
90: astore 11
91: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.receiveInvoked:Ljava/lang/ThreadLocal;
getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
92: aload 11
athrow
93: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.receiveInvoked:Ljava/lang/ThreadLocal;
getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
94: aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 95 0 this Lsun/nio/ch/SctpMultiChannelImpl;
0 95 1 buffer Ljava/nio/ByteBuffer;
0 95 2 attachment TT;
0 95 3 handler Lcom/sun/nio/sctp/NotificationHandler<TT;>;
10 89 4 resultContainer Lsun/nio/ch/SctpResultContainer;
16 81 6 n I
52 70 7 info Lsun/nio/ch/SctpMessageInfoImpl;
56 70 8 sm Ljava/lang/SecurityManager;
58 66 9 isa Ljava/net/InetSocketAddress;
64 66 10 se Ljava/lang/SecurityException;
Exception table:
from to target type
18 20 31 any
28 30 31 any
31 32 31 any
16 20 36 any
28 36 36 any
59 62 63 Class java.lang.SecurityException
74 78 79 any
79 80 79 any
12 26 83 any
28 68 83 any
70 71 83 any
73 82 83 any
83 84 83 any
9 26 90 any
28 68 90 any
70 71 90 any
73 90 90 any
Exceptions:
throws java.io.IOException
Signature: <T:Ljava/lang/Object;>(Ljava/nio/ByteBuffer;TT;Lcom/sun/nio/sctp/NotificationHandler<TT;>;)Lcom/sun/nio/sctp/MessageInfo;
MethodParameters:
Name Flags
buffer
attachment
handler
private int receive(int, java.nio.ByteBuffer, sun.nio.ch.SctpResultContainer);
descriptor: (ILjava/nio/ByteBuffer;Lsun/nio/ch/SctpResultContainer;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokevirtual java.nio.ByteBuffer.position:()I
istore 4
start local 4 1: aload 2
invokevirtual java.nio.ByteBuffer.limit:()I
istore 5
start local 5 2: getstatic sun.nio.ch.SctpMultiChannelImpl.$assertionsDisabled:Z
ifne 3
iload 4
iload 5
if_icmple 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals: int int
StackMap stack:
iload 4
iload 5
if_icmpgt 4
iload 5
iload 4
isub
goto 5
StackMap locals:
StackMap stack:
4: iconst_0
StackMap locals:
StackMap stack: int
5: istore 6
start local 6 6: aload 2
instanceof sun.nio.ch.DirectBuffer
ifeq 8
iload 6
ifle 8
7: aload 0
iload 1
aload 3
aload 2
iload 6
iload 4
invokevirtual sun.nio.ch.SctpMultiChannelImpl.receiveIntoNativeBuffer:(ILsun/nio/ch/SctpResultContainer;Ljava/nio/ByteBuffer;II)I
ireturn
8: StackMap locals: int
StackMap stack:
iload 6
iconst_1
invokestatic java.lang.Math.max:(II)I
istore 7
start local 7 9: iload 7
invokestatic sun.nio.ch.Util.getTemporaryDirectBuffer:(I)Ljava/nio/ByteBuffer;
astore 8
start local 8 10: aload 0
iload 1
aload 3
aload 8
iload 7
iconst_0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.receiveIntoNativeBuffer:(ILsun/nio/ch/SctpResultContainer;Ljava/nio/ByteBuffer;II)I
istore 9
start local 9 11: aload 8
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
12: iload 9
ifle 14
iload 6
ifle 14
13: aload 2
aload 8
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
14: StackMap locals: int java.nio.ByteBuffer int
StackMap stack:
iload 9
istore 11
15: aload 8
invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
16: iload 11
ireturn
end local 9 17: StackMap locals: sun.nio.ch.SctpMultiChannelImpl int java.nio.ByteBuffer sun.nio.ch.SctpResultContainer int int int int java.nio.ByteBuffer
StackMap stack: java.lang.Throwable
astore 10
18: aload 8
invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
19: aload 10
athrow
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lsun/nio/ch/SctpMultiChannelImpl;
0 20 1 fd I
0 20 2 dst Ljava/nio/ByteBuffer;
0 20 3 resultContainer Lsun/nio/ch/SctpResultContainer;
1 20 4 pos I
2 20 5 lim I
6 20 6 rem I
9 20 7 newSize I
10 20 8 bb Ljava/nio/ByteBuffer;
11 17 9 n I
Exception table:
from to target type
10 15 17 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
dst
resultContainer
private int receiveIntoNativeBuffer(int, sun.nio.ch.SctpResultContainer, java.nio.ByteBuffer, int, int);
descriptor: (ILsun/nio/ch/SctpResultContainer;Ljava/nio/ByteBuffer;II)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: iload 1
aload 2
aload 3
checkcast sun.nio.ch.DirectBuffer
invokeinterface sun.nio.ch.DirectBuffer.address:()J
iload 5
i2l
ladd
iload 4
invokestatic sun.nio.ch.SctpMultiChannelImpl.receive0:(ILsun/nio/ch/SctpResultContainer;JI)I
istore 6
start local 6 1: iload 6
ifle 3
2: aload 3
iload 5
iload 6
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
3: StackMap locals: int
StackMap stack:
iload 6
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 4 0 this Lsun/nio/ch/SctpMultiChannelImpl;
0 4 1 fd I
0 4 2 resultContainer Lsun/nio/ch/SctpResultContainer;
0 4 3 bb Ljava/nio/ByteBuffer;
0 4 4 rem I
0 4 5 pos I
1 4 6 n I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
resultContainer
bb
rem
pos
private void handleNotificationInternal(sun.nio.ch.SctpResultContainer);
descriptor: (Lsun/nio/ch/SctpResultContainer;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
1: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.internalNotificationHandler:Lsun/nio/ch/SctpMultiChannelImpl$InternalNotificationHandler;
aconst_null
2: invokevirtual sun.nio.ch.SctpMultiChannelImpl.invokeNotificationHandler:(Lsun/nio/ch/SctpResultContainer;Lcom/sun/nio/sctp/NotificationHandler;Ljava/lang/Object;)Lcom/sun/nio/sctp/HandlerResult;
pop
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/nio/ch/SctpMultiChannelImpl;
0 4 1 resultContainer Lsun/nio/ch/SctpResultContainer;
MethodParameters:
Name Flags
resultContainer
private <T> com.sun.nio.sctp.HandlerResult invokeNotificationHandler(sun.nio.ch.SctpResultContainer, com.sun.nio.sctp.NotificationHandler<T>, T);
descriptor: (Lsun/nio/ch/SctpResultContainer;Lcom/sun/nio/sctp/NotificationHandler;Ljava/lang/Object;)Lcom/sun/nio/sctp/HandlerResult;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokevirtual sun.nio.ch.SctpResultContainer.notification:()Lsun/nio/ch/SctpNotification;
astore 5
start local 5 1: aload 5
aload 0
aload 5
invokeinterface sun.nio.ch.SctpNotification.assocId:()I
invokevirtual sun.nio.ch.SctpMultiChannelImpl.lookupAssociation:(I)Lcom/sun/nio/sctp/Association;
invokeinterface sun.nio.ch.SctpNotification.setAssociation:(Lcom/sun/nio/sctp/Association;)V
2: aload 2
instanceof com.sun.nio.sctp.AbstractNotificationHandler
ifne 5
3: aload 2
aload 5
aload 3
invokeinterface com.sun.nio.sctp.NotificationHandler.handleNotification:(Lcom/sun/nio/sctp/Notification;Ljava/lang/Object;)Lcom/sun/nio/sctp/HandlerResult;
astore 4
start local 4 4: goto 27
end local 4 5: StackMap locals: sun.nio.ch.SctpMultiChannelImpl sun.nio.ch.SctpResultContainer com.sun.nio.sctp.NotificationHandler java.lang.Object top sun.nio.ch.SctpNotification
StackMap stack:
aload 2
checkcast com.sun.nio.sctp.AbstractNotificationHandler
6: astore 6
start local 6 7: aload 1
invokevirtual sun.nio.ch.SctpResultContainer.type:()I
tableswitch { // 2 - 5
2: 16
3: 8
4: 12
5: 20
default: 24
}
8: StackMap locals: com.sun.nio.sctp.AbstractNotificationHandler
StackMap stack:
aload 6
9: aload 1
invokevirtual sun.nio.ch.SctpResultContainer.getAssociationChanged:()Lsun/nio/ch/SctpAssocChange;
aload 3
10: invokevirtual com.sun.nio.sctp.AbstractNotificationHandler.handleNotification:(Lcom/sun/nio/sctp/AssociationChangeNotification;Ljava/lang/Object;)Lcom/sun/nio/sctp/HandlerResult;
astore 4
start local 4 11: goto 27
end local 4 12: StackMap locals:
StackMap stack:
aload 6
13: aload 1
invokevirtual sun.nio.ch.SctpResultContainer.getPeerAddressChanged:()Lsun/nio/ch/SctpPeerAddrChange;
aload 3
14: invokevirtual com.sun.nio.sctp.AbstractNotificationHandler.handleNotification:(Lcom/sun/nio/sctp/PeerAddressChangeNotification;Ljava/lang/Object;)Lcom/sun/nio/sctp/HandlerResult;
astore 4
start local 4 15: goto 27
end local 4 16: StackMap locals:
StackMap stack:
aload 6
17: aload 1
invokevirtual sun.nio.ch.SctpResultContainer.getSendFailed:()Lsun/nio/ch/SctpSendFailed;
aload 3
18: invokevirtual com.sun.nio.sctp.AbstractNotificationHandler.handleNotification:(Lcom/sun/nio/sctp/SendFailedNotification;Ljava/lang/Object;)Lcom/sun/nio/sctp/HandlerResult;
astore 4
start local 4 19: goto 27
end local 4 20: StackMap locals:
StackMap stack:
aload 6
21: aload 1
invokevirtual sun.nio.ch.SctpResultContainer.getShutdown:()Lsun/nio/ch/SctpShutdown;
aload 3
22: invokevirtual com.sun.nio.sctp.AbstractNotificationHandler.handleNotification:(Lcom/sun/nio/sctp/ShutdownNotification;Ljava/lang/Object;)Lcom/sun/nio/sctp/HandlerResult;
astore 4
start local 4 23: goto 27
end local 4 24: StackMap locals:
StackMap stack:
aload 6
25: aload 1
invokevirtual sun.nio.ch.SctpResultContainer.notification:()Lsun/nio/ch/SctpNotification;
aload 3
26: invokevirtual com.sun.nio.sctp.AbstractNotificationHandler.handleNotification:(Lcom/sun/nio/sctp/Notification;Ljava/lang/Object;)Lcom/sun/nio/sctp/HandlerResult;
astore 4
end local 6 start local 4 27: StackMap locals: sun.nio.ch.SctpMultiChannelImpl sun.nio.ch.SctpResultContainer com.sun.nio.sctp.NotificationHandler java.lang.Object com.sun.nio.sctp.HandlerResult sun.nio.ch.SctpNotification
StackMap stack:
aload 2
instanceof sun.nio.ch.SctpMultiChannelImpl$InternalNotificationHandler
ifne 32
28: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.associationToRemove:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast com.sun.nio.sctp.Association
astore 6
start local 6 29: aload 6
ifnull 32
30: aload 0
aload 6
invokevirtual sun.nio.ch.SctpMultiChannelImpl.removeAssociation:(Lcom/sun/nio/sctp/Association;)V
31: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.associationToRemove:Ljava/lang/ThreadLocal;
aconst_null
invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
end local 6 32: StackMap locals:
StackMap stack:
aload 4
areturn
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 33 0 this Lsun/nio/ch/SctpMultiChannelImpl;
0 33 1 resultContainer Lsun/nio/ch/SctpResultContainer;
0 33 2 handler Lcom/sun/nio/sctp/NotificationHandler<TT;>;
0 33 3 attachment TT;
4 5 4 result Lcom/sun/nio/sctp/HandlerResult;
11 12 4 result Lcom/sun/nio/sctp/HandlerResult;
15 16 4 result Lcom/sun/nio/sctp/HandlerResult;
19 20 4 result Lcom/sun/nio/sctp/HandlerResult;
23 24 4 result Lcom/sun/nio/sctp/HandlerResult;
27 33 4 result Lcom/sun/nio/sctp/HandlerResult;
1 33 5 notification Lsun/nio/ch/SctpNotification;
7 27 6 absHandler Lcom/sun/nio/sctp/AbstractNotificationHandler<TT;>;
29 32 6 assoc Lcom/sun/nio/sctp/Association;
Signature: <T:Ljava/lang/Object;>(Lsun/nio/ch/SctpResultContainer;Lcom/sun/nio/sctp/NotificationHandler<TT;>;TT;)Lcom/sun/nio/sctp/HandlerResult;
MethodParameters:
Name Flags
resultContainer
handler
attachment
private com.sun.nio.sctp.Association lookupAssociation(int);
descriptor: (I)Lcom/sun/nio/sctp/Association;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.associationMap:Ljava/util/HashMap;
invokevirtual java.util.HashMap.keySet:()Ljava/util/Set;
astore 3
start local 3 2: aload 3
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 5
goto 7
StackMap locals: sun.nio.ch.SctpMultiChannelImpl int java.lang.Object java.util.Set top java.util.Iterator
StackMap stack:
3: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.nio.sctp.Association
astore 4
start local 4 4: aload 4
invokevirtual com.sun.nio.sctp.Association.associationID:()I
iload 1
if_icmpne 7
5: aload 4
aload 2
monitorexit
6: areturn
end local 4 7: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
end local 3 8: aload 2
monitorexit
9: goto 12
StackMap locals: sun.nio.ch.SctpMultiChannelImpl int java.lang.Object
StackMap stack: java.lang.Throwable
10: aload 2
monitorexit
11: athrow
12: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/nio/ch/SctpMultiChannelImpl;
0 13 1 assocId I
2 8 3 assocs Ljava/util/Set<Lcom/sun/nio/sctp/Association;>;
4 7 4 a Lcom/sun/nio/sctp/Association;
Exception table:
from to target type
1 6 10 any
7 9 10 any
10 11 10 any
MethodParameters:
Name Flags
assocId
private void addAssociation(com.sun.nio.sctp.Association);
descriptor: (Lcom/sun/nio/sctp/Association;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 1
invokevirtual com.sun.nio.sctp.Association.associationID:()I
istore 3
start local 3 2: aconst_null
astore 4
start local 4 3: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.fdVal:I
iload 3
invokestatic sun.nio.ch.SctpNet.getRemoteAddresses:(II)Ljava/util/Set;
astore 4
4: goto 6
StackMap locals: sun.nio.ch.SctpMultiChannelImpl com.sun.nio.sctp.Association java.lang.Object int java.util.Set
StackMap stack: java.io.IOException
5: pop
6: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.associationMap:Ljava/util/HashMap;
aload 1
aload 4
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
7: aload 4
ifnull 12
8: aload 4
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 6
goto 11
StackMap locals: sun.nio.ch.SctpMultiChannelImpl com.sun.nio.sctp.Association java.lang.Object int java.util.Set top java.util.Iterator
StackMap stack:
9: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.net.SocketAddress
astore 5
start local 5 10: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.addressMap:Ljava/util/HashMap;
aload 5
aload 1
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 5 11: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
end local 4 end local 3 12: StackMap locals: sun.nio.ch.SctpMultiChannelImpl com.sun.nio.sctp.Association java.lang.Object
StackMap stack:
aload 2
monitorexit
13: goto 16
StackMap locals:
StackMap stack: java.lang.Throwable
14: aload 2
monitorexit
15: athrow
16: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/nio/ch/SctpMultiChannelImpl;
0 17 1 association Lcom/sun/nio/sctp/Association;
2 12 3 assocId I
3 12 4 addresses Ljava/util/Set<Ljava/net/SocketAddress;>;
10 11 5 addr Ljava/net/SocketAddress;
Exception table:
from to target type
3 4 5 Class java.io.IOException
1 13 14 any
14 15 14 any
MethodParameters:
Name Flags
association
private void removeAssociation(com.sun.nio.sctp.Association);
descriptor: (Lcom/sun/nio/sctp/Association;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=9, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 1
invokevirtual com.sun.nio.sctp.Association.associationID:()I
istore 3
start local 3 2: aconst_null
astore 4
start local 4 3: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.fdVal:I
iload 3
invokestatic sun.nio.ch.SctpNet.getRemoteAddresses:(II)Ljava/util/Set;
astore 4
4: goto 6
StackMap locals: sun.nio.ch.SctpMultiChannelImpl com.sun.nio.sctp.Association java.lang.Object int java.util.Set
StackMap stack: java.io.IOException
5: pop
6: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.associationMap:Ljava/util/HashMap;
invokevirtual java.util.HashMap.keySet:()Ljava/util/Set;
astore 5
start local 5 7: aload 5
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 7
goto 12
StackMap locals: sun.nio.ch.SctpMultiChannelImpl com.sun.nio.sctp.Association java.lang.Object int java.util.Set java.util.Set top java.util.Iterator
StackMap stack:
8: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.nio.sctp.Association
astore 6
start local 6 9: aload 6
invokevirtual com.sun.nio.sctp.Association.associationID:()I
iload 3
if_icmpne 12
10: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.associationMap:Ljava/util/HashMap;
aload 6
invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
11: goto 13
end local 6 12: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
13: StackMap locals: sun.nio.ch.SctpMultiChannelImpl com.sun.nio.sctp.Association java.lang.Object int java.util.Set java.util.Set
StackMap stack:
aload 4
ifnull 19
14: aload 4
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 7
goto 17
StackMap locals: sun.nio.ch.SctpMultiChannelImpl com.sun.nio.sctp.Association java.lang.Object int java.util.Set java.util.Set top java.util.Iterator
StackMap stack:
15: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.net.SocketAddress
astore 6
start local 6 16: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.addressMap:Ljava/util/HashMap;
aload 6
invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 6 17: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 15
18: goto 27
19: StackMap locals: sun.nio.ch.SctpMultiChannelImpl com.sun.nio.sctp.Association java.lang.Object int java.util.Set java.util.Set
StackMap stack:
aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.addressMap:Ljava/util/HashMap;
invokevirtual java.util.HashMap.entrySet:()Ljava/util/Set;
20: astore 6
start local 6 21: aload 6
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 7
start local 7 22: goto 26
23: StackMap locals: java.util.Set java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 8
start local 8 24: aload 8
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast com.sun.nio.sctp.Association
aload 1
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 26
25: aload 7
invokeinterface java.util.Iterator.remove:()V
end local 8 26: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 23
end local 7 end local 6 end local 5 end local 4 end local 3 27: StackMap locals: sun.nio.ch.SctpMultiChannelImpl com.sun.nio.sctp.Association java.lang.Object
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:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lsun/nio/ch/SctpMultiChannelImpl;
0 32 1 association Lcom/sun/nio/sctp/Association;
2 27 3 assocId I
3 27 4 addresses Ljava/util/Set<Ljava/net/SocketAddress;>;
7 27 5 assocs Ljava/util/Set<Lcom/sun/nio/sctp/Association;>;
9 12 6 a Lcom/sun/nio/sctp/Association;
16 17 6 addr Ljava/net/SocketAddress;
21 27 6 addrAssocs Ljava/util/Set<Ljava/util/Map$Entry<Ljava/net/SocketAddress;Lcom/sun/nio/sctp/Association;>;>;
22 27 7 iterator Ljava/util/Iterator<Ljava/util/Map$Entry<Ljava/net/SocketAddress;Lcom/sun/nio/sctp/Association;>;>;
24 26 8 entry Ljava/util/Map$Entry<Ljava/net/SocketAddress;Lcom/sun/nio/sctp/Association;>;
Exception table:
from to target type
3 4 5 Class java.io.IOException
1 28 29 any
29 30 29 any
MethodParameters:
Name Flags
association
private boolean checkAssociation(com.sun.nio.sctp.Association);
descriptor: (Lcom/sun/nio/sctp/Association;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.associationMap:Ljava/util/HashMap;
invokevirtual java.util.HashMap.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 6
StackMap locals: sun.nio.ch.SctpMultiChannelImpl com.sun.nio.sctp.Association java.lang.Object top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.nio.sctp.Association
astore 3
start local 3 3: aload 1
aload 3
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 6
4: aload 2
monitorexit
5: iconst_1
ireturn
end local 3 6: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
7: aload 2
monitorexit
8: goto 11
StackMap locals: sun.nio.ch.SctpMultiChannelImpl com.sun.nio.sctp.Association java.lang.Object
StackMap stack: java.lang.Throwable
9: aload 2
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
12: ldc "Given Association is not controlled by this channel"
13: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lsun/nio/ch/SctpMultiChannelImpl;
0 14 1 messageAssoc Lcom/sun/nio/sctp/Association;
3 6 3 association Lcom/sun/nio/sctp/Association;
Exception table:
from to target type
1 5 9 any
6 8 9 any
9 10 9 any
MethodParameters:
Name Flags
messageAssoc
private void checkStreamNumber(com.sun.nio.sctp.Association, int);
descriptor: (Lcom/sun/nio/sctp/Association;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 3
monitorenter
1: iload 2
iflt 2
iload 2
aload 1
invokevirtual com.sun.nio.sctp.Association.maxOutboundStreams:()I
if_icmplt 3
2: StackMap locals: java.lang.Object
StackMap stack:
new com.sun.nio.sctp.InvalidStreamException
dup
invokespecial com.sun.nio.sctp.InvalidStreamException.<init>:()V
athrow
3: StackMap locals:
StackMap stack:
aload 3
monitorexit
4: goto 7
StackMap locals:
StackMap stack: java.lang.Throwable
5: aload 3
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/nio/ch/SctpMultiChannelImpl;
0 8 1 assoc Lcom/sun/nio/sctp/Association;
0 8 2 streamNumber I
Exception table:
from to target type
1 4 5 any
5 6 5 any
MethodParameters:
Name Flags
assoc
streamNumber
public int send(java.nio.ByteBuffer, com.sun.nio.sctp.MessageInfo);
descriptor: (Ljava/nio/ByteBuffer;Lcom/sun/nio/sctp/MessageInfo;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=14, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 2
1: new java.lang.IllegalArgumentException
dup
ldc "buffer cannot be null"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 2
ifnonnull 4
3: new java.lang.IllegalArgumentException
dup
ldc "messageInfo cannot be null"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.sendLock:Ljava/lang/Object;
dup
astore 3
monitorenter
5: aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.ensureOpen:()V
6: aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.isBound:()Z
ifne 8
7: aload 0
aconst_null
iconst_0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.bind:(Ljava/net/SocketAddress;I)Lcom/sun/nio/sctp/SctpMultiChannel;
pop
8: StackMap locals: java.lang.Object
StackMap stack:
iconst_0
istore 4
start local 4 9: iconst_m1
istore 5
start local 5 10: aconst_null
astore 6
start local 6 11: aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.begin:()V
12: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 7
monitorenter
13: aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.isOpen:()Z
ifne 22
14: aload 7
monitorexit
15: aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.senderCleanup:()V
16: aload 0
iload 4
ifgt 17
iload 4
bipush -2
if_icmpeq 17
iconst_0
goto 18
StackMap locals: sun.nio.ch.SctpMultiChannelImpl java.nio.ByteBuffer com.sun.nio.sctp.MessageInfo java.lang.Object int int java.net.SocketAddress java.lang.Object
StackMap stack: sun.nio.ch.SctpMultiChannelImpl
17: iconst_1
StackMap locals: sun.nio.ch.SctpMultiChannelImpl java.nio.ByteBuffer com.sun.nio.sctp.MessageInfo java.lang.Object int int java.net.SocketAddress java.lang.Object
StackMap stack: sun.nio.ch.SctpMultiChannelImpl int
18: invokevirtual sun.nio.ch.SctpMultiChannelImpl.end:(Z)V
19: getstatic sun.nio.ch.SctpMultiChannelImpl.$assertionsDisabled:Z
ifne 20
iload 4
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 3
monitorexit
21: iconst_0
ireturn
22: StackMap locals:
StackMap stack:
aload 0
invokestatic sun.nio.ch.NativeThread.current:()J
putfield sun.nio.ch.SctpMultiChannelImpl.senderThread:J
23: aload 2
invokevirtual com.sun.nio.sctp.MessageInfo.association:()Lcom/sun/nio/sctp/Association;
astore 8
start local 8 24: aload 2
invokevirtual com.sun.nio.sctp.MessageInfo.address:()Ljava/net/SocketAddress;
checkcast java.net.InetSocketAddress
astore 9
start local 9 25: aload 8
ifnull 34
26: aload 0
aload 8
invokevirtual sun.nio.ch.SctpMultiChannelImpl.checkAssociation:(Lcom/sun/nio/sctp/Association;)Z
pop
27: aload 0
aload 8
aload 2
invokevirtual com.sun.nio.sctp.MessageInfo.streamNumber:()I
invokevirtual sun.nio.ch.SctpMultiChannelImpl.checkStreamNumber:(Lcom/sun/nio/sctp/Association;I)V
28: aload 8
invokevirtual com.sun.nio.sctp.Association.associationID:()I
istore 5
29: aload 9
ifnull 50
30: aload 8
aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.addressMap:Ljava/util/HashMap;
aload 9
invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 32
31: new java.lang.IllegalArgumentException
dup
ldc "given preferred address is not part of this association"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
32: StackMap locals: com.sun.nio.sctp.Association java.net.InetSocketAddress
StackMap stack:
aload 9
astore 6
33: goto 50
StackMap locals:
StackMap stack:
34: aload 9
ifnull 47
35: aload 9
astore 6
36: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.addressMap:Ljava/util/HashMap;
aload 9
invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.sun.nio.sctp.Association
astore 10
start local 10 37: aload 10
ifnull 41
38: aload 0
aload 10
aload 2
invokevirtual com.sun.nio.sctp.MessageInfo.streamNumber:()I
invokevirtual sun.nio.ch.SctpMultiChannelImpl.checkStreamNumber:(Lcom/sun/nio/sctp/Association;I)V
39: aload 10
invokevirtual com.sun.nio.sctp.Association.associationID:()I
istore 5
40: goto 50
41: StackMap locals: com.sun.nio.sctp.Association
StackMap stack:
invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 11
start local 11 42: aload 11
ifnull 50
43: aload 11
aload 9
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
44: aload 9
invokevirtual java.net.InetSocketAddress.getPort:()I
45: invokevirtual java.lang.SecurityManager.checkConnect:(Ljava/lang/String;I)V
end local 11 end local 10 46: goto 50
47: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
48: ldc "Both association and address cannot be null"
49: invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 9 end local 8 50: StackMap locals:
StackMap stack:
aload 7
monitorexit
51: goto 54
StackMap locals:
StackMap stack: java.lang.Throwable
52: aload 7
monitorexit
53: athrow
54: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.fdVal:I
aload 1
iload 5
aload 6
aload 2
invokevirtual sun.nio.ch.SctpMultiChannelImpl.send:(ILjava/nio/ByteBuffer;ILjava/net/SocketAddress;Lcom/sun/nio/sctp/MessageInfo;)I
istore 4
55: iload 4
bipush -3
if_icmpne 56
aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.isOpen:()Z
ifne 54
56: StackMap locals:
StackMap stack:
iload 4
invokestatic sun.nio.ch.IOStatus.normalize:(I)I
istore 13
57: aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.senderCleanup:()V
58: aload 0
iload 4
ifgt 59
iload 4
bipush -2
if_icmpeq 59
iconst_0
goto 60
StackMap locals: sun.nio.ch.SctpMultiChannelImpl java.nio.ByteBuffer com.sun.nio.sctp.MessageInfo java.lang.Object int int java.net.SocketAddress top top top top top top int
StackMap stack: sun.nio.ch.SctpMultiChannelImpl
59: iconst_1
StackMap locals: sun.nio.ch.SctpMultiChannelImpl java.nio.ByteBuffer com.sun.nio.sctp.MessageInfo java.lang.Object int int java.net.SocketAddress top top top top top top int
StackMap stack: sun.nio.ch.SctpMultiChannelImpl int
60: invokevirtual sun.nio.ch.SctpMultiChannelImpl.end:(Z)V
61: getstatic sun.nio.ch.SctpMultiChannelImpl.$assertionsDisabled:Z
ifne 62
iload 4
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 62
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
62: StackMap locals:
StackMap stack:
aload 3
monitorexit
63: iload 13
ireturn
end local 6 end local 5 64: StackMap locals: sun.nio.ch.SctpMultiChannelImpl java.nio.ByteBuffer com.sun.nio.sctp.MessageInfo java.lang.Object int
StackMap stack: java.lang.Throwable
astore 12
65: aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.senderCleanup:()V
66: aload 0
iload 4
ifgt 67
iload 4
bipush -2
if_icmpeq 67
iconst_0
goto 68
StackMap locals: sun.nio.ch.SctpMultiChannelImpl java.nio.ByteBuffer com.sun.nio.sctp.MessageInfo java.lang.Object int top top top top top top top java.lang.Throwable
StackMap stack: sun.nio.ch.SctpMultiChannelImpl
67: iconst_1
StackMap locals: sun.nio.ch.SctpMultiChannelImpl java.nio.ByteBuffer com.sun.nio.sctp.MessageInfo java.lang.Object int top top top top top top top java.lang.Throwable
StackMap stack: sun.nio.ch.SctpMultiChannelImpl int
68: invokevirtual sun.nio.ch.SctpMultiChannelImpl.end:(Z)V
69: getstatic sun.nio.ch.SctpMultiChannelImpl.$assertionsDisabled:Z
ifne 70
iload 4
invokestatic sun.nio.ch.IOStatus.check:(I)Z
ifne 70
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
70: StackMap locals:
StackMap stack:
aload 12
athrow
end local 4 71: StackMap locals: sun.nio.ch.SctpMultiChannelImpl java.nio.ByteBuffer com.sun.nio.sctp.MessageInfo java.lang.Object
StackMap stack: java.lang.Throwable
aload 3
monitorexit
72: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 73 0 this Lsun/nio/ch/SctpMultiChannelImpl;
0 73 1 buffer Ljava/nio/ByteBuffer;
0 73 2 messageInfo Lcom/sun/nio/sctp/MessageInfo;
9 71 4 n I
10 64 5 assocId I
11 64 6 address Ljava/net/SocketAddress;
24 50 8 assoc Lcom/sun/nio/sctp/Association;
25 50 9 addr Ljava/net/InetSocketAddress;
37 46 10 association Lcom/sun/nio/sctp/Association;
42 46 11 sm Ljava/lang/SecurityManager;
Exception table:
from to target type
13 15 52 any
22 51 52 any
52 53 52 any
9 15 64 any
22 57 64 any
5 21 71 any
22 63 71 any
64 72 71 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
buffer
messageInfo
private int send(int, java.nio.ByteBuffer, int, java.net.SocketAddress, com.sun.nio.sctp.MessageInfo);
descriptor: (ILjava/nio/ByteBuffer;ILjava/net/SocketAddress;Lcom/sun/nio/sctp/MessageInfo;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=16, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 5
invokevirtual com.sun.nio.sctp.MessageInfo.streamNumber:()I
istore 6
start local 6 1: aload 5
invokevirtual com.sun.nio.sctp.MessageInfo.isUnordered:()Z
istore 7
start local 7 2: aload 5
invokevirtual com.sun.nio.sctp.MessageInfo.payloadProtocolID:()I
istore 8
start local 8 3: aload 2
instanceof sun.nio.ch.DirectBuffer
ifeq 7
4: aload 0
iload 1
aload 2
aload 4
iload 3
5: iload 6
iload 7
iload 8
6: invokevirtual sun.nio.ch.SctpMultiChannelImpl.sendFromNativeBuffer:(ILjava/nio/ByteBuffer;Ljava/net/SocketAddress;IIZI)I
ireturn
7: StackMap locals: int int int
StackMap stack:
aload 2
invokevirtual java.nio.ByteBuffer.position:()I
istore 9
start local 9 8: aload 2
invokevirtual java.nio.ByteBuffer.limit:()I
istore 10
start local 10 9: getstatic sun.nio.ch.SctpMultiChannelImpl.$assertionsDisabled:Z
ifne 11
iload 9
iload 10
if_icmpgt 10
iload 6
ifge 11
StackMap locals: int int
StackMap stack:
10: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
11: StackMap locals:
StackMap stack:
iload 9
iload 10
if_icmpgt 12
iload 10
iload 9
isub
goto 13
StackMap locals:
StackMap stack:
12: iconst_0
StackMap locals:
StackMap stack: int
13: istore 11
start local 11 14: iload 11
invokestatic sun.nio.ch.Util.getTemporaryDirectBuffer:(I)Ljava/nio/ByteBuffer;
astore 12
start local 12 15: aload 12
aload 2
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
16: aload 12
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
17: aload 2
iload 9
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
18: aload 0
iload 1
aload 12
aload 4
iload 3
19: iload 6
iload 7
iload 8
20: invokevirtual sun.nio.ch.SctpMultiChannelImpl.sendFromNativeBuffer:(ILjava/nio/ByteBuffer;Ljava/net/SocketAddress;IIZI)I
istore 13
start local 13 21: iload 13
ifle 23
22: aload 2
iload 9
iload 13
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
23: StackMap locals: int java.nio.ByteBuffer int
StackMap stack:
iload 13
istore 15
24: aload 12
invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
25: iload 15
ireturn
end local 13 26: StackMap locals: sun.nio.ch.SctpMultiChannelImpl int java.nio.ByteBuffer int java.net.SocketAddress com.sun.nio.sctp.MessageInfo int int int int int int java.nio.ByteBuffer
StackMap stack: java.lang.Throwable
astore 14
27: aload 12
invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
28: aload 14
athrow
end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lsun/nio/ch/SctpMultiChannelImpl;
0 29 1 fd I
0 29 2 src Ljava/nio/ByteBuffer;
0 29 3 assocId I
0 29 4 target Ljava/net/SocketAddress;
0 29 5 messageInfo Lcom/sun/nio/sctp/MessageInfo;
1 29 6 streamNumber I
2 29 7 unordered Z
3 29 8 ppid I
8 29 9 pos I
9 29 10 lim I
14 29 11 rem I
15 29 12 bb Ljava/nio/ByteBuffer;
21 26 13 n I
Exception table:
from to target type
15 24 26 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
src
assocId
target
messageInfo
private int sendFromNativeBuffer(int, java.nio.ByteBuffer, java.net.SocketAddress, int, int, boolean, int);
descriptor: (ILjava/nio/ByteBuffer;Ljava/net/SocketAddress;IIZI)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=10, locals=14, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aconst_null
astore 8
start local 8 1: iconst_0
istore 9
start local 9 2: aload 3
ifnull 6
3: aload 3
invokestatic sun.nio.ch.Net.checkAddress:(Ljava/net/SocketAddress;)Ljava/net/InetSocketAddress;
astore 10
start local 10 4: aload 10
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
astore 8
5: aload 10
invokevirtual java.net.InetSocketAddress.getPort:()I
istore 9
end local 10 6: StackMap locals: java.net.InetAddress int
StackMap stack:
aload 2
invokevirtual java.nio.ByteBuffer.position:()I
istore 10
start local 10 7: aload 2
invokevirtual java.nio.ByteBuffer.limit:()I
istore 11
start local 11 8: getstatic sun.nio.ch.SctpMultiChannelImpl.$assertionsDisabled:Z
ifne 9
iload 10
iload 11
if_icmple 9
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
9: StackMap locals: int int
StackMap stack:
iload 10
iload 11
if_icmpgt 10
iload 11
iload 10
isub
goto 11
StackMap locals:
StackMap stack:
10: iconst_0
StackMap locals:
StackMap stack: int
11: istore 12
start local 12 12: iload 1
aload 2
checkcast sun.nio.ch.DirectBuffer
invokeinterface sun.nio.ch.DirectBuffer.address:()J
iload 10
i2l
ladd
iload 12
aload 8
13: iload 9
iload 4
iload 5
iload 6
iload 7
14: invokestatic sun.nio.ch.SctpMultiChannelImpl.send0:(IJILjava/net/InetAddress;IIIZI)I
istore 13
start local 13 15: iload 13
ifle 17
16: aload 2
iload 10
iload 13
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
17: StackMap locals: int int
StackMap stack:
iload 13
ireturn
end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lsun/nio/ch/SctpMultiChannelImpl;
0 18 1 fd I
0 18 2 bb Ljava/nio/ByteBuffer;
0 18 3 target Ljava/net/SocketAddress;
0 18 4 assocId I
0 18 5 streamNumber I
0 18 6 unordered Z
0 18 7 ppid I
1 18 8 addr Ljava/net/InetAddress;
2 18 9 port I
4 6 10 isa Ljava/net/InetSocketAddress;
7 18 10 pos I
8 18 11 lim I
12 18 12 rem I
15 18 13 written I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
bb
target
assocId
streamNumber
unordered
ppid
public com.sun.nio.sctp.SctpMultiChannel shutdown(com.sun.nio.sctp.Association);
descriptor: (Lcom/sun/nio/sctp/Association;)Lcom/sun/nio/sctp/SctpMultiChannel;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
aload 1
invokevirtual sun.nio.ch.SctpMultiChannelImpl.checkAssociation:(Lcom/sun/nio/sctp/Association;)Z
pop
2: aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.isOpen:()Z
ifne 4
3: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
4: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.fdVal:I
aload 1
invokevirtual com.sun.nio.sctp.Association.associationID:()I
invokestatic sun.nio.ch.SctpNet.shutdown:(II)V
5: aload 2
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 2
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/nio/ch/SctpMultiChannelImpl;
0 10 1 association Lcom/sun/nio/sctp/Association;
Exception table:
from to target type
1 6 7 any
7 8 7 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
association
public java.util.Set<java.net.SocketAddress> getAllLocalAddresses();
descriptor: ()Ljava/util/Set;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.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.SctpMultiChannelImpl.isBound:()Z
ifne 6
4: invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
aload 1
monitorexit
5: areturn
6: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.fdVal:I
invokestatic sun.nio.ch.SctpNet.getLocalAddresses:(I)Ljava/util/Set;
aload 1
monitorexit
7: areturn
8: StackMap locals:
StackMap stack: java.lang.Throwable
aload 1
monitorexit
9: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/nio/ch/SctpMultiChannelImpl;
Exception table:
from to target type
1 5 8 any
6 7 8 any
8 9 8 any
Exceptions:
throws java.io.IOException
Signature: ()Ljava/util/Set<Ljava/net/SocketAddress;>;
public java.util.Set<java.net.SocketAddress> getRemoteAddresses(com.sun.nio.sctp.Association);
descriptor: (Lcom/sun/nio/sctp/Association;)Ljava/util/Set;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
aload 1
invokevirtual sun.nio.ch.SctpMultiChannelImpl.checkAssociation:(Lcom/sun/nio/sctp/Association;)Z
pop
2: aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.isOpen:()Z
ifne 4
3: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
4: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.fdVal:I
aload 1
invokevirtual com.sun.nio.sctp.Association.associationID:()I
invokestatic sun.nio.ch.SctpNet.getRemoteAddresses:(II)Ljava/util/Set;
5: aload 2
monitorexit
6: areturn
7: StackMap locals:
StackMap stack: java.net.SocketException
pop
8: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.associationMap:Ljava/util/HashMap;
aload 1
invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Set
astore 3
start local 3 9: aload 3
ifnull 10
aload 3
goto 11
StackMap locals: java.util.Set
StackMap stack:
10: invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
StackMap locals:
StackMap stack: java.util.Set
11: aload 2
monitorexit
12: areturn
end local 3 13: StackMap locals: sun.nio.ch.SctpMultiChannelImpl com.sun.nio.sctp.Association java.lang.Object
StackMap stack: java.lang.Throwable
aload 2
monitorexit
14: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lsun/nio/ch/SctpMultiChannelImpl;
0 15 1 association Lcom/sun/nio/sctp/Association;
9 13 3 addrs Ljava/util/Set<Ljava/net/SocketAddress;>;
Exception table:
from to target type
4 5 7 Class java.net.SocketException
1 6 13 any
7 12 13 any
13 14 13 any
Exceptions:
throws java.io.IOException
Signature: (Lcom/sun/nio/sctp/Association;)Ljava/util/Set<Ljava/net/SocketAddress;>;
MethodParameters:
Name Flags
association
public com.sun.nio.sctp.SctpChannel branch(com.sun.nio.sctp.Association);
descriptor: (Lcom/sun/nio/sctp/Association;)Lcom/sun/nio/sctp/SctpChannel;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.stateLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
aload 1
invokevirtual sun.nio.ch.SctpMultiChannelImpl.checkAssociation:(Lcom/sun/nio/sctp/Association;)Z
pop
2: aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.isOpen:()Z
ifne 4
3: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
4: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield sun.nio.ch.SctpMultiChannelImpl.fdVal:I
5: aload 1
invokevirtual com.sun.nio.sctp.Association.associationID:()I
6: invokestatic sun.nio.ch.SctpNet.branch:(II)Ljava/io/FileDescriptor;
astore 3
start local 3 7: aload 0
aload 1
invokevirtual sun.nio.ch.SctpMultiChannelImpl.removeAssociation:(Lcom/sun/nio/sctp/Association;)V
8: new sun.nio.ch.SctpChannelImpl
dup
aload 0
invokevirtual sun.nio.ch.SctpMultiChannelImpl.provider:()Ljava/nio/channels/spi/SelectorProvider;
aload 3
aload 1
invokespecial sun.nio.ch.SctpChannelImpl.<init>:(Ljava/nio/channels/spi/SelectorProvider;Ljava/io/FileDescriptor;Lcom/sun/nio/sctp/Association;)V
aload 2
monitorexit
9: areturn
end local 3 10: StackMap locals:
StackMap stack: java.lang.Throwable
aload 2
monitorexit
11: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/nio/ch/SctpMultiChannelImpl;
0 12 1 association Lcom/sun/nio/sctp/Association;
7 10 3 bFd Ljava/io/FileDescriptor;
Exception table:
from to target type
1 9 10 any
10 11 10 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
association
private static int receive0(int, sun.nio.ch.SctpResultContainer, long, int);
descriptor: (ILsun/nio/ch/SctpResultContainer;JI)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 4 0: iload 0
aload 1
lload 2
1: iload 4
iconst_0
2: invokestatic sun.nio.ch.SctpChannelImpl.receive0:(ILsun/nio/ch/SctpResultContainer;JIZ)I
ireturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 fd I
0 3 1 resultContainer Lsun/nio/ch/SctpResultContainer;
0 3 2 address J
0 3 4 length I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
resultContainer
address
length
private static int send0(int, long, int, java.net.InetAddress, int, int, int, boolean, int);
descriptor: (IJILjava/net/InetAddress;IIIZI)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=10, locals=10, args_size=9
start local 0 start local 1 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 start local 9 0: iload 0
lload 1
iload 3
aload 4
iload 5
iload 6
1: iload 7
iload 8
iload 9
2: invokestatic sun.nio.ch.SctpChannelImpl.send0:(IJILjava/net/InetAddress;IIIZI)I
ireturn
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 fd I
0 3 1 address J
0 3 3 length I
0 3 4 addr Ljava/net/InetAddress;
0 3 5 port I
0 3 6 assocId I
0 3 7 streamNumber I
0 3 8 unordered Z
0 3 9 ppid I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
address
length
addr
port
assocId
streamNumber
unordered
ppid
}
SourceFile: "SctpMultiChannelImpl.java"
NestMembers:
sun.nio.ch.SctpMultiChannelImpl$1 sun.nio.ch.SctpMultiChannelImpl$2 sun.nio.ch.SctpMultiChannelImpl$ChannelState sun.nio.ch.SctpMultiChannelImpl$DefaultOptionsHolder sun.nio.ch.SctpMultiChannelImpl$InternalNotificationHandler
InnerClasses:
public abstract Entry = java.util.Map$Entry of java.util.Map
sun.nio.ch.SctpMultiChannelImpl$1
sun.nio.ch.SctpMultiChannelImpl$2
private final ChannelState = sun.nio.ch.SctpMultiChannelImpl$ChannelState of sun.nio.ch.SctpMultiChannelImpl
private DefaultOptionsHolder = sun.nio.ch.SctpMultiChannelImpl$DefaultOptionsHolder of sun.nio.ch.SctpMultiChannelImpl
private InternalNotificationHandler = sun.nio.ch.SctpMultiChannelImpl$InternalNotificationHandler of sun.nio.ch.SctpMultiChannelImpl