class org.xnio.IoUtils$RetryingNotifier<T extends java.nio.channels.Channel> extends org.xnio.IoFuture$HandlingNotifier<T, org.xnio.Result<T>>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.xnio.IoUtils$RetryingNotifier
super_class: org.xnio.IoFuture$HandlingNotifier
{
private volatile int remaining;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final int maxTries;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.xnio.Result<T> result;
descriptor: Lorg/xnio/Result;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/xnio/Result<TT;>;
private final org.xnio.ChannelSource<T> delegate;
descriptor: Lorg/xnio/ChannelSource;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/xnio/ChannelSource<TT;>;
private final org.xnio.ChannelListener<? super T> openListener;
descriptor: Lorg/xnio/ChannelListener;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/xnio/ChannelListener<-TT;>;
void <init>(int, org.xnio.Result<T>, org.xnio.ChannelSource<T>, org.xnio.ChannelListener<? super T>);
descriptor: (ILorg/xnio/Result;Lorg/xnio/ChannelSource;Lorg/xnio/ChannelListener;)V
flags: (0x0000)
Code:
stack=2, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial org.xnio.IoFuture$HandlingNotifier.<init>:()V
1: aload 0
iload 1
putfield org.xnio.IoUtils$RetryingNotifier.maxTries:I
2: aload 0
aload 2
putfield org.xnio.IoUtils$RetryingNotifier.result:Lorg/xnio/Result;
3: aload 0
aload 3
putfield org.xnio.IoUtils$RetryingNotifier.delegate:Lorg/xnio/ChannelSource;
4: aload 0
aload 4
putfield org.xnio.IoUtils$RetryingNotifier.openListener:Lorg/xnio/ChannelListener;
5: aload 0
iload 1
putfield org.xnio.IoUtils$RetryingNotifier.remaining:I
6: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/xnio/IoUtils$RetryingNotifier<TT;>;
0 7 1 maxTries I
0 7 2 result Lorg/xnio/Result<TT;>;
0 7 3 delegate Lorg/xnio/ChannelSource<TT;>;
0 7 4 openListener Lorg/xnio/ChannelListener<-TT;>;
Signature: (ILorg/xnio/Result<TT;>;Lorg/xnio/ChannelSource<TT;>;Lorg/xnio/ChannelListener<-TT;>;)V
MethodParameters:
Name Flags
maxTries final
result final
delegate final
openListener final
public void handleFailed(java.io.IOException, org.xnio.Result<T>);
descriptor: (Ljava/io/IOException;Lorg/xnio/Result;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
dup
getfield org.xnio.IoUtils$RetryingNotifier.remaining:I
dup_x1
iconst_1
isub
putfield org.xnio.IoUtils$RetryingNotifier.remaining:I
ifne 3
1: aload 0
getfield org.xnio.IoUtils$RetryingNotifier.result:Lorg/xnio/Result;
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Failed to create channel after "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.xnio.IoUtils$RetryingNotifier.maxTries:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " tries"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 1
invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
invokeinterface org.xnio.Result.setException:(Ljava/io/IOException;)Z
pop
2: return
3: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual org.xnio.IoUtils$RetryingNotifier.tryOne:(Lorg/xnio/Result;)V
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/xnio/IoUtils$RetryingNotifier<TT;>;
0 5 1 exception Ljava/io/IOException;
0 5 2 attachment Lorg/xnio/Result<TT;>;
Signature: (Ljava/io/IOException;Lorg/xnio/Result<TT;>;)V
MethodParameters:
Name Flags
exception final
attachment final
public void handleCancelled(org.xnio.Result<T>);
descriptor: (Lorg/xnio/Result;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.xnio.IoUtils$RetryingNotifier.result:Lorg/xnio/Result;
invokeinterface org.xnio.Result.setCancelled:()Z
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/xnio/IoUtils$RetryingNotifier<TT;>;
0 2 1 attachment Lorg/xnio/Result<TT;>;
Signature: (Lorg/xnio/Result<TT;>;)V
MethodParameters:
Name Flags
attachment final
public void handleDone(T, org.xnio.Result<T>);
descriptor: (Ljava/nio/channels/Channel;Lorg/xnio/Result;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.xnio.IoUtils$RetryingNotifier.result:Lorg/xnio/Result;
aload 1
invokeinterface org.xnio.Result.setResult:(Ljava/lang/Object;)Z
pop
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/xnio/IoUtils$RetryingNotifier<TT;>;
0 2 1 data TT;
0 2 2 attachment Lorg/xnio/Result<TT;>;
Signature: (TT;Lorg/xnio/Result<TT;>;)V
MethodParameters:
Name Flags
data final
attachment final
void tryOne(org.xnio.Result<T>);
descriptor: (Lorg/xnio/Result;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.xnio.IoUtils$RetryingNotifier.delegate:Lorg/xnio/ChannelSource;
aload 0
getfield org.xnio.IoUtils$RetryingNotifier.openListener:Lorg/xnio/ChannelListener;
invokeinterface org.xnio.ChannelSource.open:(Lorg/xnio/ChannelListener;)Lorg/xnio/IoFuture;
astore 2
start local 2 1: aload 2
aload 0
aload 1
invokeinterface org.xnio.IoFuture.addNotifier:(Lorg/xnio/IoFuture$Notifier;Ljava/lang/Object;)Lorg/xnio/IoFuture;
pop
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/xnio/IoUtils$RetryingNotifier<TT;>;
0 3 1 attachment Lorg/xnio/Result<TT;>;
1 3 2 ioFuture Lorg/xnio/IoFuture<+TT;>;
Signature: (Lorg/xnio/Result<TT;>;)V
MethodParameters:
Name Flags
attachment final
public void handleDone(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
checkcast java.nio.channels.Channel
aload 2
checkcast org.xnio.Result
invokevirtual org.xnio.IoUtils$RetryingNotifier.handleDone:(Ljava/nio/channels/Channel;Lorg/xnio/Result;)V
return
LocalVariableTable:
Start End Slot Name Signature
public void handleFailed(java.io.IOException, java.lang.Object);
descriptor: (Ljava/io/IOException;Ljava/lang/Object;)V
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
aload 2
checkcast org.xnio.Result
invokevirtual org.xnio.IoUtils$RetryingNotifier.handleFailed:(Ljava/io/IOException;Lorg/xnio/Result;)V
return
LocalVariableTable:
Start End Slot Name Signature
public void handleCancelled(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
checkcast org.xnio.Result
invokevirtual org.xnio.IoUtils$RetryingNotifier.handleCancelled:(Lorg/xnio/Result;)V
return
LocalVariableTable:
Start End Slot Name Signature
}
Signature: <T::Ljava/nio/channels/Channel;>Lorg/xnio/IoFuture$HandlingNotifier<TT;Lorg/xnio/Result<TT;>;>;
SourceFile: "IoUtils.java"
NestHost: org.xnio.IoUtils
InnerClasses:
public abstract HandlingNotifier = org.xnio.IoFuture$HandlingNotifier of org.xnio.IoFuture
public abstract Notifier = org.xnio.IoFuture$Notifier of org.xnio.IoFuture
private RetryingNotifier = org.xnio.IoUtils$RetryingNotifier of org.xnio.IoUtils