@Override public ResponseMessageFuture send(RequestMessage request, ResponseListener... listeners) { if (request == null) throw new NullPointerException("request cannot be null"); if (!start()) throw new RuntimeException("Channel not started"); AsyncToken token = new AsyncToken(request, listeners); request.setTimestamp(System.currentTimeMillis()); if (request.getTimeToLive() <= 0L) request.setTimeToLive(defaultTimeToLive); try { timer.schedule(token, request.getRemainingTimeToLive()); tokensQueue.add(token); } catch (Exception e) { log.error(e, "Could not add token to queue: %s", token); token.dispatchFailure(e); return new ImmediateFailureResponseMessageFuture(e); } return token; }
@Override public ResponseMessageFuture send(RequestMessage request, ResponseListener... listeners) { if (request == null) throw new NullPointerException("request cannot be null"); if (!start()) throw new RuntimeException("Channel not started"); AsyncToken token = new AsyncToken(request, listeners); request.setTimestamp(System.currentTimeMillis()); if (request.getTimeToLive() <= 0L) request.setTimeToLive(defaultTimeToLive); try { timer.schedule(token, request.getRemainingTimeToLive()); tokensQueue.add(token); } catch (Exception e) { log.error(e, "Could not add token to queue: %s", token); token.dispatchFailure(e); return new ImmediateFailureResponseMessageFuture(e); } return token; }
@Override public ResponseMessageFuture send(RequestMessage request, ResponseListener... listeners) { if (request == null) throw new NullPointerException("request cannot be null"); if (!start()) throw new RuntimeException("Channel not started"); AsyncToken token = new AsyncToken(request, listeners); request.setTimestamp(System.currentTimeMillis()); if (request.getTimeToLive() <= 0L) request.setTimeToLive(defaultTimeToLive); try { timer.schedule(token, request.getRemainingTimeToLive()); tokensQueue.add(token); } catch (Exception e) { log.error(e, "Could not add token to queue: %s", token); token.dispatchFailure(e); return new ImmediateFailureResponseMessageFuture(e); } return token; }