From 0613cb819ef46bf375bb68a1eb9139885fb33790 Mon Sep 17 00:00:00 2001 From: chenson42 Date: Tue, 3 Jan 2012 14:45:18 +0000 Subject: [PATCH] SYMMETRICDS-570 --- .../jumpmind/symmetric/service/impl/DataService.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/symmetric/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/DataService.java b/symmetric/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/DataService.java index d5aa23d885..5306f838f1 100644 --- a/symmetric/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/DataService.java +++ b/symmetric/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/DataService.java @@ -622,10 +622,15 @@ public long findMaxDataEventDataId() { return jdbcTemplate.queryForLong(getSql("selectMaxDataEventDataIdSql")); } - public void insertDataGap(DataGap gap) { - jdbcTemplate.update(getSql("insertDataGapSql"), new Object[] { DataGap.Status.GP.name(), - AppUtils.getHostName(), gap.getStartId(), gap.getEndId() }, new int[] { + public void insertDataGap(DataGap gap) { + try { + jdbcTemplate.update(getSql("insertDataGapSql"), new Object[] { DataGap.Status.GP.name(), + AppUtils.getHostName(), gap.getStartId(), gap.getEndId() }, new int[] { Types.VARCHAR, Types.VARCHAR, Types.NUMERIC, Types.NUMERIC }); + } catch (DataIntegrityViolationException ex) { + log.warn("GapAlreadyExisted", gap.getStartId(), gap.getEndId()); + updateDataGap(gap, DataGap.Status.GP); + } } public void updateDataGap(DataGap gap, DataGap.Status status) {