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 f0fe94bfdb..1052c0b1fc 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 @@ -38,7 +38,9 @@ */ public interface ITriggerRouterService { - public boolean refreshFromDatabase(); + public boolean refreshFromDatabase(); + + public List getActiveTriggerHistoriesFromCache(); public List getActiveTriggerHistories(); 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 33bb29ee96..24b2df47e4 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 @@ -385,14 +385,24 @@ public TriggerHistory getNewestTriggerHistoryForTrigger(String triggerId, String } return null; } + + @SuppressWarnings("unchecked") + @Override + public List getActiveTriggerHistoriesFromCache() { + return new ArrayList(historyMap != null ? historyMap.values() : Collections.EMPTY_LIST); + } /** * Get a list of trigger histories that are currently active */ public List getActiveTriggerHistories() { - return sqlTemplate.query(getSql("allTriggerHistSql", "activeTriggerHistSql"), + List histories = sqlTemplate.query(getSql("allTriggerHistSql", "activeTriggerHistSql"), new TriggerHistoryMapper()); - } + for (TriggerHistory triggerHistory : histories) { + historyMap.put(triggerHistory.getTriggerHistoryId(), triggerHistory); + } + return histories; + } public List getActiveTriggerHistories(String tableName) { return sqlTemplate.query(getSql("allTriggerHistSql", "triggerHistBySourceTableWhereSql"), @@ -893,6 +903,7 @@ public Map> getTriggerRoutersByChannel(String nodeGr public void insert(TriggerHistory newHistRecord) { newHistRecord.setTriggerHistoryId((int)sequenceService.nextVal(Constants.SEQUENCE_TRIGGER_HIST)); + historyMap.put(newHistRecord.getTriggerHistoryId(), newHistRecord); sqlTemplate.update( getSql("insertTriggerHistorySql"), new Object[] { newHistRecord.getTriggerHistoryId(), newHistRecord.getTriggerId(), newHistRecord.getSourceTableName(),