@Override public void run() { Message<?> message = this.delegate.getMessage(); MessageHandler messageHandler = this.delegate.getMessageHandler(); Assert.notNull(messageHandler, "'messageHandler' must not be null"); Deque<ExecutorChannelInterceptor> interceptorStack = null;
private void triggerAfterMessageHandled(Message<?> message, Exception ex, Deque<ExecutorChannelInterceptor> interceptorStack) { Iterator<ExecutorChannelInterceptor> iterator = interceptorStack.descendingIterator(); while (iterator.hasNext()) { ExecutorChannelInterceptor interceptor = iterator.next(); try { interceptor.afterMessageHandled(message, AbstractExecutorChannel.this, this.delegate.getMessageHandler(), ex); } catch (Throwable ex2) { //NOSONAR logger.error("Exception from afterMessageHandled in " + interceptor, ex2); } } }
@Nullable private Message<?> applyBeforeHandle(Message<?> message, Deque<ExecutorChannelInterceptor> interceptorStack) { Message<?> theMessage = message; for (ChannelInterceptor interceptor : AbstractExecutorChannel.this.interceptors.interceptors) { if (interceptor instanceof ExecutorChannelInterceptor) { ExecutorChannelInterceptor executorInterceptor = (ExecutorChannelInterceptor) interceptor; theMessage = executorInterceptor.beforeHandle(theMessage, AbstractExecutorChannel.this, this.delegate.getMessageHandler()); if (theMessage == null) { if (isLoggingEnabled() && logger.isDebugEnabled()) { logger.debug(executorInterceptor.getClass().getSimpleName() + " returned null from beforeHandle, i.e. precluding the send."); } triggerAfterMessageHandled(null, null, interceptorStack); return null; } interceptorStack.add(executorInterceptor); } } return theMessage; }
@Override public void run() { Message<?> message = this.delegate.getMessage(); MessageHandler messageHandler = this.delegate.getMessageHandler(); Assert.notNull(messageHandler, "'messageHandler' must not be null"); Deque<ExecutorChannelInterceptor> interceptorStack = null;
private void triggerAfterMessageHandled(Message<?> message, Exception ex, Deque<ExecutorChannelInterceptor> interceptorStack) { Iterator<ExecutorChannelInterceptor> iterator = interceptorStack.descendingIterator(); while (iterator.hasNext()) { ExecutorChannelInterceptor interceptor = iterator.next(); try { interceptor.afterMessageHandled(message, AbstractExecutorChannel.this, this.delegate.getMessageHandler(), ex); } catch (Throwable ex2) { //NOSONAR logger.error("Exception from afterMessageHandled in " + interceptor, ex2); } } }
@Nullable private Message<?> applyBeforeHandle(Message<?> message, Deque<ExecutorChannelInterceptor> interceptorStack) { Message<?> theMessage = message; for (ChannelInterceptor interceptor : AbstractExecutorChannel.this.interceptors.interceptors) { if (interceptor instanceof ExecutorChannelInterceptor) { ExecutorChannelInterceptor executorInterceptor = (ExecutorChannelInterceptor) interceptor; theMessage = executorInterceptor.beforeHandle(theMessage, AbstractExecutorChannel.this, this.delegate.getMessageHandler()); if (theMessage == null) { if (isLoggingEnabled() && logger.isDebugEnabled()) { logger.debug(executorInterceptor.getClass().getSimpleName() + " returned null from beforeHandle, i.e. precluding the send."); } triggerAfterMessageHandled(null, null, interceptorStack); return null; } interceptorStack.add(executorInterceptor); } } return theMessage; }