diff --git a/product/CMFActivity/Activity/SQLDict.py b/product/CMFActivity/Activity/SQLDict.py index 881423affc2fd68cc79774a01f663351ec442cdd..dc8e1351770c62cb99a93c89b2e65b87e8522595 100644 --- a/product/CMFActivity/Activity/SQLDict.py +++ b/product/CMFActivity/Activity/SQLDict.py @@ -305,7 +305,7 @@ class SQLDict(RAMDict): break else: get_transaction().abort() - except: + except Exception, exc: # If an exception occurs, abort the transaction to minimize the impact, try: get_transaction().abort() @@ -313,7 +313,7 @@ class SQLDict(RAMDict): # Unfortunately, database adapters may raise an exception against abort. LOG('SQLDict', WARNING, 'abort failed, thus some objects may be modified accidentally') pass - if issubclass(sys.exc_info()[0], ConflictError): + if issubclass(exc, ConflictError): # For a conflict error, simply delay the operations. for uid_list in uid_list_list: if len(uid_list): diff --git a/product/CMFActivity/Activity/SQLQueue.py b/product/CMFActivity/Activity/SQLQueue.py index b7e5238777f61afe9f7e9bcbdf8a747e7304e57d..6bbe52a175d28fb02c8f0d8e6af44d0720580edb 100644 --- a/product/CMFActivity/Activity/SQLQueue.py +++ b/product/CMFActivity/Activity/SQLQueue.py @@ -125,7 +125,7 @@ class SQLQueue(RAMQueue): activity_tool.invoke(m) # Try to invoke the message if m.is_executed: # Make sure message could be invoked get_transaction().commit() # If successful, commit - except: + except Exception, exc: # If an exception occurs, abort the transaction to minimize the impact, try: get_transaction().abort() @@ -134,7 +134,7 @@ class SQLQueue(RAMQueue): LOG('SQLQueue', WARNING, 'abort failed, thus some objects may be modified accidentally') pass - if issubclass(sys.exc_info()[0], ConflictError): + if issubclass(exc, ConflictError): # If a conflict occurs, delay the operation. activity_tool.SQLQueue_setPriority(uid = line.uid, date = next_processing_date, priority = line.priority)