-
Bug
-
Resolution: Done
-
Blocker
-
0.7
-
None
-
Medium
The RepositoryConnector.execute(ExecutionContext,Request) method does not have all-or-nothing behavior. That is, if the request is a CompositeRequest with multiple requests to change the content, and some of those change requests result in errors, the execution should 'rollback' the changes and return the content to the state before the method was called. In other words, either all of the requests are fulfilled, or none of them are.
None of the writable connectors work this way, and they all need to be corrected. Also, this behavior needs to be documented in the connector API. Finally, we need to make sure that the JCR session's transient state is unchanged if a save() call results in an error (the connector's state should rollback, but the session's state should remain, per Section 7.1.1.6-7.1.1.7 of JCR 1.0.1).