Skip to content

Conversation

@mehdi0933
Copy link

Description
This PR addresses issue #4262 by adding support for the previous_transaction_id in DatastoreTransactionManager. This allows for better handling of sequential transactions and improves idempotency when interacting with Google Cloud Datastore.

Key Changes:
Dynamic Transaction Options: Updated doBegin to utilize TransactionOptions.Builder, allowing the inclusion of a previousTransactionId if present in the Tx object.

Nullability Compliance: Added @nonnull and @nullable annotations to override methods to satisfy the project's @NonNullApi constraints and resolve IDE warnings.

Code Cleanup:

Removed redundant null checks in doCommit and doRollback to resolve "always true" logic warnings.

Optimized doCleanupAfterCompletion using Java's pattern matching for instanceof.

Unit Testing: Added a new test class DatastoreTransactionManagerTests to verify that the previousTransactionId is correctly propagated to the Datastore client.

Verification Results:
Linter/IDE: 0 problems found in IntelliJ (all nullability and "unused method" warnings resolved).

Tests: testBeginWithPreviousTransactionId passed successfully.
See
also CONTRIBUTING.md
.

@mehdi0933 mehdi0933 requested a review from a team as a code owner January 7, 2026 12:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant