Skip to content

Commit e128921

Browse files
committed
chore(spanner): make previoustransactionId field final
1 parent 66d258f commit e128921

File tree

5 files changed

+13
-8
lines changed

5 files changed

+13
-8
lines changed

google-cloud-spanner/src/main/java/com/google/cloud/spanner/AsyncTransactionManagerImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ private ApiFuture<TransactionContext> internalBeginAsync(boolean firstAttempt) {
8888
// Use the current transactionId if available, otherwise fallback to the previous aborted
8989
// transactionId.
9090
multiplexedSessionPreviousTransactionId =
91-
txn.transactionId != null ? txn.transactionId : txn.previousTransactionId;
91+
txn.transactionId != null ? txn.transactionId : txn.getPreviousTransactionId();
9292
}
9393

9494
txn =

google-cloud-spanner/src/main/java/com/google/cloud/spanner/TransactionManagerImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ public TransactionContext resetForRetry() {
110110
// Use the current transactionId if available, otherwise fallback to the previous aborted
111111
// transactionId.
112112
multiplexedSessionPreviousTransactionId =
113-
txn.transactionId != null ? txn.transactionId : txn.previousTransactionId;
113+
txn.transactionId != null ? txn.transactionId : txn.getPreviousTransactionId();
114114
}
115115
txn =
116116
session.newTransaction(

google-cloud-spanner/src/main/java/com/google/cloud/spanner/TransactionRunnerImpl.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ public void removeListener(Runnable listener) {
209209

210210
volatile ByteString transactionId;
211211

212-
ByteString previousTransactionId;
212+
final ByteString previousTransactionId;
213213

214214
private CommitResponse commitResponse;
215215
private final Clock clock;
@@ -257,6 +257,10 @@ private void decreaseAsyncOperations() {
257257
}
258258
}
259259

260+
ByteString getPreviousTransactionId() {
261+
return this.previousTransactionId;
262+
}
263+
260264
@Override
261265
public void close() {
262266
// Only mark the context as closed, but do not end the tracer span, as that is done by the
@@ -295,7 +299,7 @@ private void createTxnAsync(final SettableApiFuture<Void> res) {
295299
span.addAnnotation("Creating Transaction");
296300
final ApiFuture<ByteString> fut =
297301
session.beginTransactionAsync(
298-
options, isRouteToLeader(), getTransactionChannelHint(), previousTransactionId);
302+
options, isRouteToLeader(), getTransactionChannelHint(), getPreviousTransactionId());
299303
fut.addListener(
300304
() -> {
301305
try {
@@ -571,7 +575,8 @@ TransactionSelector getTransactionSelector() {
571575
if (tx == null) {
572576
return TransactionSelector.newBuilder()
573577
.setBegin(
574-
SessionImpl.createReadWriteTransactionOptions(options, previousTransactionId))
578+
SessionImpl.createReadWriteTransactionOptions(
579+
options, getPreviousTransactionId()))
575580
.build();
576581
} else {
577582
// Wait for the transaction to come available. The tx.get() call will fail with an
@@ -1138,7 +1143,7 @@ private <T> T runInternal(final TransactionCallable<T> txCallable) {
11381143
// Use the current transactionId if available, otherwise fallback to the previous
11391144
// transactionId.
11401145
multiplexedSessionPreviousTransactionId =
1141-
txn.transactionId != null ? txn.transactionId : txn.previousTransactionId;
1146+
txn.transactionId != null ? txn.transactionId : txn.getPreviousTransactionId();
11421147
}
11431148

11441149
txn =

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ public void testRetryUsesPreviousTransactionIdOnMultiplexedSession() {
9999

100100
// Mock the transaction object to contain transactionID=null and
101101
// previousTransactionId=mockPreviousTransactionId
102-
transaction.previousTransactionId = mockPreviousTransactionId;
102+
when(transaction.getPreviousTransactionId()).thenReturn(mockPreviousTransactionId);
103103
manager.resetForRetryAsync();
104104
// Verify that in the first retry attempt, the `previousTransactionId`
105105
// (mockPreviousTransactionId) is passed to the new transaction.

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,7 @@ public void storePreviousTxnIdOnAbortForMultiplexedSession() {
385385
assertThrows(AbortedException.class, () -> manager.commit());
386386

387387
txn = Mockito.mock(TransactionRunnerImpl.TransactionContextImpl.class);
388-
txn.previousTransactionId = mockTransactionId;
388+
when(txn.getPreviousTransactionId()).thenReturn(mockTransactionId);
389389
when(session.newTransaction(Options.fromTransactionOptions(), mockTransactionId))
390390
.thenReturn(txn);
391391
when(session.getIsMultiplexed()).thenReturn(true);

0 commit comments

Comments
 (0)