public class com.netflix.hystrix.util.HystrixRollingPercentile
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.netflix.hystrix.util.HystrixRollingPercentile
super_class: java.lang.Object
{
private static final org.slf4j.Logger logger;
descriptor: Lorg/slf4j/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final com.netflix.hystrix.util.HystrixRollingPercentile$Time ACTUAL_TIME;
descriptor: Lcom/netflix/hystrix/util/HystrixRollingPercentile$Time;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final com.netflix.hystrix.util.HystrixRollingPercentile$Time time;
descriptor: Lcom/netflix/hystrix/util/HystrixRollingPercentile$Time;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final com.netflix.hystrix.util.HystrixRollingPercentile$BucketCircularArray buckets;
descriptor: Lcom/netflix/hystrix/util/HystrixRollingPercentile$BucketCircularArray;
flags: (0x0010) ACC_FINAL
private final int timeInMilliseconds;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int numberOfBuckets;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int bucketDataLength;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int bucketSizeInMilliseconds;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.netflix.hystrix.strategy.properties.HystrixProperty<java.lang.Boolean> enabled;
descriptor: Lcom/netflix/hystrix/strategy/properties/HystrixProperty;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lcom/netflix/hystrix/strategy/properties/HystrixProperty<Ljava/lang/Boolean;>;
volatile com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot currentPercentileSnapshot;
descriptor: Lcom/netflix/hystrix/util/HystrixRollingPercentile$PercentileSnapshot;
flags: (0x0040) ACC_VOLATILE
private java.util.concurrent.locks.ReentrantLock newBucketLock;
descriptor: Ljava/util/concurrent/locks/ReentrantLock;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lcom/netflix/hystrix/util/HystrixRollingPercentile;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
putstatic com.netflix.hystrix.util.HystrixRollingPercentile.logger:Lorg/slf4j/Logger;
1: new com.netflix.hystrix.util.HystrixRollingPercentile$ActualTime
dup
invokespecial com.netflix.hystrix.util.HystrixRollingPercentile$ActualTime.<init>:()V
putstatic com.netflix.hystrix.util.HystrixRollingPercentile.ACTUAL_TIME:Lcom/netflix/hystrix/util/HystrixRollingPercentile$Time;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(com.netflix.hystrix.strategy.properties.HystrixProperty<java.lang.Integer>, com.netflix.hystrix.strategy.properties.HystrixProperty<java.lang.Integer>, com.netflix.hystrix.strategy.properties.HystrixProperty<java.lang.Integer>, com.netflix.hystrix.strategy.properties.HystrixProperty<java.lang.Boolean>);
descriptor: (Lcom/netflix/hystrix/strategy/properties/HystrixProperty;Lcom/netflix/hystrix/strategy/properties/HystrixProperty;Lcom/netflix/hystrix/strategy/properties/HystrixProperty;Lcom/netflix/hystrix/strategy/properties/HystrixProperty;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
invokeinterface com.netflix.hystrix.strategy.properties.HystrixProperty.get:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
aload 2
invokeinterface com.netflix.hystrix.strategy.properties.HystrixProperty.get:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
aload 3
invokeinterface com.netflix.hystrix.strategy.properties.HystrixProperty.get:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
aload 4
invokespecial com.netflix.hystrix.util.HystrixRollingPercentile.<init>:(IIILcom/netflix/hystrix/strategy/properties/HystrixProperty;)V
1: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/netflix/hystrix/util/HystrixRollingPercentile;
0 2 1 timeInMilliseconds Lcom/netflix/hystrix/strategy/properties/HystrixProperty<Ljava/lang/Integer;>;
0 2 2 numberOfBuckets Lcom/netflix/hystrix/strategy/properties/HystrixProperty<Ljava/lang/Integer;>;
0 2 3 bucketDataLength Lcom/netflix/hystrix/strategy/properties/HystrixProperty<Ljava/lang/Integer;>;
0 2 4 enabled Lcom/netflix/hystrix/strategy/properties/HystrixProperty<Ljava/lang/Boolean;>;
Signature: (Lcom/netflix/hystrix/strategy/properties/HystrixProperty<Ljava/lang/Integer;>;Lcom/netflix/hystrix/strategy/properties/HystrixProperty<Ljava/lang/Integer;>;Lcom/netflix/hystrix/strategy/properties/HystrixProperty<Ljava/lang/Integer;>;Lcom/netflix/hystrix/strategy/properties/HystrixProperty<Ljava/lang/Boolean;>;)V
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
timeInMilliseconds
numberOfBuckets
bucketDataLength
enabled
public void <init>(int, int, int, com.netflix.hystrix.strategy.properties.HystrixProperty<java.lang.Boolean>);
descriptor: (IIILcom/netflix/hystrix/strategy/properties/HystrixProperty;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getstatic com.netflix.hystrix.util.HystrixRollingPercentile.ACTUAL_TIME:Lcom/netflix/hystrix/util/HystrixRollingPercentile$Time;
iload 1
iload 2
iload 3
aload 4
invokespecial com.netflix.hystrix.util.HystrixRollingPercentile.<init>:(Lcom/netflix/hystrix/util/HystrixRollingPercentile$Time;IIILcom/netflix/hystrix/strategy/properties/HystrixProperty;)V
1: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/netflix/hystrix/util/HystrixRollingPercentile;
0 2 1 timeInMilliseconds I
0 2 2 numberOfBuckets I
0 2 3 bucketDataLength I
0 2 4 enabled Lcom/netflix/hystrix/strategy/properties/HystrixProperty<Ljava/lang/Boolean;>;
Signature: (IIILcom/netflix/hystrix/strategy/properties/HystrixProperty<Ljava/lang/Boolean;>;)V
MethodParameters:
Name Flags
timeInMilliseconds
numberOfBuckets
bucketDataLength
enabled
void <init>(com.netflix.hystrix.util.HystrixRollingPercentile$Time, int, int, int, com.netflix.hystrix.strategy.properties.HystrixProperty<java.lang.Boolean>);
descriptor: (Lcom/netflix/hystrix/util/HystrixRollingPercentile$Time;IIILcom/netflix/hystrix/strategy/properties/HystrixProperty;)V
flags: (0x0000)
Code:
stack=7, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot
dup
iconst_1
newarray 10
dup
iconst_0
iconst_0
iastore
invokespecial com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.<init>:([I)V
putfield com.netflix.hystrix.util.HystrixRollingPercentile.currentPercentileSnapshot:Lcom/netflix/hystrix/util/HystrixRollingPercentile$PercentileSnapshot;
2: aload 0
new java.util.concurrent.locks.ReentrantLock
dup
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
putfield com.netflix.hystrix.util.HystrixRollingPercentile.newBucketLock:Ljava/util/concurrent/locks/ReentrantLock;
3: aload 0
aload 1
putfield com.netflix.hystrix.util.HystrixRollingPercentile.time:Lcom/netflix/hystrix/util/HystrixRollingPercentile$Time;
4: aload 0
iload 2
putfield com.netflix.hystrix.util.HystrixRollingPercentile.timeInMilliseconds:I
5: aload 0
iload 3
putfield com.netflix.hystrix.util.HystrixRollingPercentile.numberOfBuckets:I
6: aload 0
iload 4
putfield com.netflix.hystrix.util.HystrixRollingPercentile.bucketDataLength:I
7: aload 0
aload 5
putfield com.netflix.hystrix.util.HystrixRollingPercentile.enabled:Lcom/netflix/hystrix/strategy/properties/HystrixProperty;
8: aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.timeInMilliseconds:I
aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.numberOfBuckets:I
irem
ifeq 10
9: new java.lang.IllegalArgumentException
dup
ldc "The timeInMilliseconds must divide equally into numberOfBuckets. For example 1000/10 is ok, 1000/11 is not."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals: com.netflix.hystrix.util.HystrixRollingPercentile com.netflix.hystrix.util.HystrixRollingPercentile$Time int int int com.netflix.hystrix.strategy.properties.HystrixProperty
StackMap stack:
aload 0
aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.timeInMilliseconds:I
aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.numberOfBuckets:I
idiv
putfield com.netflix.hystrix.util.HystrixRollingPercentile.bucketSizeInMilliseconds:I
11: aload 0
new com.netflix.hystrix.util.HystrixRollingPercentile$BucketCircularArray
dup
aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.numberOfBuckets:I
invokespecial com.netflix.hystrix.util.HystrixRollingPercentile$BucketCircularArray.<init>:(I)V
putfield com.netflix.hystrix.util.HystrixRollingPercentile.buckets:Lcom/netflix/hystrix/util/HystrixRollingPercentile$BucketCircularArray;
12: return
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 13 0 this Lcom/netflix/hystrix/util/HystrixRollingPercentile;
0 13 1 time Lcom/netflix/hystrix/util/HystrixRollingPercentile$Time;
0 13 2 timeInMilliseconds I
0 13 3 numberOfBuckets I
0 13 4 bucketDataLength I
0 13 5 enabled Lcom/netflix/hystrix/strategy/properties/HystrixProperty<Ljava/lang/Boolean;>;
Signature: (Lcom/netflix/hystrix/util/HystrixRollingPercentile$Time;IIILcom/netflix/hystrix/strategy/properties/HystrixProperty<Ljava/lang/Boolean;>;)V
MethodParameters:
Name Flags
time
timeInMilliseconds
numberOfBuckets
bucketDataLength
enabled
public void addValue(int[]);
descriptor: ([I)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.enabled:Lcom/netflix/hystrix/strategy/properties/HystrixProperty;
invokeinterface com.netflix.hystrix.strategy.properties.HystrixProperty.get:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 1
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 9
StackMap locals: com.netflix.hystrix.util.HystrixRollingPercentile int[] top int int int[]
StackMap stack:
3: aload 5
iload 3
iaload
istore 2
start local 2 4: aload 0
invokevirtual com.netflix.hystrix.util.HystrixRollingPercentile.getCurrentBucket:()Lcom/netflix/hystrix/util/HystrixRollingPercentile$Bucket;
getfield com.netflix.hystrix.util.HystrixRollingPercentile$Bucket.data:Lcom/netflix/hystrix/util/HystrixRollingPercentile$PercentileBucketData;
iconst_1
newarray 10
dup
iconst_0
iload 2
iastore
invokevirtual com.netflix.hystrix.util.HystrixRollingPercentile$PercentileBucketData.addValue:([I)V
5: goto 8
StackMap locals: com.netflix.hystrix.util.HystrixRollingPercentile int[] int int int int[]
StackMap stack: java.lang.Exception
6: astore 6
start local 6 7: getstatic com.netflix.hystrix.util.HystrixRollingPercentile.logger:Lorg/slf4j/Logger;
new java.lang.StringBuilder
dup
ldc "Failed to add value: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 6
invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 6 end local 2 8: StackMap locals: com.netflix.hystrix.util.HystrixRollingPercentile int[] top int int int[]
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
9: iload 3
iload 4
if_icmplt 3
10: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/netflix/hystrix/util/HystrixRollingPercentile;
0 11 1 value [I
4 8 2 v I
7 8 6 e Ljava/lang/Exception;
Exception table:
from to target type
4 5 6 Class java.lang.Exception
MethodParameters:
Name Flags
value
public int getPercentile(double);
descriptor: (D)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.enabled:Lcom/netflix/hystrix/strategy/properties/HystrixProperty;
invokeinterface com.netflix.hystrix.strategy.properties.HystrixProperty.get:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifne 2
1: iconst_m1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.netflix.hystrix.util.HystrixRollingPercentile.getCurrentBucket:()Lcom/netflix/hystrix/util/HystrixRollingPercentile$Bucket;
pop
3: aload 0
invokevirtual com.netflix.hystrix.util.HystrixRollingPercentile.getCurrentPercentileSnapshot:()Lcom/netflix/hystrix/util/HystrixRollingPercentile$PercentileSnapshot;
dload 1
invokevirtual com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.getPercentile:(D)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/netflix/hystrix/util/HystrixRollingPercentile;
0 4 1 percentile D
MethodParameters:
Name Flags
percentile
public int getMean();
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.HystrixRollingPercentile.enabled:Lcom/netflix/hystrix/strategy/properties/HystrixProperty;
invokeinterface com.netflix.hystrix.strategy.properties.HystrixProperty.get:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifne 2
1: iconst_m1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.netflix.hystrix.util.HystrixRollingPercentile.getCurrentBucket:()Lcom/netflix/hystrix/util/HystrixRollingPercentile$Bucket;
pop
3: aload 0
invokevirtual com.netflix.hystrix.util.HystrixRollingPercentile.getCurrentPercentileSnapshot:()Lcom/netflix/hystrix/util/HystrixRollingPercentile$PercentileSnapshot;
invokevirtual com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.getMean:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/netflix/hystrix/util/HystrixRollingPercentile;
private com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot getCurrentPercentileSnapshot();
descriptor: ()Lcom/netflix/hystrix/util/HystrixRollingPercentile$PercentileSnapshot;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.currentPercentileSnapshot:Lcom/netflix/hystrix/util/HystrixRollingPercentile$PercentileSnapshot;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/util/HystrixRollingPercentile;
private com.netflix.hystrix.util.HystrixRollingPercentile$Bucket getCurrentBucket();
descriptor: ()Lcom/netflix/hystrix/util/HystrixRollingPercentile$Bucket;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=9, args_size=1
start local 0 0: aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.time:Lcom/netflix/hystrix/util/HystrixRollingPercentile$Time;
invokeinterface com.netflix.hystrix.util.HystrixRollingPercentile$Time.getCurrentTimeInMillis:()J
lstore 1
start local 1 1: aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.buckets:Lcom/netflix/hystrix/util/HystrixRollingPercentile$BucketCircularArray;
invokevirtual com.netflix.hystrix.util.HystrixRollingPercentile$BucketCircularArray.peekLast:()Lcom/netflix/hystrix/util/HystrixRollingPercentile$Bucket;
astore 3
start local 3 2: aload 3
ifnull 4
lload 1
aload 3
getfield com.netflix.hystrix.util.HystrixRollingPercentile$Bucket.windowStart:J
aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.bucketSizeInMilliseconds:I
i2l
ladd
lcmp
ifge 4
3: aload 3
areturn
4: StackMap locals: long com.netflix.hystrix.util.HystrixRollingPercentile$Bucket
StackMap stack:
aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.newBucketLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.tryLock:()Z
ifeq 34
5: aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.buckets:Lcom/netflix/hystrix/util/HystrixRollingPercentile$BucketCircularArray;
invokevirtual com.netflix.hystrix.util.HystrixRollingPercentile$BucketCircularArray.peekLast:()Lcom/netflix/hystrix/util/HystrixRollingPercentile$Bucket;
ifnonnull 11
6: new com.netflix.hystrix.util.HystrixRollingPercentile$Bucket
dup
lload 1
aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.bucketDataLength:I
invokespecial com.netflix.hystrix.util.HystrixRollingPercentile$Bucket.<init>:(JI)V
astore 4
start local 4 7: aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.buckets:Lcom/netflix/hystrix/util/HystrixRollingPercentile$BucketCircularArray;
aload 4
invokevirtual com.netflix.hystrix.util.HystrixRollingPercentile$BucketCircularArray.addLast:(Lcom/netflix/hystrix/util/HystrixRollingPercentile$Bucket;)V
8: aload 4
astore 8
9: aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.newBucketLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
10: aload 8
areturn
end local 4 11: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 12: goto 27
13: StackMap locals: int
StackMap stack:
aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.buckets:Lcom/netflix/hystrix/util/HystrixRollingPercentile$BucketCircularArray;
invokevirtual com.netflix.hystrix.util.HystrixRollingPercentile$BucketCircularArray.peekLast:()Lcom/netflix/hystrix/util/HystrixRollingPercentile$Bucket;
astore 5
start local 5 14: lload 1
aload 5
getfield com.netflix.hystrix.util.HystrixRollingPercentile$Bucket.windowStart:J
aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.bucketSizeInMilliseconds:I
i2l
ladd
lcmp
ifge 18
15: aload 5
astore 8
16: aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.newBucketLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
17: aload 8
areturn
18: StackMap locals: com.netflix.hystrix.util.HystrixRollingPercentile$Bucket
StackMap stack:
lload 1
aload 5
getfield com.netflix.hystrix.util.HystrixRollingPercentile$Bucket.windowStart:J
aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.bucketSizeInMilliseconds:I
i2l
ladd
lsub
aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.timeInMilliseconds:I
i2l
lcmp
ifle 23
19: aload 0
invokevirtual com.netflix.hystrix.util.HystrixRollingPercentile.reset:()V
20: aload 0
invokevirtual com.netflix.hystrix.util.HystrixRollingPercentile.getCurrentBucket:()Lcom/netflix/hystrix/util/HystrixRollingPercentile$Bucket;
astore 8
21: aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.newBucketLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
22: aload 8
areturn
23: StackMap locals:
StackMap stack:
aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.buckets:Lcom/netflix/hystrix/util/HystrixRollingPercentile$BucketCircularArray;
invokevirtual com.netflix.hystrix.util.HystrixRollingPercentile$BucketCircularArray.getArray:()[Lcom/netflix/hystrix/util/HystrixRollingPercentile$Bucket;
astore 6
start local 6 24: aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.buckets:Lcom/netflix/hystrix/util/HystrixRollingPercentile$BucketCircularArray;
new com.netflix.hystrix.util.HystrixRollingPercentile$Bucket
dup
aload 5
getfield com.netflix.hystrix.util.HystrixRollingPercentile$Bucket.windowStart:J
aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.bucketSizeInMilliseconds:I
i2l
ladd
aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.bucketDataLength:I
invokespecial com.netflix.hystrix.util.HystrixRollingPercentile$Bucket.<init>:(JI)V
invokevirtual com.netflix.hystrix.util.HystrixRollingPercentile$BucketCircularArray.addLast:(Lcom/netflix/hystrix/util/HystrixRollingPercentile$Bucket;)V
25: aload 0
new com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot
dup
aload 6
invokespecial com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.<init>:([Lcom/netflix/hystrix/util/HystrixRollingPercentile$Bucket;)V
putfield com.netflix.hystrix.util.HystrixRollingPercentile.currentPercentileSnapshot:Lcom/netflix/hystrix/util/HystrixRollingPercentile$PercentileSnapshot;
end local 6 end local 5 26: iinc 4 1
StackMap locals:
StackMap stack:
27: iload 4
aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.numberOfBuckets:I
if_icmplt 13
end local 4 28: aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.buckets:Lcom/netflix/hystrix/util/HystrixRollingPercentile$BucketCircularArray;
invokevirtual com.netflix.hystrix.util.HystrixRollingPercentile$BucketCircularArray.peekLast:()Lcom/netflix/hystrix/util/HystrixRollingPercentile$Bucket;
astore 8
29: aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.newBucketLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
30: aload 8
areturn
31: StackMap locals: com.netflix.hystrix.util.HystrixRollingPercentile long com.netflix.hystrix.util.HystrixRollingPercentile$Bucket
StackMap stack: java.lang.Throwable
astore 7
32: aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.newBucketLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
33: aload 7
athrow
34: StackMap locals:
StackMap stack:
aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.buckets:Lcom/netflix/hystrix/util/HystrixRollingPercentile$BucketCircularArray;
invokevirtual com.netflix.hystrix.util.HystrixRollingPercentile$BucketCircularArray.peekLast:()Lcom/netflix/hystrix/util/HystrixRollingPercentile$Bucket;
astore 3
35: aload 3
ifnull 37
36: aload 3
areturn
37: StackMap locals:
StackMap stack:
ldc 5
invokestatic java.lang.Thread.sleep:(J)V
38: goto 40
StackMap locals:
StackMap stack: java.lang.Exception
39: pop
40: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.netflix.hystrix.util.HystrixRollingPercentile.getCurrentBucket:()Lcom/netflix/hystrix/util/HystrixRollingPercentile$Bucket;
areturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 41 0 this Lcom/netflix/hystrix/util/HystrixRollingPercentile;
1 41 1 currentTime J
2 41 3 currentBucket Lcom/netflix/hystrix/util/HystrixRollingPercentile$Bucket;
7 11 4 newBucket Lcom/netflix/hystrix/util/HystrixRollingPercentile$Bucket;
12 28 4 i I
14 26 5 lastBucket Lcom/netflix/hystrix/util/HystrixRollingPercentile$Bucket;
24 26 6 allBuckets [Lcom/netflix/hystrix/util/HystrixRollingPercentile$Bucket;
Exception table:
from to target type
5 9 31 any
11 16 31 any
18 21 31 any
23 29 31 any
37 38 39 Class java.lang.Exception
public void reset();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.enabled:Lcom/netflix/hystrix/strategy/properties/HystrixProperty;
invokeinterface com.netflix.hystrix.strategy.properties.HystrixProperty.get:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.buckets:Lcom/netflix/hystrix/util/HystrixRollingPercentile$BucketCircularArray;
invokevirtual com.netflix.hystrix.util.HystrixRollingPercentile$BucketCircularArray.clear:()V
3: aload 0
new com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot
dup
aload 0
getfield com.netflix.hystrix.util.HystrixRollingPercentile.buckets:Lcom/netflix/hystrix/util/HystrixRollingPercentile$BucketCircularArray;
invokevirtual com.netflix.hystrix.util.HystrixRollingPercentile$BucketCircularArray.getArray:()[Lcom/netflix/hystrix/util/HystrixRollingPercentile$Bucket;
invokespecial com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot.<init>:([Lcom/netflix/hystrix/util/HystrixRollingPercentile$Bucket;)V
putfield com.netflix.hystrix.util.HystrixRollingPercentile.currentPercentileSnapshot:Lcom/netflix/hystrix/util/HystrixRollingPercentile$PercentileSnapshot;
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/netflix/hystrix/util/HystrixRollingPercentile;
}
SourceFile: "HystrixRollingPercentile.java"
NestMembers:
com.netflix.hystrix.util.HystrixRollingPercentile$ActualTime com.netflix.hystrix.util.HystrixRollingPercentile$Bucket com.netflix.hystrix.util.HystrixRollingPercentile$BucketCircularArray com.netflix.hystrix.util.HystrixRollingPercentile$BucketCircularArray$ListState com.netflix.hystrix.util.HystrixRollingPercentile$PercentileBucketData com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot com.netflix.hystrix.util.HystrixRollingPercentile$Time
InnerClasses:
private ActualTime = com.netflix.hystrix.util.HystrixRollingPercentile$ActualTime of com.netflix.hystrix.util.HystrixRollingPercentile
Bucket = com.netflix.hystrix.util.HystrixRollingPercentile$Bucket of com.netflix.hystrix.util.HystrixRollingPercentile
BucketCircularArray = com.netflix.hystrix.util.HystrixRollingPercentile$BucketCircularArray of com.netflix.hystrix.util.HystrixRollingPercentile
PercentileBucketData = com.netflix.hystrix.util.HystrixRollingPercentile$PercentileBucketData of com.netflix.hystrix.util.HystrixRollingPercentile
PercentileSnapshot = com.netflix.hystrix.util.HystrixRollingPercentile$PercentileSnapshot of com.netflix.hystrix.util.HystrixRollingPercentile
abstract Time = com.netflix.hystrix.util.HystrixRollingPercentile$Time of com.netflix.hystrix.util.HystrixRollingPercentile