From 0e9fb934487093ffec9f3adb4708c61273533a0e Mon Sep 17 00:00:00 2001 From: joshahicks Date: Mon, 22 Aug 2022 14:01:32 -0400 Subject: [PATCH] 0005417: Fix NPE for conflict detection when table does not have a PK and all columns used including those with null values --- .../io/data/writer/DefaultDatabaseWriterConflictResolver.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/writer/DefaultDatabaseWriterConflictResolver.java b/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/writer/DefaultDatabaseWriterConflictResolver.java index 7f51d6614b..a43ce0d7cc 100644 --- a/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/writer/DefaultDatabaseWriterConflictResolver.java +++ b/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/writer/DefaultDatabaseWriterConflictResolver.java @@ -205,6 +205,9 @@ protected void modifyTimestampsForPrecision(IDatabasePlatform platform, Table ta boolean checkDatetime = platform.getName().startsWith(DatabaseNamesConstants.MSSQL) || platform.getName().startsWith(DatabaseNamesConstants.ASE); Column[] pkColumns = table.getPrimaryKeyColumns(); for (int i = 0; i < pkColumns.length && i < pkData.length; i++) { + if (pkData[i] == null) { + continue; + } int type = pkColumns[i].getMappedTypeCode(); if (type == Types.TIMESTAMP || type == Types.TIME || type == ColumnTypes.TIMESTAMPTZ || type == ColumnTypes.TIMESTAMPLTZ || type == ColumnTypes.TIMETZ) {