public final class org.xnio.IoUtils
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.xnio.IoUtils
super_class: java.lang.Object
{
private static final java.util.concurrent.Executor NULL_EXECUTOR;
descriptor: Ljava/util/concurrent/Executor;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.concurrent.Executor DIRECT_EXECUTOR;
descriptor: Ljava/util/concurrent/Executor;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.io.Closeable NULL_CLOSEABLE;
descriptor: Ljava/io/Closeable;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.xnio.Cancellable NULL_CANCELLABLE;
descriptor: Lorg/xnio/Cancellable;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.xnio.IoUtils$ResultNotifier RESULT_NOTIFIER;
descriptor: Lorg/xnio/IoUtils$ResultNotifier;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.xnio.IoFuture$Notifier<java.lang.Object, java.io.Closeable> ATTACHMENT_CLOSING_NOTIFIER;
descriptor: Lorg/xnio/IoFuture$Notifier;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lorg/xnio/IoFuture$Notifier<Ljava/lang/Object;Ljava/io/Closeable;>;
private static final org.xnio.IoFuture$Notifier<java.io.Closeable, java.lang.Void> CLOSING_NOTIFIER;
descriptor: Lorg/xnio/IoFuture$Notifier;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lorg/xnio/IoFuture$Notifier<Ljava/io/Closeable;Ljava/lang/Void;>;
private static final org.xnio.IoFuture$Notifier CHANNEL_LISTENER_NOTIFIER;
descriptor: Lorg/xnio/IoFuture$Notifier;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.xnio.IoFuture$Notifier<java.lang.Object, java.util.concurrent.CountDownLatch> COUNT_DOWN_NOTIFIER;
descriptor: Lorg/xnio/IoFuture$Notifier;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lorg/xnio/IoFuture$Notifier<Ljava/lang/Object;Ljava/util/concurrent/CountDownLatch;>;
private static final org.xnio.IoUtils$ManagerNotifier MANAGER_NOTIFIER;
descriptor: Lorg/xnio/IoUtils$ManagerNotifier;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new org.xnio.IoUtils$1
dup
invokespecial org.xnio.IoUtils$1.<init>:()V
putstatic org.xnio.IoUtils.NULL_EXECUTOR:Ljava/util/concurrent/Executor;
1: new org.xnio.IoUtils$2
dup
invokespecial org.xnio.IoUtils$2.<init>:()V
putstatic org.xnio.IoUtils.DIRECT_EXECUTOR:Ljava/util/concurrent/Executor;
2: new org.xnio.IoUtils$3
dup
invokespecial org.xnio.IoUtils$3.<init>:()V
putstatic org.xnio.IoUtils.NULL_CLOSEABLE:Ljava/io/Closeable;
3: new org.xnio.IoUtils$4
dup
invokespecial org.xnio.IoUtils$4.<init>:()V
putstatic org.xnio.IoUtils.NULL_CANCELLABLE:Lorg/xnio/Cancellable;
4: new org.xnio.IoUtils$ResultNotifier
dup
invokespecial org.xnio.IoUtils$ResultNotifier.<init>:()V
putstatic org.xnio.IoUtils.RESULT_NOTIFIER:Lorg/xnio/IoUtils$ResultNotifier;
5: new org.xnio.IoUtils$5
dup
invokespecial org.xnio.IoUtils$5.<init>:()V
putstatic org.xnio.IoUtils.ATTACHMENT_CLOSING_NOTIFIER:Lorg/xnio/IoFuture$Notifier;
6: new org.xnio.IoUtils$6
dup
invokespecial org.xnio.IoUtils$6.<init>:()V
putstatic org.xnio.IoUtils.CLOSING_NOTIFIER:Lorg/xnio/IoFuture$Notifier;
7: new org.xnio.IoUtils$7
dup
invokespecial org.xnio.IoUtils$7.<init>:()V
putstatic org.xnio.IoUtils.CHANNEL_LISTENER_NOTIFIER:Lorg/xnio/IoFuture$Notifier;
8: new org.xnio.IoUtils$8
dup
invokespecial org.xnio.IoUtils$8.<init>:()V
putstatic org.xnio.IoUtils.COUNT_DOWN_NOTIFIER:Lorg/xnio/IoFuture$Notifier;
9: new org.xnio.IoUtils$ManagerNotifier
dup
invokespecial org.xnio.IoUtils$ManagerNotifier.<init>:()V
putstatic org.xnio.IoUtils.MANAGER_NOTIFIER:Lorg/xnio/IoUtils$ManagerNotifier;
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/xnio/IoUtils;
public static java.util.concurrent.Executor directExecutor();
descriptor: ()Ljava/util/concurrent/Executor;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic org.xnio.IoUtils.DIRECT_EXECUTOR:Ljava/util/concurrent/Executor;
areturn
LocalVariableTable:
Start End Slot Name Signature
public static java.util.concurrent.Executor nullExecutor();
descriptor: ()Ljava/util/concurrent/Executor;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic org.xnio.IoUtils.NULL_EXECUTOR:Ljava/util/concurrent/Executor;
areturn
LocalVariableTable:
Start End Slot Name Signature
public static java.io.Closeable nullCloseable();
descriptor: ()Ljava/io/Closeable;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic org.xnio.IoUtils.NULL_CLOSEABLE:Ljava/io/Closeable;
areturn
LocalVariableTable:
Start End Slot Name Signature
public static void safeClose(java.lang.AutoCloseable);
descriptor: (Ljava/lang/AutoCloseable;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
ifnull 7
1: getstatic org.xnio._private.Messages.closeMsg:Lorg/xnio/_private/Messages;
aload 0
invokeinterface org.xnio._private.Messages.closingResource:(Ljava/lang/Object;)V
2: aload 0
invokeinterface java.lang.AutoCloseable.close:()V
3: goto 7
StackMap locals:
StackMap stack: java.nio.channels.ClosedChannelException
4: pop
goto 7
5: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
start local 1 6: getstatic org.xnio._private.Messages.closeMsg:Lorg/xnio/_private/Messages;
aload 1
aload 0
invokeinterface org.xnio._private.Messages.resourceCloseFailed:(Ljava/lang/Throwable;Ljava/lang/Object;)V
end local 1 7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 resource Ljava/lang/AutoCloseable;
6 7 1 t Ljava/lang/Throwable;
Exception table:
from to target type
0 3 4 Class java.nio.channels.ClosedChannelException
0 3 5 Class java.lang.Throwable
MethodParameters:
Name Flags
resource final
public static void safeClose(java.io.Closeable);
descriptor: (Ljava/io/Closeable;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
ifnull 8
1: getstatic org.xnio._private.Messages.closeMsg:Lorg/xnio/_private/Messages;
aload 0
invokeinterface org.xnio._private.Messages.closingResource:(Ljava/lang/Object;)V
2: aload 0
invokeinterface java.io.Closeable.close:()V
3: goto 8
StackMap locals:
StackMap stack: java.nio.channels.ClosedChannelException
4: pop
5: getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
ldc "safeClose, ignoring ClosedChannelException exception"
iconst_0
anewarray java.lang.Object
invokeinterface org.xnio._private.Messages.tracef:(Ljava/lang/String;[Ljava/lang/Object;)V
goto 8
6: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
start local 1 7: getstatic org.xnio._private.Messages.closeMsg:Lorg/xnio/_private/Messages;
aload 1
aload 0
invokeinterface org.xnio._private.Messages.resourceCloseFailed:(Ljava/lang/Throwable;Ljava/lang/Object;)V
end local 1 8: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 resource Ljava/io/Closeable;
7 8 1 t Ljava/lang/Throwable;
Exception table:
from to target type
0 3 4 Class java.nio.channels.ClosedChannelException
0 3 6 Class java.lang.Throwable
MethodParameters:
Name Flags
resource final
public static void safeClose(java.io.Closeable[]);
descriptor: ([Ljava/io/Closeable;)V
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=2, locals=5, args_size=1
start local 0 0: aload 0
dup
astore 4
arraylength
istore 3
iconst_0
istore 2
goto 4
StackMap locals: java.io.Closeable[] top int int java.io.Closeable[]
StackMap stack:
1: aload 4
iload 2
aaload
astore 1
start local 1 2: aload 1
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
end local 1 3: iinc 2 1
StackMap locals:
StackMap stack:
4: iload 2
iload 3
if_icmplt 1
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 resources [Ljava/io/Closeable;
2 3 1 resource Ljava/io/Closeable;
MethodParameters:
Name Flags
resources final
public static void safeClose(java.net.Socket);
descriptor: (Ljava/net/Socket;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
ifnull 7
1: getstatic org.xnio._private.Messages.closeMsg:Lorg/xnio/_private/Messages;
aload 0
invokeinterface org.xnio._private.Messages.closingResource:(Ljava/lang/Object;)V
2: aload 0
invokevirtual java.net.Socket.close:()V
3: goto 7
StackMap locals:
StackMap stack: java.nio.channels.ClosedChannelException
4: pop
goto 7
5: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
start local 1 6: getstatic org.xnio._private.Messages.closeMsg:Lorg/xnio/_private/Messages;
aload 1
aload 0
invokeinterface org.xnio._private.Messages.resourceCloseFailed:(Ljava/lang/Throwable;Ljava/lang/Object;)V
end local 1 7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 resource Ljava/net/Socket;
6 7 1 t Ljava/lang/Throwable;
Exception table:
from to target type
0 3 4 Class java.nio.channels.ClosedChannelException
0 3 5 Class java.lang.Throwable
MethodParameters:
Name Flags
resource final
public static void safeClose(java.net.DatagramSocket);
descriptor: (Ljava/net/DatagramSocket;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
ifnull 6
1: getstatic org.xnio._private.Messages.closeMsg:Lorg/xnio/_private/Messages;
aload 0
invokeinterface org.xnio._private.Messages.closingResource:(Ljava/lang/Object;)V
2: aload 0
invokevirtual java.net.DatagramSocket.close:()V
3: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
4: astore 1
start local 1 5: getstatic org.xnio._private.Messages.closeMsg:Lorg/xnio/_private/Messages;
aload 1
aload 0
invokeinterface org.xnio._private.Messages.resourceCloseFailed:(Ljava/lang/Throwable;Ljava/lang/Object;)V
end local 1 6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 resource Ljava/net/DatagramSocket;
5 6 1 t Ljava/lang/Throwable;
Exception table:
from to target type
0 3 4 Class java.lang.Throwable
MethodParameters:
Name Flags
resource final
public static void safeClose(java.nio.channels.Selector);
descriptor: (Ljava/nio/channels/Selector;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
ifnull 7
1: getstatic org.xnio._private.Messages.closeMsg:Lorg/xnio/_private/Messages;
aload 0
invokeinterface org.xnio._private.Messages.closingResource:(Ljava/lang/Object;)V
2: aload 0
invokevirtual java.nio.channels.Selector.close:()V
3: goto 7
StackMap locals:
StackMap stack: java.nio.channels.ClosedChannelException
4: pop
goto 7
5: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
start local 1 6: getstatic org.xnio._private.Messages.closeMsg:Lorg/xnio/_private/Messages;
aload 1
aload 0
invokeinterface org.xnio._private.Messages.resourceCloseFailed:(Ljava/lang/Throwable;Ljava/lang/Object;)V
end local 1 7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 resource Ljava/nio/channels/Selector;
6 7 1 t Ljava/lang/Throwable;
Exception table:
from to target type
0 3 4 Class java.nio.channels.ClosedChannelException
0 3 5 Class java.lang.Throwable
MethodParameters:
Name Flags
resource final
public static void safeClose(java.net.ServerSocket);
descriptor: (Ljava/net/ServerSocket;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
ifnull 7
1: getstatic org.xnio._private.Messages.closeMsg:Lorg/xnio/_private/Messages;
aload 0
invokeinterface org.xnio._private.Messages.closingResource:(Ljava/lang/Object;)V
2: aload 0
invokevirtual java.net.ServerSocket.close:()V
3: goto 7
StackMap locals:
StackMap stack: java.nio.channels.ClosedChannelException
4: pop
goto 7
5: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
start local 1 6: getstatic org.xnio._private.Messages.closeMsg:Lorg/xnio/_private/Messages;
aload 1
aload 0
invokeinterface org.xnio._private.Messages.resourceCloseFailed:(Ljava/lang/Throwable;Ljava/lang/Object;)V
end local 1 7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 resource Ljava/net/ServerSocket;
6 7 1 t Ljava/lang/Throwable;
Exception table:
from to target type
0 3 4 Class java.nio.channels.ClosedChannelException
0 3 5 Class java.lang.Throwable
MethodParameters:
Name Flags
resource final
public static void safeClose(java.util.zip.ZipFile);
descriptor: (Ljava/util/zip/ZipFile;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
ifnull 6
1: getstatic org.xnio._private.Messages.closeMsg:Lorg/xnio/_private/Messages;
aload 0
invokeinterface org.xnio._private.Messages.closingResource:(Ljava/lang/Object;)V
2: aload 0
invokevirtual java.util.zip.ZipFile.close:()V
3: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
4: astore 1
start local 1 5: getstatic org.xnio._private.Messages.closeMsg:Lorg/xnio/_private/Messages;
aload 1
aload 0
invokeinterface org.xnio._private.Messages.resourceCloseFailed:(Ljava/lang/Throwable;Ljava/lang/Object;)V
end local 1 6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 resource Ljava/util/zip/ZipFile;
5 6 1 t Ljava/lang/Throwable;
Exception table:
from to target type
0 3 4 Class java.lang.Throwable
MethodParameters:
Name Flags
resource final
public static void safeClose(java.util.logging.Handler);
descriptor: (Ljava/util/logging/Handler;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
ifnull 6
1: getstatic org.xnio._private.Messages.closeMsg:Lorg/xnio/_private/Messages;
aload 0
invokeinterface org.xnio._private.Messages.closingResource:(Ljava/lang/Object;)V
2: aload 0
invokevirtual java.util.logging.Handler.close:()V
3: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
4: astore 1
start local 1 5: getstatic org.xnio._private.Messages.closeMsg:Lorg/xnio/_private/Messages;
aload 1
aload 0
invokeinterface org.xnio._private.Messages.resourceCloseFailed:(Ljava/lang/Throwable;Ljava/lang/Object;)V
end local 1 6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 resource Ljava/util/logging/Handler;
5 6 1 t Ljava/lang/Throwable;
Exception table:
from to target type
0 3 4 Class java.lang.Throwable
MethodParameters:
Name Flags
resource final
public static void safeClose(org.xnio.IoFuture<? extends java.io.Closeable>);
descriptor: (Lorg/xnio/IoFuture;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ifnull 2
1: aload 0
invokeinterface org.xnio.IoFuture.cancel:()Lorg/xnio/IoFuture;
invokestatic org.xnio.IoUtils.closingNotifier:()Lorg/xnio/IoFuture$Notifier;
aconst_null
invokeinterface org.xnio.IoFuture.addNotifier:(Lorg/xnio/IoFuture$Notifier;Ljava/lang/Object;)Lorg/xnio/IoFuture;
pop
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 futureResource Lorg/xnio/IoFuture<+Ljava/io/Closeable;>;
Signature: (Lorg/xnio/IoFuture<+Ljava/io/Closeable;>;)V
MethodParameters:
Name Flags
futureResource final
public static org.xnio.IoFuture$Notifier<java.lang.Object, java.io.Closeable> attachmentClosingNotifier();
descriptor: ()Lorg/xnio/IoFuture$Notifier;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic org.xnio.IoUtils.ATTACHMENT_CLOSING_NOTIFIER:Lorg/xnio/IoFuture$Notifier;
areturn
LocalVariableTable:
Start End Slot Name Signature
Signature: ()Lorg/xnio/IoFuture$Notifier<Ljava/lang/Object;Ljava/io/Closeable;>;
public static org.xnio.IoFuture$Notifier<java.io.Closeable, java.lang.Void> closingNotifier();
descriptor: ()Lorg/xnio/IoFuture$Notifier;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic org.xnio.IoUtils.CLOSING_NOTIFIER:Lorg/xnio/IoFuture$Notifier;
areturn
LocalVariableTable:
Start End Slot Name Signature
Signature: ()Lorg/xnio/IoFuture$Notifier<Ljava/io/Closeable;Ljava/lang/Void;>;
public static <T> org.xnio.IoFuture$Notifier<T, java.lang.Void> runnableNotifier(java.lang.Runnable);
descriptor: (Ljava/lang/Runnable;)Lorg/xnio/IoFuture$Notifier;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new org.xnio.IoUtils$9
dup
aload 0
invokespecial org.xnio.IoUtils$9.<init>:(Ljava/lang/Runnable;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runnable Ljava/lang/Runnable;
Signature: <T:Ljava/lang/Object;>(Ljava/lang/Runnable;)Lorg/xnio/IoFuture$Notifier<TT;Ljava/lang/Void;>;
MethodParameters:
Name Flags
runnable final
public static <T> org.xnio.IoFuture$Notifier<T, org.xnio.Result<T>> resultNotifier();
descriptor: ()Lorg/xnio/IoFuture$Notifier;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic org.xnio.IoUtils.RESULT_NOTIFIER:Lorg/xnio/IoUtils$ResultNotifier;
areturn
LocalVariableTable:
Start End Slot Name Signature
Signature: <T:Ljava/lang/Object;>()Lorg/xnio/IoFuture$Notifier<TT;Lorg/xnio/Result<TT;>;>;
public static <T extends java.nio.channels.Channel> org.xnio.IoFuture$Notifier<T, org.xnio.ChannelListener<? super T>> channelListenerNotifier();
descriptor: ()Lorg/xnio/IoFuture$Notifier;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic org.xnio.IoUtils.CHANNEL_LISTENER_NOTIFIER:Lorg/xnio/IoFuture$Notifier;
areturn
LocalVariableTable:
Start End Slot Name Signature
Signature: <T::Ljava/nio/channels/Channel;>()Lorg/xnio/IoFuture$Notifier<TT;Lorg/xnio/ChannelListener<-TT;>;>;
public static <T> java.util.concurrent.Future<T> getFuture(org.xnio.IoFuture<T>);
descriptor: (Lorg/xnio/IoFuture;)Ljava/util/concurrent/Future;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new org.xnio.IoUtils$10
dup
aload 0
invokespecial org.xnio.IoUtils$10.<init>:(Lorg/xnio/IoFuture;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 ioFuture Lorg/xnio/IoFuture<TT;>;
Signature: <T:Ljava/lang/Object;>(Lorg/xnio/IoFuture<TT;>;)Ljava/util/concurrent/Future<TT;>;
MethodParameters:
Name Flags
ioFuture final
public static void awaitAll(org.xnio.IoFuture<?>[]);
descriptor: ([Lorg/xnio/IoFuture;)V
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=4, locals=7, args_size=1
start local 0 0: aload 0
arraylength
istore 1
start local 1 1: new java.util.concurrent.CountDownLatch
dup
iload 1
invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
astore 2
start local 2 2: aload 0
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 6
StackMap locals: org.xnio.IoFuture[] int java.util.concurrent.CountDownLatch top int int org.xnio.IoFuture[]
StackMap stack:
3: aload 6
iload 4
aaload
astore 3
start local 3 4: aload 3
getstatic org.xnio.IoUtils.COUNT_DOWN_NOTIFIER:Lorg/xnio/IoFuture$Notifier;
aload 2
invokeinterface org.xnio.IoFuture.addNotifier:(Lorg/xnio/IoFuture$Notifier;Ljava/lang/Object;)Lorg/xnio/IoFuture;
pop
end local 3 5: iinc 4 1
StackMap locals:
StackMap stack:
6: iload 4
iload 5
if_icmplt 3
7: iconst_0
istore 3
start local 3 8: goto 13
9: StackMap locals: org.xnio.IoFuture[] int java.util.concurrent.CountDownLatch int
StackMap stack:
aload 2
invokevirtual java.util.concurrent.CountDownLatch.await:()V
10: goto 13
StackMap locals:
StackMap stack: java.lang.InterruptedException
11: pop
12: iconst_1
istore 3
13: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.util.concurrent.CountDownLatch.getCount:()J
lconst_0
lcmp
ifgt 9
14: goto 19
StackMap locals:
StackMap stack: java.lang.Throwable
15: astore 4
16: iload 3
ifeq 18
17: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
18: StackMap locals: java.lang.Throwable
StackMap stack:
aload 4
athrow
19: StackMap locals:
StackMap stack:
iload 3
ifeq 21
20: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
21: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 futures [Lorg/xnio/IoFuture;
1 22 1 len I
2 22 2 cdl Ljava/util/concurrent/CountDownLatch;
4 5 3 future Lorg/xnio/IoFuture<*>;
8 22 3 intr Z
Exception table:
from to target type
9 10 11 Class java.lang.InterruptedException
8 15 15 any
Signature: ([Lorg/xnio/IoFuture<*>;)V
MethodParameters:
Name Flags
futures
public static void awaitAllInterruptibly(org.xnio.IoFuture<?>[]);
descriptor: ([Lorg/xnio/IoFuture;)V
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=3, locals=7, args_size=1
start local 0 0: aload 0
arraylength
istore 1
start local 1 1: new java.util.concurrent.CountDownLatch
dup
iload 1
invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
astore 2
start local 2 2: aload 0
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 6
StackMap locals: org.xnio.IoFuture[] int java.util.concurrent.CountDownLatch top int int org.xnio.IoFuture[]
StackMap stack:
3: aload 6
iload 4
aaload
astore 3
start local 3 4: aload 3
getstatic org.xnio.IoUtils.COUNT_DOWN_NOTIFIER:Lorg/xnio/IoFuture$Notifier;
aload 2
invokeinterface org.xnio.IoFuture.addNotifier:(Lorg/xnio/IoFuture$Notifier;Ljava/lang/Object;)Lorg/xnio/IoFuture;
pop
end local 3 5: iinc 4 1
StackMap locals:
StackMap stack:
6: iload 4
iload 5
if_icmplt 3
7: aload 2
invokevirtual java.util.concurrent.CountDownLatch.await:()V
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 futures [Lorg/xnio/IoFuture;
1 9 1 len I
2 9 2 cdl Ljava/util/concurrent/CountDownLatch;
4 5 3 future Lorg/xnio/IoFuture<*>;
Exceptions:
throws java.lang.InterruptedException
Signature: ([Lorg/xnio/IoFuture<*>;)V
MethodParameters:
Name Flags
futures
public static <I, O> org.xnio.IoFuture<? extends O> cast(org.xnio.IoFuture<I>, java.lang.Class<O>);
descriptor: (Lorg/xnio/IoFuture;Ljava/lang/Class;)Lorg/xnio/IoFuture;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new org.xnio.IoUtils$CastingIoFuture
dup
aload 0
aload 1
invokespecial org.xnio.IoUtils$CastingIoFuture.<init>:(Lorg/xnio/IoFuture;Ljava/lang/Class;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 parent Lorg/xnio/IoFuture<TI;>;
0 1 1 type Ljava/lang/Class<TO;>;
Signature: <I:Ljava/lang/Object;O:Ljava/lang/Object;>(Lorg/xnio/IoFuture<TI;>;Ljava/lang/Class<TO;>;)Lorg/xnio/IoFuture<+TO;>;
MethodParameters:
Name Flags
parent final
type final
public static void safeShutdownReads(org.xnio.channels.SuspendableReadChannel);
descriptor: (Lorg/xnio/channels/SuspendableReadChannel;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ifnull 5
1: aload 0
invokeinterface org.xnio.channels.SuspendableReadChannel.shutdownReads:()V
2: goto 5
StackMap locals:
StackMap stack: java.io.IOException
3: pop
4: getstatic org.xnio._private.Messages.closeMsg:Lorg/xnio/_private/Messages;
aconst_null
aconst_null
invokeinterface org.xnio._private.Messages.resourceReadShutdownFailed:(Ljava/lang/Throwable;Ljava/lang/Object;)V
5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 channel Lorg/xnio/channels/SuspendableReadChannel;
Exception table:
from to target type
1 2 3 Class java.io.IOException
MethodParameters:
Name Flags
channel final
public static long transfer(java.nio.channels.ReadableByteChannel, long, java.nio.ByteBuffer, java.nio.channels.WritableByteChannel);
descriptor: (Ljava/nio/channels/ReadableByteChannel;JLjava/nio/ByteBuffer;Ljava/nio/channels/WritableByteChannel;)J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=12, args_size=4
start local 0 start local 1 start local 3 start local 4 0: lconst_0
lstore 7
start local 7 1: aload 3
iconst_0
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
2: goto 21
3: StackMap locals: java.nio.channels.ReadableByteChannel long java.nio.ByteBuffer java.nio.channels.WritableByteChannel top top long
StackMap stack:
aload 3
invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
pop
4: lload 1
lload 7
lsub
aload 3
invokevirtual java.nio.ByteBuffer.remaining:()I
i2l
lcmp
ifge 6
5: aload 3
lload 1
lload 7
lsub
l2i
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
6: StackMap locals:
StackMap stack:
aload 0
aload 3
invokeinterface java.nio.channels.ReadableByteChannel.read:(Ljava/nio/ByteBuffer;)I
i2l
lstore 5
start local 5 7: lload 5
lconst_0
lcmp
ifgt 16
8: lload 7
lconst_0
lcmp
ifne 9
lload 5
goto 10
StackMap locals: java.nio.channels.ReadableByteChannel long java.nio.ByteBuffer java.nio.channels.WritableByteChannel long long
StackMap stack:
9: lload 7
StackMap locals:
StackMap stack: long
10: lstore 10
11: aload 3
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
12: lload 10
lreturn
end local 5 13: StackMap locals: java.nio.channels.ReadableByteChannel long java.nio.ByteBuffer java.nio.channels.WritableByteChannel top top long
StackMap stack: java.lang.Throwable
astore 9
14: aload 3
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
15: aload 9
athrow
start local 5 16: StackMap locals: java.nio.channels.ReadableByteChannel long java.nio.ByteBuffer java.nio.channels.WritableByteChannel long long
StackMap stack:
aload 3
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
17: aload 4
aload 3
invokeinterface java.nio.channels.WritableByteChannel.write:(Ljava/nio/ByteBuffer;)I
i2l
lstore 5
18: lload 5
lconst_0
lcmp
ifne 20
19: lload 7
lreturn
20: StackMap locals:
StackMap stack:
lload 7
lload 5
ladd
lstore 7
end local 5 21: StackMap locals: java.nio.channels.ReadableByteChannel long java.nio.ByteBuffer java.nio.channels.WritableByteChannel top top long
StackMap stack:
lload 7
lload 1
lcmp
iflt 3
22: lload 7
lreturn
end local 7 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 source Ljava/nio/channels/ReadableByteChannel;
0 23 1 count J
0 23 3 throughBuffer Ljava/nio/ByteBuffer;
0 23 4 sink Ljava/nio/channels/WritableByteChannel;
7 13 5 res J
16 21 5 res J
1 23 7 total J
Exception table:
from to target type
4 11 13 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
source final
count final
throughBuffer final
sink final
public static <T> org.xnio.IoFuture$Notifier<T, org.xnio.FutureResult<T>> getManagerNotifier();
descriptor: ()Lorg/xnio/IoFuture$Notifier;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic org.xnio.IoUtils.MANAGER_NOTIFIER:Lorg/xnio/IoUtils$ManagerNotifier;
areturn
LocalVariableTable:
Start End Slot Name Signature
Signature: <T:Ljava/lang/Object;>()Lorg/xnio/IoFuture$Notifier<TT;Lorg/xnio/FutureResult<TT;>;>;
public static <T extends java.nio.channels.Channel> org.xnio.ChannelSource<T> getRetryingChannelSource(org.xnio.ChannelSource<T>, int);
descriptor: (Lorg/xnio/ChannelSource;I)Lorg/xnio/ChannelSource;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: iload 1
iconst_1
if_icmpge 2
1: getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
ldc "maxTries"
iconst_1
invokeinterface org.xnio._private.Messages.minRange:(Ljava/lang/String;I)Ljava/lang/IllegalArgumentException;
athrow
2: StackMap locals:
StackMap stack:
new org.xnio.IoUtils$RetryingChannelSource
dup
iload 1
aload 0
invokespecial org.xnio.IoUtils$RetryingChannelSource.<init>:(ILorg/xnio/ChannelSource;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 delegate Lorg/xnio/ChannelSource<TT;>;
0 3 1 maxTries I
Exceptions:
throws java.lang.IllegalArgumentException
Signature: <T::Ljava/nio/channels/Channel;>(Lorg/xnio/ChannelSource<TT;>;I)Lorg/xnio/ChannelSource<TT;>;
MethodParameters:
Name Flags
delegate final
maxTries final
public static org.xnio.Cancellable closingCancellable(java.io.Closeable);
descriptor: (Ljava/io/Closeable;)Lorg/xnio/Cancellable;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new org.xnio.IoUtils$ClosingCancellable
dup
aload 0
invokespecial org.xnio.IoUtils$ClosingCancellable.<init>:(Ljava/io/Closeable;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 c Ljava/io/Closeable;
MethodParameters:
Name Flags
c final
public static org.xnio.Cancellable nullCancellable();
descriptor: ()Lorg/xnio/Cancellable;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic org.xnio.IoUtils.NULL_CANCELLABLE:Lorg/xnio/Cancellable;
areturn
LocalVariableTable:
Start End Slot Name Signature
public static java.util.Random getThreadLocalRandom();
descriptor: ()Ljava/util/Random;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic java.util.concurrent.ThreadLocalRandom.current:()Ljava/util/concurrent/ThreadLocalRandom;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "IoUtils.java"
NestMembers:
org.xnio.IoUtils$1 org.xnio.IoUtils$10 org.xnio.IoUtils$2 org.xnio.IoUtils$3 org.xnio.IoUtils$4 org.xnio.IoUtils$5 org.xnio.IoUtils$6 org.xnio.IoUtils$7 org.xnio.IoUtils$8 org.xnio.IoUtils$9 org.xnio.IoUtils$CastingIoFuture org.xnio.IoUtils$CastingIoFuture$1 org.xnio.IoUtils$ClosingCancellable org.xnio.IoUtils$ManagerNotifier org.xnio.IoUtils$ResultNotifier org.xnio.IoUtils$RetryingChannelSource org.xnio.IoUtils$RetryingNotifier
InnerClasses:
public abstract Notifier = org.xnio.IoFuture$Notifier of org.xnio.IoFuture
org.xnio.IoUtils$1
org.xnio.IoUtils$10
org.xnio.IoUtils$2
org.xnio.IoUtils$3
org.xnio.IoUtils$4
org.xnio.IoUtils$5
org.xnio.IoUtils$6
org.xnio.IoUtils$7
org.xnio.IoUtils$8
org.xnio.IoUtils$9
private CastingIoFuture = org.xnio.IoUtils$CastingIoFuture of org.xnio.IoUtils
private ClosingCancellable = org.xnio.IoUtils$ClosingCancellable of org.xnio.IoUtils
private ManagerNotifier = org.xnio.IoUtils$ManagerNotifier of org.xnio.IoUtils
private ResultNotifier = org.xnio.IoUtils$ResultNotifier of org.xnio.IoUtils
private RetryingChannelSource = org.xnio.IoUtils$RetryingChannelSource of org.xnio.IoUtils
private RetryingNotifier = org.xnio.IoUtils$RetryingNotifier of org.xnio.IoUtils