There is another point in the doc that is not correct. The doc states
out that you can call tx.success after tx.failure. In this case the
transaction stays at being fault. So one call to tx.failure causes a
rollback when calling tx.finish, also when there are further calls to
tx.success before or after the call to tx.failure. But instead, the call
of tx.success after tx.failure produces an exception which forbids this
case. This is opposite to the statements of the javadoc. I would prefer
the behavior that is described in the doc since it makes transaction
handling easier.

Best regards

Norbert Tausch


Am 20.07.2011 23:23, schrieb cyuczi eekc:
> Does it auto fail? Considering how I see in the examples, it does
> auto-fail... if it doesn't then maybe the doc for tx.finish() should specify
> what happens, or even throw ? if there isn't a specified default.
> Ah, I just read the javadoc for Transaction (interface):
> "
> If an exception is raised in the try-block,
> success()<eclipse-javadoc:%E2%98%82=neo4j-community/kernel%5C/src%5C/main%5C/java%3Corg.neo4j.graphdb%7BTransaction.java%E2%98%83Transaction%E2%98%82%E2%98%82success%E2%98%82>will
> never be invoked and the internal state of the transaction object will
> cause 
> finish()<eclipse-javadoc:%E2%98%82=neo4j-community/kernel%5C/src%5C/main%5C/java%3Corg.neo4j.graphdb%7BTransaction.java%E2%98%83Transaction%E2%98%82%E2%98%82finish%E2%98%82>to
> roll back the transaction. This is very important: unless
> success()<eclipse-javadoc:%E2%98%82=neo4j-community/kernel%5C/src%5C/main%5C/java%3Corg.neo4j.graphdb%7BTransaction.java%E2%98%83Transaction%E2%98%82%E2%98%82success%E2%98%82>is
> invoked, the transaction will fail upon
> finish()<eclipse-javadoc:%E2%98%82=neo4j-community/kernel%5C/src%5C/main%5C/java%3Corg.neo4j.graphdb%7BTransaction.java%E2%98%83Transaction%E2%98%82%E2%98%82finish%E2%98%82>.
> A transaction can be explicitly marked for rollback by invoking the
> failure()<eclipse-javadoc:%E2%98%82=neo4j-community/kernel%5C/src%5C/main%5C/java%3Corg.neo4j.graphdb%7BTransaction.java%E2%98%83Transaction%E2%98%82%E2%98%82failure%E2%98%82>method.
> "
> In this case, could some developer please update the tx.finish() javadoc to
> state that?
> it currently states this:
> "Commits or marks this transaction for rollback, depending on whether
> success()<eclipse-javadoc:%E2%98%82=neo4j-community/kernel%5C/src%5C/main%5C/java%3Corg.neo4j.graphdb%7BTransaction.java%E2%98%83Transaction%7Efinish%E2%98%82%E2%98%82success%E2%98%82>or
> failure()<eclipse-javadoc:%E2%98%82=neo4j-community/kernel%5C/src%5C/main%5C/java%3Corg.neo4j.graphdb%7BTransaction.java%E2%98%83Transaction%7Efinish%E2%98%82%E2%98%82failure%E2%98%82>has
> been previously invoked."
>
> For some reason, this isn't clear to me that it defaults to failure() unless
> success() is invoked
>
>
> Thanks!
> _______________________________________________
> Neo4j mailing list
> [email protected]
> https://lists.neo4j.org/mailman/listinfo/user
_______________________________________________
Neo4j mailing list
[email protected]
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to