From a146646b27af75540b7691e6dd9b1227d6aaf59b Mon Sep 17 00:00:00 2001 From: shtykh_roman Date: Fri, 10 Mar 2017 15:50:04 +0900 Subject: [PATCH] [ROCKETMQ-75] Logging when RemotingCommand header decoding swallows exceptions. closes #51 --- .../rocketmq/remoting/protocol/RemotingCommand.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/RemotingCommand.java b/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/RemotingCommand.java index 4f017ad2..bee9b12c 100644 --- a/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/RemotingCommand.java +++ b/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/RemotingCommand.java @@ -110,7 +110,8 @@ public class RemotingCommand { return createResponseCommand(RemotingSysResponseCode.SYSTEM_ERROR, "not set any response code", classHeader); } - public static RemotingCommand createResponseCommand(int code, String remark, Class classHeader) { + public static RemotingCommand createResponseCommand(int code, String remark, + Class classHeader) { RemotingCommand cmd = new RemotingCommand(); cmd.markResponseType(); cmd.setCode(code); @@ -230,7 +231,8 @@ public class RemotingCommand { this.customHeader = customHeader; } - public CommandCustomHeader decodeCommandCustomHeader(Class classHeader) throws RemotingCommandException { + public CommandCustomHeader decodeCommandCustomHeader( + Class classHeader) throws RemotingCommandException { CommandCustomHeader objectHeader; try { objectHeader = classHeader.newInstance(); @@ -279,6 +281,7 @@ public class RemotingCommand { field.set(objectHeader, valueParsed); } catch (Throwable e) { + log.error("Failed field [{}] decoding", fieldName, e); } } } @@ -384,8 +387,8 @@ public class RemotingCommand { try { field.setAccessible(true); value = field.get(this.customHeader); - } catch (IllegalArgumentException e) { - } catch (IllegalAccessException e) { + } catch (Exception e) { + log.error("Failed to access field [{}]", name, e); } if (value != null) { @@ -401,7 +404,6 @@ public class RemotingCommand { return encodeHeader(this.body != null ? this.body.length : 0); } - public ByteBuffer encodeHeader(final int bodyLength) { // 1> header length size int length = 4; -- GitLab