From 8089a0a85b5a16aaa9e7f50dabda7d30c963c3e2 Mon Sep 17 00:00:00 2001 From: chenson42 Date: Thu, 13 Jun 2013 12:46:32 +0000 Subject: [PATCH] 0001277: NPE during conflict resolution (use_version -> newer_wins) --- .../DefaultDatabaseWriterConflictResolver.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) 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 b5e863ebd7..8a49d61cab 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 @@ -293,10 +293,14 @@ protected boolean isVersionNewer(Conflict conflict, DatabaseWriter writer, CsvDa String sql = stmt.getColumnsSql(new Column[] { targetTable.getColumnWithName(columnName) }); Long existingVersion = writer.getTransaction() .queryForObject(sql, Long.class, objectValues); - Map newData = data.toColumnNameValuePairs(sourceTable.getColumnNames(), - CsvData.ROW_DATA); - Long loadingVersion = Long.valueOf(newData.get(columnName)); - return loadingVersion > existingVersion; + if (existingVersion == null) { + return true; + } else { + Map newData = data.toColumnNameValuePairs(sourceTable.getColumnNames(), + CsvData.ROW_DATA); + Long loadingVersion = Long.valueOf(newData.get(columnName)); + return loadingVersion > existingVersion; + } } protected void performFallbackToUpdate(DatabaseWriter writer, CsvData data, Conflict conflict, boolean retransform) {