From 34a14b980481e3dfe36626c7955d36dd82da4936 Mon Sep 17 00:00:00 2001 From: Ali Ince Date: Thu, 9 Nov 2017 11:38:52 +0000 Subject: [PATCH] don't fail on ROLLBACK when in AUTO-COMMIT mode --- .../org/neo4j/bolt/v1/runtime/TransactionStateMachine.java | 4 ++-- .../neo4j/bolt/v1/runtime/integration/TransactionIT.java | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/community/bolt/src/main/java/org/neo4j/bolt/v1/runtime/TransactionStateMachine.java b/community/bolt/src/main/java/org/neo4j/bolt/v1/runtime/TransactionStateMachine.java index 2ab31abe3d2e1..0cba27e24bf6a 100644 --- a/community/bolt/src/main/java/org/neo4j/bolt/v1/runtime/TransactionStateMachine.java +++ b/community/bolt/src/main/java/org/neo4j/bolt/v1/runtime/TransactionStateMachine.java @@ -208,8 +208,8 @@ else if ( statement.equalsIgnoreCase( COMMIT ) ) } else if ( statement.equalsIgnoreCase( ROLLBACK ) ) { - throw new QueryExecutionKernelException( - new InvalidSemanticsException( "No current transaction to rollback." ) ); + ctx.currentResult = BoltResult.EMPTY; + return AUTO_COMMIT; } else { diff --git a/community/bolt/src/test/java/org/neo4j/bolt/v1/runtime/integration/TransactionIT.java b/community/bolt/src/test/java/org/neo4j/bolt/v1/runtime/integration/TransactionIT.java index c8078a78180f3..5dfb395804066 100644 --- a/community/bolt/src/test/java/org/neo4j/bolt/v1/runtime/integration/TransactionIT.java +++ b/community/bolt/src/test/java/org/neo4j/bolt/v1/runtime/integration/TransactionIT.java @@ -121,7 +121,7 @@ public void shouldHandleBeginRollback() throws Throwable } @Test - public void shouldFailNicelyWhenOutOfOrderRollback() throws Throwable + public void shouldNotFailWhenOutOfOrderRollbackInAutoCommitMode() throws Throwable { // Given BoltResponseRecorder runRecorder = new BoltResponseRecorder(); @@ -134,8 +134,8 @@ public void shouldFailNicelyWhenOutOfOrderRollback() throws Throwable machine.pullAll( pullAllRecorder ); // Then - assertThat( runRecorder.nextResponse(), failedWithStatus( Status.Statement.SemanticError ) ); - assertThat( pullAllRecorder.nextResponse(), wasIgnored() ); + assertThat( runRecorder.nextResponse(), succeeded() ); + assertThat( pullAllRecorder.nextResponse(), succeeded() ); } @Test