X-Git-Url: https://scm.cri.mines-paristech.fr/git/Portfolio.git/blobdiff_plain/1f94620ca7c2aee5a3ba7aed5c7afc1c763178dc..538c7c6bc43c5670b8688f669c83aba7185d32e7:/manipulation.py?ds=inline diff --git a/manipulation.py b/manipulation.py index 9f65866..dcba20d 100755 --- a/manipulation.py +++ b/manipulation.py @@ -18,6 +18,8 @@ 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 console = logging.getLogger('[manipulation thread]') @@ -50,15 +52,17 @@ 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) 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): @@ -122,6 +126,7 @@ class ImageQueueProcessorThread(threading.Thread) : pass p.tiles_available = 1 + assert p._getCatalogTool() p.reindexObject(idxs=['tiles_available']) transaction.commit()