/** * 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; }