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;

Reply via email to