ExecutorSubscribableChannel's SendTask actually returns local MessageHandler now

Issue: Issue: SPR-12272
This commit is contained in:
Juergen Hoeller
2014-10-01 01:05:39 +02:00
parent d778037f40
commit 44e29210cb

View File

@@ -105,17 +105,15 @@ public class ExecutorSubscribableChannel extends AbstractSubscribableChannel {
private final Message<?> inputMessage;
private final MessageHandler handler;
private final MessageHandler messageHandler;
private int interceptorIndex = -1;
public SendTask(Message<?> message, MessageHandler handler) {
public SendTask(Message<?> message, MessageHandler messageHandler) {
this.inputMessage = message;
this.handler = handler;
this.messageHandler = messageHandler;
}
@Override
public Message<?> getMessage() {
return this.inputMessage;
@@ -123,7 +121,7 @@ public class ExecutorSubscribableChannel extends AbstractSubscribableChannel {
@Override
public MessageHandler getMessageHandler() {
return this.getMessageHandler();
return this.messageHandler;
}
@Override
@@ -134,7 +132,7 @@ public class ExecutorSubscribableChannel extends AbstractSubscribableChannel {
if (message == null) {
return;
}
this.handler.handleMessage(message);
this.messageHandler.handleMessage(message);
triggerAfterMessageHandled(message, null);
}
catch (Exception ex) {
@@ -142,11 +140,11 @@ public class ExecutorSubscribableChannel extends AbstractSubscribableChannel {
if (ex instanceof MessagingException) {
throw (MessagingException) ex;
}
String description = "Failed to handle " + message + " to " + this + " in " + this.handler;
String description = "Failed to handle " + message + " to " + this + " in " + this.messageHandler;
throw new MessageDeliveryException(message, description, ex);
}
catch (Error ex) {
String description = "Failed to handle " + message + " to " + this + " in " + this.handler;
String description = "Failed to handle " + message + " to " + this + " in " + this.messageHandler;
triggerAfterMessageHandled(message, new MessageDeliveryException(message, description, ex));
throw ex;
}
@@ -154,7 +152,7 @@ public class ExecutorSubscribableChannel extends AbstractSubscribableChannel {
private Message<?> applyBeforeHandle(Message<?> message) {
for (ExecutorChannelInterceptor interceptor : executorInterceptors) {
message = interceptor.beforeHandle(message, ExecutorSubscribableChannel.this, this.handler);
message = interceptor.beforeHandle(message, ExecutorSubscribableChannel.this, this.messageHandler);
if (message == null) {
String name = interceptor.getClass().getSimpleName();
if (logger.isDebugEnabled()) {
@@ -172,7 +170,7 @@ public class ExecutorSubscribableChannel extends AbstractSubscribableChannel {
for (int i = this.interceptorIndex; i >= 0; i--) {
ExecutorChannelInterceptor interceptor = executorInterceptors.get(i);
try {
interceptor.afterMessageHandled(message, ExecutorSubscribableChannel.this, this.handler, ex);
interceptor.afterMessageHandled(message, ExecutorSubscribableChannel.this, this.messageHandler, ex);
}
catch (Throwable ex2) {
logger.error("Exception from afterMessageHandled in " + interceptor, ex2);