private void executeLegacyUpdate(Connection connection, MarshalledEntry entry, String keyStr, int segment) throws InterruptedException, SQLException { String sql = tableManager.getSelectIdRowSql(); if (trace) { log.tracef("Running sql '%s'. Key string is '%s'", sql, keyStr); } PreparedStatement ps = null; try { ps = connection.prepareStatement(sql); ps.setString(1, keyStr); ResultSet rs = ps.executeQuery(); boolean update = rs.next(); if (update) { sql = tableManager.getUpdateRowSql(); } else { sql = tableManager.getInsertRowSql(); } JdbcUtil.safeClose(rs); JdbcUtil.safeClose(ps); if (trace) { log.tracef("Running sql '%s'. Key string is '%s'", sql, keyStr); } ps = connection.prepareStatement(sql); prepareStatement(entry, keyStr, segment, ps, !update); ps.executeUpdate(); } finally { JdbcUtil.safeClose(ps); } }