In nuxeo, at some time you may have to create and make use a temporary files. We used to delegate these files cleanup to the framework through the call of “Framework.trackFile(file, marker)”. Until
NXP-15315, these files were deleted at the time its associated marker object was garbaged. As this strategy were not predictable, we’ve tried to put in place a new feature around that limit the temporary file tracked to an unit of work.
I’m going to disable that new feature because we still need to solve some problems discovered last days. For those interested with, here is the reasons about.
At this stage, we’re covering the following unit of works :
- the runtime setup
- a web request processing
- a work processing
The first problems we’ve faced was in the runtime setup. In some components, we were tracking temporary files unless the component could manage itself its deletion at runtime tear down. That was the case for the shinding container key and the binary storage cache directory. These cases are fixed and the new feature is just pointing out a misuse of the tracker.
But, last days, we also pointed out a case which cannot be simply solved at this stage. In the seam application, we’re creating at some time temporary files (streaming blobs referenced in the current document and persisted in temporary files), and these files tracking should be aligned to their component’s owner scope.
We should think about having a cleaner API in the framework. The Framework.trackFile(file, marker) should remain as it was, and we will have to introduce a new API for unit of works based tracking feature.