public class org.apache.cassandra.repair.RepairJob extends com.google.common.util.concurrent.AbstractFuture<org.apache.cassandra.repair.RepairResult> implements java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.cassandra.repair.RepairJob
super_class: com.google.common.util.concurrent.AbstractFuture
{
private static org.slf4j.Logger logger;
descriptor: Lorg/slf4j/Logger;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private final org.apache.cassandra.repair.RepairSession session;
descriptor: Lorg/apache/cassandra/repair/RepairSession;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.apache.cassandra.repair.RepairJobDesc desc;
descriptor: Lorg/apache/cassandra/repair/RepairJobDesc;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.apache.cassandra.repair.RepairParallelism parallelismDegree;
descriptor: Lorg/apache/cassandra/repair/RepairParallelism;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final long repairedAt;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.google.common.util.concurrent.ListeningExecutorService taskExecutor;
descriptor: Lcom/google/common/util/concurrent/ListeningExecutorService;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/apache/cassandra/repair/RepairJob;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
putstatic org.apache.cassandra.repair.RepairJob.logger:Lorg/slf4j/Logger;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.apache.cassandra.repair.RepairSession, java.lang.String);
descriptor: (Lorg/apache/cassandra/repair/RepairSession;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial com.google.common.util.concurrent.AbstractFuture.<init>:()V
1: aload 0
aload 1
putfield org.apache.cassandra.repair.RepairJob.session:Lorg/apache/cassandra/repair/RepairSession;
2: aload 0
new org.apache.cassandra.repair.RepairJobDesc
dup
aload 1
getfield org.apache.cassandra.repair.RepairSession.parentRepairSession:Ljava/util/UUID;
aload 1
invokevirtual org.apache.cassandra.repair.RepairSession.getId:()Ljava/util/UUID;
aload 1
getfield org.apache.cassandra.repair.RepairSession.keyspace:Ljava/lang/String;
aload 2
aload 1
invokevirtual org.apache.cassandra.repair.RepairSession.getRanges:()Ljava/util/Collection;
invokespecial org.apache.cassandra.repair.RepairJobDesc.<init>:(Ljava/util/UUID;Ljava/util/UUID;Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;)V
putfield org.apache.cassandra.repair.RepairJob.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
3: aload 0
aload 1
getfield org.apache.cassandra.repair.RepairSession.repairedAt:J
putfield org.apache.cassandra.repair.RepairJob.repairedAt:J
4: aload 0
aload 1
getfield org.apache.cassandra.repair.RepairSession.taskExecutor:Lcom/google/common/util/concurrent/ListeningExecutorService;
putfield org.apache.cassandra.repair.RepairJob.taskExecutor:Lcom/google/common/util/concurrent/ListeningExecutorService;
5: aload 0
aload 1
getfield org.apache.cassandra.repair.RepairSession.parallelismDegree:Lorg/apache/cassandra/repair/RepairParallelism;
putfield org.apache.cassandra.repair.RepairJob.parallelismDegree:Lorg/apache/cassandra/repair/RepairParallelism;
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/cassandra/repair/RepairJob;
0 7 1 session Lorg/apache/cassandra/repair/RepairSession;
0 7 2 columnFamily Ljava/lang/String;
MethodParameters:
Name Flags
session
columnFamily
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=1
start local 0 0: new java.util.ArrayList
dup
aload 0
getfield org.apache.cassandra.repair.RepairJob.session:Lorg/apache/cassandra/repair/RepairSession;
getfield org.apache.cassandra.repair.RepairSession.endpoints:Ljava/util/Set;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 1
start local 1 1: aload 1
invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
2: aload 0
getfield org.apache.cassandra.repair.RepairJob.parallelismDegree:Lorg/apache/cassandra/repair/RepairParallelism;
getstatic org.apache.cassandra.repair.RepairParallelism.PARALLEL:Lorg/apache/cassandra/repair/RepairParallelism;
if_acmpeq 15
3: new java.util.ArrayList
dup
aload 1
invokeinterface java.util.List.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 3
start local 3 4: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 9
StackMap locals: org.apache.cassandra.repair.RepairJob java.util.List top java.util.List top java.util.Iterator
StackMap stack:
5: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.net.InetAddress
astore 4
start local 4 6: new org.apache.cassandra.repair.SnapshotTask
dup
aload 0
getfield org.apache.cassandra.repair.RepairJob.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
aload 4
invokespecial org.apache.cassandra.repair.SnapshotTask.<init>:(Lorg/apache/cassandra/repair/RepairJobDesc;Ljava/net/InetAddress;)V
astore 6
start local 6 7: aload 3
aload 6
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
8: aload 0
getfield org.apache.cassandra.repair.RepairJob.taskExecutor:Lcom/google/common/util/concurrent/ListeningExecutorService;
aload 6
invokeinterface com.google.common.util.concurrent.ListeningExecutorService.execute:(Ljava/lang/Runnable;)V
end local 6 end local 4 9: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
10: aload 3
invokestatic com.google.common.util.concurrent.Futures.allAsList:(Ljava/lang/Iterable;)Lcom/google/common/util/concurrent/ListenableFuture;
astore 4
start local 4 11: aload 4
new org.apache.cassandra.repair.RepairJob$1
dup
aload 0
invokespecial org.apache.cassandra.repair.RepairJob$1.<init>:(Lorg/apache/cassandra/repair/RepairJob;)V
12: aload 0
getfield org.apache.cassandra.repair.RepairJob.taskExecutor:Lcom/google/common/util/concurrent/ListeningExecutorService;
13: invokestatic com.google.common.util.concurrent.Futures.transform:(Lcom/google/common/util/concurrent/ListenableFuture;Lcom/google/common/util/concurrent/AsyncFunction;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ListenableFuture;
astore 2
end local 4 end local 3 start local 2 14: goto 16
end local 2 15: StackMap locals: org.apache.cassandra.repair.RepairJob java.util.List
StackMap stack:
aload 0
aload 1
invokevirtual org.apache.cassandra.repair.RepairJob.sendValidationRequest:(Ljava/util/Collection;)Lcom/google/common/util/concurrent/ListenableFuture;
astore 2
start local 2 16: StackMap locals: com.google.common.util.concurrent.ListenableFuture
StackMap stack:
aload 2
new org.apache.cassandra.repair.RepairJob$2
dup
aload 0
invokespecial org.apache.cassandra.repair.RepairJob$2.<init>:(Lorg/apache/cassandra/repair/RepairJob;)V
17: aload 0
getfield org.apache.cassandra.repair.RepairJob.taskExecutor:Lcom/google/common/util/concurrent/ListeningExecutorService;
18: invokestatic com.google.common.util.concurrent.Futures.transform:(Lcom/google/common/util/concurrent/ListenableFuture;Lcom/google/common/util/concurrent/AsyncFunction;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ListenableFuture;
astore 3
start local 3 19: aload 3
new org.apache.cassandra.repair.RepairJob$3
dup
aload 0
invokespecial org.apache.cassandra.repair.RepairJob$3.<init>:(Lorg/apache/cassandra/repair/RepairJob;)V
20: aload 0
getfield org.apache.cassandra.repair.RepairJob.taskExecutor:Lcom/google/common/util/concurrent/ListeningExecutorService;
21: invokestatic com.google.common.util.concurrent.Futures.addCallback:(Lcom/google/common/util/concurrent/ListenableFuture;Lcom/google/common/util/concurrent/FutureCallback;Ljava/util/concurrent/Executor;)V
22: aload 2
invokestatic com.google.common.util.concurrent.Futures.getUnchecked:(Ljava/util/concurrent/Future;)Ljava/lang/Object;
pop
23: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lorg/apache/cassandra/repair/RepairJob;
1 24 1 allEndpoints Ljava/util/List<Ljava/net/InetAddress;>;
14 15 2 validations Lcom/google/common/util/concurrent/ListenableFuture<Ljava/util/List<Lorg/apache/cassandra/repair/TreeResponse;>;>;
16 24 2 validations Lcom/google/common/util/concurrent/ListenableFuture<Ljava/util/List<Lorg/apache/cassandra/repair/TreeResponse;>;>;
4 14 3 snapshotTasks Ljava/util/List<Lcom/google/common/util/concurrent/ListenableFuture<Ljava/net/InetAddress;>;>;
6 9 4 endpoint Ljava/net/InetAddress;
7 9 6 snapshotTask Lorg/apache/cassandra/repair/SnapshotTask;
11 14 4 allSnapshotTasks Lcom/google/common/util/concurrent/ListenableFuture<Ljava/util/List<Ljava/net/InetAddress;>;>;
19 24 3 syncResults Lcom/google/common/util/concurrent/ListenableFuture<Ljava/util/List<Lorg/apache/cassandra/repair/SyncStat;>;>;
java.util.List<org.apache.cassandra.repair.SyncTask> createSyncTasks(java.util.List<org.apache.cassandra.repair.TreeResponse>, java.net.InetAddress);
descriptor: (Ljava/util/List;Ljava/net/InetAddress;)Ljava/util/List;
flags: (0x0000)
Code:
stack=9, locals=10, args_size=3
start local 0 start local 1 start local 2 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 1: iconst_0
istore 4
start local 4 2: goto 18
3: StackMap locals: java.util.List int
StackMap stack:
aload 1
iload 4
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.apache.cassandra.repair.TreeResponse
astore 5
start local 5 4: iload 4
iconst_1
iadd
istore 6
start local 6 5: goto 16
6: StackMap locals: org.apache.cassandra.repair.TreeResponse int
StackMap stack:
aload 1
iload 6
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.apache.cassandra.repair.TreeResponse
astore 7
start local 7 7: aload 5
getfield org.apache.cassandra.repair.TreeResponse.trees:Lorg/apache/cassandra/utils/MerkleTrees;
aload 7
getfield org.apache.cassandra.repair.TreeResponse.trees:Lorg/apache/cassandra/utils/MerkleTrees;
invokestatic org.apache.cassandra.utils.MerkleTrees.difference:(Lorg/apache/cassandra/utils/MerkleTrees;Lorg/apache/cassandra/utils/MerkleTrees;)Ljava/util/List;
astore 9
start local 9 8: aload 5
getfield org.apache.cassandra.repair.TreeResponse.endpoint:Ljava/net/InetAddress;
aload 2
invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
ifne 9
aload 7
getfield org.apache.cassandra.repair.TreeResponse.endpoint:Ljava/net/InetAddress;
aload 2
invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
ifeq 11
9: StackMap locals: org.apache.cassandra.repair.RepairJob java.util.List java.net.InetAddress java.util.List int org.apache.cassandra.repair.TreeResponse int org.apache.cassandra.repair.TreeResponse top java.util.List
StackMap stack:
new org.apache.cassandra.repair.LocalSyncTask
dup
aload 0
getfield org.apache.cassandra.repair.RepairJob.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
aload 5
getfield org.apache.cassandra.repair.TreeResponse.endpoint:Ljava/net/InetAddress;
aload 7
getfield org.apache.cassandra.repair.TreeResponse.endpoint:Ljava/net/InetAddress;
aload 9
aload 0
getfield org.apache.cassandra.repair.RepairJob.repairedAt:J
aload 0
getfield org.apache.cassandra.repair.RepairJob.session:Lorg/apache/cassandra/repair/RepairSession;
getfield org.apache.cassandra.repair.RepairSession.pullRepair:Z
invokespecial org.apache.cassandra.repair.LocalSyncTask.<init>:(Lorg/apache/cassandra/repair/RepairJobDesc;Ljava/net/InetAddress;Ljava/net/InetAddress;Ljava/util/List;JZ)V
astore 8
start local 8 10: goto 13
end local 8 11: StackMap locals:
StackMap stack:
new org.apache.cassandra.repair.RemoteSyncTask
dup
aload 0
getfield org.apache.cassandra.repair.RepairJob.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
aload 5
getfield org.apache.cassandra.repair.TreeResponse.endpoint:Ljava/net/InetAddress;
aload 7
getfield org.apache.cassandra.repair.TreeResponse.endpoint:Ljava/net/InetAddress;
aload 9
invokespecial org.apache.cassandra.repair.RemoteSyncTask.<init>:(Lorg/apache/cassandra/repair/RepairJobDesc;Ljava/net/InetAddress;Ljava/net/InetAddress;Ljava/util/List;)V
astore 8
start local 8 12: aload 0
getfield org.apache.cassandra.repair.RepairJob.session:Lorg/apache/cassandra/repair/RepairSession;
aload 0
getfield org.apache.cassandra.repair.RepairJob.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
new org.apache.cassandra.repair.NodePair
dup
aload 5
getfield org.apache.cassandra.repair.TreeResponse.endpoint:Ljava/net/InetAddress;
aload 7
getfield org.apache.cassandra.repair.TreeResponse.endpoint:Ljava/net/InetAddress;
invokespecial org.apache.cassandra.repair.NodePair.<init>:(Ljava/net/InetAddress;Ljava/net/InetAddress;)V
invokestatic org.apache.cassandra.utils.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/apache/cassandra/utils/Pair;
aload 8
checkcast org.apache.cassandra.repair.RemoteSyncTask
invokevirtual org.apache.cassandra.repair.RepairSession.waitForSync:(Lorg/apache/cassandra/utils/Pair;Lorg/apache/cassandra/repair/RemoteSyncTask;)V
13: StackMap locals: org.apache.cassandra.repair.RepairJob java.util.List java.net.InetAddress java.util.List int org.apache.cassandra.repair.TreeResponse int org.apache.cassandra.repair.TreeResponse org.apache.cassandra.repair.SyncTask java.util.List
StackMap stack:
aload 3
aload 8
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
14: aload 0
getfield org.apache.cassandra.repair.RepairJob.taskExecutor:Lcom/google/common/util/concurrent/ListeningExecutorService;
aload 8
invokeinterface com.google.common.util.concurrent.ListeningExecutorService.submit:(Ljava/lang/Runnable;)Lcom/google/common/util/concurrent/ListenableFuture;
pop
end local 9 end local 8 end local 7 15: iinc 6 1
StackMap locals:
StackMap stack:
16: iload 6
aload 1
invokeinterface java.util.List.size:()I
if_icmplt 6
end local 6 end local 5 17: iinc 4 1
StackMap locals:
StackMap stack:
18: iload 4
aload 1
invokeinterface java.util.List.size:()I
iconst_1
isub
if_icmplt 3
end local 4 19: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/apache/cassandra/repair/RepairJob;
0 20 1 trees Ljava/util/List<Lorg/apache/cassandra/repair/TreeResponse;>;
0 20 2 local Ljava/net/InetAddress;
1 20 3 syncTasks Ljava/util/List<Lorg/apache/cassandra/repair/SyncTask;>;
2 19 4 i I
4 17 5 r1 Lorg/apache/cassandra/repair/TreeResponse;
5 17 6 j I
7 15 7 r2 Lorg/apache/cassandra/repair/TreeResponse;
10 11 8 task Lorg/apache/cassandra/repair/SyncTask;
12 15 8 task Lorg/apache/cassandra/repair/SyncTask;
8 15 9 differences Ljava/util/List<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
Signature: (Ljava/util/List<Lorg/apache/cassandra/repair/TreeResponse;>;Ljava/net/InetAddress;)Ljava/util/List<Lorg/apache/cassandra/repair/SyncTask;>;
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
RuntimeInvisibleTypeAnnotations:
METHOD_RETURN
com.google.common.annotations.VisibleForTesting()
MethodParameters:
Name Flags
trees
local
private com.google.common.util.concurrent.ListenableFuture<java.util.List<org.apache.cassandra.repair.TreeResponse>> sendValidationRequest(java.util.Collection<java.net.InetAddress>);
descriptor: (Ljava/util/Collection;)Lcom/google/common/util/concurrent/ListenableFuture;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=2
start local 0 start local 1 0: ldc "Requesting merkle trees for %s (to %s)"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.apache.cassandra.repair.RepairJob.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
getfield org.apache.cassandra.repair.RepairJobDesc.columnFamily:Ljava/lang/String;
aastore
dup
iconst_1
aload 1
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 2
start local 2 1: getstatic org.apache.cassandra.repair.RepairJob.logger:Lorg/slf4j/Logger;
ldc "[repair #{}] {}"
aload 0
getfield org.apache.cassandra.repair.RepairJob.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
getfield org.apache.cassandra.repair.RepairJobDesc.sessionId:Ljava/util/UUID;
aload 2
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
2: aload 2
iconst_0
anewarray java.lang.Object
invokestatic org.apache.cassandra.tracing.Tracing.traceRepair:(Ljava/lang/String;[Ljava/lang/Object;)V
3: aload 0
getfield org.apache.cassandra.repair.RepairJob.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
getfield org.apache.cassandra.repair.RepairJobDesc.keyspace:Ljava/lang/String;
invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
aload 0
getfield org.apache.cassandra.repair.RepairJob.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
getfield org.apache.cassandra.repair.RepairJobDesc.columnFamily:Ljava/lang/String;
invokevirtual org.apache.cassandra.db.Keyspace.getColumnFamilyStore:(Ljava/lang/String;)Lorg/apache/cassandra/db/ColumnFamilyStore;
invokestatic org.apache.cassandra.utils.FBUtilities.nowInSeconds:()I
invokevirtual org.apache.cassandra.db.ColumnFamilyStore.gcBefore:(I)I
istore 3
start local 3 4: new java.util.ArrayList
dup
aload 1
invokeinterface java.util.Collection.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 4
start local 4 5: aload 1
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 6
goto 11
StackMap locals: org.apache.cassandra.repair.RepairJob java.util.Collection java.lang.String int java.util.List top java.util.Iterator
StackMap stack:
6: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.net.InetAddress
astore 5
start local 5 7: new org.apache.cassandra.repair.ValidationTask
dup
aload 0
getfield org.apache.cassandra.repair.RepairJob.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
aload 5
iload 3
invokespecial org.apache.cassandra.repair.ValidationTask.<init>:(Lorg/apache/cassandra/repair/RepairJobDesc;Ljava/net/InetAddress;I)V
astore 7
start local 7 8: aload 4
aload 7
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
9: aload 0
getfield org.apache.cassandra.repair.RepairJob.session:Lorg/apache/cassandra/repair/RepairSession;
aload 0
getfield org.apache.cassandra.repair.RepairJob.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
aload 5
invokestatic org.apache.cassandra.utils.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/apache/cassandra/utils/Pair;
aload 7
invokevirtual org.apache.cassandra.repair.RepairSession.waitForValidation:(Lorg/apache/cassandra/utils/Pair;Lorg/apache/cassandra/repair/ValidationTask;)V
10: aload 0
getfield org.apache.cassandra.repair.RepairJob.taskExecutor:Lcom/google/common/util/concurrent/ListeningExecutorService;
aload 7
invokeinterface com.google.common.util.concurrent.ListeningExecutorService.execute:(Ljava/lang/Runnable;)V
end local 7 end local 5 11: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
12: aload 4
invokestatic com.google.common.util.concurrent.Futures.allAsList:(Ljava/lang/Iterable;)Lcom/google/common/util/concurrent/ListenableFuture;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/apache/cassandra/repair/RepairJob;
0 13 1 endpoints Ljava/util/Collection<Ljava/net/InetAddress;>;
1 13 2 message Ljava/lang/String;
4 13 3 gcBefore I
5 13 4 tasks Ljava/util/List<Lcom/google/common/util/concurrent/ListenableFuture<Lorg/apache/cassandra/repair/TreeResponse;>;>;
7 11 5 endpoint Ljava/net/InetAddress;
8 11 7 task Lorg/apache/cassandra/repair/ValidationTask;
Signature: (Ljava/util/Collection<Ljava/net/InetAddress;>;)Lcom/google/common/util/concurrent/ListenableFuture<Ljava/util/List<Lorg/apache/cassandra/repair/TreeResponse;>;>;
MethodParameters:
Name Flags
endpoints
private com.google.common.util.concurrent.ListenableFuture<java.util.List<org.apache.cassandra.repair.TreeResponse>> sendSequentialValidationRequest(java.util.Collection<java.net.InetAddress>);
descriptor: (Ljava/util/Collection;)Lcom/google/common/util/concurrent/ListenableFuture;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=11, args_size=2
start local 0 start local 1 0: ldc "Requesting merkle trees for %s (to %s)"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.apache.cassandra.repair.RepairJob.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
getfield org.apache.cassandra.repair.RepairJobDesc.columnFamily:Ljava/lang/String;
aastore
dup
iconst_1
aload 1
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 2
start local 2 1: getstatic org.apache.cassandra.repair.RepairJob.logger:Lorg/slf4j/Logger;
ldc "[repair #{}] {}"
aload 0
getfield org.apache.cassandra.repair.RepairJob.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
getfield org.apache.cassandra.repair.RepairJobDesc.sessionId:Ljava/util/UUID;
aload 2
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
2: aload 2
iconst_0
anewarray java.lang.Object
invokestatic org.apache.cassandra.tracing.Tracing.traceRepair:(Ljava/lang/String;[Ljava/lang/Object;)V
3: aload 0
getfield org.apache.cassandra.repair.RepairJob.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
getfield org.apache.cassandra.repair.RepairJobDesc.keyspace:Ljava/lang/String;
invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
aload 0
getfield org.apache.cassandra.repair.RepairJob.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
getfield org.apache.cassandra.repair.RepairJobDesc.columnFamily:Ljava/lang/String;
invokevirtual org.apache.cassandra.db.Keyspace.getColumnFamilyStore:(Ljava/lang/String;)Lorg/apache/cassandra/db/ColumnFamilyStore;
invokestatic org.apache.cassandra.utils.FBUtilities.nowInSeconds:()I
invokevirtual org.apache.cassandra.db.ColumnFamilyStore.gcBefore:(I)I
istore 3
start local 3 4: new java.util.ArrayList
dup
aload 1
invokeinterface java.util.Collection.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 4
start local 4 5: new java.util.LinkedList
dup
aload 1
invokespecial java.util.LinkedList.<init>:(Ljava/util/Collection;)V
astore 5
start local 5 6: aload 5
invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
checkcast java.net.InetAddress
astore 6
start local 6 7: new org.apache.cassandra.repair.ValidationTask
dup
aload 0
getfield org.apache.cassandra.repair.RepairJob.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
aload 6
iload 3
invokespecial org.apache.cassandra.repair.ValidationTask.<init>:(Lorg/apache/cassandra/repair/RepairJobDesc;Ljava/net/InetAddress;I)V
astore 7
start local 7 8: getstatic org.apache.cassandra.repair.RepairJob.logger:Lorg/slf4j/Logger;
ldc "Validating {}"
aload 6
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
9: aload 0
getfield org.apache.cassandra.repair.RepairJob.session:Lorg/apache/cassandra/repair/RepairSession;
aload 0
getfield org.apache.cassandra.repair.RepairJob.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
aload 6
invokestatic org.apache.cassandra.utils.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/apache/cassandra/utils/Pair;
aload 7
invokevirtual org.apache.cassandra.repair.RepairSession.waitForValidation:(Lorg/apache/cassandra/utils/Pair;Lorg/apache/cassandra/repair/ValidationTask;)V
10: aload 4
aload 7
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
11: aload 7
astore 8
start local 8 12: goto 18
13: StackMap locals: org.apache.cassandra.repair.RepairJob java.util.Collection java.lang.String int java.util.List java.util.Queue java.net.InetAddress org.apache.cassandra.repair.ValidationTask org.apache.cassandra.repair.ValidationTask
StackMap stack:
aload 5
invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
checkcast java.net.InetAddress
astore 9
start local 9 14: new org.apache.cassandra.repair.ValidationTask
dup
aload 0
getfield org.apache.cassandra.repair.RepairJob.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
aload 9
iload 3
invokespecial org.apache.cassandra.repair.ValidationTask.<init>:(Lorg/apache/cassandra/repair/RepairJobDesc;Ljava/net/InetAddress;I)V
astore 10
start local 10 15: aload 4
aload 10
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
16: aload 8
new org.apache.cassandra.repair.RepairJob$4
dup
aload 0
aload 9
aload 10
invokespecial org.apache.cassandra.repair.RepairJob$4.<init>:(Lorg/apache/cassandra/repair/RepairJob;Ljava/net/InetAddress;Lorg/apache/cassandra/repair/ValidationTask;)V
invokestatic com.google.common.util.concurrent.Futures.addCallback:(Lcom/google/common/util/concurrent/ListenableFuture;Lcom/google/common/util/concurrent/FutureCallback;)V
17: aload 10
astore 8
end local 10 end local 9 18: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Queue.size:()I
ifgt 13
19: aload 0
getfield org.apache.cassandra.repair.RepairJob.taskExecutor:Lcom/google/common/util/concurrent/ListeningExecutorService;
aload 7
invokeinterface com.google.common.util.concurrent.ListeningExecutorService.execute:(Ljava/lang/Runnable;)V
20: aload 4
invokestatic com.google.common.util.concurrent.Futures.allAsList:(Ljava/lang/Iterable;)Lcom/google/common/util/concurrent/ListenableFuture;
areturn
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 21 0 this Lorg/apache/cassandra/repair/RepairJob;
0 21 1 endpoints Ljava/util/Collection<Ljava/net/InetAddress;>;
1 21 2 message Ljava/lang/String;
4 21 3 gcBefore I
5 21 4 tasks Ljava/util/List<Lcom/google/common/util/concurrent/ListenableFuture<Lorg/apache/cassandra/repair/TreeResponse;>;>;
6 21 5 requests Ljava/util/Queue<Ljava/net/InetAddress;>;
7 21 6 address Ljava/net/InetAddress;
8 21 7 firstTask Lorg/apache/cassandra/repair/ValidationTask;
12 21 8 currentTask Lorg/apache/cassandra/repair/ValidationTask;
14 18 9 nextAddress Ljava/net/InetAddress;
15 18 10 nextTask Lorg/apache/cassandra/repair/ValidationTask;
Signature: (Ljava/util/Collection<Ljava/net/InetAddress;>;)Lcom/google/common/util/concurrent/ListenableFuture<Ljava/util/List<Lorg/apache/cassandra/repair/TreeResponse;>;>;
MethodParameters:
Name Flags
endpoints
private com.google.common.util.concurrent.ListenableFuture<java.util.List<org.apache.cassandra.repair.TreeResponse>> sendDCAwareValidationRequest(java.util.Collection<java.net.InetAddress>);
descriptor: (Ljava/util/Collection;)Lcom/google/common/util/concurrent/ListenableFuture;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=14, args_size=2
start local 0 start local 1 0: ldc "Requesting merkle trees for %s (to %s)"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.apache.cassandra.repair.RepairJob.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
getfield org.apache.cassandra.repair.RepairJobDesc.columnFamily:Ljava/lang/String;
aastore
dup
iconst_1
aload 1
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 2
start local 2 1: getstatic org.apache.cassandra.repair.RepairJob.logger:Lorg/slf4j/Logger;
ldc "[repair #{}] {}"
aload 0
getfield org.apache.cassandra.repair.RepairJob.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
getfield org.apache.cassandra.repair.RepairJobDesc.sessionId:Ljava/util/UUID;
aload 2
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
2: aload 2
iconst_0
anewarray java.lang.Object
invokestatic org.apache.cassandra.tracing.Tracing.traceRepair:(Ljava/lang/String;[Ljava/lang/Object;)V
3: aload 0
getfield org.apache.cassandra.repair.RepairJob.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
getfield org.apache.cassandra.repair.RepairJobDesc.keyspace:Ljava/lang/String;
invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
aload 0
getfield org.apache.cassandra.repair.RepairJob.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
getfield org.apache.cassandra.repair.RepairJobDesc.columnFamily:Ljava/lang/String;
invokevirtual org.apache.cassandra.db.Keyspace.getColumnFamilyStore:(Ljava/lang/String;)Lorg/apache/cassandra/db/ColumnFamilyStore;
invokestatic org.apache.cassandra.utils.FBUtilities.nowInSeconds:()I
invokevirtual org.apache.cassandra.db.ColumnFamilyStore.gcBefore:(I)I
istore 3
start local 3 4: new java.util.ArrayList
dup
aload 1
invokeinterface java.util.Collection.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 4
start local 4 5: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 5
start local 5 6: aload 1
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 7
goto 14
StackMap locals: org.apache.cassandra.repair.RepairJob java.util.Collection java.lang.String int java.util.List java.util.Map top java.util.Iterator
StackMap stack:
7: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.net.InetAddress
astore 6
start local 6 8: invokestatic org.apache.cassandra.config.DatabaseDescriptor.getEndpointSnitch:()Lorg/apache/cassandra/locator/IEndpointSnitch;
aload 6
invokeinterface org.apache.cassandra.locator.IEndpointSnitch.getDatacenter:(Ljava/net/InetAddress;)Ljava/lang/String;
astore 8
start local 8 9: aload 5
aload 8
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Queue
astore 9
start local 9 10: aload 9
ifnonnull 13
11: new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
astore 9
12: aload 5
aload 8
aload 9
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
13: StackMap locals: org.apache.cassandra.repair.RepairJob java.util.Collection java.lang.String int java.util.List java.util.Map java.net.InetAddress java.util.Iterator java.lang.String java.util.Queue
StackMap stack:
aload 9
aload 6
invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
pop
end local 9 end local 8 end local 6 14: StackMap locals: org.apache.cassandra.repair.RepairJob java.util.Collection java.lang.String int java.util.List java.util.Map top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
15: aload 5
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 7
goto 32
StackMap locals:
StackMap stack:
16: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 6
start local 6 17: aload 6
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.util.Queue
astore 8
start local 8 18: aload 8
invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
checkcast java.net.InetAddress
astore 9
start local 9 19: new org.apache.cassandra.repair.ValidationTask
dup
aload 0
getfield org.apache.cassandra.repair.RepairJob.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
aload 9
iload 3
invokespecial org.apache.cassandra.repair.ValidationTask.<init>:(Lorg/apache/cassandra/repair/RepairJobDesc;Ljava/net/InetAddress;I)V
astore 10
start local 10 20: getstatic org.apache.cassandra.repair.RepairJob.logger:Lorg/slf4j/Logger;
ldc "Validating {}"
aload 9
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
21: aload 0
getfield org.apache.cassandra.repair.RepairJob.session:Lorg/apache/cassandra/repair/RepairSession;
aload 0
getfield org.apache.cassandra.repair.RepairJob.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
aload 9
invokestatic org.apache.cassandra.utils.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/apache/cassandra/utils/Pair;
aload 10
invokevirtual org.apache.cassandra.repair.RepairSession.waitForValidation:(Lorg/apache/cassandra/utils/Pair;Lorg/apache/cassandra/repair/ValidationTask;)V
22: aload 4
aload 10
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
23: aload 10
astore 11
start local 11 24: goto 30
25: StackMap locals: org.apache.cassandra.repair.RepairJob java.util.Collection java.lang.String int java.util.List java.util.Map java.util.Map$Entry java.util.Iterator java.util.Queue java.net.InetAddress org.apache.cassandra.repair.ValidationTask org.apache.cassandra.repair.ValidationTask
StackMap stack:
aload 8
invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
checkcast java.net.InetAddress
astore 12
start local 12 26: new org.apache.cassandra.repair.ValidationTask
dup
aload 0
getfield org.apache.cassandra.repair.RepairJob.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
aload 12
iload 3
invokespecial org.apache.cassandra.repair.ValidationTask.<init>:(Lorg/apache/cassandra/repair/RepairJobDesc;Ljava/net/InetAddress;I)V
astore 13
start local 13 27: aload 4
aload 13
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
28: aload 11
new org.apache.cassandra.repair.RepairJob$5
dup
aload 0
aload 12
aload 13
invokespecial org.apache.cassandra.repair.RepairJob$5.<init>:(Lorg/apache/cassandra/repair/RepairJob;Ljava/net/InetAddress;Lorg/apache/cassandra/repair/ValidationTask;)V
invokestatic com.google.common.util.concurrent.Futures.addCallback:(Lcom/google/common/util/concurrent/ListenableFuture;Lcom/google/common/util/concurrent/FutureCallback;)V
29: aload 13
astore 11
end local 13 end local 12 30: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Queue.size:()I
ifgt 25
31: aload 0
getfield org.apache.cassandra.repair.RepairJob.taskExecutor:Lcom/google/common/util/concurrent/ListeningExecutorService;
aload 10
invokeinterface com.google.common.util.concurrent.ListeningExecutorService.execute:(Ljava/lang/Runnable;)V
end local 11 end local 10 end local 9 end local 8 end local 6 32: StackMap locals: org.apache.cassandra.repair.RepairJob java.util.Collection java.lang.String int java.util.List java.util.Map top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 16
33: aload 4
invokestatic com.google.common.util.concurrent.Futures.allAsList:(Ljava/lang/Iterable;)Lcom/google/common/util/concurrent/ListenableFuture;
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 34 0 this Lorg/apache/cassandra/repair/RepairJob;
0 34 1 endpoints Ljava/util/Collection<Ljava/net/InetAddress;>;
1 34 2 message Ljava/lang/String;
4 34 3 gcBefore I
5 34 4 tasks Ljava/util/List<Lcom/google/common/util/concurrent/ListenableFuture<Lorg/apache/cassandra/repair/TreeResponse;>;>;
6 34 5 requestsByDatacenter Ljava/util/Map<Ljava/lang/String;Ljava/util/Queue<Ljava/net/InetAddress;>;>;
8 14 6 endpoint Ljava/net/InetAddress;
9 14 8 dc Ljava/lang/String;
10 14 9 queue Ljava/util/Queue<Ljava/net/InetAddress;>;
17 32 6 entry Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/Queue<Ljava/net/InetAddress;>;>;
18 32 8 requests Ljava/util/Queue<Ljava/net/InetAddress;>;
19 32 9 address Ljava/net/InetAddress;
20 32 10 firstTask Lorg/apache/cassandra/repair/ValidationTask;
24 32 11 currentTask Lorg/apache/cassandra/repair/ValidationTask;
26 30 12 nextAddress Ljava/net/InetAddress;
27 30 13 nextTask Lorg/apache/cassandra/repair/ValidationTask;
Signature: (Ljava/util/Collection<Ljava/net/InetAddress;>;)Lcom/google/common/util/concurrent/ListenableFuture<Ljava/util/List<Lorg/apache/cassandra/repair/TreeResponse;>;>;
MethodParameters:
Name Flags
endpoints
static boolean access$0(org.apache.cassandra.repair.RepairJob, java.lang.Object);
descriptor: (Lorg/apache/cassandra/repair/RepairJob;Ljava/lang/Object;)Z
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
invokevirtual org.apache.cassandra.repair.RepairJob.set:(Ljava/lang/Object;)Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
static boolean access$1(org.apache.cassandra.repair.RepairJob, java.lang.Throwable);
descriptor: (Lorg/apache/cassandra/repair/RepairJob;Ljava/lang/Throwable;)Z
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
invokevirtual org.apache.cassandra.repair.RepairJob.setException:(Ljava/lang/Throwable;)Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Lcom/google/common/util/concurrent/AbstractFuture<Lorg/apache/cassandra/repair/RepairResult;>;Ljava/lang/Runnable;
SourceFile: "RepairJob.java"
NestMembers:
org.apache.cassandra.repair.RepairJob$1 org.apache.cassandra.repair.RepairJob$2 org.apache.cassandra.repair.RepairJob$3 org.apache.cassandra.repair.RepairJob$4 org.apache.cassandra.repair.RepairJob$5
InnerClasses:
public abstract Entry = java.util.Map$Entry of java.util.Map
org.apache.cassandra.repair.RepairJob$1
org.apache.cassandra.repair.RepairJob$2
org.apache.cassandra.repair.RepairJob$3
org.apache.cassandra.repair.RepairJob$4
org.apache.cassandra.repair.RepairJob$5