erp5_trade: move the composition cache in BusinessProcess.py
Since BusinessProcess.py was moved to portal_components, the cache in mixin/composition.py, which was kept at the level of the zope process, was causing issue when portal_components was reset : the classes kept in __class_cache would not get resetted, and later calls to asComposedDocument would reuse them. In consequence, these classes would kept pointers to objects in the old class BusinessProcess, causing bugs as these objects would have been cleaned by the reset. The first intuition was to remove this cache, unfortunately the reason of this introduction (fixing a memory leak) is still valid nowadays, so I've decided to move this cache within BusinessProcess, as it has the advantage of emptying it whenever portal_components is resetted. For more information of the bug mentionned above, and the trials about removing the cache can be found in the discussion of this MR : nexedi/erp5!1032
Showing
Please register or sign in to comment