Quellcode durchsuchen

修复Canal指定时间戳启动失效,总是从最新的点位开始同步问题 (#4348)

* 支持用户自定义的CanalAlarmHandler

* RowsLogEvent增加对TableMapLogEvent判空检查,防止NPE异常

* 修复Canal指定时间戳启动失效,总是从最新的点位开始同步问题, issue: #4347

Co-authored-by: 云时 <mingya.wmy@alibaba-inc.com>
dataccs vor 2 Jahren
Ursprung
Commit
41bf3e2289

+ 1 - 3
driver/src/main/java/com/alibaba/otter/canal/parse/driver/mysql/packets/UUIDSet.java

@@ -181,9 +181,7 @@ public class UUIDSet {
             int j;
             for (j = i + 1; j < len; j++) {
                 if (intervals.get(i).stop >= intervals.get(j).start) {
-                    if (intervals.get(i).stop < intervals.get(j).stop) {
-                        intervals.get(i).stop = intervals.get(j).stop;
-                    }
+                    intervals.get(i).stop = intervals.get(j).stop;
                 } else {
                     break;
                 }

+ 1 - 2
driver/src/test/java/com/alibaba/otter/canal/parse/driver/mysql/MysqlGTIDSetTest.java

@@ -42,10 +42,9 @@ public class MysqlGTIDSetTest {
         MysqlGTIDSet mysqlGTIDSet1 = MysqlGTIDSet.parse(gtid1);
 
         String gtid2 = "726757ad-4455-11e8-ae04-0242ac110002:1-20304074";
-        MysqlGTIDSet mysqlGTIDSet2 = MysqlGTIDSet.parse(gtid2);
 
         mysqlGTIDSet1.update(gtid2);
-        assertEquals("726757ad-4455-11e8-ae04-0242ac110002:1-25536412", mysqlGTIDSet1.toString());
+        assertEquals("726757ad-4455-11e8-ae04-0242ac110002:1-20304074", mysqlGTIDSet1.toString());
     }
 
     @Test