apache / apache/rocketmq-spring
The wrong log type is used for log printing during error handling
- Dominant language
- Java
- Stars
- 2.3k
- Forks
- 943
- PR merge metrics
- No merged PRs in 30d
Description
## environment
```xml
org.apache.rocketmq
rocketmq-spring-boot-starter
2.3.0
```
> current latest version also has issue.
## describe
using wrong log type in try-catch exception handle.
in `org.apache.rocketmq.spring.support.DefaultRocketMQListenerContainer#doConvertMessage` method used `log.info` instead of `log.error` in exception handling.
```java
private Object doConvertMessage(MessageExt messageExt) {
if (Objects.equals(messageType, MessageExt.class) || Objects.equals(messageType, org.apache.rocketmq.common.message.Message.class)) {
return messageExt;
} else {
String str = new String(messageExt.getBody(), Charset.forName(charset));
if (Objects.equals(messageType, String.class)) {
return str;
} else {
// If msgType not string, use objectMapper change it.
try {
// ignored
} catch (Exception e) {
// here it is 👇
log.info("convert failed. str:{}, msgType:{}", str, messageType);
throw new RuntimeException("cannot convert message to " + messageType, e);
}
}
}
}
```
`log.info` should print normal log, it shoud be using `log.error` instead of `log.info`
## how to fix
```java
private Object doConvertMessage(MessageExt messageExt) {
if (Objects.equals(messageType, MessageExt.class) || Objects.equals(messageType, org.apache.rocketmq.common.message.Message.class)) {
return messageExt;
} else {
String str = new String(messageExt.getBody(), Charset.forName(charset));
if (Objects.equals(messageType, String.class)) {
return str;
} else {
// If msgType not string, use objectMapper change it.
try {
// ignored
} catch (Exception e) {
// change like this
log.error("convert failed. str:{}, msgType:{},\n convert error msg: {}.", str, messageType, e.getMessage());
throw new RuntimeException("cannot convert message to " + messageType, e);
}
}
}
}
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.