You need to call tx.success() at the end of the block rather than tx.finish(). The latter is done through the try-with-resources statement. For further details see the JavaDoc of the Transaction class, which explains this nicely with an example.

On 12/31/2013 07:05 PM, M. David Allen wrote:
As I'm updating code for 2.0.0, I'm wrapping a lot of old code that only serves to inspect a graph (not update it) in transactions, using the new idiom:

try ( Transaction tx = myDb.beginTx() ) {
   accessSomeData();
   tx.finish();
}

After the try block finishes, I'm getting exceptions of this form:

org.neo4j.graphdb.TransactionFailureException: Unable to commit transaction at org.neo4j.kernel.TopLevelTransaction.close(TopLevelTransaction.java:134)
    at blah.blah.mycode

Caused by: javax.transaction.RollbackException: Failed to commit, transaction rolled back at org.neo4j.kernel.impl.transaction.TxManager.rollbackCommit(TxManager.java:623) at org.neo4j.kernel.impl.transaction.TxManager.commit(TxManager.java:402) at org.neo4j.kernel.impl.transaction.TransactionImpl.commit(TransactionImpl.java:122) at org.neo4j.kernel.TopLevelTransaction.close(TopLevelTransaction.java:124)
    ... 70 more

What are the various causes of this, and how can I troubleshoot them?

This is all code that ran without any problem on 1.9.3 - so I'm thinking I should look into areas of difference there.

Sometimes this happens when iterating over the results of executing a cypher query from java. Sometimes it happens when I'm using a TraversalDescription I built.

Strangely enough, since these are read-only operations, I can *ignore* the failure exception, and everything seems peachy (the data came back from the graph database just fine). I'm just wondering why they're happening.

Any suggestions or pointers?


--
You received this message because you are subscribed to the Google Groups "Neo4j" group. To unsubscribe from this group and stop receiving emails from it, send an email to neo4j+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

--
You received this message because you are subscribed to the Google Groups 
"Neo4j" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to neo4j+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to