@Override public RetryDecision onReadTimeout( Statement statement, ConsistencyLevel cl, int requiredResponses, int receivedResponses, boolean dataRetrieved, int nbRetry) { return childPolicy.onReadTimeout( statement, cl, requiredResponses, receivedResponses, dataRetrieved, nbRetry); }
@Override public RetryDecision onUnavailable( Statement statement, ConsistencyLevel cl, int requiredReplica, int aliveReplica, int nbRetry) { return childPolicy.onUnavailable(statement, cl, requiredReplica, aliveReplica, nbRetry); }
@Override public RetryDecision onWriteTimeout( Statement statement, ConsistencyLevel cl, WriteType writeType, int requiredAcks, int receivedAcks, int nbRetry) { if (isIdempotent(statement)) return childPolicy.onWriteTimeout( statement, cl, writeType, requiredAcks, receivedAcks, nbRetry); else return RetryDecision.rethrow(); }
ReadTimeoutException rte = (ReadTimeoutException) err.infos; retry = retryPolicy.onReadTimeout( statement, rte.getConsistencyLevel(), manager.cluster.getConfiguration().getQueryOptions())) retry = retryPolicy.onWriteTimeout( statement, wte.getConsistencyLevel(), UnavailableException ue = (UnavailableException) err.infos; retry = retryPolicy.onUnavailable( statement, ue.getConsistencyLevel(),
@Override public void init(Cluster cluster) { policy.init(cluster); }
@Override public void close() { childPolicy.close(); }
@Override public RetryDecision onRequestError( Statement statement, ConsistencyLevel cl, DriverException e, int nbRetry) { if (isIdempotent(statement)) return childPolicy.onRequestError(statement, cl, e, nbRetry); else return RetryDecision.rethrow(); }
assert err.infos instanceof ReadTimeoutException; ReadTimeoutException rte = (ReadTimeoutException) err.infos; retry = retryPolicy.onReadTimeout(statement, rte.getConsistencyLevel(), rte.getRequiredAcknowledgements(), WriteTimeoutException wte = (WriteTimeoutException) err.infos; if (statement.isIdempotentWithDefault(manager.cluster.getConfiguration().getQueryOptions())) retry = retryPolicy.onWriteTimeout(statement, wte.getConsistencyLevel(), wte.getWriteType(), assert err.infos instanceof UnavailableException; UnavailableException ue = (UnavailableException) err.infos; retry = retryPolicy.onUnavailable(statement, ue.getConsistencyLevel(), ue.getRequiredReplicas(),
@Override public void init(Cluster cluster) { childPolicy.init(cluster); queryOptions = cluster.getConfiguration().getQueryOptions(); }
@Override public void close() { policy.close(); }
protected void assertOnRequestErrorWasCalled( int times, Class<? extends DriverException> expected) { Mockito.verify(retryPolicy, times(times)) .onRequestError(any(Statement.class), any(ConsistencyLevel.class), any(expected), anyInt()); }
assert err.infos instanceof ReadTimeoutException; ReadTimeoutException rte = (ReadTimeoutException) err.infos; retry = retryPolicy.onReadTimeout(statement, rte.getConsistencyLevel(), rte.getRequiredAcknowledgements(), WriteTimeoutException wte = (WriteTimeoutException) err.infos; if (statement.isIdempotentWithDefault(manager.cluster.getConfiguration().getQueryOptions())) retry = retryPolicy.onWriteTimeout(statement, wte.getConsistencyLevel(), wte.getWriteType(), assert err.infos instanceof UnavailableException; UnavailableException ue = (UnavailableException) err.infos; retry = retryPolicy.onUnavailable(statement, ue.getConsistencyLevel(), ue.getRequiredReplicas(),
protected void assertOnWriteTimeoutWasCalled(int times) { Mockito.verify(retryPolicy, times(times)) .onWriteTimeout( any(Statement.class), any(ConsistencyLevel.class), any(WriteType.class), anyInt(), anyInt(), anyInt()); }
protected void assertOnReadTimeoutWasCalled(int times) { Mockito.verify(retryPolicy, times(times)) .onReadTimeout( any(Statement.class), any(ConsistencyLevel.class), anyInt(), anyInt(), anyBoolean(), anyInt()); }
protected void assertOnUnavailableWasCalled(int times) { Mockito.verify(retryPolicy, times(times)) .onUnavailable( any(Statement.class), any(ConsistencyLevel.class), anyInt(), anyInt(), anyInt()); }
@Test(groups = "short") public void should_call_init_method_on_inner_policy() { RetryPolicy innerPolicyMock = Mockito.mock(RetryPolicy.class); new LoggingRetryPolicy(innerPolicyMock).init(cluster); Mockito.verify(innerPolicyMock).init(cluster); }
@Test(groups = "unit") public void should_call_close_method_on_inner_policy() { RetryPolicy innerPolicyMock = Mockito.mock(RetryPolicy.class); new LoggingRetryPolicy(innerPolicyMock).close(); Mockito.verify(innerPolicyMock).close(); }
@Override public RetryDecision onRequestError( Statement statement, ConsistencyLevel cl, DriverException e, int nbRetry) { RetryDecision decision = policy.onRequestError(statement, cl, e, nbRetry); switch (decision.getType()) { case IGNORE: logDecision(IGNORING_REQUEST_ERROR, cl, nbRetry, e.toString()); break; case RETRY: logDecision( RETRYING_ON_REQUEST_ERROR, host(decision), cl(cl, decision), cl, nbRetry, e.toString()); break; } return decision; }
assert err.infos instanceof ReadTimeoutException; ReadTimeoutException rte = (ReadTimeoutException) err.infos; retry = retryPolicy.onReadTimeout(statement, rte.getConsistencyLevel(), rte.getRequiredAcknowledgements(), WriteTimeoutException wte = (WriteTimeoutException) err.infos; if (statement.isIdempotentWithDefault(manager.cluster.getConfiguration().getQueryOptions())) retry = retryPolicy.onWriteTimeout(statement, wte.getConsistencyLevel(), wte.getWriteType(), assert err.infos instanceof UnavailableException; UnavailableException ue = (UnavailableException) err.infos; retry = retryPolicy.onUnavailable(statement, ue.getConsistencyLevel(), ue.getRequiredReplicas(),
@Override public RetryDecision onWriteTimeout( Statement statement, ConsistencyLevel cl, WriteType writeType, int requiredAcks, int receivedAcks, int nbRetry) { RetryDecision decision = policy.onWriteTimeout(statement, cl, writeType, requiredAcks, receivedAcks, nbRetry); switch (decision.getType()) { case IGNORE: logDecision(IGNORING_WRITE_TIMEOUT, cl, writeType, requiredAcks, receivedAcks, nbRetry); break; case RETRY: logDecision( RETRYING_ON_WRITE_TIMEOUT, host(decision), cl(cl, decision), cl, writeType, requiredAcks, receivedAcks, nbRetry); break; } return decision; }