View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003539 | SymmetricDS | Improvement | public | 2018-05-03 18:01 | 2019-04-24 17:50 |
Reporter | ddlg_2 | Assigned To | hanes | ||
Priority | high | ||||
Status | closed | Resolution | fixed | ||
Product Version | 3.9.1 | ||||
Target Version | 3.9.13 | Fixed in Version | 3.9.13 | ||
Summary | 0003539: Failed to extract batch 011-21 StackTraceKey.init [RuntimeException:2157757869] java.lang.RuntimeException: java.lang.NullPoint | ||||
Description | Symmetric sync failed when I tried to modify source table values, source node hints that the exception information is as follows: 2018-05-03 19:20:47,208 ERROR [client1-002] [DataExtractorService] [client1-002-push-default-2] Failed to extract batch 011-21 StackTraceKey.init [RuntimeException:2157757869] java.lang.RuntimeException: java.lang.NullPointerException at org.jumpmind.symmetric.service.impl.DataExtractorService.extract(DataExtractorService.java:718) at org.jumpmind.symmetric.service.impl.DataExtractorService.extract(DataExtractorService.java:556) at org.jumpmind.symmetric.service.impl.PushService.pushToNode(PushService.java:203) at org.jumpmind.symmetric.service.impl.PushService.execute(PushService.java:165) at org.jumpmind.symmetric.service.impl.NodeCommunicationService$1.run(NodeCommunicationService.java:519) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.NullPointerException at org.jumpmind.symmetric.io.data.writer.StagingDataWriter.print(StagingDataWriter.java:116) at org.jumpmind.symmetric.io.data.writer.AbstractProtocolDataWriter.println(AbstractProtocolDataWriter.java:256) at org.jumpmind.symmetric.io.data.writer.AbstractProtocolDataWriter.write(AbstractProtocolDataWriter.java:172) at org.jumpmind.symmetric.io.data.writer.NestedDataWriter.write(NestedDataWriter.java:64) at org.jumpmind.symmetric.model.ProcessInfoDataWriter.write(ProcessInfoDataWriter.java:84) at org.jumpmind.symmetric.io.data.writer.NestedDataWriter.write(NestedDataWriter.java:64) at org.jumpmind.symmetric.io.data.writer.TransformWriter.write(TransformWriter.java:206) at org.jumpmind.symmetric.io.data.DataProcessor.forEachDataInTable(DataProcessor.java:203) at org.jumpmind.symmetric.io.data.DataProcessor.forEachTableInBatch(DataProcessor.java:170) at org.jumpmind.symmetric.io.data.DataProcessor.process(DataProcessor.java:116) at org.jumpmind.symmetric.service.impl.DataExtractorService.extractOutgoingBatch(DataExtractorService.java:951) at org.jumpmind.symmetric.service.impl.DataExtractorService.extractBatch(DataExtractorService.java:832) at org.jumpmind.symmetric.service.impl.DataExtractorService.lambda$extract$0(DataExtractorService.java:623) at java.util.concurrent.FutureTask.run(FutureTask.java:266) ... 3 more target node create table information as following: 2018-05-03 19:19:29,472 INFO [server-011] [DefaultDatabaseWriter] [server-011-dataloader-3] About to create table using the following definition: <?xml version="1.0"?> <!DOCTYPE database SYSTEM "http://db.apache.org/torque/dtd/database"> <database name="dataextractor"> <table name="JC_LFY"> <column name="LFY_KPSJ" type="VARCHAR" size="50"> <platform-column name="oracle" type="VARCHAR2" size="50"/> </column> <column name="LFY_KSSJ" type="VARCHAR" size="50"> <platform-column name="oracle" type="VARCHAR2" size="50"/> </column> <column name="LFY_JSSJ" type="VARCHAR" size="50"> <platform-column name="oracle" type="VARCHAR2" size="50"/> </column> <column name="LFY_DH" type="VARCHAR" size="50"> <platform-column name="oracle" type="VARCHAR2" size="50"/> </column> <column name="LFY_CH" type="VARCHAR" size="50"> <platform-column name="oracle" type="VARCHAR2" size="50"/> </column> <column name="LFY_THDW" type="VARCHAR" size="50"> <platform-column name="oracle" type="VARCHAR2" size="50"/> </column> <column name="LFY_YZL" type="VARCHAR" size="50"> <platform-column name="oracle" type="VARCHAR2" size="50"/> </column> <column name="LFY_SZL" type="VARCHAR" size="50"> <platform-column name="oracle" type="VARCHAR2" size="50"/> </column> <column name="LFY_FYHW" type="VARCHAR" size="50"> <platform-column name="oracle" type="VARCHAR2" size="50"/> </column> </table> </database> 2018-05-03 19:19:29,476 INFO [server-011] [MariaDBDatabasePlatform] [server-011-dataloader-3] Running alter sql: CREATE TABLE `jc_lfy`( `lfy_kpsj` VARCHAR(50) NULL, `lfy_kssj` VARCHAR(50) NULL, `lfy_jssj` VARCHAR(50) NULL, `lfy_dh` VARCHAR(50) NULL, `lfy_ch` VARCHAR(50) NULL, `lfy_thdw` VARCHAR(50) NULL, `lfy_yzl` VARCHAR(50) NULL, `lfy_szl` VARCHAR(50) NULL, `lfy_fyhw` VARCHAR(50) NULL ); | ||||
Steps To Reproduce | modifed files: symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/TriggerRouterService.java if (!foundPk) { - table = platform.makeAllColumnsPrimaryKeys(table); + //table = platform.makeAllColumnsPrimaryKeys(table); } source node databaseType: MariaDB target node databaseType: Oracle | ||||
Additional Information | I hope that Symmetric can sync values to target node tables when source node tables don't have any primary key, Please analyze it. Thanks! | ||||
Tags | extract | ||||
Date Modified | Username | Field | Change |
---|---|---|---|
2018-05-03 18:01 | ddlg_2 | New Issue | |
2018-05-03 18:01 | ddlg_2 | Tag Attached: extract | |
2018-10-03 18:28 | hanes | Status | new => feedback |
2018-10-03 18:28 | hanes | Note Added: 0001255 | |
2019-04-24 17:50 | elong | Assigned To | => hanes |
2019-04-24 17:50 | elong | Status | feedback => closed |
2019-04-24 17:50 | elong | Resolution | open => fixed |
2019-04-24 17:50 | elong | Fixed in Version | => 3.9.13 |