boolean validateTransmissionAndSend(TransmissionHandlerArgs args) { if (args.getTransmission() != null && args.getTransmissionDispatcher() != null) { args.getTransmission().incrementNumberOfSends(); switch (args.getResponseCode()) { case TransmissionSendResult.REQUEST_TIMEOUT: case TransmissionSendResult.INTERNAL_SERVER_ERROR: case TransmissionSendResult.SERVICE_UNAVAILABLE: backoffAndSendTransmission(args); return true; default: InternalLogger.INSTANCE.trace("Http response code %s not handled by %s", args.getResponseCode(), this.getClass().getName()); return false; } } else if (args.getException() != null) { backoffAndSendTransmission(args); return true; } return false; }
/** * Provides the core logic for the retransmission * * @param args * The {@link TransmissionHandlerArgs} for this transmission. * @return Returns a pass/fail for handling this transmission. */ boolean validateTransmissionAndSend(TransmissionHandlerArgs args) { if (args.getRetryHeader() != null && args.getTransmission() != null && args.getTransmissionDispatcher() != null) { args.getTransmission().incrementNumberOfSends(); switch (args.getResponseCode()) { case TransmissionSendResult.THROTTLED: case TransmissionSendResult.THROTTLED_OVER_EXTENDED_TIME: suspendTransmissions(TransmissionPolicy.BLOCKED_BUT_CAN_BE_PERSISTED, args.getRetryHeader()); args.getTransmissionDispatcher().dispatch(args.getTransmission()); return true; default: InternalLogger.INSTANCE.trace("Http response code %s not handled by %s", args.getResponseCode(), this.getClass().getName()); return false; } } InternalLogger.INSTANCE.trace("Http response code %s not handled by %s.", args.getResponseCode(), this.getClass().getName()); return false; }
@Test public void testIncrementNumberOfSends() throws Exception { Transmission tested = createMockTransmission(); tested.incrementNumberOfSends(); assertEquals(1, tested.getNumberOfSends()); }