Hi,

Currently JR FileVault supports 'noIntermediateSaves' property which
indicates that no intermediate save would be performed while a package
is being installed. However it does not appear to work as expected

1. AutoSave Usage
------------------------

For this it uses AutoSave class which commits the change if certain
threshold is reached. If 'noIntermediateSaves' is set then this
threshold is set to Integer.MAX thus effectively disabling
intermediate commits. I see AutoSave being used at two placed in
Importer. One of them is guarded by autoSave.needsSave but other one
is not [1]. Would that be a bug?

2. Sub Packages
-------------------------

Other place where it does not work properly is when  a package
contains sub packages as Vault needs to save details regarding
intermediate packages at various stages which causes any content
changes also getting committed.

I see quite a few calls to Item.save in vault codebase for the path
taken by package installation. It might be possible to use a sub
session to perform internal bookkeeping task by vault and use ther
other session to save the package content and thus avoid intermediate
save.

Chetan Mehrotra
[1] 
https://github.com/apache/jackrabbit-filevault/blob/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/io/Importer.java#L402

Reply via email to