public class org.apache.cassandra.utils.MerkleTrees implements java.lang.Iterable<java.util.Map$Entry<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>, org.apache.cassandra.utils.MerkleTree>>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.cassandra.utils.MerkleTrees
super_class: java.lang.Object
{
public static final org.apache.cassandra.utils.MerkleTrees$MerkleTreesSerializer serializer;
descriptor: Lorg/apache/cassandra/utils/MerkleTrees$MerkleTreesSerializer;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
private java.util.Map<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>, org.apache.cassandra.utils.MerkleTree> merkleTrees;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Lorg/apache/cassandra/utils/MerkleTree;>;
private org.apache.cassandra.dht.IPartitioner partitioner;
descriptor: Lorg/apache/cassandra/dht/IPartitioner;
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=2, locals=0, args_size=0
0: ldc Lorg/apache/cassandra/utils/MerkleTrees;
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.utils.MerkleTrees.$assertionsDisabled:Z
3: new org.apache.cassandra.utils.MerkleTrees$MerkleTreesSerializer
dup
invokespecial org.apache.cassandra.utils.MerkleTrees$MerkleTreesSerializer.<init>:()V
putstatic org.apache.cassandra.utils.MerkleTrees.serializer:Lorg/apache/cassandra/utils/MerkleTrees$MerkleTreesSerializer;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.apache.cassandra.dht.IPartitioner);
descriptor: (Lorg/apache/cassandra/dht/IPartitioner;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
invokespecial org.apache.cassandra.utils.MerkleTrees.<init>:(Lorg/apache/cassandra/dht/IPartitioner;Ljava/util/Collection;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/utils/MerkleTrees;
0 2 1 partitioner Lorg/apache/cassandra/dht/IPartitioner;
MethodParameters:
Name Flags
partitioner
private void <init>(org.apache.cassandra.dht.IPartitioner, java.util.Collection<org.apache.cassandra.utils.MerkleTree>);
descriptor: (Lorg/apache/cassandra/dht/IPartitioner;Ljava/util/Collection;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.TreeMap
dup
new org.apache.cassandra.utils.MerkleTrees$TokenRangeComparator
dup
invokespecial org.apache.cassandra.utils.MerkleTrees$TokenRangeComparator.<init>:()V
invokespecial java.util.TreeMap.<init>:(Ljava/util/Comparator;)V
putfield org.apache.cassandra.utils.MerkleTrees.merkleTrees:Ljava/util/Map;
2: aload 0
aload 1
putfield org.apache.cassandra.utils.MerkleTrees.partitioner:Lorg/apache/cassandra/dht/IPartitioner;
3: aload 0
aload 2
invokevirtual org.apache.cassandra.utils.MerkleTrees.addTrees:(Ljava/util/Collection;)V
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/cassandra/utils/MerkleTrees;
0 5 1 partitioner Lorg/apache/cassandra/dht/IPartitioner;
0 5 2 merkleTrees Ljava/util/Collection<Lorg/apache/cassandra/utils/MerkleTree;>;
Signature: (Lorg/apache/cassandra/dht/IPartitioner;Ljava/util/Collection<Lorg/apache/cassandra/utils/MerkleTree;>;)V
MethodParameters:
Name Flags
partitioner
merkleTrees
public java.util.Collection<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>> ranges();
descriptor: ()Ljava/util/Collection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.utils.MerkleTrees.merkleTrees:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/utils/MerkleTrees;
Signature: ()Ljava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
public org.apache.cassandra.dht.IPartitioner partitioner();
descriptor: ()Lorg/apache/cassandra/dht/IPartitioner;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.utils.MerkleTrees.partitioner:Lorg/apache/cassandra/dht/IPartitioner;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/utils/MerkleTrees;
public void addMerkleTrees(int, java.util.Collection<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>>);
descriptor: (ILjava/util/Collection;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 3
StackMap locals: org.apache.cassandra.utils.MerkleTrees int java.util.Collection top java.util.Iterator
StackMap stack:
1: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.dht.Range
astore 3
start local 3 2: aload 0
iload 1
aload 3
invokevirtual org.apache.cassandra.utils.MerkleTrees.addMerkleTree:(ILorg/apache/cassandra/dht/Range;)Lorg/apache/cassandra/utils/MerkleTree;
pop
end local 3 3: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/cassandra/utils/MerkleTrees;
0 5 1 maxsize I
0 5 2 ranges Ljava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
2 3 3 range Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
Signature: (ILjava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;)V
MethodParameters:
Name Flags
maxsize
ranges
public org.apache.cassandra.utils.MerkleTree addMerkleTree(int, org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>);
descriptor: (ILorg/apache/cassandra/dht/Range;)Lorg/apache/cassandra/utils/MerkleTree;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
bipush 126
aload 2
invokevirtual org.apache.cassandra.utils.MerkleTrees.addMerkleTree:(IBLorg/apache/cassandra/dht/Range;)Lorg/apache/cassandra/utils/MerkleTree;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/utils/MerkleTrees;
0 1 1 maxsize I
0 1 2 range Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
Signature: (ILorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;)Lorg/apache/cassandra/utils/MerkleTree;
MethodParameters:
Name Flags
maxsize
range
public org.apache.cassandra.utils.MerkleTree addMerkleTree(int, byte, org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>);
descriptor: (IBLorg/apache/cassandra/dht/Range;)Lorg/apache/cassandra/utils/MerkleTree;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new org.apache.cassandra.utils.MerkleTree
dup
aload 0
getfield org.apache.cassandra.utils.MerkleTrees.partitioner:Lorg/apache/cassandra/dht/IPartitioner;
aload 3
iload 2
iload 1
i2l
invokespecial org.apache.cassandra.utils.MerkleTree.<init>:(Lorg/apache/cassandra/dht/IPartitioner;Lorg/apache/cassandra/dht/Range;BJ)V
astore 4
start local 4 1: aload 0
aload 4
invokevirtual org.apache.cassandra.utils.MerkleTrees.addTree:(Lorg/apache/cassandra/utils/MerkleTree;)V
2: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/utils/MerkleTrees;
0 3 1 maxsize I
0 3 2 hashdepth B
0 3 3 range Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
1 3 4 tree Lorg/apache/cassandra/utils/MerkleTree;
Signature: (IBLorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;)Lorg/apache/cassandra/utils/MerkleTree;
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
RuntimeInvisibleTypeAnnotations:
METHOD_RETURN
com.google.common.annotations.VisibleForTesting()
MethodParameters:
Name Flags
maxsize
hashdepth
range
public org.apache.cassandra.utils.MerkleTree$TreeRange get(org.apache.cassandra.dht.Token);
descriptor: (Lorg/apache/cassandra/dht/Token;)Lorg/apache/cassandra/utils/MerkleTree$TreeRange;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.apache.cassandra.utils.MerkleTrees.getMerkleTree:(Lorg/apache/cassandra/dht/Token;)Lorg/apache/cassandra/utils/MerkleTree;
aload 1
invokevirtual org.apache.cassandra.utils.MerkleTree.get:(Lorg/apache/cassandra/dht/Token;)Lorg/apache/cassandra/utils/MerkleTree$TreeRange;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/utils/MerkleTrees;
0 1 1 t Lorg/apache/cassandra/dht/Token;
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
RuntimeInvisibleTypeAnnotations:
METHOD_RETURN
com.google.common.annotations.VisibleForTesting()
MethodParameters:
Name Flags
t
public void init();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.utils.MerkleTrees.merkleTrees:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 2
goto 3
StackMap locals: org.apache.cassandra.utils.MerkleTrees top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.dht.Range
astore 1
start local 1 2: aload 0
aload 1
invokevirtual org.apache.cassandra.utils.MerkleTrees.init:(Lorg/apache/cassandra/dht/Range;)V
end local 1 3: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/cassandra/utils/MerkleTrees;
2 3 1 range Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
public void init(org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>);
descriptor: (Lorg/apache/cassandra/dht/Range;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.utils.MerkleTrees.merkleTrees:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.utils.MerkleTree
invokevirtual org.apache.cassandra.utils.MerkleTree.init:()V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/utils/MerkleTrees;
0 2 1 range Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
Signature: (Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;)V
MethodParameters:
Name Flags
range
public boolean split(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: aload 0
aload 1
invokevirtual org.apache.cassandra.utils.MerkleTrees.getMerkleTree:(Lorg/apache/cassandra/dht/Token;)Lorg/apache/cassandra/utils/MerkleTree;
aload 1
invokevirtual org.apache.cassandra.utils.MerkleTree.split:(Lorg/apache/cassandra/dht/Token;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/utils/MerkleTrees;
0 1 1 t Lorg/apache/cassandra/dht/Token;
MethodParameters:
Name Flags
t
public void invalidate(org.apache.cassandra.dht.Token);
descriptor: (Lorg/apache/cassandra/dht/Token;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.apache.cassandra.utils.MerkleTrees.getMerkleTree:(Lorg/apache/cassandra/dht/Token;)Lorg/apache/cassandra/utils/MerkleTree;
aload 1
invokevirtual org.apache.cassandra.utils.MerkleTree.invalidate:(Lorg/apache/cassandra/dht/Token;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/utils/MerkleTrees;
0 2 1 t Lorg/apache/cassandra/dht/Token;
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
MethodParameters:
Name Flags
t
public org.apache.cassandra.utils.MerkleTree getMerkleTree(org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>);
descriptor: (Lorg/apache/cassandra/dht/Range;)Lorg/apache/cassandra/utils/MerkleTree;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.utils.MerkleTrees.merkleTrees:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.utils.MerkleTree
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/utils/MerkleTrees;
0 1 1 range Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
Signature: (Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;)Lorg/apache/cassandra/utils/MerkleTree;
MethodParameters:
Name Flags
range
public long size();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: lconst_0
lstore 1
start local 1 1: aload 0
getfield org.apache.cassandra.utils.MerkleTrees.merkleTrees:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 4
StackMap locals: org.apache.cassandra.utils.MerkleTrees long top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.utils.MerkleTree
astore 3
start local 3 3: lload 1
aload 3
invokevirtual org.apache.cassandra.utils.MerkleTree.size:()J
ladd
lstore 1
end local 3 4: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: lload 1
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/cassandra/utils/MerkleTrees;
1 6 1 size J
3 4 3 tree Lorg/apache/cassandra/utils/MerkleTree;
public void maxsize(org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>, );
descriptor: (Lorg/apache/cassandra/dht/Range;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual org.apache.cassandra.utils.MerkleTrees.getMerkleTree:(Lorg/apache/cassandra/dht/Range;)Lorg/apache/cassandra/utils/MerkleTree;
iload 2
i2l
invokevirtual org.apache.cassandra.utils.MerkleTree.maxsize:(J)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/utils/MerkleTrees;
0 2 1 range Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
0 2 2 maxsize I
Signature: (Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;I)V
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
MethodParameters:
Name Flags
range
maxsize
private org.apache.cassandra.utils.MerkleTree getMerkleTree(org.apache.cassandra.dht.Token);
descriptor: (Lorg/apache/cassandra/dht/Token;)Lorg/apache/cassandra/utils/MerkleTree;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.utils.MerkleTrees.merkleTrees:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: org.apache.cassandra.utils.MerkleTrees org.apache.cassandra.dht.Token top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.dht.Range
astore 2
start local 2 2: aload 2
aload 1
invokevirtual org.apache.cassandra.dht.Range.contains:(Lorg/apache/cassandra/dht/RingPosition;)Z
ifeq 4
3: aload 0
getfield org.apache.cassandra.utils.MerkleTrees.merkleTrees:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.utils.MerkleTree
areturn
end local 2 4: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
5: new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Expected tree for token "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
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
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/cassandra/utils/MerkleTrees;
0 6 1 t Lorg/apache/cassandra/dht/Token;
2 4 2 range Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
MethodParameters:
Name Flags
t
private void addTrees(java.util.Collection<org.apache.cassandra.utils.MerkleTree>);
descriptor: (Ljava/util/Collection;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
goto 3
StackMap locals: org.apache.cassandra.utils.MerkleTrees java.util.Collection top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.utils.MerkleTree
astore 2
start local 2 2: aload 0
aload 2
invokevirtual org.apache.cassandra.utils.MerkleTrees.addTree:(Lorg/apache/cassandra/utils/MerkleTree;)V
end local 2 3: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/cassandra/utils/MerkleTrees;
0 5 1 trees Ljava/util/Collection<Lorg/apache/cassandra/utils/MerkleTree;>;
2 3 2 tree Lorg/apache/cassandra/utils/MerkleTree;
Signature: (Ljava/util/Collection<Lorg/apache/cassandra/utils/MerkleTree;>;)V
MethodParameters:
Name Flags
trees
private void addTree(org.apache.cassandra.utils.MerkleTree);
descriptor: (Lorg/apache/cassandra/utils/MerkleTree;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.apache.cassandra.utils.MerkleTrees.$assertionsDisabled:Z
ifne 1
aload 0
aload 1
invokevirtual org.apache.cassandra.utils.MerkleTrees.validateNonOverlapping:(Lorg/apache/cassandra/utils/MerkleTree;)Z
ifne 1
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Range ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
getfield org.apache.cassandra.utils.MerkleTree.fullRange:Lorg/apache/cassandra/dht/Range;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "] is intersecting an existing range"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)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:
aload 0
getfield org.apache.cassandra.utils.MerkleTrees.merkleTrees:Ljava/util/Map;
aload 1
getfield org.apache.cassandra.utils.MerkleTree.fullRange:Lorg/apache/cassandra/dht/Range;
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/utils/MerkleTrees;
0 3 1 tree Lorg/apache/cassandra/utils/MerkleTree;
MethodParameters:
Name Flags
tree
private boolean validateNonOverlapping(org.apache.cassandra.utils.MerkleTree);
descriptor: (Lorg/apache/cassandra/utils/MerkleTree;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.utils.MerkleTrees.merkleTrees:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: org.apache.cassandra.utils.MerkleTrees org.apache.cassandra.utils.MerkleTree top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.dht.Range
astore 2
start local 2 2: aload 1
getfield org.apache.cassandra.utils.MerkleTree.fullRange:Lorg/apache/cassandra/dht/Range;
aload 2
invokevirtual org.apache.cassandra.dht.Range.intersects:(Lorg/apache/cassandra/dht/Range;)Z
ifeq 4
3: iconst_0
ireturn
end local 2 4: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
5: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/cassandra/utils/MerkleTrees;
0 6 1 tree Lorg/apache/cassandra/utils/MerkleTree;
2 4 2 range Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
MethodParameters:
Name Flags
tree
public org.apache.cassandra.utils.MerkleTrees$TreeRangeIterator invalids();
descriptor: ()Lorg/apache/cassandra/utils/MerkleTrees$TreeRangeIterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new org.apache.cassandra.utils.MerkleTrees$TreeRangeIterator
dup
aload 0
invokespecial org.apache.cassandra.utils.MerkleTrees$TreeRangeIterator.<init>:(Lorg/apache/cassandra/utils/MerkleTrees;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/utils/MerkleTrees;
public void logRowCountPerLeaf(org.slf4j.Logger);
descriptor: (Lorg/slf4j/Logger;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.utils.MerkleTrees.merkleTrees:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
goto 3
StackMap locals: org.apache.cassandra.utils.MerkleTrees org.slf4j.Logger top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.utils.MerkleTree
astore 2
start local 2 2: aload 2
invokevirtual org.apache.cassandra.utils.MerkleTree.histogramOfRowCountPerLeaf:()Lorg/apache/cassandra/utils/EstimatedHistogram;
aload 1
invokevirtual org.apache.cassandra.utils.EstimatedHistogram.log:(Lorg/slf4j/Logger;)V
end local 2 3: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/cassandra/utils/MerkleTrees;
0 5 1 logger Lorg/slf4j/Logger;
2 3 2 tree Lorg/apache/cassandra/utils/MerkleTree;
MethodParameters:
Name Flags
logger
public void logRowSizePerLeaf(org.slf4j.Logger);
descriptor: (Lorg/slf4j/Logger;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.utils.MerkleTrees.merkleTrees:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
goto 3
StackMap locals: org.apache.cassandra.utils.MerkleTrees org.slf4j.Logger top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.utils.MerkleTree
astore 2
start local 2 2: aload 2
invokevirtual org.apache.cassandra.utils.MerkleTree.histogramOfRowSizePerLeaf:()Lorg/apache/cassandra/utils/EstimatedHistogram;
aload 1
invokevirtual org.apache.cassandra.utils.EstimatedHistogram.log:(Lorg/slf4j/Logger;)V
end local 2 3: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/cassandra/utils/MerkleTrees;
0 5 1 logger Lorg/slf4j/Logger;
2 3 2 tree Lorg/apache/cassandra/utils/MerkleTree;
MethodParameters:
Name Flags
logger
public byte[] hash(org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>);
descriptor: (Lorg/apache/cassandra/dht/Range;)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: new java.io.ByteArrayOutputStream
dup
invokespecial java.io.ByteArrayOutputStream.<init>:()V
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: aload 0
getfield org.apache.cassandra.utils.MerkleTrees.merkleTrees:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 5
goto 9
StackMap locals: org.apache.cassandra.utils.MerkleTrees org.apache.cassandra.dht.Range java.io.ByteArrayOutputStream int top java.util.Iterator
StackMap stack:
3: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.dht.Range
astore 4
start local 4 4: aload 4
aload 1
invokevirtual org.apache.cassandra.dht.Range.intersects:(Lorg/apache/cassandra/dht/Range;)Z
ifeq 9
5: aload 0
getfield org.apache.cassandra.utils.MerkleTrees.merkleTrees:Ljava/util/Map;
aload 4
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.utils.MerkleTree
aload 1
invokevirtual org.apache.cassandra.utils.MerkleTree.hash:(Lorg/apache/cassandra/dht/Range;)[B
astore 6
start local 6 6: aload 6
ifnull 9
7: aload 2
aload 6
invokevirtual java.io.ByteArrayOutputStream.write:([B)V
8: iconst_1
istore 3
end local 6 end local 4 9: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
10: goto 13
11: StackMap locals: org.apache.cassandra.utils.MerkleTrees org.apache.cassandra.dht.Range java.io.ByteArrayOutputStream int
StackMap stack: java.io.IOException
pop
12: new java.lang.RuntimeException
dup
ldc "Unable to append merkle tree hash to result"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals:
StackMap stack:
iload 3
ifeq 14
aload 2
invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
goto 15
StackMap locals:
StackMap stack:
14: aconst_null
StackMap locals:
StackMap stack: byte[]
15: areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/apache/cassandra/utils/MerkleTrees;
0 16 1 range Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
1 16 2 baos Ljava/io/ByteArrayOutputStream;
2 16 3 hashed Z
4 9 4 rt Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
6 9 6 bytes [B
Exception table:
from to target type
2 10 11 Class java.io.IOException
Signature: (Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;)[B
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
RuntimeInvisibleTypeAnnotations:
METHOD_RETURN, location=[ARRAY_ELEMENT]
com.google.common.annotations.VisibleForTesting()
MethodParameters:
Name Flags
range
public java.util.Iterator<java.util.Map$Entry<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>, org.apache.cassandra.utils.MerkleTree>> iterator();
descriptor: ()Ljava/util/Iterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.utils.MerkleTrees.merkleTrees:Ljava/util/Map;
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/utils/MerkleTrees;
Signature: ()Ljava/util/Iterator<Ljava/util/Map$Entry<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Lorg/apache/cassandra/utils/MerkleTree;>;>;
public long rowCount();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: lconst_0
lstore 1
start local 1 1: aload 0
getfield org.apache.cassandra.utils.MerkleTrees.merkleTrees:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 4
StackMap locals: org.apache.cassandra.utils.MerkleTrees long top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.utils.MerkleTree
astore 3
start local 3 3: lload 1
aload 3
invokevirtual org.apache.cassandra.utils.MerkleTree.rowCount:()J
ladd
lstore 1
end local 3 4: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: lload 1
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/cassandra/utils/MerkleTrees;
1 6 1 totalCount J
3 4 3 tree Lorg/apache/cassandra/utils/MerkleTree;
public static java.util.List<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>> difference(org.apache.cassandra.utils.MerkleTrees, org.apache.cassandra.utils.MerkleTrees);
descriptor: (Lorg/apache/cassandra/utils/MerkleTrees;Lorg/apache/cassandra/utils/MerkleTrees;)Ljava/util/List;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 1: aload 0
getfield org.apache.cassandra.utils.MerkleTrees.merkleTrees:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 4
StackMap locals: org.apache.cassandra.utils.MerkleTrees org.apache.cassandra.utils.MerkleTrees java.util.List top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.utils.MerkleTree
astore 3
start local 3 3: aload 2
aload 3
aload 1
aload 3
getfield org.apache.cassandra.utils.MerkleTree.fullRange:Lorg/apache/cassandra/dht/Range;
invokevirtual org.apache.cassandra.utils.MerkleTrees.getMerkleTree:(Lorg/apache/cassandra/dht/Range;)Lorg/apache/cassandra/utils/MerkleTree;
invokestatic org.apache.cassandra.utils.MerkleTree.difference:(Lorg/apache/cassandra/utils/MerkleTree;Lorg/apache/cassandra/utils/MerkleTree;)Ljava/util/List;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
end local 3 4: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 ltree Lorg/apache/cassandra/utils/MerkleTrees;
0 6 1 rtree Lorg/apache/cassandra/utils/MerkleTrees;
1 6 2 differences Ljava/util/List<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
3 4 3 tree Lorg/apache/cassandra/utils/MerkleTree;
Signature: (Lorg/apache/cassandra/utils/MerkleTrees;Lorg/apache/cassandra/utils/MerkleTrees;)Ljava/util/List<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
MethodParameters:
Name Flags
ltree
rtree
}
Signature: Ljava/lang/Object;Ljava/lang/Iterable<Ljava/util/Map$Entry<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Lorg/apache/cassandra/utils/MerkleTree;>;>;
SourceFile: "MerkleTrees.java"
NestMembers:
org.apache.cassandra.utils.MerkleTrees$MerkleTreesSerializer org.apache.cassandra.utils.MerkleTrees$TokenRangeComparator org.apache.cassandra.utils.MerkleTrees$TreeRangeIterator
InnerClasses:
public abstract Entry = java.util.Map$Entry of java.util.Map
public TreeRange = org.apache.cassandra.utils.MerkleTree$TreeRange of org.apache.cassandra.utils.MerkleTree
public MerkleTreesSerializer = org.apache.cassandra.utils.MerkleTrees$MerkleTreesSerializer of org.apache.cassandra.utils.MerkleTrees
private TokenRangeComparator = org.apache.cassandra.utils.MerkleTrees$TokenRangeComparator of org.apache.cassandra.utils.MerkleTrees
public TreeRangeIterator = org.apache.cassandra.utils.MerkleTrees$TreeRangeIterator of org.apache.cassandra.utils.MerkleTrees