public class org.apache.cassandra.repair.Validator implements java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.cassandra.repair.Validator
super_class: java.lang.Object
{
private static final org.slf4j.Logger logger;
descriptor: Lorg/slf4j/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
public final org.apache.cassandra.repair.RepairJobDesc desc;
descriptor: Lorg/apache/cassandra/repair/RepairJobDesc;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
public final java.net.InetAddress initiator;
descriptor: Ljava/net/InetAddress;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
public final int gcBefore;
descriptor: I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
private final boolean evenTreeDistribution;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private long validated;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private org.apache.cassandra.utils.MerkleTrees trees;
descriptor: Lorg/apache/cassandra/utils/MerkleTrees;
flags: (0x0002) ACC_PRIVATE
private org.apache.cassandra.utils.MerkleTree$TreeRange range;
descriptor: Lorg/apache/cassandra/utils/MerkleTree$TreeRange;
flags: (0x0002) ACC_PRIVATE
private org.apache.cassandra.utils.MerkleTrees$TreeRangeIterator ranges;
descriptor: Lorg/apache/cassandra/utils/MerkleTrees$TreeRangeIterator;
flags: (0x0002) ACC_PRIVATE
private org.apache.cassandra.db.DecoratedKey lastKey;
descriptor: Lorg/apache/cassandra/db/DecoratedKey;
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=1, locals=0, args_size=0
0: ldc Lorg/apache/cassandra/repair/Validator;
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 org.apache.cassandra.repair.Validator.$assertionsDisabled:Z
3: ldc Lorg/apache/cassandra/repair/Validator;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
putstatic org.apache.cassandra.repair.Validator.logger:Lorg/slf4j/Logger;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.apache.cassandra.repair.RepairJobDesc, java.net.InetAddress, int);
descriptor: (Lorg/apache/cassandra/repair/RepairJobDesc;Ljava/net/InetAddress;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
iload 3
iconst_0
invokespecial org.apache.cassandra.repair.Validator.<init>:(Lorg/apache/cassandra/repair/RepairJobDesc;Ljava/net/InetAddress;IZ)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/repair/Validator;
0 2 1 desc Lorg/apache/cassandra/repair/RepairJobDesc;
0 2 2 initiator Ljava/net/InetAddress;
0 2 3 gcBefore I
MethodParameters:
Name Flags
desc
initiator
gcBefore
public void <init>(org.apache.cassandra.repair.RepairJobDesc, java.net.InetAddress, int, boolean);
descriptor: (Lorg/apache/cassandra/repair/RepairJobDesc;Ljava/net/InetAddress;IZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.apache.cassandra.repair.Validator.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
2: aload 0
aload 2
putfield org.apache.cassandra.repair.Validator.initiator:Ljava/net/InetAddress;
3: aload 0
iload 3
putfield org.apache.cassandra.repair.Validator.gcBefore:I
4: aload 0
lconst_0
putfield org.apache.cassandra.repair.Validator.validated:J
5: aload 0
aconst_null
putfield org.apache.cassandra.repair.Validator.range:Lorg/apache/cassandra/utils/MerkleTree$TreeRange;
6: aload 0
aconst_null
putfield org.apache.cassandra.repair.Validator.ranges:Lorg/apache/cassandra/utils/MerkleTrees$TreeRangeIterator;
7: aload 0
iload 4
putfield org.apache.cassandra.repair.Validator.evenTreeDistribution:Z
8: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/apache/cassandra/repair/Validator;
0 9 1 desc Lorg/apache/cassandra/repair/RepairJobDesc;
0 9 2 initiator Ljava/net/InetAddress;
0 9 3 gcBefore I
0 9 4 evenTreeDistribution Z
MethodParameters:
Name Flags
desc
initiator
gcBefore
evenTreeDistribution
public void prepare(org.apache.cassandra.db.ColumnFamilyStore, org.apache.cassandra.utils.MerkleTrees);
descriptor: (Lorg/apache/cassandra/db/ColumnFamilyStore;Lorg/apache/cassandra/utils/MerkleTrees;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
putfield org.apache.cassandra.repair.Validator.trees:Lorg/apache/cassandra/utils/MerkleTrees;
1: aload 2
invokevirtual org.apache.cassandra.utils.MerkleTrees.partitioner:()Lorg/apache/cassandra/dht/IPartitioner;
invokeinterface org.apache.cassandra.dht.IPartitioner.preservesOrder:()Z
ifeq 2
aload 0
getfield org.apache.cassandra.repair.Validator.evenTreeDistribution:Z
ifeq 4
2: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.apache.cassandra.utils.MerkleTrees.init:()V
3: goto 21
4: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 5: new java.util.Random
dup
invokespecial java.util.Random.<init>:()V
astore 4
start local 4 6: aload 2
invokevirtual org.apache.cassandra.utils.MerkleTrees.ranges:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 6
goto 20
StackMap locals: org.apache.cassandra.repair.Validator org.apache.cassandra.db.ColumnFamilyStore org.apache.cassandra.utils.MerkleTrees java.util.List java.util.Random top java.util.Iterator
StackMap stack:
7: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.dht.Range
astore 5
start local 5 8: aload 1
aload 5
invokevirtual org.apache.cassandra.db.ColumnFamilyStore.keySamples:(Lorg/apache/cassandra/dht/Range;)Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 8
goto 12
StackMap locals: org.apache.cassandra.repair.Validator org.apache.cassandra.db.ColumnFamilyStore org.apache.cassandra.utils.MerkleTrees java.util.List java.util.Random org.apache.cassandra.dht.Range java.util.Iterator top java.util.Iterator
StackMap stack:
9: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.db.DecoratedKey
astore 7
start local 7 10: getstatic org.apache.cassandra.repair.Validator.$assertionsDisabled:Z
ifne 11
aload 5
aload 7
invokevirtual org.apache.cassandra.db.DecoratedKey.getToken:()Lorg/apache/cassandra/dht/Token;
invokevirtual org.apache.cassandra.dht.Range.contains:(Lorg/apache/cassandra/dht/RingPosition;)Z
ifne 11
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Token "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7
invokevirtual org.apache.cassandra.db.DecoratedKey.getToken:()Lorg/apache/cassandra/dht/Token;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " is not within range "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.apache.cassandra.repair.Validator.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
getfield org.apache.cassandra.repair.RepairJobDesc.ranges:Ljava/util/Collection;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
11: StackMap locals: org.apache.cassandra.repair.Validator org.apache.cassandra.db.ColumnFamilyStore org.apache.cassandra.utils.MerkleTrees java.util.List java.util.Random org.apache.cassandra.dht.Range java.util.Iterator org.apache.cassandra.db.DecoratedKey java.util.Iterator
StackMap stack:
aload 3
aload 7
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 7 12: StackMap locals: org.apache.cassandra.repair.Validator org.apache.cassandra.db.ColumnFamilyStore org.apache.cassandra.utils.MerkleTrees java.util.List java.util.Random org.apache.cassandra.dht.Range java.util.Iterator top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
13: aload 3
invokeinterface java.util.List.isEmpty:()Z
ifeq 16
14: aload 2
aload 5
invokevirtual org.apache.cassandra.utils.MerkleTrees.init:(Lorg/apache/cassandra/dht/Range;)V
15: goto 20
16: StackMap locals: org.apache.cassandra.repair.Validator org.apache.cassandra.db.ColumnFamilyStore org.apache.cassandra.utils.MerkleTrees java.util.List java.util.Random org.apache.cassandra.dht.Range java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.List.size:()I
istore 7
start local 7 17: StackMap locals: int
StackMap stack:
aload 3
aload 4
iload 7
invokevirtual java.util.Random.nextInt:(I)I
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.apache.cassandra.db.DecoratedKey
astore 8
start local 8 18: aload 2
aload 8
invokevirtual org.apache.cassandra.db.DecoratedKey.getToken:()Lorg/apache/cassandra/dht/Token;
invokevirtual org.apache.cassandra.utils.MerkleTrees.split:(Lorg/apache/cassandra/dht/Token;)Z
ifne 17
end local 8 19: aload 3
invokeinterface java.util.List.clear:()V
end local 7 end local 5 20: StackMap locals: org.apache.cassandra.repair.Validator org.apache.cassandra.db.ColumnFamilyStore org.apache.cassandra.utils.MerkleTrees java.util.List java.util.Random top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
end local 4 end local 3 21: StackMap locals: org.apache.cassandra.repair.Validator org.apache.cassandra.db.ColumnFamilyStore org.apache.cassandra.utils.MerkleTrees
StackMap stack:
getstatic org.apache.cassandra.repair.Validator.logger:Lorg/slf4j/Logger;
ldc "Prepared AEService trees of size {} for {}"
aload 0
getfield org.apache.cassandra.repair.Validator.trees:Lorg/apache/cassandra/utils/MerkleTrees;
invokevirtual org.apache.cassandra.utils.MerkleTrees.size:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aload 0
getfield org.apache.cassandra.repair.Validator.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
22: aload 0
aload 2
invokevirtual org.apache.cassandra.utils.MerkleTrees.invalids:()Lorg/apache/cassandra/utils/MerkleTrees$TreeRangeIterator;
putfield org.apache.cassandra.repair.Validator.ranges:Lorg/apache/cassandra/utils/MerkleTrees$TreeRangeIterator;
23: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lorg/apache/cassandra/repair/Validator;
0 24 1 cfs Lorg/apache/cassandra/db/ColumnFamilyStore;
0 24 2 tree Lorg/apache/cassandra/utils/MerkleTrees;
5 21 3 keys Ljava/util/List<Lorg/apache/cassandra/db/DecoratedKey;>;
6 21 4 random Ljava/util/Random;
8 20 5 range Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
10 12 7 sample Lorg/apache/cassandra/db/DecoratedKey;
17 20 7 numKeys I
18 19 8 dk Lorg/apache/cassandra/db/DecoratedKey;
MethodParameters:
Name Flags
cfs
tree
public void add(org.apache.cassandra.db.rows.UnfilteredRowIterator);
descriptor: (Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: getstatic org.apache.cassandra.repair.Validator.$assertionsDisabled:Z
ifne 1
aload 1
invokeinterface org.apache.cassandra.db.rows.UnfilteredRowIterator.partitionKey:()Lorg/apache/cassandra/db/DecoratedKey;
invokevirtual org.apache.cassandra.db.DecoratedKey.getToken:()Lorg/apache/cassandra/dht/Token;
aload 0
getfield org.apache.cassandra.repair.Validator.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
getfield org.apache.cassandra.repair.RepairJobDesc.ranges:Ljava/util/Collection;
invokestatic org.apache.cassandra.dht.Range.isInRanges:(Lorg/apache/cassandra/dht/RingPosition;Ljava/lang/Iterable;)Z
ifne 1
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 1
invokeinterface org.apache.cassandra.db.rows.UnfilteredRowIterator.partitionKey:()Lorg/apache/cassandra/db/DecoratedKey;
invokevirtual org.apache.cassandra.db.DecoratedKey.getToken:()Lorg/apache/cassandra/dht/Token;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " is not contained in "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.apache.cassandra.repair.Validator.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
getfield org.apache.cassandra.repair.RepairJobDesc.ranges:Ljava/util/Collection;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
getstatic org.apache.cassandra.repair.Validator.$assertionsDisabled:Z
ifne 3
aload 0
getfield org.apache.cassandra.repair.Validator.lastKey:Lorg/apache/cassandra/db/DecoratedKey;
ifnull 3
aload 0
getfield org.apache.cassandra.repair.Validator.lastKey:Lorg/apache/cassandra/db/DecoratedKey;
aload 1
invokeinterface org.apache.cassandra.db.rows.UnfilteredRowIterator.partitionKey:()Lorg/apache/cassandra/db/DecoratedKey;
invokevirtual org.apache.cassandra.db.DecoratedKey.compareTo:(Lorg/apache/cassandra/db/PartitionPosition;)I
iflt 3
new java.lang.AssertionError
dup
2: new java.lang.StringBuilder
dup
ldc "partition "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokeinterface org.apache.cassandra.db.rows.UnfilteredRowIterator.partitionKey:()Lorg/apache/cassandra/db/DecoratedKey;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " received out of order wrt "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.apache.cassandra.repair.Validator.lastKey:Lorg/apache/cassandra/db/DecoratedKey;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
3: StackMap locals:
StackMap stack:
aload 0
aload 1
invokeinterface org.apache.cassandra.db.rows.UnfilteredRowIterator.partitionKey:()Lorg/apache/cassandra/db/DecoratedKey;
putfield org.apache.cassandra.repair.Validator.lastKey:Lorg/apache/cassandra/db/DecoratedKey;
4: aload 0
getfield org.apache.cassandra.repair.Validator.range:Lorg/apache/cassandra/utils/MerkleTree$TreeRange;
ifnonnull 6
5: aload 0
aload 0
getfield org.apache.cassandra.repair.Validator.ranges:Lorg/apache/cassandra/utils/MerkleTrees$TreeRangeIterator;
invokevirtual org.apache.cassandra.utils.MerkleTrees$TreeRangeIterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.utils.MerkleTree$TreeRange
putfield org.apache.cassandra.repair.Validator.range:Lorg/apache/cassandra/utils/MerkleTree$TreeRange;
6: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.apache.cassandra.repair.Validator.lastKey:Lorg/apache/cassandra/db/DecoratedKey;
invokevirtual org.apache.cassandra.db.DecoratedKey.getToken:()Lorg/apache/cassandra/dht/Token;
invokevirtual org.apache.cassandra.repair.Validator.findCorrectRange:(Lorg/apache/cassandra/dht/Token;)Z
ifne 9
7: aload 0
aload 0
getfield org.apache.cassandra.repair.Validator.trees:Lorg/apache/cassandra/utils/MerkleTrees;
invokevirtual org.apache.cassandra.utils.MerkleTrees.invalids:()Lorg/apache/cassandra/utils/MerkleTrees$TreeRangeIterator;
putfield org.apache.cassandra.repair.Validator.ranges:Lorg/apache/cassandra/utils/MerkleTrees$TreeRangeIterator;
8: aload 0
aload 0
getfield org.apache.cassandra.repair.Validator.lastKey:Lorg/apache/cassandra/db/DecoratedKey;
invokevirtual org.apache.cassandra.db.DecoratedKey.getToken:()Lorg/apache/cassandra/dht/Token;
invokevirtual org.apache.cassandra.repair.Validator.findCorrectRange:(Lorg/apache/cassandra/dht/Token;)Z
pop
9: StackMap locals:
StackMap stack:
getstatic org.apache.cassandra.repair.Validator.$assertionsDisabled:Z
ifne 10
aload 0
getfield org.apache.cassandra.repair.Validator.range:Lorg/apache/cassandra/utils/MerkleTree$TreeRange;
aload 0
getfield org.apache.cassandra.repair.Validator.lastKey:Lorg/apache/cassandra/db/DecoratedKey;
invokevirtual org.apache.cassandra.db.DecoratedKey.getToken:()Lorg/apache/cassandra/dht/Token;
invokevirtual org.apache.cassandra.utils.MerkleTree$TreeRange.contains:(Lorg/apache/cassandra/dht/RingPosition;)Z
ifne 10
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Token not in MerkleTree: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.apache.cassandra.repair.Validator.lastKey:Lorg/apache/cassandra/db/DecoratedKey;
invokevirtual org.apache.cassandra.db.DecoratedKey.getToken:()Lorg/apache/cassandra/dht/Token;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
10: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.apache.cassandra.repair.Validator.rowHash:(Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;)Lorg/apache/cassandra/utils/MerkleTree$RowHash;
astore 2
start local 2 11: aload 2
ifnull 13
12: aload 0
getfield org.apache.cassandra.repair.Validator.range:Lorg/apache/cassandra/utils/MerkleTree$TreeRange;
aload 2
invokevirtual org.apache.cassandra.utils.MerkleTree$TreeRange.addHash:(Lorg/apache/cassandra/utils/MerkleTree$RowHash;)V
13: StackMap locals: org.apache.cassandra.utils.MerkleTree$RowHash
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/apache/cassandra/repair/Validator;
0 14 1 partition Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;
11 14 2 rowHash Lorg/apache/cassandra/utils/MerkleTree$RowHash;
MethodParameters:
Name Flags
partition
public boolean findCorrectRange(org.apache.cassandra.dht.Token);
descriptor: (Lorg/apache/cassandra/dht/Token;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: goto 2
1: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.apache.cassandra.repair.Validator.ranges:Lorg/apache/cassandra/utils/MerkleTrees$TreeRangeIterator;
invokevirtual org.apache.cassandra.utils.MerkleTrees$TreeRangeIterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.utils.MerkleTree$TreeRange
putfield org.apache.cassandra.repair.Validator.range:Lorg/apache/cassandra/utils/MerkleTree$TreeRange;
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.repair.Validator.range:Lorg/apache/cassandra/utils/MerkleTree$TreeRange;
aload 1
invokevirtual org.apache.cassandra.utils.MerkleTree$TreeRange.contains:(Lorg/apache/cassandra/dht/RingPosition;)Z
ifne 3
aload 0
getfield org.apache.cassandra.repair.Validator.ranges:Lorg/apache/cassandra/utils/MerkleTrees$TreeRangeIterator;
invokevirtual org.apache.cassandra.utils.MerkleTrees$TreeRangeIterator.hasNext:()Z
ifne 1
3: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.repair.Validator.range:Lorg/apache/cassandra/utils/MerkleTree$TreeRange;
aload 1
invokevirtual org.apache.cassandra.utils.MerkleTree$TreeRange.contains:(Lorg/apache/cassandra/dht/RingPosition;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/repair/Validator;
0 4 1 t Lorg/apache/cassandra/dht/Token;
MethodParameters:
Name Flags
t
private org.apache.cassandra.utils.MerkleTree$RowHash rowHash(org.apache.cassandra.db.rows.UnfilteredRowIterator);
descriptor: (Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;)Lorg/apache/cassandra/utils/MerkleTree$RowHash;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 0
dup
getfield org.apache.cassandra.repair.Validator.validated:J
lconst_1
ladd
putfield org.apache.cassandra.repair.Validator.validated:J
1: new org.apache.cassandra.repair.Validator$CountingDigest
dup
ldc "SHA-256"
invokestatic org.apache.cassandra.utils.FBUtilities.newMessageDigest:(Ljava/lang/String;)Ljava/security/MessageDigest;
invokespecial org.apache.cassandra.repair.Validator$CountingDigest.<init>:(Ljava/security/MessageDigest;)V
astore 2
start local 2 2: aconst_null
aload 1
aload 2
getstatic org.apache.cassandra.net.MessagingService.current_version:I
invokestatic org.apache.cassandra.db.rows.UnfilteredRowIterators.digest:(Lorg/apache/cassandra/db/ReadCommand;Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;Ljava/security/MessageDigest;I)V
3: aload 2
getfield org.apache.cassandra.repair.Validator$CountingDigest.count:J
lconst_0
lcmp
ifle 5
4: new org.apache.cassandra.utils.MerkleTree$RowHash
dup
aload 1
invokeinterface org.apache.cassandra.db.rows.UnfilteredRowIterator.partitionKey:()Lorg/apache/cassandra/db/DecoratedKey;
invokevirtual org.apache.cassandra.db.DecoratedKey.getToken:()Lorg/apache/cassandra/dht/Token;
aload 2
invokevirtual org.apache.cassandra.repair.Validator$CountingDigest.digest:()[B
aload 2
getfield org.apache.cassandra.repair.Validator$CountingDigest.count:J
invokespecial org.apache.cassandra.utils.MerkleTree$RowHash.<init>:(Lorg/apache/cassandra/dht/Token;[BJ)V
goto 6
5: StackMap locals: org.apache.cassandra.repair.Validator$CountingDigest
StackMap stack:
aconst_null
6: StackMap locals:
StackMap stack: org.apache.cassandra.utils.MerkleTree$RowHash
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/cassandra/repair/Validator;
0 7 1 partition Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;
2 7 2 digest Lorg/apache/cassandra/repair/Validator$CountingDigest;
MethodParameters:
Name Flags
partition
public void complete();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.apache.cassandra.repair.Validator.completeTree:()V
1: getstatic org.apache.cassandra.concurrent.Stage.ANTI_ENTROPY:Lorg/apache/cassandra/concurrent/Stage;
invokestatic org.apache.cassandra.concurrent.StageManager.getStage:(Lorg/apache/cassandra/concurrent/Stage;)Lorg/apache/cassandra/concurrent/LocalAwareExecutorService;
aload 0
invokeinterface org.apache.cassandra.concurrent.LocalAwareExecutorService.execute:(Ljava/lang/Runnable;)V
2: getstatic org.apache.cassandra.repair.Validator.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
ifeq 7
3: getstatic org.apache.cassandra.repair.Validator.logger:Lorg/slf4j/Logger;
ldc "Validated {} partitions for {}. Partitions per leaf are:"
aload 0
getfield org.apache.cassandra.repair.Validator.validated:J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aload 0
getfield org.apache.cassandra.repair.Validator.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
getfield org.apache.cassandra.repair.RepairJobDesc.sessionId:Ljava/util/UUID;
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
4: aload 0
getfield org.apache.cassandra.repair.Validator.trees:Lorg/apache/cassandra/utils/MerkleTrees;
getstatic org.apache.cassandra.repair.Validator.logger:Lorg/slf4j/Logger;
invokevirtual org.apache.cassandra.utils.MerkleTrees.logRowCountPerLeaf:(Lorg/slf4j/Logger;)V
5: getstatic org.apache.cassandra.repair.Validator.logger:Lorg/slf4j/Logger;
ldc "Validated {} partitions for {}. Partition sizes are:"
aload 0
getfield org.apache.cassandra.repair.Validator.validated:J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aload 0
getfield org.apache.cassandra.repair.Validator.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
getfield org.apache.cassandra.repair.RepairJobDesc.sessionId:Ljava/util/UUID;
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
6: aload 0
getfield org.apache.cassandra.repair.Validator.trees:Lorg/apache/cassandra/utils/MerkleTrees;
getstatic org.apache.cassandra.repair.Validator.logger:Lorg/slf4j/Logger;
invokevirtual org.apache.cassandra.utils.MerkleTrees.logRowSizePerLeaf:(Lorg/slf4j/Logger;)V
7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/apache/cassandra/repair/Validator;
public void completeTree();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic org.apache.cassandra.repair.Validator.$assertionsDisabled:Z
ifne 1
aload 0
getfield org.apache.cassandra.repair.Validator.ranges:Lorg/apache/cassandra/utils/MerkleTrees$TreeRangeIterator;
ifnonnull 1
new java.lang.AssertionError
dup
ldc "Validator was not prepared()"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.apache.cassandra.repair.Validator.trees:Lorg/apache/cassandra/utils/MerkleTrees;
invokevirtual org.apache.cassandra.utils.MerkleTrees.invalids:()Lorg/apache/cassandra/utils/MerkleTrees$TreeRangeIterator;
putfield org.apache.cassandra.repair.Validator.ranges:Lorg/apache/cassandra/utils/MerkleTrees$TreeRangeIterator;
2: goto 5
3: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.apache.cassandra.repair.Validator.ranges:Lorg/apache/cassandra/utils/MerkleTrees$TreeRangeIterator;
invokevirtual org.apache.cassandra.utils.MerkleTrees$TreeRangeIterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.utils.MerkleTree$TreeRange
putfield org.apache.cassandra.repair.Validator.range:Lorg/apache/cassandra/utils/MerkleTree$TreeRange;
4: aload 0
getfield org.apache.cassandra.repair.Validator.range:Lorg/apache/cassandra/utils/MerkleTree$TreeRange;
invokevirtual org.apache.cassandra.utils.MerkleTree$TreeRange.ensureHashInitialised:()V
5: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.repair.Validator.ranges:Lorg/apache/cassandra/utils/MerkleTrees$TreeRangeIterator;
invokevirtual org.apache.cassandra.utils.MerkleTrees$TreeRangeIterator.hasNext:()Z
ifne 3
6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/cassandra/repair/Validator;
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
public void fail();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: getstatic org.apache.cassandra.repair.Validator.logger:Lorg/slf4j/Logger;
ldc "Failed creating a merkle tree for {}, {} (see log for details)"
aload 0
getfield org.apache.cassandra.repair.Validator.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
aload 0
getfield org.apache.cassandra.repair.Validator.initiator:Ljava/net/InetAddress;
invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
1: invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
new org.apache.cassandra.repair.messages.ValidationComplete
dup
aload 0
getfield org.apache.cassandra.repair.Validator.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
invokespecial org.apache.cassandra.repair.messages.ValidationComplete.<init>:(Lorg/apache/cassandra/repair/RepairJobDesc;)V
invokevirtual org.apache.cassandra.repair.messages.ValidationComplete.createMessage:()Lorg/apache/cassandra/net/MessageOut;
aload 0
getfield org.apache.cassandra.repair.Validator.initiator:Ljava/net/InetAddress;
invokevirtual org.apache.cassandra.net.MessagingService.sendOneWay:(Lorg/apache/cassandra/net/MessageOut;Ljava/net/InetAddress;)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/repair/Validator;
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.repair.Validator.initiator:Ljava/net/InetAddress;
invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
ifne 3
1: getstatic org.apache.cassandra.repair.Validator.logger:Lorg/slf4j/Logger;
ldc "[repair #{}] Sending completed merkle tree to {} for {}.{}"
iconst_4
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.apache.cassandra.repair.Validator.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
getfield org.apache.cassandra.repair.RepairJobDesc.sessionId:Ljava/util/UUID;
aastore
dup
iconst_1
aload 0
getfield org.apache.cassandra.repair.Validator.initiator:Ljava/net/InetAddress;
aastore
dup
iconst_2
aload 0
getfield org.apache.cassandra.repair.Validator.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
getfield org.apache.cassandra.repair.RepairJobDesc.keyspace:Ljava/lang/String;
aastore
dup
iconst_3
aload 0
getfield org.apache.cassandra.repair.Validator.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
getfield org.apache.cassandra.repair.RepairJobDesc.columnFamily:Ljava/lang/String;
aastore
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;[Ljava/lang/Object;)V
2: ldc "Sending completed merkle tree to {} for {}.{}"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.apache.cassandra.repair.Validator.initiator:Ljava/net/InetAddress;
aastore
dup
iconst_1
aload 0
getfield org.apache.cassandra.repair.Validator.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
getfield org.apache.cassandra.repair.RepairJobDesc.keyspace:Ljava/lang/String;
aastore
dup
iconst_2
aload 0
getfield org.apache.cassandra.repair.Validator.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
getfield org.apache.cassandra.repair.RepairJobDesc.columnFamily:Ljava/lang/String;
aastore
invokestatic org.apache.cassandra.tracing.Tracing.traceRepair:(Ljava/lang/String;[Ljava/lang/Object;)V
3: StackMap locals:
StackMap stack:
invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
new org.apache.cassandra.repair.messages.ValidationComplete
dup
aload 0
getfield org.apache.cassandra.repair.Validator.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
aload 0
getfield org.apache.cassandra.repair.Validator.trees:Lorg/apache/cassandra/utils/MerkleTrees;
invokespecial org.apache.cassandra.repair.messages.ValidationComplete.<init>:(Lorg/apache/cassandra/repair/RepairJobDesc;Lorg/apache/cassandra/utils/MerkleTrees;)V
invokevirtual org.apache.cassandra.repair.messages.ValidationComplete.createMessage:()Lorg/apache/cassandra/net/MessageOut;
aload 0
getfield org.apache.cassandra.repair.Validator.initiator:Ljava/net/InetAddress;
invokevirtual org.apache.cassandra.net.MessagingService.sendOneWay:(Lorg/apache/cassandra/net/MessageOut;Ljava/net/InetAddress;)V
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/cassandra/repair/Validator;
}
SourceFile: "Validator.java"
NestMembers:
org.apache.cassandra.repair.Validator$CountingDigest
InnerClasses:
CountingDigest = org.apache.cassandra.repair.Validator$CountingDigest of org.apache.cassandra.repair.Validator
public RowHash = org.apache.cassandra.utils.MerkleTree$RowHash of org.apache.cassandra.utils.MerkleTree
public TreeRange = org.apache.cassandra.utils.MerkleTree$TreeRange of org.apache.cassandra.utils.MerkleTree
public TreeRangeIterator = org.apache.cassandra.utils.MerkleTrees$TreeRangeIterator of org.apache.cassandra.utils.MerkleTrees