diff --git a/Server/src/main/java/org/openas2/processor/msgtracking/DbTrackingModule.java b/Server/src/main/java/org/openas2/processor/msgtracking/DbTrackingModule.java index 52c7e85d..d134557d 100644 --- a/Server/src/main/java/org/openas2/processor/msgtracking/DbTrackingModule.java +++ b/Server/src/main/java/org/openas2/processor/msgtracking/DbTrackingModule.java @@ -95,12 +95,13 @@ protected CompositeParameters createParser() { return params; } - protected void persist(Message msg, Map map) { + protected synchronized void persist(Message msg, Map map) { + String msgIdField = FIELDS.MSG_ID; + String msgIdValue = map.get(msgIdField); try (Connection conn = dbHandler.getConnection()) { Statement s = conn.createStatement(); - String msgIdField = FIELDS.MSG_ID; ResultSet rs = s.executeQuery( - "SELECT * FROM " + tableName + " WHERE " + msgIdField + " = '" + map.get(msgIdField) + "'"); + "SELECT * FROM " + tableName + " WHERE " + msgIdField + " = '" + msgIdValue + "'"); ResultSetMetaData meta = rs.getMetaData(); boolean isUpdate = rs.next(); // Record already exists so update if (logger.isTraceEnabled()) { @@ -178,7 +179,6 @@ protected void persist(Message msg, Map map) { + " ::: Data map: " + map); logger.error(msg.getLogMsg(), e); } - } public ArrayList> listMessages() {