class io.vertx.redis.client.impl.RedisClusterClient$1 implements java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: io.vertx.redis.client.impl.RedisClusterClient$1
super_class: java.lang.Object
{
final io.vertx.redis.client.impl.RedisClusterClient this$0;
descriptor: Lio/vertx/redis/client/impl/RedisClusterClient;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private final java.util.Set val$exclude;
descriptor: Ljava/util/Set;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
private final io.vertx.core.Handler val$handler;
descriptor: Lio/vertx/core/Handler;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
private final java.util.concurrent.atomic.AtomicReference val$cause;
descriptor: Ljava/util/concurrent/atomic/AtomicReference;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
private final io.vertx.redis.client.RedisOptions val$options;
descriptor: Lio/vertx/redis/client/RedisOptions;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
void <init>(io.vertx.redis.client.impl.RedisClusterClient, java.util.Set, io.vertx.core.Handler, java.util.concurrent.atomic.AtomicReference, io.vertx.redis.client.RedisOptions);
descriptor: (Lio/vertx/redis/client/impl/RedisClusterClient;Ljava/util/Set;Lio/vertx/core/Handler;Ljava/util/concurrent/atomic/AtomicReference;Lio/vertx/redis/client/RedisOptions;)V
flags: (0x0000)
Code:
stack=2, locals=6, args_size=6
start local 0 0: aload 0
aload 1
putfield io.vertx.redis.client.impl.RedisClusterClient$1.this$0:Lio/vertx/redis/client/impl/RedisClusterClient;
aload 0
aload 2
putfield io.vertx.redis.client.impl.RedisClusterClient$1.val$exclude:Ljava/util/Set;
aload 0
aload 3
putfield io.vertx.redis.client.impl.RedisClusterClient$1.val$handler:Lio/vertx/core/Handler;
aload 0
aload 4
putfield io.vertx.redis.client.impl.RedisClusterClient$1.val$cause:Ljava/util/concurrent/atomic/AtomicReference;
aload 0
aload 5
putfield io.vertx.redis.client.impl.RedisClusterClient$1.val$options:Lio/vertx/redis/client/RedisOptions;
aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/redis/client/impl/RedisClusterClient$1;
MethodParameters:
Name Flags
this$0 final
val$exclude final
val$handler final
val$cause final
val$options final
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=2, args_size=1
start local 0 0: aload 0
getfield io.vertx.redis.client.impl.RedisClusterClient$1.this$0:Lio/vertx/redis/client/impl/RedisClusterClient;
aload 0
getfield io.vertx.redis.client.impl.RedisClusterClient$1.val$exclude:Ljava/util/Set;
invokevirtual io.vertx.redis.client.impl.RedisClusterClient.getRandomConnection:(Ljava/util/Set;)Lio/vertx/redis/client/Redis;
astore 1
start local 1 1: aload 1
ifnonnull 4
2: aload 0
getfield io.vertx.redis.client.impl.RedisClusterClient$1.val$handler:Lio/vertx/core/Handler;
ldc "SLOTS No client's available."
invokestatic io.vertx.redis.client.impl.types.ErrorType.create:(Ljava/lang/String;)Lio/vertx/redis/client/impl/types/ErrorType;
invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
3: return
4: StackMap locals: io.vertx.redis.client.Redis
StackMap stack:
aload 1
getstatic io.vertx.redis.client.Command.CLUSTER:Lio/vertx/redis/client/Command;
invokestatic io.vertx.redis.client.Request.cmd:(Lio/vertx/redis/client/Command;)Lio/vertx/redis/client/Request;
ldc "SLOTS"
invokeinterface io.vertx.redis.client.Request.arg:(Ljava/lang/String;)Lio/vertx/redis/client/Request;
aload 0
aload 0
getfield io.vertx.redis.client.impl.RedisClusterClient$1.val$exclude:Ljava/util/Set;
aload 1
aload 0
getfield io.vertx.redis.client.impl.RedisClusterClient$1.val$cause:Ljava/util/concurrent/atomic/AtomicReference;
aload 0
getfield io.vertx.redis.client.impl.RedisClusterClient$1.val$options:Lio/vertx/redis/client/RedisOptions;
aload 0
getfield io.vertx.redis.client.impl.RedisClusterClient$1.val$handler:Lio/vertx/core/Handler;
invokedynamic handle(Lio/vertx/redis/client/impl/RedisClusterClient$1;Ljava/util/Set;Lio/vertx/redis/client/Redis;Ljava/util/concurrent/atomic/AtomicReference;Lio/vertx/redis/client/RedisOptions;Lio/vertx/core/Handler;)Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/redis/client/impl/RedisClusterClient$1.lambda$0(Ljava/util/Set;Lio/vertx/redis/client/Redis;Ljava/util/concurrent/atomic/AtomicReference;Lio/vertx/redis/client/RedisOptions;Lio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V (7)
(Lio/vertx/core/AsyncResult;)V
invokeinterface io.vertx.redis.client.Redis.send:(Lio/vertx/redis/client/Request;Lio/vertx/core/Handler;)Lio/vertx/redis/client/Redis;
pop
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/vertx/redis/client/impl/RedisClusterClient$1;
1 6 1 conn Lio/vertx/redis/client/Redis;
private void lambda$0(java.util.Set, io.vertx.redis.client.Redis, java.util.concurrent.atomic.AtomicReference, io.vertx.redis.client.RedisOptions, io.vertx.core.Handler, io.vertx.core.AsyncResult);
descriptor: (Ljava/util/Set;Lio/vertx/redis/client/Redis;Ljava/util/concurrent/atomic/AtomicReference;Lio/vertx/redis/client/RedisOptions;Lio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=9, locals=18, args_size=7
start local 0 start local 6 0: aload 6
invokeinterface io.vertx.core.AsyncResult.failed:()Z
ifeq 5
1: aload 1
aload 2
invokeinterface io.vertx.redis.client.Redis.socketAddress:()Lio/vertx/core/net/SocketAddress;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
2: aload 3
aload 6
invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
3: aload 0
invokevirtual io.vertx.redis.client.impl.RedisClusterClient$1.run:()V
4: return
5: StackMap locals:
StackMap stack:
aload 6
invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
checkcast io.vertx.redis.client.Response
astore 7
start local 7 6: aload 7
invokeinterface io.vertx.redis.client.Response.size:()I
ifne 11
7: aload 1
aload 2
invokeinterface io.vertx.redis.client.Redis.socketAddress:()Lio/vertx/core/net/SocketAddress;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
8: aload 3
ldc "SLOTS No slots available in the cluster."
invokestatic io.vertx.redis.client.impl.types.ErrorType.create:(Ljava/lang/String;)Lio/vertx/redis/client/impl/types/ErrorType;
invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
9: aload 0
invokevirtual io.vertx.redis.client.impl.RedisClusterClient$1.run:()V
10: return
11: StackMap locals: io.vertx.redis.client.Response
StackMap stack:
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 8
start local 8 12: new java.util.concurrent.atomic.AtomicInteger
dup
aload 7
invokeinterface io.vertx.redis.client.Response.size:()I
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
astore 9
start local 9 13: aload 0
getfield io.vertx.redis.client.impl.RedisClusterClient$1.this$0:Lio/vertx/redis/client/impl/RedisClusterClient;
aload 7
invokeinterface io.vertx.redis.client.Response.size:()I
putfield io.vertx.redis.client.impl.RedisClusterClient.slotNumber:I
14: iconst_0
istore 10
start local 10 15: goto 30
16: StackMap locals: java.util.Set java.util.concurrent.atomic.AtomicInteger int
StackMap stack:
aload 7
iload 10
invokeinterface io.vertx.redis.client.Response.get:(I)Lio/vertx/redis/client/Response;
astore 11
start local 11 17: aload 11
iconst_0
invokeinterface io.vertx.redis.client.Response.get:(I)Lio/vertx/redis/client/Response;
invokeinterface io.vertx.redis.client.Response.toInteger:()Ljava/lang/Integer;
invokevirtual java.lang.Integer.intValue:()I
istore 12
start local 12 18: aload 11
iconst_1
invokeinterface io.vertx.redis.client.Response.get:(I)Lio/vertx/redis/client/Response;
invokeinterface io.vertx.redis.client.Response.toInteger:()Ljava/lang/Integer;
invokevirtual java.lang.Integer.intValue:()I
istore 13
start local 13 19: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 14
start local 14 20: iconst_2
istore 15
start local 15 21: goto 27
22: StackMap locals: io.vertx.redis.client.impl.RedisClusterClient$1 java.util.Set io.vertx.redis.client.Redis java.util.concurrent.atomic.AtomicReference io.vertx.redis.client.RedisOptions io.vertx.core.Handler io.vertx.core.AsyncResult io.vertx.redis.client.Response java.util.Set java.util.concurrent.atomic.AtomicInteger int io.vertx.redis.client.Response int int java.util.List int
StackMap stack:
aload 11
iload 15
invokeinterface io.vertx.redis.client.Response.get:(I)Lio/vertx/redis/client/Response;
astore 16
start local 16 23: aload 16
iconst_1
invokeinterface io.vertx.redis.client.Response.get:(I)Lio/vertx/redis/client/Response;
invokeinterface io.vertx.redis.client.Response.toInteger:()Ljava/lang/Integer;
invokevirtual java.lang.Integer.intValue:()I
aload 16
iconst_0
invokeinterface io.vertx.redis.client.Response.get:(I)Lio/vertx/redis/client/Response;
invokeinterface io.vertx.redis.client.Response.toString:()Ljava/lang/String;
invokestatic io.vertx.core.net.SocketAddress.inetSocketAddress:(ILjava/lang/String;)Lio/vertx/core/net/SocketAddress;
astore 17
start local 17 24: aload 14
aload 17
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
25: aload 8
aload 17
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 17 end local 16 26: iinc 15 1
StackMap locals:
StackMap stack:
27: iload 15
aload 11
invokeinterface io.vertx.redis.client.Response.size:()I
if_icmplt 22
end local 15 28: aload 0
getfield io.vertx.redis.client.impl.RedisClusterClient$1.this$0:Lio/vertx/redis/client/impl/RedisClusterClient;
iload 12
iload 13
aload 14
aload 4
aload 0
aload 9
aload 8
aload 5
invokedynamic handle(Lio/vertx/redis/client/impl/RedisClusterClient$1;Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/Set;Lio/vertx/core/Handler;)Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/redis/client/impl/RedisClusterClient$1.lambda$1(Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/Set;Lio/vertx/core/Handler;Ljava/lang/Void;)V (7)
(Ljava/lang/Void;)V
invokevirtual io.vertx.redis.client.impl.RedisClusterClient.loadSlot:(IILjava/util/List;Lio/vertx/redis/client/RedisOptions;Lio/vertx/core/Handler;)V
end local 14 end local 13 end local 12 end local 11 29: iinc 10 1
StackMap locals: io.vertx.redis.client.impl.RedisClusterClient$1 java.util.Set io.vertx.redis.client.Redis java.util.concurrent.atomic.AtomicReference io.vertx.redis.client.RedisOptions io.vertx.core.Handler io.vertx.core.AsyncResult io.vertx.redis.client.Response java.util.Set java.util.concurrent.atomic.AtomicInteger int
StackMap stack:
30: iload 10
aload 7
invokeinterface io.vertx.redis.client.Response.size:()I
if_icmplt 16
end local 10 end local 9 end local 8 end local 7 31: return
end local 6 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lio/vertx/redis/client/impl/RedisClusterClient$1;
0 32 6 send Lio/vertx/core/AsyncResult<Lio/vertx/redis/client/Response;>;
6 31 7 reply Lio/vertx/redis/client/Response;
12 31 8 seenClients Ljava/util/Set<Lio/vertx/core/net/SocketAddress;>;
13 31 9 slotCounter Ljava/util/concurrent/atomic/AtomicInteger;
15 31 10 i I
17 29 11 s Lio/vertx/redis/client/Response;
18 29 12 start I
19 29 13 end I
20 29 14 addresses Ljava/util/List<Lio/vertx/core/net/SocketAddress;>;
21 28 15 index I
23 26 16 c Lio/vertx/redis/client/Response;
24 26 17 address Lio/vertx/core/net/SocketAddress;
private void lambda$1(java.util.concurrent.atomic.AtomicInteger, java.util.Set, io.vertx.core.Handler, java.lang.Void);
descriptor: (Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/Set;Lio/vertx/core/Handler;Ljava/lang/Void;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=5, args_size=5
start local 0 start local 4 0: aload 1
invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
ifne 3
1: aload 0
getfield io.vertx.redis.client.impl.RedisClusterClient$1.this$0:Lio/vertx/redis/client/impl/RedisClusterClient;
getfield io.vertx.redis.client.impl.RedisClusterClient.connections:Ljava/util/Map;
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
aload 2
invokedynamic test(Ljava/util/Set;)Ljava/util/function/Predicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Z
io/vertx/redis/client/impl/RedisClusterClient$1.lambda$2(Ljava/util/Set;Ljava/util/Map$Entry;)Z (6)
(Ljava/util/Map$Entry;)Z
invokeinterface java.util.Set.removeIf:(Ljava/util/function/Predicate;)Z
pop
2: aload 3
invokestatic io.vertx.core.Future.succeededFuture:()Lio/vertx/core/Future;
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
3: StackMap locals:
StackMap stack:
return
end local 4 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/vertx/redis/client/impl/RedisClusterClient$1;
0 4 4 onLoad Ljava/lang/Void;
private static boolean lambda$2(java.util.Set, java.util.Map$Entry);
descriptor: (Ljava/util/Set;Ljava/util/Map$Entry;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 1
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
ifnonnull 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 6
3: aload 1
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast io.vertx.redis.client.Redis
invokeinterface io.vertx.redis.client.Redis.close:()V
4: aload 1
aconst_null
invokeinterface java.util.Map$Entry.setValue:(Ljava/lang/Object;)Ljava/lang/Object;
pop
5: iconst_1
ireturn
6: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 7 1 kv Ljava/util/Map$Entry<Lio/vertx/core/net/SocketAddress;Lio/vertx/redis/client/Redis;>;
}
SourceFile: "RedisClusterClient.java"
EnclosingMethod: io.vertx.redis.client.impl.RedisClusterClient.getSlots:(Lio/vertx/redis/client/RedisOptions;Lio/vertx/core/Handler;)V
NestHost: io.vertx.redis.client.impl.RedisClusterClient
InnerClasses:
io.vertx.redis.client.impl.RedisClusterClient$1
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Entry = java.util.Map$Entry of java.util.Map