Skip to content

Commit

Permalink
0004680: Spaces in sym_trigger fields causes create trigger failure
Browse files Browse the repository at this point in the history
  • Loading branch information
erilong committed Dec 4, 2020
1 parent 45fd76a commit a5ee0d7
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 10 deletions.
Expand Up @@ -505,7 +505,7 @@ protected String replaceTemplateVariables(DataEventType dml, Trigger trigger,
ddl = FormatUtils.replace("channelExpression", symmetricDialect.preProcessTriggerSqlClause(
getChannelExpression(trigger, history, originalTable)), ddl);

ddl = FormatUtils.replace("externalSelect", (trigger.getExternalSelect() == null ? "null"
ddl = FormatUtils.replace("externalSelect", (StringUtils.isBlank(trigger.getExternalSelect()) ? "null"
: "(" + symmetricDialect.preProcessTriggerSqlClause(trigger.getExternalSelect())
+ ")"), ddl);

Expand All @@ -520,18 +520,18 @@ protected String replaceTemplateVariables(DataEventType dml, Trigger trigger,
ddl);

ddl = FormatUtils.replace("custom_before_insert_text",
trigger.getCustomBeforeInsertText()==null ? "" : trigger.getCustomBeforeInsertText(), ddl);
StringUtils.isBlank(trigger.getCustomBeforeInsertText()) ? "" : trigger.getCustomBeforeInsertText(), ddl);
ddl = FormatUtils.replace("custom_before_update_text",
trigger.getCustomBeforeUpdateText()==null ? "" : trigger.getCustomBeforeUpdateText(), ddl);
StringUtils.isBlank(trigger.getCustomBeforeUpdateText()) ? "" : trigger.getCustomBeforeUpdateText(), ddl);
ddl = FormatUtils.replace("custom_before_delete_text",
trigger.getCustomBeforeDeleteText()==null ? "" : trigger.getCustomBeforeDeleteText(), ddl);
StringUtils.isBlank(trigger.getCustomBeforeDeleteText()) ? "" : trigger.getCustomBeforeDeleteText(), ddl);

ddl = FormatUtils.replace("custom_on_insert_text",
trigger.getCustomOnInsertText()==null ? "" : trigger.getCustomOnInsertText(), ddl);
StringUtils.isBlank(trigger.getCustomOnInsertText()) ? "" : trigger.getCustomOnInsertText(), ddl);
ddl = FormatUtils.replace("custom_on_update_text",
trigger.getCustomOnUpdateText()==null ? "" : trigger.getCustomOnUpdateText(), ddl);
StringUtils.isBlank(trigger.getCustomOnUpdateText()) ? "" : trigger.getCustomOnUpdateText(), ddl);
ddl = FormatUtils.replace("custom_on_delete_text",
trigger.getCustomOnDeleteText()==null ? "" : trigger.getCustomOnDeleteText(), ddl);
StringUtils.isBlank(trigger.getCustomOnDeleteText()) ? "" : trigger.getCustomOnDeleteText(), ddl);

ddl = FormatUtils.replace("dataHasChangedCondition", symmetricDialect
.preProcessTriggerSqlClause(symmetricDialect.getDataHasChangedCondition(trigger)),
Expand Down
Expand Up @@ -170,6 +170,14 @@ public void nullOutBlankFields() {
sourceSchemaName = null;
isSourceSchemaWildCarded = false;
}
syncOnInsertCondition = StringUtils.defaultString(StringUtils.trimToNull(syncOnInsertCondition), DEFAULT_CONDITION);
syncOnUpdateCondition = StringUtils.defaultString(StringUtils.trimToNull(syncOnUpdateCondition), DEFAULT_CONDITION);
syncOnDeleteCondition = StringUtils.defaultString(StringUtils.trimToNull(syncOnDeleteCondition), DEFAULT_CONDITION);
externalSelect = StringUtils.trimToNull(externalSelect);
excludedColumnNames = StringUtils.trimToNull(excludedColumnNames);
includedColumnNames = StringUtils.trimToNull(includedColumnNames);
syncKeyNames = StringUtils.trimToNull(syncKeyNames);
channelExpression = StringUtils.trimToNull(channelExpression);
}

public Column[] filterExcludedAndIncludedColumns(Column[] src) {
Expand Down Expand Up @@ -271,7 +279,7 @@ public Column[] orderColumnsForTable(Table table) {

@SuppressWarnings("unchecked")
private List<String> getExcludedColumnNamesAsList() {
if (excludedColumnNames != null && excludedColumnNames.length() > 0) {
if (StringUtils.isNotBlank(excludedColumnNames)) {
StringTokenizer tokenizer = new StringTokenizer(excludedColumnNames, ",");
List<String> columnNames = new ArrayList<String>(tokenizer.countTokens());
while (tokenizer.hasMoreTokens()) {
Expand All @@ -285,7 +293,7 @@ private List<String> getExcludedColumnNamesAsList() {

@SuppressWarnings("unchecked")
private List<String> getIncludedColumnNamesAsList() {
if (includedColumnNames != null && includedColumnNames.length() > 0) {
if (StringUtils.isNotBlank(includedColumnNames)) {
StringTokenizer tokenizer = new StringTokenizer(includedColumnNames, ",");
List<String> columnNames = new ArrayList<String>(tokenizer.countTokens());
while (tokenizer.hasMoreTokens()) {
Expand Down Expand Up @@ -637,7 +645,7 @@ public void setStreamRow(boolean streamRow) {

@SuppressWarnings("unchecked")
private List<String> getSyncKeyNamesAsList() {
if (syncKeyNames != null && syncKeyNames.length() > 0) {
if (StringUtils.isNotBlank(syncKeyNames)) {
StringTokenizer tokenizer = new StringTokenizer(syncKeyNames, ",");
List<String> columnNames = new ArrayList<String>(tokenizer.countTokens());
while (tokenizer.hasMoreTokens()) {
Expand Down

0 comments on commit a5ee0d7

Please sign in to comment.