diff --git a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/TriggerRouterService.java b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/TriggerRouterService.java
index b22be656f3..08217cf19f 100644
--- a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/TriggerRouterService.java
+++ b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/TriggerRouterService.java
@@ -1202,7 +1202,7 @@ protected Set
getTablesForTrigger(Trigger trigger, List triggers
for (Table table : tableArray) {
if (trigger.matches(table, platform.getDefaultCatalog(),
platform.getDefaultSchema(), ignoreCase)
- && !containsExactMatchForSourceTableName(table.getName(), triggers,
+ && !containsExactMatchForSourceTableName(table, triggers,
ignoreCase)
&& !table.getName().toLowerCase().startsWith(tablePrefix)) {
tables.add(table);
@@ -1222,12 +1222,16 @@ protected Set getTablesForTrigger(Trigger trigger, List triggers
return tables;
}
- private boolean containsExactMatchForSourceTableName(String tableName, List triggers,
+ private boolean containsExactMatchForSourceTableName(Table table, List triggers,
boolean ignoreCase) {
for (Trigger trigger : triggers) {
- if (trigger.getSourceTableName().equals(tableName)) {
+ String sourceCatalogName = trigger.getSourceCatalogName() != null ? trigger.getSourceCatalogName() : platform.getDefaultCatalog();
+ String sourceSchemaName = trigger.getSourceSchemaName() != null ? trigger.getSourceSchemaName() : platform.getDefaultSchema();
+ if (trigger.getSourceTableName().equals(table.getName())
+ && sourceCatalogName.equals(table.getCatalog()) && sourceSchemaName.equals(table.getSchema())) {
return true;
- } else if (ignoreCase && trigger.getSourceTableName().equalsIgnoreCase(tableName)) {
+ } else if (ignoreCase && trigger.getSourceTableName().equalsIgnoreCase(table.getName())
+ && sourceCatalogName.equalsIgnoreCase(table.getCatalog()) && sourceSchemaName.equalsIgnoreCase(table.getSchema())) {
return true;
}
}