mirror of
https://github.com/alibaba/canal.git
synced 2026-11-04 00:30:15 +08:00
按主键散列,未设置主键时无限空指针异常 (#1889)
当按注解散列时,如果监控的表未显示设置主键,将会导致flatMessage.getPkNames()为空,导致无限空指针异常
This commit is contained in:
@@ -446,12 +446,14 @@ public class MQMessageUtils {
|
|||||||
int idx = 0;
|
int idx = 0;
|
||||||
for (Map<String, String> row : flatMessage.getData()) {
|
for (Map<String, String> row : flatMessage.getData()) {
|
||||||
int hashCode = database.hashCode();
|
int hashCode = database.hashCode();
|
||||||
for (String pkName : pkNames) {
|
if (pkNames != null) {
|
||||||
String value = row.get(pkName);
|
for (String pkName : pkNames) {
|
||||||
if (value == null) {
|
String value = row.get(pkName);
|
||||||
value = "";
|
if (value == null) {
|
||||||
|
value = "";
|
||||||
|
}
|
||||||
|
hashCode = hashCode ^ value.hashCode();
|
||||||
}
|
}
|
||||||
hashCode = hashCode ^ value.hashCode();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int pkHash = Math.abs(hashCode) % partitionsNum;
|
int pkHash = Math.abs(hashCode) % partitionsNum;
|
||||||
|
|||||||
Reference in New Issue
Block a user