public abstract class org.apache.cassandra.service.AbstractWriteResponseHandler<T> implements org.apache.cassandra.net.IAsyncCallbackWithFailure<T>
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.apache.cassandra.service.AbstractWriteResponseHandler
super_class: java.lang.Object
{
protected static final org.slf4j.Logger logger;
descriptor: Lorg/slf4j/Logger;
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
private final org.apache.cassandra.utils.concurrent.SimpleCondition condition;
descriptor: Lorg/apache/cassandra/utils/concurrent/SimpleCondition;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
protected final org.apache.cassandra.db.Keyspace keyspace;
descriptor: Lorg/apache/cassandra/db/Keyspace;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final java.util.Collection<java.net.InetAddress> naturalEndpoints;
descriptor: Ljava/util/Collection;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Ljava/util/Collection<Ljava/net/InetAddress;>;
public final org.apache.cassandra.db.ConsistencyLevel consistencyLevel;
descriptor: Lorg/apache/cassandra/db/ConsistencyLevel;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
protected final java.lang.Runnable callback;
descriptor: Ljava/lang/Runnable;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final java.util.Collection<java.net.InetAddress> pendingEndpoints;
descriptor: Ljava/util/Collection;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Ljava/util/Collection<Ljava/net/InetAddress;>;
protected final org.apache.cassandra.db.WriteType writeType;
descriptor: Lorg/apache/cassandra/db/WriteType;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<org.apache.cassandra.service.AbstractWriteResponseHandler> failuresUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lorg/apache/cassandra/service/AbstractWriteResponseHandler;>;
private volatile int failures;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final java.util.Map<java.net.InetAddress, org.apache.cassandra.exceptions.RequestFailureReason> failureReasonByEndpoint;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/net/InetAddress;Lorg/apache/cassandra/exceptions/RequestFailureReason;>;
private final long queryStartNanoTime;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile boolean supportsBackPressure;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lorg/apache/cassandra/service/AbstractWriteResponseHandler;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
putstatic org.apache.cassandra.service.AbstractWriteResponseHandler.logger:Lorg/slf4j/Logger;
1: ldc Lorg/apache/cassandra/service/AbstractWriteResponseHandler;
ldc "failures"
invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
2: putstatic org.apache.cassandra.service.AbstractWriteResponseHandler.failuresUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
3: return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>(org.apache.cassandra.db.Keyspace, java.util.Collection<java.net.InetAddress>, java.util.Collection<java.net.InetAddress>, org.apache.cassandra.db.ConsistencyLevel, java.lang.Runnable, org.apache.cassandra.db.WriteType, );
descriptor: (Lorg/apache/cassandra/db/Keyspace;Ljava/util/Collection;Ljava/util/Collection;Lorg/apache/cassandra/db/ConsistencyLevel;Ljava/lang/Runnable;Lorg/apache/cassandra/db/WriteType;J)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=9, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new org.apache.cassandra.utils.concurrent.SimpleCondition
dup
invokespecial org.apache.cassandra.utils.concurrent.SimpleCondition.<init>:()V
putfield org.apache.cassandra.service.AbstractWriteResponseHandler.condition:Lorg/apache/cassandra/utils/concurrent/SimpleCondition;
2: aload 0
iconst_0
putfield org.apache.cassandra.service.AbstractWriteResponseHandler.failures:I
3: aload 0
iconst_1
putfield org.apache.cassandra.service.AbstractWriteResponseHandler.supportsBackPressure:Z
4: aload 0
aload 1
putfield org.apache.cassandra.service.AbstractWriteResponseHandler.keyspace:Lorg/apache/cassandra/db/Keyspace;
5: aload 0
aload 3
putfield org.apache.cassandra.service.AbstractWriteResponseHandler.pendingEndpoints:Ljava/util/Collection;
6: aload 0
aload 4
putfield org.apache.cassandra.service.AbstractWriteResponseHandler.consistencyLevel:Lorg/apache/cassandra/db/ConsistencyLevel;
7: aload 0
aload 2
putfield org.apache.cassandra.service.AbstractWriteResponseHandler.naturalEndpoints:Ljava/util/Collection;
8: aload 0
aload 5
putfield org.apache.cassandra.service.AbstractWriteResponseHandler.callback:Ljava/lang/Runnable;
9: aload 0
aload 6
putfield org.apache.cassandra.service.AbstractWriteResponseHandler.writeType:Lorg/apache/cassandra/db/WriteType;
10: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield org.apache.cassandra.service.AbstractWriteResponseHandler.failureReasonByEndpoint:Ljava/util/Map;
11: aload 0
lload 7
putfield org.apache.cassandra.service.AbstractWriteResponseHandler.queryStartNanoTime:J
12: return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/apache/cassandra/service/AbstractWriteResponseHandler<TT;>;
0 13 1 keyspace Lorg/apache/cassandra/db/Keyspace;
0 13 2 naturalEndpoints Ljava/util/Collection<Ljava/net/InetAddress;>;
0 13 3 pendingEndpoints Ljava/util/Collection<Ljava/net/InetAddress;>;
0 13 4 consistencyLevel Lorg/apache/cassandra/db/ConsistencyLevel;
0 13 5 callback Ljava/lang/Runnable;
0 13 6 writeType Lorg/apache/cassandra/db/WriteType;
0 13 7 queryStartNanoTime J
Signature: (Lorg/apache/cassandra/db/Keyspace;Ljava/util/Collection<Ljava/net/InetAddress;>;Ljava/util/Collection<Ljava/net/InetAddress;>;Lorg/apache/cassandra/db/ConsistencyLevel;Ljava/lang/Runnable;Lorg/apache/cassandra/db/WriteType;J)V
MethodParameters:
Name Flags
keyspace
naturalEndpoints
pendingEndpoints
consistencyLevel
callback
writeType
queryStartNanoTime
public void get();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=6, args_size=1
start local 0 0: aload 0
invokevirtual org.apache.cassandra.service.AbstractWriteResponseHandler.currentTimeout:()J
lstore 1
start local 1 1: aload 0
getfield org.apache.cassandra.service.AbstractWriteResponseHandler.condition:Lorg/apache/cassandra/utils/concurrent/SimpleCondition;
lload 1
getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
invokevirtual org.apache.cassandra.utils.concurrent.SimpleCondition.await:(JLjava/util/concurrent/TimeUnit;)Z
istore 3
start local 3 2: goto 5
end local 3 3: StackMap locals: org.apache.cassandra.service.AbstractWriteResponseHandler long
StackMap stack: java.lang.InterruptedException
astore 4
start local 4 4: new java.lang.AssertionError
dup
aload 4
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 4 start local 3 5: StackMap locals: int
StackMap stack:
iload 3
ifne 11
6: aload 0
invokevirtual org.apache.cassandra.service.AbstractWriteResponseHandler.totalBlockFor:()I
istore 4
start local 4 7: aload 0
invokevirtual org.apache.cassandra.service.AbstractWriteResponseHandler.ackCount:()I
istore 5
start local 5 8: iload 5
iload 4
if_icmplt 10
9: iload 4
iconst_1
isub
istore 5
10: StackMap locals: int int
StackMap stack:
new org.apache.cassandra.exceptions.WriteTimeoutException
dup
aload 0
getfield org.apache.cassandra.service.AbstractWriteResponseHandler.writeType:Lorg/apache/cassandra/db/WriteType;
aload 0
getfield org.apache.cassandra.service.AbstractWriteResponseHandler.consistencyLevel:Lorg/apache/cassandra/db/ConsistencyLevel;
iload 5
iload 4
invokespecial org.apache.cassandra.exceptions.WriteTimeoutException.<init>:(Lorg/apache/cassandra/db/WriteType;Lorg/apache/cassandra/db/ConsistencyLevel;II)V
athrow
end local 5 end local 4 11: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.cassandra.service.AbstractWriteResponseHandler.totalBlockFor:()I
aload 0
getfield org.apache.cassandra.service.AbstractWriteResponseHandler.failures:I
iadd
aload 0
invokevirtual org.apache.cassandra.service.AbstractWriteResponseHandler.totalEndpoints:()I
if_icmple 13
12: new org.apache.cassandra.exceptions.WriteFailureException
dup
aload 0
getfield org.apache.cassandra.service.AbstractWriteResponseHandler.consistencyLevel:Lorg/apache/cassandra/db/ConsistencyLevel;
aload 0
invokevirtual org.apache.cassandra.service.AbstractWriteResponseHandler.ackCount:()I
aload 0
invokevirtual org.apache.cassandra.service.AbstractWriteResponseHandler.totalBlockFor:()I
aload 0
getfield org.apache.cassandra.service.AbstractWriteResponseHandler.writeType:Lorg/apache/cassandra/db/WriteType;
aload 0
getfield org.apache.cassandra.service.AbstractWriteResponseHandler.failureReasonByEndpoint:Ljava/util/Map;
invokespecial org.apache.cassandra.exceptions.WriteFailureException.<init>:(Lorg/apache/cassandra/db/ConsistencyLevel;IILorg/apache/cassandra/db/WriteType;Ljava/util/Map;)V
athrow
13: StackMap locals:
StackMap stack:
return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/apache/cassandra/service/AbstractWriteResponseHandler<TT;>;
1 14 1 timeout J
2 3 3 success Z
5 14 3 success Z
4 5 4 ex Ljava/lang/InterruptedException;
7 11 4 blockedFor I
8 11 5 acks I
Exception table:
from to target type
1 2 3 Class java.lang.InterruptedException
Exceptions:
throws org.apache.cassandra.exceptions.WriteTimeoutException, org.apache.cassandra.exceptions.WriteFailureException
public final long currentTimeout();
descriptor: ()J
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=6, locals=3, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.service.AbstractWriteResponseHandler.writeType:Lorg/apache/cassandra/db/WriteType;
getstatic org.apache.cassandra.db.WriteType.COUNTER:Lorg/apache/cassandra/db/WriteType;
if_acmpne 2
1: invokestatic org.apache.cassandra.config.DatabaseDescriptor.getCounterWriteRpcTimeout:()J
goto 3
2: StackMap locals:
StackMap stack:
invokestatic org.apache.cassandra.config.DatabaseDescriptor.getWriteRpcTimeout:()J
3: StackMap locals:
StackMap stack: long
lstore 1
start local 1 4: getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
lload 1
invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
invokestatic java.lang.System.nanoTime:()J
aload 0
getfield org.apache.cassandra.service.AbstractWriteResponseHandler.queryStartNanoTime:J
lsub
lsub
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/cassandra/service/AbstractWriteResponseHandler<TT;>;
4 5 1 requestTimeout J
protected int totalBlockFor();
descriptor: ()I
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.service.AbstractWriteResponseHandler.consistencyLevel:Lorg/apache/cassandra/db/ConsistencyLevel;
aload 0
getfield org.apache.cassandra.service.AbstractWriteResponseHandler.keyspace:Lorg/apache/cassandra/db/Keyspace;
invokevirtual org.apache.cassandra.db.ConsistencyLevel.blockFor:(Lorg/apache/cassandra/db/Keyspace;)I
aload 0
getfield org.apache.cassandra.service.AbstractWriteResponseHandler.pendingEndpoints:Ljava/util/Collection;
invokeinterface java.util.Collection.size:()I
iadd
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/service/AbstractWriteResponseHandler<TT;>;
protected int totalEndpoints();
descriptor: ()I
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.service.AbstractWriteResponseHandler.naturalEndpoints:Ljava/util/Collection;
invokeinterface java.util.Collection.size:()I
aload 0
getfield org.apache.cassandra.service.AbstractWriteResponseHandler.pendingEndpoints:Ljava/util/Collection;
invokeinterface java.util.Collection.size:()I
iadd
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/service/AbstractWriteResponseHandler<TT;>;
protected boolean waitingFor(java.net.InetAddress);
descriptor: (Ljava/net/InetAddress;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/service/AbstractWriteResponseHandler<TT;>;
0 1 1 from Ljava/net/InetAddress;
MethodParameters:
Name Flags
from
protected abstract int ackCount();
descriptor: ()I
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
public abstract void response(org.apache.cassandra.net.MessageIn<T>);
descriptor: (Lorg/apache/cassandra/net/MessageIn;)V
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
Signature: (Lorg/apache/cassandra/net/MessageIn<TT;>;)V
MethodParameters:
Name Flags
msg
public void assureSufficientLiveNodes();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.service.AbstractWriteResponseHandler.consistencyLevel:Lorg/apache/cassandra/db/ConsistencyLevel;
aload 0
getfield org.apache.cassandra.service.AbstractWriteResponseHandler.keyspace:Lorg/apache/cassandra/db/Keyspace;
aload 0
getfield org.apache.cassandra.service.AbstractWriteResponseHandler.naturalEndpoints:Ljava/util/Collection;
aload 0
getfield org.apache.cassandra.service.AbstractWriteResponseHandler.pendingEndpoints:Ljava/util/Collection;
invokestatic com.google.common.collect.Iterables.concat:(Ljava/lang/Iterable;Ljava/lang/Iterable;)Ljava/lang/Iterable;
getstatic org.apache.cassandra.service.AbstractWriteResponseHandler.isAlive:Lcom/google/common/base/Predicate;
invokestatic com.google.common.collect.Iterables.filter:(Ljava/lang/Iterable;Lcom/google/common/base/Predicate;)Ljava/lang/Iterable;
invokevirtual org.apache.cassandra.db.ConsistencyLevel.assureSufficientLiveNodes:(Lorg/apache/cassandra/db/Keyspace;Ljava/lang/Iterable;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/service/AbstractWriteResponseHandler<TT;>;
Exceptions:
throws org.apache.cassandra.exceptions.UnavailableException
protected void signal();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.service.AbstractWriteResponseHandler.condition:Lorg/apache/cassandra/utils/concurrent/SimpleCondition;
invokevirtual org.apache.cassandra.utils.concurrent.SimpleCondition.signalAll:()V
1: aload 0
getfield org.apache.cassandra.service.AbstractWriteResponseHandler.callback:Ljava/lang/Runnable;
ifnull 3
2: aload 0
getfield org.apache.cassandra.service.AbstractWriteResponseHandler.callback:Ljava/lang/Runnable;
invokeinterface java.lang.Runnable.run:()V
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/service/AbstractWriteResponseHandler<TT;>;
public void onFailure(java.net.InetAddress, org.apache.cassandra.exceptions.RequestFailureReason);
descriptor: (Ljava/net/InetAddress;Lorg/apache/cassandra/exceptions/RequestFailureReason;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: getstatic org.apache.cassandra.service.AbstractWriteResponseHandler.logger:Lorg/slf4j/Logger;
ldc "Got failure from {}"
aload 1
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
1: aload 0
aload 1
invokevirtual org.apache.cassandra.service.AbstractWriteResponseHandler.waitingFor:(Ljava/net/InetAddress;)Z
ifeq 3
2: getstatic org.apache.cassandra.service.AbstractWriteResponseHandler.failuresUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.incrementAndGet:(Ljava/lang/Object;)I
goto 4
3: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.service.AbstractWriteResponseHandler.failures:I
4: StackMap locals:
StackMap stack: int
istore 3
start local 3 5: aload 0
getfield org.apache.cassandra.service.AbstractWriteResponseHandler.failureReasonByEndpoint:Ljava/util/Map;
aload 1
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: aload 0
invokevirtual org.apache.cassandra.service.AbstractWriteResponseHandler.totalBlockFor:()I
iload 3
iadd
aload 0
invokevirtual org.apache.cassandra.service.AbstractWriteResponseHandler.totalEndpoints:()I
if_icmple 8
7: aload 0
invokevirtual org.apache.cassandra.service.AbstractWriteResponseHandler.signal:()V
8: StackMap locals: int
StackMap stack:
return
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/service/AbstractWriteResponseHandler<TT;>;
0 9 1 from Ljava/net/InetAddress;
0 9 2 failureReason Lorg/apache/cassandra/exceptions/RequestFailureReason;
5 9 3 n I
MethodParameters:
Name Flags
from
failureReason
public boolean supportsBackPressure();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.service.AbstractWriteResponseHandler.supportsBackPressure:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/service/AbstractWriteResponseHandler<TT;>;
public void setSupportsBackPressure(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.apache.cassandra.service.AbstractWriteResponseHandler.supportsBackPressure:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/service/AbstractWriteResponseHandler<TT;>;
0 2 1 supportsBackPressure Z
MethodParameters:
Name Flags
supportsBackPressure
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Lorg/apache/cassandra/net/IAsyncCallbackWithFailure<TT;>;
SourceFile: "AbstractWriteResponseHandler.java"