]
Randall Hauch commented on DNA-582:
-----------------------------------
Added a new TransactionalConnectorTest abstract class in the
'org.jboss.dna.graph.connector.test' package that can be subclassed to create a
connector-specific test to verify that a rollback results in no changes to the state.
Then used this for DNA-583 by adding a new InMemoryConnectorTransactionalTest concrete
class to test the InMemory connector.
The connector.execute(...) method is not 'all-or-nothing'
---------------------------------------------------------
Key: DNA-582
URL:
https://jira.jboss.org/jira/browse/DNA-582
Project: DNA
Issue Type: Bug
Components: Connectors, Graph
Affects Versions: 0.7
Reporter: Randall Hauch
Assignee: Randall Hauch
Priority: Blocker
Fix For: 0.7
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).
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: