From 699108e513ef9f4e3d01f837046f9e7ca1a2b96a Mon Sep 17 00:00:00 2001 From: Andrew Williams Date: Wed, 29 Jun 2011 12:09:33 +0100 Subject: [PATCH] Ignore IntegrityError when we're attempting to save a API doc --- app/eve_proxy/models.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/eve_proxy/models.py b/app/eve_proxy/models.py index 41a7789..4814bbc 100644 --- a/app/eve_proxy/models.py +++ b/app/eve_proxy/models.py @@ -4,7 +4,7 @@ import urllib, urllib2 from hashlib import sha1 from datetime import datetime, timedelta from xml.dom import minidom -from django.db import models +from django.db import models, IntegrityError from django.conf import settings from eve_proxy.exceptions import * @@ -105,7 +105,11 @@ class CachedDocumentManager(models.Manager): # If we have a error in the ignored error list use the cached doc, otherwise return the new doc if not error or not error in ROLLBACK_ERRORS: - doc.save() + try: + doc.save() + except IntegrityError: + # Ignore IntegrityError for this instance, just reload the doc from store + pass doc = self.get(pk=doc.pk) elif error in ROLLBACK_ERRORS and not created: logger.info("API Error %s encountered" % error, extra={'data': {'api-url': url, 'error': error, 'document': doc.body}})