提交 68ebb780 编写于 作者: S shtykh_roman 提交者: dongeforever

[ROCKETMQ-75] Logging when RemotingCommand header decoding swallows exceptions. closes #51

上级 eaba61ff
...@@ -110,7 +110,8 @@ public class RemotingCommand { ...@@ -110,7 +110,8 @@ public class RemotingCommand {
return createResponseCommand(RemotingSysResponseCode.SYSTEM_ERROR, "not set any response code", classHeader); 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(); RemotingCommand cmd = new RemotingCommand();
cmd.markResponseType(); cmd.markResponseType();
cmd.setCode(code); cmd.setCode(code);
...@@ -230,7 +231,8 @@ public class RemotingCommand { ...@@ -230,7 +231,8 @@ public class RemotingCommand {
this.customHeader = customHeader; this.customHeader = customHeader;
} }
public CommandCustomHeader decodeCommandCustomHeader(Class<? extends CommandCustomHeader> classHeader) throws RemotingCommandException { public CommandCustomHeader decodeCommandCustomHeader(
Class<? extends CommandCustomHeader> classHeader) throws RemotingCommandException {
CommandCustomHeader objectHeader; CommandCustomHeader objectHeader;
try { try {
objectHeader = classHeader.newInstance(); objectHeader = classHeader.newInstance();
...@@ -279,6 +281,7 @@ public class RemotingCommand { ...@@ -279,6 +281,7 @@ public class RemotingCommand {
field.set(objectHeader, valueParsed); field.set(objectHeader, valueParsed);
} catch (Throwable e) { } catch (Throwable e) {
log.error("Failed field [{}] decoding", fieldName, e);
} }
} }
} }
...@@ -384,8 +387,8 @@ public class RemotingCommand { ...@@ -384,8 +387,8 @@ public class RemotingCommand {
try { try {
field.setAccessible(true); field.setAccessible(true);
value = field.get(this.customHeader); value = field.get(this.customHeader);
} catch (IllegalArgumentException e) { } catch (Exception e) {
} catch (IllegalAccessException e) { log.error("Failed to access field [{}]", name, e);
} }
if (value != null) { if (value != null) {
...@@ -401,7 +404,6 @@ public class RemotingCommand { ...@@ -401,7 +404,6 @@ public class RemotingCommand {
return encodeHeader(this.body != null ? this.body.length : 0); return encodeHeader(this.body != null ? this.body.length : 0);
} }
public ByteBuffer encodeHeader(final int bodyLength) { public ByteBuffer encodeHeader(final int bodyLength) {
// 1> header length size // 1> header length size
int length = 4; int length = 4;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册