• Nicolas Wavrant's avatar
    erp5_trade: move the composition cache in BusinessProcess.py · e5587493
    Nicolas Wavrant authored
    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
    e5587493
composition.py 10.8 KB