X-Git-Url: https://svn.cri.mines-paristech.fr/git/Portfolio.git/blobdiff_plain/2d47c9c3dc8e8265381e167514626f854a2a6f2b..2f5dd859916d7699e0005dedfabf262ef107143b:/manipulation.py?ds=inline

diff --git a/manipulation.py b/manipulation.py
index a4623ba..ce74a7d 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 zope.site.hooks import setSite
 from cStringIO import StringIO
 
 console = logging.getLogger('[manipulation thread]')
@@ -50,6 +51,8 @@ class ImageQueueProcessorThread(threading.Thread) :
 		#atexit.register(self.stop)
 		import Zope2
 		app = Zope2.app()
+		portal = app.unrestrictedTraverse(self.portal_path)
+		setSite(portal)
 		while not self.__stopped and self.queueSize :
 			self._process(app)
 		
@@ -122,13 +125,14 @@ class ImageQueueProcessorThread(threading.Thread) :
 				pass
 			
 			p.tiles_available = 1
+			assert p._getCatalogTool()
 			p.reindexObject(idxs=['tiles_available'])
 			transaction.commit()
 
 		except ConflictError :
 			console.warn('Resync after ZODB ConflicError')
 			transaction.abort()
-			portal = app.unrestrictedTraverse(portal_path)
+			portal = app.unrestrictedTraverse(self.portal_path)
 			portal._p_jar.sync()
 			self.queueAdd(path)
 			return