*** Application.py.ORIG Thu Feb 24 14:27:23 2005 --- Application.py Thu Feb 24 14:32:24 2005 *************** *** 34,39 **** --- 34,40 ---- from Acquisition import aq_base from App.Product import doInstall from App.config import getConfiguration + from ZODB.POSException import ConflictError class Application(Globals.ApplicationDefaultPermissions, ZDOM.Root, Folder.Folder, *************** *** 587,594 **** if done.has_key(product_name): continue done[product_name]=1 ! install_product(app, product_dir, product_name, meta_types, ! folder_permissions, raise_exc=debug_mode) Products.meta_types=Products.meta_types+tuple(meta_types) Globals.default__class_init__(Folder.Folder) --- 588,606 ---- if done.has_key(product_name): continue done[product_name]=1 ! # collector issue 300: handle ConflictErrors during installation ! sys.stderr.write('installing product %s' % product_name) ! try: ! import time; time.sleep(0.1) ! app._p_jar.sync() # DM's suggestion ! install_product(app, product_dir, product_name, meta_types, ! folder_permissions, raise_exc=debug_mode) ! sys.stderr.write('...OK!\n') ! except ConflictError: ! # somehow we should retry it. XXX look at zpublisher ! sys.stderr.write('... BZZT\n') ! raise ! Products.meta_types=Products.meta_types+tuple(meta_types) Globals.default__class_init__(Folder.Folder)