Skip to content

Commit e4d0395

Browse files
committed
arangodb#80 allow commit/rollback if not started yet
1 parent c8adb0b commit e4d0395

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

src/main/java/com/arangodb/springframework/transaction/ArangoTransaction.java

+6-3
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
class ArangoTransaction implements SmartTransactionObject {
1717

1818
private final ArangoDatabase database;
19-
2019
private final Set<String> writeCollections = new HashSet<>();
2120
private TransactionDefinition definition;
2221
private StreamTransactionEntity transaction;
@@ -53,11 +52,15 @@ String getOrBegin(Collection<String> collections) {
5352
}
5453

5554
void commit() {
56-
database.commitStreamTransaction(transaction.getId());
55+
if (transaction != null && transaction.getStatus() == StreamTransactionStatus.running) {
56+
database.commitStreamTransaction(transaction.getId());
57+
}
5758
}
5859

5960
void rollback() {
60-
database.abortStreamTransaction(transaction.getId());
61+
if (transaction != null && transaction.getStatus() == StreamTransactionStatus.running) {
62+
database.abortStreamTransaction(transaction.getId());
63+
}
6164
}
6265

6366
@Override

src/main/java/com/arangodb/springframework/transaction/ArangoTransactionManager.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.arangodb.springframework.transaction;
22

33
import com.arangodb.ArangoDatabase;
4+
import com.arangodb.DbName;
45
import com.arangodb.model.StreamTransactionOptions;
56
import com.arangodb.springframework.core.ArangoOperations;
67
import com.arangodb.springframework.repository.query.QueryTransactionBridge;
@@ -32,7 +33,11 @@ public ArangoTransactionManager(ArangoOperations operations, QueryTransactionBri
3233

3334
@Override
3435
protected Object doGetTransaction() throws TransactionException {
35-
return new ArangoTransaction(operations.driver().db(operations.getDatabaseName()));
36+
DbName database = operations.getDatabaseName();
37+
if (logger.isDebugEnabled()) {
38+
logger.debug("Create new transaction for database " + database);
39+
}
40+
return new ArangoTransaction(operations.driver().db(database));
3641
}
3742

3843
@Override

0 commit comments

Comments
 (0)