From e4976a2c6df4f5173ef0284958a67e5cac10270a Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Wed, 1 Jun 2016 11:38:56 +0200 Subject: [PATCH] ExecutorSubscribableChannel consistently rethrows Error as MessageDeliveryException Issue: SPR-14323 --- .../messaging/support/AbstractMessageChannel.java | 6 +++--- .../support/ExecutorSubscribableChannel.java | 11 ++++++----- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/spring-messaging/src/main/java/org/springframework/messaging/support/AbstractMessageChannel.java b/spring-messaging/src/main/java/org/springframework/messaging/support/AbstractMessageChannel.java index 56e663ca28..c215646e92 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/support/AbstractMessageChannel.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/support/AbstractMessageChannel.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2014 the original author or authors. + * Copyright 2002-2016 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -126,9 +126,9 @@ public abstract class AbstractMessageChannel implements MessageChannel, Intercep } throw new MessageDeliveryException(message,"Failed to send message to " + this, ex); } - catch (Error ex) { + catch (Error err) { MessageDeliveryException ex2 = - new MessageDeliveryException(message, "Failed to send message to " + this, ex); + new MessageDeliveryException(message, "Failed to send message to " + this, err); chain.triggerAfterSendCompletion(message, this, sent, ex2); throw ex2; } diff --git a/spring-messaging/src/main/java/org/springframework/messaging/support/ExecutorSubscribableChannel.java b/spring-messaging/src/main/java/org/springframework/messaging/support/ExecutorSubscribableChannel.java index 0e939d6ddc..611cdf0609 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/support/ExecutorSubscribableChannel.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/support/ExecutorSubscribableChannel.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2014 the original author or authors. + * Copyright 2002-2016 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -99,7 +99,7 @@ public class ExecutorSubscribableChannel extends AbstractSubscribableChannel { /** - * Invoke a MessageHandler with ExecutorChannelInterceptor's. + * Invoke a MessageHandler with ExecutorChannelInterceptors. */ private class SendTask implements MessageHandlingRunnable { @@ -143,10 +143,11 @@ public class ExecutorSubscribableChannel extends AbstractSubscribableChannel { String description = "Failed to handle " + message + " to " + this + " in " + this.messageHandler; throw new MessageDeliveryException(message, description, ex); } - catch (Error ex) { + catch (Error err) { String description = "Failed to handle " + message + " to " + this + " in " + this.messageHandler; - triggerAfterMessageHandled(message, new MessageDeliveryException(message, description, ex)); - throw ex; + MessageDeliveryException ex2 = new MessageDeliveryException(message, description, err); + triggerAfterMessageHandled(message, ex2); + throw ex2; } }