diff --git a/symmetric-core/src/main/java/org/jumpmind/symmetric/common/ConfigurationChangedHelper.java b/symmetric-core/src/main/java/org/jumpmind/symmetric/common/ConfigurationChangedHelper.java index 49b80e96bd..1b430f5b99 100644 --- a/symmetric-core/src/main/java/org/jumpmind/symmetric/common/ConfigurationChangedHelper.java +++ b/symmetric-core/src/main/java/org/jumpmind/symmetric/common/ConfigurationChangedHelper.java @@ -103,7 +103,7 @@ public void handleChange(Context context, Table table, CsvData data) { updateContext(TableConstants.SYM_TRANSFORM_TABLE, table, context, CTX_KEY_FLUSH_TRANSFORMS_NEEDED); updateContext(TableConstants.SYM_TRANSFORM_COLUMN, table, context, CTX_KEY_FLUSH_TRANSFORMS_NEEDED); updateContext(TableConstants.SYM_TRIGGER_ROUTER_GROUPLET, table, context, CTX_KEY_FLUSH_GROUPLETS_NEEDED, CTX_KEY_RESYNC_NEEDED); - if (matchesTable(table, TableConstants.SYM_PARAMETER) && matchesExternalId(table, data, "external_id") + if (matchesTable(table, TableConstants.SYM_PARAMETER) && matchesDmlEventType(data) && matchesExternalId(table, data, "external_id") && matchesNodeGroupId(table, data, "node_group_id")) { String jobName = JobDefinition.getJobNameFromData(data); if (jobName != null) { @@ -137,6 +137,14 @@ && matchesNodeGroupId(table, data, "node_group_id")) { listener.handleChange(context, table, data); } } + + private boolean matchesDmlEventType(CsvData data) { + boolean ret = false; + if (data.getDataEventType().equals(DataEventType.INSERT) || data.getDataEventType().equals(DataEventType.UPDATE) || data.getDataEventType().equals(DataEventType.DELETE)) { + ret = true; + } + return ret; + } public void contextCommitted(Context context) { if (context.remove(CTX_KEY_FLUSH_CHANNELS_NEEDED) != null) { @@ -344,7 +352,7 @@ private String getColumnValue(Table table, CsvData data, String name) { values = data.getParsedData(CsvData.PK_DATA); } int index = table.getColumnIndex(name); - if (values != null && index < values.length) { + if (index >= 0 && values != null && index < values.length) { return values[index]; } return null;