From 04cf82752b1ff97f3d9e70462e5106f7ba855024 Mon Sep 17 00:00:00 2001 From: Chris Henson Date: Sun, 24 Sep 2017 15:00:23 -0400 Subject: [PATCH] 0003142: Sync Columns Between Incoming and Outgoing Batch. Fix null pointer when stream.to.file.enabled is false on source and true on target. --- .../jumpmind/symmetric/io/data/reader/ProtocolDataReader.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/reader/ProtocolDataReader.java b/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/reader/ProtocolDataReader.java index 86d645bfa6..7f643abdab 100644 --- a/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/reader/ProtocolDataReader.java +++ b/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/reader/ProtocolDataReader.java @@ -199,7 +199,8 @@ public Object readNext() { } else if (tokens[0].equals(CsvConstants.BATCH) || tokens[0].equals(CsvConstants.RETRY)) { Batch batch = new Batch(batchType, Long.parseLong(tokens[1]), channelId, binaryEncoding, sourceNodeId, targetNodeId, false); - statistics.put(batch, new DataReaderStatistics()); + stats = stats != null ? stats : new DataReaderStatistics(); + statistics.put(batch, stats); tokens = null; return batch; } else if (tokens[0].equals(CsvConstants.NO_BINARY_OLD_DATA)) { @@ -281,6 +282,7 @@ public Object readNext() { statsColumns = CollectionUtils.copyOfRange(tokens, 1, tokens.length); } else if (tokens[0].equals(CsvConstants.STATS)) { statsValues = CollectionUtils.copyOfRange(tokens, 1, tokens.length); + stats = stats != null ? stats : new DataReaderStatistics(); putStats(stats, statsColumns, statsValues); } else { log.info("Unable to handle unknown csv values: " + Arrays.toString(tokens));