You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2021/05/22 07:24:27 UTC
[dubbo] branch master updated: MultiMessageHandler should increase
exception handling to prevent data loss (#7816)
This is an automated email from the ASF dual-hosted git repository.
albumenj pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/master by this push:
new 22ec5a0 MultiMessageHandler should increase exception handling to prevent data loss (#7816)
22ec5a0 is described below
commit 22ec5a0aa3ef2c5aef9c51570bcc000ca6a0b4d4
Author: xiaoheng1 <20...@qq.com>
AuthorDate: Sat May 22 15:24:17 2021 +0800
MultiMessageHandler should increase exception handling to prevent data loss (#7816)
---
.../dubbo/remoting/transport/MultiMessageHandler.java | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/transport/MultiMessageHandler.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/transport/MultiMessageHandler.java
index a669802..4a173d6 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/transport/MultiMessageHandler.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/transport/MultiMessageHandler.java
@@ -16,17 +16,21 @@
*/
package org.apache.dubbo.remoting.transport;
+import org.apache.dubbo.common.logger.Logger;
+import org.apache.dubbo.common.logger.LoggerFactory;
import org.apache.dubbo.remoting.Channel;
import org.apache.dubbo.remoting.ChannelHandler;
+import org.apache.dubbo.remoting.ExecutionException;
import org.apache.dubbo.remoting.RemotingException;
import org.apache.dubbo.remoting.exchange.support.MultiMessage;
/**
- *
* @see MultiMessage
*/
public class MultiMessageHandler extends AbstractChannelHandlerDelegate {
+ protected static final Logger logger = LoggerFactory.getLogger(MultiMessageHandler.class);
+
public MultiMessageHandler(ChannelHandler handler) {
super(handler);
}
@@ -37,7 +41,12 @@ public class MultiMessageHandler extends AbstractChannelHandlerDelegate {
if (message instanceof MultiMessage) {
MultiMessage list = (MultiMessage) message;
for (Object obj : list) {
- handler.received(channel, obj);
+ try {
+ handler.received(channel, obj);
+ } catch (ExecutionException e) {
+ logger.error("MultiMessageHandler received fail.", e);
+ handler.caught(channel, e);
+ }
}
} else {
handler.received(channel, message);