Repository: incubator-rocketmq Updated Branches: refs/heads/develop c5d9fcb54 -> a146646b2
[ROCKETMQ-75] Logging when RemotingCommand header decoding swallows exceptions. closes #51 Project: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/commit/a146646b Tree: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/tree/a146646b Diff: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/diff/a146646b Branch: refs/heads/develop Commit: a146646b27af75540b7691e6dd9b1227d6aaf59b Parents: c5d9fcb Author: shtykh_roman <[email protected]> Authored: Fri Mar 10 15:50:04 2017 +0900 Committer: shtykh_roman <[email protected]> Committed: Fri Mar 10 15:50:04 2017 +0900 ---------------------------------------------------------------------- .../rocketmq/remoting/protocol/RemotingCommand.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/a146646b/remoting/src/main/java/org/apache/rocketmq/remoting/protocol/RemotingCommand.java ---------------------------------------------------------------------- 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 4f017ad..bee9b12 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<? extends CommandCustomHeader> classHeader) { + public static RemotingCommand createResponseCommand(int code, String remark, + Class<? extends CommandCustomHeader> classHeader) { RemotingCommand cmd = new RemotingCommand(); cmd.markResponseType(); cmd.setCode(code); @@ -230,7 +231,8 @@ public class RemotingCommand { this.customHeader = customHeader; } - public CommandCustomHeader decodeCommandCustomHeader(Class<? extends CommandCustomHeader> classHeader) throws RemotingCommandException { + public CommandCustomHeader decodeCommandCustomHeader( + Class<? extends CommandCustomHeader> 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;
