Skip to content

Commit

Permalink
0003130: Guard against case mismatches in trigger id's and router id's
Browse files Browse the repository at this point in the history
when doing table reloads
  • Loading branch information
mmichalek committed May 30, 2017
1 parent 4647873 commit 9bb3123
Showing 1 changed file with 10 additions and 2 deletions.
Expand Up @@ -35,6 +35,7 @@
import java.util.Map;
import java.util.Set;

import org.apache.commons.collections.map.CaseInsensitiveMap;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.NotImplementedException;
import org.apache.commons.lang.StringEscapeUtils;
Expand All @@ -54,6 +55,7 @@
import org.jumpmind.db.sql.mapper.NumberMapper;
import org.jumpmind.exception.IoException;
import org.jumpmind.symmetric.ISymmetricEngine;
import org.jumpmind.symmetric.SymmetricException;
import org.jumpmind.symmetric.common.Constants;
import org.jumpmind.symmetric.common.ParameterConstants;
import org.jumpmind.symmetric.common.TableConstants;
Expand Down Expand Up @@ -526,11 +528,12 @@ public void insertReloadEvents(Node targetNode, boolean reverse, List<TableReloa

}

@SuppressWarnings("unchecked")
protected Map<String, TableReloadRequest> convertReloadListToMap(List<TableReloadRequest> reloadRequests) {
if (reloadRequests == null) {
return null;
}
Map<String, TableReloadRequest> reloadMap = new HashMap<String, TableReloadRequest>();
Map<String, TableReloadRequest> reloadMap = new CaseInsensitiveMap();
for (TableReloadRequest item : reloadRequests) {
reloadMap.put(item.getIdentifier(), item);
}
Expand Down Expand Up @@ -631,7 +634,12 @@ private void insertSqlEventsPriorToReload(Node targetNode, String nodeIdRecord,
List<TriggerRouter> triggerRouters = triggerRoutersByHistoryId.get(triggerHistory
.getTriggerHistoryId());
for (TriggerRouter triggerRouter : triggerRouters) {
TableReloadRequest currentRequest = reloadRequests.get(triggerRouter.getTriggerId() + triggerRouter.getRouterId());
String key = triggerRouter.getTriggerId() + triggerRouter.getRouterId();
TableReloadRequest currentRequest = reloadRequests.get(key);
if (currentRequest == null) {
throw new SymmetricException("Could not locate table reload request for key '" + key +
"'. Available requests are: " + reloadRequests.keySet());
}
beforeSql = currentRequest.getBeforeCustomSql();

if (isNotBlank(beforeSql)) {
Expand Down

0 comments on commit 9bb3123

Please sign in to comment.