diff --git a/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/transform/TransformTable.java b/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/transform/TransformTable.java index 7f32afbe16..40eb9f006d 100644 --- a/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/transform/TransformTable.java +++ b/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/transform/TransformTable.java @@ -284,7 +284,7 @@ public TransformTable enhanceWithImpliedColumns(String[] keyNames, String[] colu boolean hasDelete = false; if (primaryKeyColumns != null) { - for (TransformColumn xCol : primaryKeyColumns) { + for (TransformColumn xCol : transformColumns) { if ((StringUtils.isNotBlank(xCol.getSourceColumnName()) && StringUtils.equalsIgnoreCase(xCol.getSourceColumnName(),column)) || StringUtils.isNotBlank(xCol.getTargetColumnName()) && StringUtils.equalsIgnoreCase(xCol.getTargetColumnName(),column)) { if (xCol.includeOn == IncludeOnType.ALL) { diff --git a/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/writer/TransformWriter.java b/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/writer/TransformWriter.java index 5c04b3877f..aa52d151dd 100644 --- a/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/writer/TransformWriter.java +++ b/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/writer/TransformWriter.java @@ -197,12 +197,17 @@ public void write(CsvData data) { List dataThatHasBeenTransformed = new ArrayList(); TransformTable[] transformTables = activeTransforms.toArray(new TransformTable[activeTransforms.size()]); - if (data.getDataEventType() == DataEventType.DELETE) { + if (eventType == DataEventType.DELETE) { CollectionUtils.reverseArray(transformTables); } + for (TransformTable transformation : transformTables) { - transformation = transformation.enhanceWithImpliedColumns(this.sourceTable.getPrimaryKeyColumnNames(), + transformation = transformation.enhanceWithImpliedColumns( + this.sourceTable.getPrimaryKeyColumnNames(), this.sourceTable.getColumnNames()); + if (eventType == DataEventType.INSERT && transformation.isUpdateFirst()) { + eventType = DataEventType.UPDATE; + } dataThatHasBeenTransformed.addAll(transform(eventType, context, transformation, sourceKeyValues, oldSourceValues, sourceValues)); } @@ -344,10 +349,6 @@ protected boolean perform(DataContext context, TransformedData data, // transformation if (data.getColumnNames().length > 0) { if (data.getTargetDmlType() != DataEventType.DELETE) { - if (data.getTargetDmlType() == DataEventType.INSERT - && transformation.isUpdateFirst()) { - data.setTargetDmlType(DataEventType.UPDATE); - } persistData = true; } else { // handle the delete action diff --git a/symmetric-io/src/main/java/org/jumpmind/symmetric/io/stage/StagingManager.java b/symmetric-io/src/main/java/org/jumpmind/symmetric/io/stage/StagingManager.java index 0e0c3355ba..7913a93ed1 100644 --- a/symmetric-io/src/main/java/org/jumpmind/symmetric/io/stage/StagingManager.java +++ b/symmetric-io/src/main/java/org/jumpmind/symmetric/io/stage/StagingManager.java @@ -83,7 +83,7 @@ protected void refreshResourceList() { */ public long clean(long ttlInMs) { synchronized (StagingManager.class) { - log.debug("Cleaning staging area"); + log.trace("Cleaning staging area"); Set keys = new HashSet(resourceList.keySet()); long purgedFileCount = 0; long purgedFileSize = 0;