Uploaded image for project: 'ModeShape'
  1. ModeShape
  2. MODE-582

The connector.execute(...) method is not 'all-or-nothing'

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Blocker Blocker
    • 0.7
    • 0.7
    • Graph (2.x), Storage
    • 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).

              rhauch Randall Hauch (Inactive)
              rhauch Randall Hauch (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

                Created:
                Updated:
                Resolved: