in transaction-client/src/main/java/org/apache/omid/tso/client/TSOClient.java [833:873]
private void handleResponse(ResponseEvent response) {
TSOProto.Response resp = response.getParam();
if (resp.hasTimestampResponse()) {
if (timestampRequests.size() == 0) {
LOG.debug("Received timestamp response when no requests outstanding");
return;
}
RequestAndTimeout e = timestampRequests.remove();
e.getRequest().success(resp.getTimestampResponse().getStartTimestamp());
if (e.getTimeout() != null) {
e.getTimeout().cancel();
}
} else if (resp.hasCommitResponse()) {
long startTimestamp = resp.getCommitResponse().getStartTimestamp();
RequestAndTimeout e = commitRequests.remove(startTimestamp);
if (e == null) {
LOG.debug("Received commit response for request that doesn't exist. Start TS: {}", startTimestamp);
return;
}
if (e.getTimeout() != null) {
e.getTimeout().cancel();
}
if (resp.getCommitResponse().getAborted()) {
e.getRequest().error(new AbortException());
} else {
e.getRequest().success(resp.getCommitResponse().getCommitTimestamp());
}
} else if (resp.hasFenceResponse()) {
long tableID = resp.getFenceResponse().getTableId();
RequestAndTimeout e = fenceRequests.remove(tableID);
if (e == null) {
LOG.debug("Received fence response for request that doesn't exist. Table ID: {}", tableID);
return;
}
if (e.getTimeout() != null) {
e.getTimeout().cancel();
}
e.getRequest().success(resp.getFenceResponse().getFenceId());
}
}