X-Git-Url: https://svn.cri.mines-paristech.fr/git/Portfolio.git/blobdiff_plain/f8014f2a3d768a6366b422d7d08ad3ac75dc0b6b..538c7c6bc43c5670b8688f669c83aba7185d32e7:/manipulation.py

diff --git a/manipulation.py b/manipulation.py
index 43bd086..dcba20d 100755
--- a/manipulation.py
+++ b/manipulation.py
@@ -18,6 +18,7 @@ from types import StringTypes
 from math import ceil
 import transaction
 from ZODB.POSException import ConflictError
+from ZODB.POSException import ConnectionStateError
 from zope.site.hooks import setSite
 from cStringIO import StringIO
 
@@ -57,11 +58,11 @@ class ImageQueueProcessorThread(threading.Thread) :
 			self._process(app)
 		
 		con = app._p_jar
-		con.close()
-		#con.close()
+		try :
+			con.close()
+		except ConnectionStateError, e :
+			console.warn('ConnectionStateError raised before finished.')
 		console.info('process finished.')
-		#print con
-		#print con.transaction_manager
 		
 
 	def stop(self):
@@ -125,11 +126,8 @@ class ImageQueueProcessorThread(threading.Thread) :
 				pass
 			
 			p.tiles_available = 1
-
-			portal = app.unrestrictedTraverse(self.portal_path)
-			ctool = portal.portal_catalog
-			uid = '/'.join(p.getPhysicalPath())
-			ctool.reindexObject(p, idxs=['tiles_available'], uid=uid)
+			assert p._getCatalogTool()
+			p.reindexObject(idxs=['tiles_available'])
 			transaction.commit()
 
 		except ConflictError :