diff --git a/java-spanner/google-cloud-spanner/src/main/java/com/google/cloud/spanner/TransactionRunnerImpl.java b/java-spanner/google-cloud-spanner/src/main/java/com/google/cloud/spanner/TransactionRunnerImpl.java index b2615f240526..55f7197a9220 100644 --- a/java-spanner/google-cloud-spanner/src/main/java/com/google/cloud/spanner/TransactionRunnerImpl.java +++ b/java-spanner/google-cloud-spanner/src/main/java/com/google/cloud/spanner/TransactionRunnerImpl.java @@ -527,8 +527,25 @@ public void run() { return; } if (!proto.hasCommitTimestamp()) { + if (proto.hasPrecommitToken() && retryAttemptDueToCommitProtocolExtension) { + txnLogger.log( + Level.FINE, + "Missing commitTimestamp, response has precommit token " + + "and client has already attempted commit retry"); + span.addAnnotation( + "Missing commitTimestamp, response has precommit token " + + "and client has already attempted commit retry"); + } else if (!proto.hasPrecommitToken()) { + txnLogger.log( + Level.FINE, "Missing commitTimestamp, response has no precommit token"); + span.addAnnotation( + "Missing commitTimestamp, " + "response has no precommit token"); + } throw newSpannerException( - ErrorCode.INTERNAL, "Missing commitTimestamp:\n" + session.getName()); + ErrorCode.INTERNAL, "Missing commitTimestamp:\n" + session.getName() + + "\nHas precommit token: " + proto.hasPrecommitToken() + + "\nAlready attempted commit retry: " + + retryAttemptDueToCommitProtocolExtension); } span.addAnnotation("Commit Done"); opSpan.end();