Skip to content

Commit 0a5bb8a

Browse files
Address review comments
1 parent 9903cda commit 0a5bb8a

File tree

1 file changed

+24
-17
lines changed

1 file changed

+24
-17
lines changed

google-cloud-spanner/src/test/java/com/google/cloud/spanner/ITTransactionRetryTest.java

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import static org.junit.Assert.assertTrue;
2222
import static org.junit.Assume.assumeFalse;
2323

24-
import org.junit.Assert;
2524
import org.junit.ClassRule;
2625
import org.junit.Test;
2726
import org.junit.experimental.categories.Category;
@@ -54,23 +53,31 @@ public void TestRetryInfo() {
5453
return null;
5554
});
5655

57-
try (TransactionManager transactionManager1 = databaseClient.transactionManager()) {
58-
try (TransactionManager transactionManager2 = databaseClient.transactionManager()) {
59-
TransactionContext transaction1 = transactionManager1.begin();
60-
TransactionContext transaction2 = transactionManager2.begin();
61-
transaction1.executeUpdate(Statement.of("UPDATE Test SET EMPID = EMPID + 1 WHERE ID = 1"));
62-
transaction2.executeUpdate(Statement.of("UPDATE Test SET EMPID = EMPID + 1 WHERE ID = 1"));
63-
64-
AbortedException abortedException =
65-
Assert.assertThrows(
66-
AbortedException.class,
67-
() -> {
68-
transactionManager1.commit();
69-
transactionManager2.commit();
70-
});
71-
assertThat(abortedException.getErrorCode()).isEqualTo(ErrorCode.ABORTED);
72-
assertTrue(abortedException.getRetryDelayInMillis() > 0);
56+
int numRetries = 10;
57+
boolean isAbortedWithRetryInfo = false;
58+
while(numRetries-- > 0) {
59+
try (TransactionManager transactionManager1 = databaseClient.transactionManager()) {
60+
try (TransactionManager transactionManager2 = databaseClient.transactionManager()) {
61+
try {
62+
TransactionContext transaction1 = transactionManager1.begin();
63+
TransactionContext transaction2 = transactionManager2.begin();
64+
transaction1.executeUpdate(
65+
Statement.of("UPDATE Test SET EMPID = EMPID + 1 WHERE ID = 1"));
66+
transaction2.executeUpdate(
67+
Statement.of("UPDATE Test SET EMPID = EMPID + 1 WHERE ID = 1"));
68+
transactionManager1.commit();
69+
transactionManager2.commit();
70+
} catch (AbortedException abortedException) {
71+
assertThat(abortedException.getErrorCode()).isEqualTo(ErrorCode.ABORTED);
72+
if(abortedException.getRetryDelayInMillis() > 0) {
73+
isAbortedWithRetryInfo = true;
74+
break;
75+
}
76+
}
77+
}
7378
}
7479
}
80+
81+
assertTrue("Transaction is not aborted with the trailers", isAbortedWithRetryInfo);
7582
}
7683
}

0 commit comments

Comments
 (0)