Browse Source

fix: fix NPE, 使用CanalServerWithManager时,开启GTID模式下,不传入masterPosition的情况下,会产生NPE

赵峰 6 years ago
parent
commit
fa79db65b7

+ 4 - 4
parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/MysqlEventParser.java

@@ -35,12 +35,12 @@ import com.taobao.tddl.dbsync.binlog.LogEvent;
 
 
 /**
 /**
  * 基于向mysql server复制binlog实现
  * 基于向mysql server复制binlog实现
- * 
+ *
  * <pre>
  * <pre>
  * 1. 自身不控制mysql主备切换,由ha机制来控制. 比如接入tddl/cobar/自身心跳包成功率
  * 1. 自身不控制mysql主备切换,由ha机制来控制. 比如接入tddl/cobar/自身心跳包成功率
  * 2. 切换机制
  * 2. 切换机制
  * </pre>
  * </pre>
- * 
+ *
  * @author jianghang 2012-6-21 下午04:06:32
  * @author jianghang 2012-6-21 下午04:06:32
  * @version 1.0.0
  * @version 1.0.0
  */
  */
@@ -202,7 +202,7 @@ public class MysqlEventParser extends AbstractMysqlEventParser implements CanalE
 
 
     /**
     /**
      * 心跳信息
      * 心跳信息
-     * 
+     *
      * @author jianghang 2012-7-6 下午02:50:15
      * @author jianghang 2012-7-6 下午02:50:15
      * @version 1.0.0
      * @version 1.0.0
      */
      */
@@ -352,7 +352,7 @@ public class MysqlEventParser extends AbstractMysqlEventParser implements CanalE
                 return logPosition.getPostion();
                 return logPosition.getPostion();
             }
             }
 
 
-            if (StringUtils.isNotEmpty(masterPosition.getGtid())) {
+            if (masterPosition!=null && StringUtils.isNotEmpty(masterPosition.getGtid())) {
                 return masterPosition;
                 return masterPosition;
             }
             }
         }
         }