class com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray implements java.lang.Iterable<com.netflix.hystrix.util.HystrixRollingNumber$Bucket>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray
super_class: java.lang.Object
{
private final java.util.concurrent.atomic.AtomicReference<com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray$ListState> state;
descriptor: Ljava/util/concurrent/atomic/AtomicReference;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicReference<Lcom/netflix/hystrix/util/HystrixRollingNumber$BucketCircularArray$ListState;>;
private final int dataLength;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int numBuckets;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=9, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: new java.util.concurrent.atomic.AtomicReferenceArray
dup
iload 1
iconst_1
iadd
invokespecial java.util.concurrent.atomic.AtomicReferenceArray.<init>:(I)V
astore 2
start local 2 2: aload 0
new java.util.concurrent.atomic.AtomicReference
dup
new com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray$ListState
dup
aload 0
aload 2
iconst_0
iconst_0
invokespecial com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray$ListState.<init>:(Lcom/netflix/hystrix/util/HystrixRollingNumber$BucketCircularArray;Ljava/util/concurrent/atomic/AtomicReferenceArray;II)V
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:(Ljava/lang/Object;)V
putfield com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray.state:Ljava/util/concurrent/atomic/AtomicReference;
3: aload 0
aload 2
invokevirtual java.util.concurrent.atomic.AtomicReferenceArray.length:()I
putfield com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray.dataLength:I
4: aload 0
iload 1
putfield com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray.numBuckets:I
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/netflix/hystrix/util/HystrixRollingNumber$BucketCircularArray;
0 6 1 size I
2 6 2 _buckets Ljava/util/concurrent/atomic/AtomicReferenceArray<Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;>;
MethodParameters:
Name Flags
size
public void clear();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aload 0
getfield com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray.state:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray$ListState
astore 1
start local 1 1: aload 1
invokevirtual com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray$ListState.clear:()Lcom/netflix/hystrix/util/HystrixRollingNumber$BucketCircularArray$ListState;
astore 2
start local 2 2: aload 0
getfield com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray.state:Ljava/util/concurrent/atomic/AtomicReference;
aload 1
aload 2
invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 0
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/netflix/hystrix/util/HystrixRollingNumber$BucketCircularArray;
1 4 1 current Lcom/netflix/hystrix/util/HystrixRollingNumber$BucketCircularArray$ListState;
2 4 2 newState Lcom/netflix/hystrix/util/HystrixRollingNumber$BucketCircularArray$ListState;
public java.util.Iterator<com.netflix.hystrix.util.HystrixRollingNumber$Bucket> iterator();
descriptor: ()Ljava/util/Iterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray.getArray:()[Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/util/HystrixRollingNumber$BucketCircularArray;
Signature: ()Ljava/util/Iterator<Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;>;
public void addLast(com.netflix.hystrix.util.HystrixRollingNumber$Bucket);
descriptor: (Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray.state:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray$ListState
astore 2
start local 2 1: aload 2
aload 1
invokevirtual com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray$ListState.addBucket:(Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;)Lcom/netflix/hystrix/util/HystrixRollingNumber$BucketCircularArray$ListState;
astore 3
start local 3 2: aload 0
getfield com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray.state:Ljava/util/concurrent/atomic/AtomicReference;
aload 2
aload 3
invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 4
3: return
4: StackMap locals: com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray$ListState com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray$ListState
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/netflix/hystrix/util/HystrixRollingNumber$BucketCircularArray;
0 5 1 o Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;
1 5 2 currentState Lcom/netflix/hystrix/util/HystrixRollingNumber$BucketCircularArray$ListState;
2 5 3 newState Lcom/netflix/hystrix/util/HystrixRollingNumber$BucketCircularArray$ListState;
MethodParameters:
Name Flags
o
public com.netflix.hystrix.util.HystrixRollingNumber$Bucket getLast();
descriptor: ()Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray.peekLast:()Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/util/HystrixRollingNumber$BucketCircularArray;
public int size();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray.state:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray$ListState
getfield com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray$ListState.size:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/util/HystrixRollingNumber$BucketCircularArray;
public com.netflix.hystrix.util.HystrixRollingNumber$Bucket peekLast();
descriptor: ()Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray.state:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray$ListState
invokevirtual com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray$ListState.tail:()Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/util/HystrixRollingNumber$BucketCircularArray;
private com.netflix.hystrix.util.HystrixRollingNumber$Bucket[] getArray();
descriptor: ()[Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray.state:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray$ListState
invokevirtual com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray$ListState.getArray:()[Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/util/HystrixRollingNumber$BucketCircularArray;
}
Signature: Ljava/lang/Object;Ljava/lang/Iterable<Lcom/netflix/hystrix/util/HystrixRollingNumber$Bucket;>;
SourceFile: "HystrixRollingNumber.java"
NestHost: com.netflix.hystrix.util.HystrixRollingNumber
InnerClasses:
Bucket = com.netflix.hystrix.util.HystrixRollingNumber$Bucket of com.netflix.hystrix.util.HystrixRollingNumber
BucketCircularArray = com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray of com.netflix.hystrix.util.HystrixRollingNumber
private ListState = com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray$ListState of com.netflix.hystrix.util.HystrixRollingNumber$BucketCircularArray