diff --git a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/ITriggerRouterService.java b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/ITriggerRouterService.java index 5449250096..79a7d68cd0 100644 --- a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/ITriggerRouterService.java +++ b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/ITriggerRouterService.java @@ -188,6 +188,9 @@ public TriggerHistory getNewestTriggerHistoryForTrigger(String triggerId, String public Map> fillTriggerRoutersByHistIdAndSortHist( String sourceNodeGroupId, String targetNodeGroupId, List triggerHistories); + public Map> fillTriggerRoutersByHistId( + String sourceNodeGroupId, String targetNodeGroupId, List triggerHistories); + public TriggerHistory findTriggerHistoryForGenericSync(); public void clearCache(); 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 3576391da1..963bea31b8 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 @@ -2048,26 +2048,8 @@ public TriggerHistory findTriggerHistoryForGenericSync() { public Map> fillTriggerRoutersByHistIdAndSortHist( String sourceNodeGroupId, String targetNodeGroupId, List triggerHistories) { - List triggerRouters = new ArrayList( - getAllTriggerRoutersForReloadForCurrentNode( - sourceNodeGroupId, targetNodeGroupId)); - - final Map> triggerRoutersByHistoryId = new HashMap>( - triggerHistories.size()); - - for (TriggerHistory triggerHistory : triggerHistories) { - List triggerRoutersForTriggerHistory = new ArrayList(); - triggerRoutersByHistoryId.put(triggerHistory.getTriggerHistoryId(), - triggerRoutersForTriggerHistory); - - String triggerId = triggerHistory.getTriggerId(); - for (TriggerRouter triggerRouter : triggerRouters) { - if (triggerRouter.getTrigger().getTriggerId().equals(triggerId)) { - triggerRoutersForTriggerHistory.add(triggerRouter); - } - } - } - + final Map> triggerRoutersByHistoryId = fillTriggerRoutersByHistId( + sourceNodeGroupId, targetNodeGroupId, triggerHistories); final List sortedTables = getSortedTablesFor(triggerHistories); Comparator comparator = new Comparator() { @@ -2112,6 +2094,32 @@ public int compare(TriggerHistory o1, TriggerHistory o2) { } + public Map> fillTriggerRoutersByHistId( + String sourceNodeGroupId, String targetNodeGroupId, List triggerHistories) { + + List triggerRouters = new ArrayList( + getAllTriggerRoutersForReloadForCurrentNode( + sourceNodeGroupId, targetNodeGroupId)); + + Map> triggerRoutersByHistoryId = new HashMap>( + triggerHistories.size()); + + for (TriggerHistory triggerHistory : triggerHistories) { + List triggerRoutersForTriggerHistory = new ArrayList(); + triggerRoutersByHistoryId.put(triggerHistory.getTriggerHistoryId(), + triggerRoutersForTriggerHistory); + + String triggerId = triggerHistory.getTriggerId(); + for (TriggerRouter triggerRouter : triggerRouters) { + if (triggerRouter.getTrigger().getTriggerId().equals(triggerId)) { + triggerRoutersForTriggerHistory.add(triggerRouter); + } + } + } + + return triggerRoutersByHistoryId; + } + protected List
getSortedTablesFor(List histories) { List
tables = new ArrayList
(histories.size()); for (TriggerHistory triggerHistory : histories) {