plone / plone.dexterity

Base framework for building content types, both through-the-web and as filesystem code for Zope (CMF/Plone)
https://pypi.org/project/plone.dexterity
22 stars 25 forks source link

`content.FTIAwareSpecification.__get__` uses the wrong interface declaration type #186

Open d-maurer opened 1 year ago

d-maurer commented 1 year ago

https://github.com/plone/plone.dexterity/blob/aa6bb3597b452b2ea9bae16789e0c436b3c752b2/plone/dexterity/content.py#L196 uses Implements (instead of Provides) for the return value. Implements values are (unlike Provides values) not well designed for caching. This results in the memory leak described in "https://github.com/plone/Products.CMFPlone/issues/3829".

mamico commented 1 year ago

I've opened a draft PR with @d-maurer suggestion, but I think could be a lot of side-effects on code and tests.

In any case, it perfectly solves what I saw here https://github.com/plone/Products.CMFPlone/issues/3829#issuecomment-1676395491