Skip to content

Commit d9e3d9b

Browse files
test
1 parent 19278d5 commit d9e3d9b

File tree

1 file changed

+31
-3
lines changed

1 file changed

+31
-3
lines changed

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

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
import com.google.spanner.v1.ListSessionsRequest;
5656
import com.google.spanner.v1.ListSessionsResponse;
5757
import com.google.spanner.v1.MultiplexedSessionPrecommitToken;
58+
import com.google.spanner.v1.Mutation;
5859
import com.google.spanner.v1.PartialResultSet;
5960
import com.google.spanner.v1.Partition;
6061
import com.google.spanner.v1.PartitionOptions;
@@ -645,14 +646,16 @@ private String generateSessionName(String database) {
645646
return String.format("%s/sessions/%s", database, UUID.randomUUID().toString());
646647
}
647648

648-
private ByteString generateTransactionName(String session) {
649+
private ByteString generateTransactionName(String session, String mutationString) {
649650
AtomicLong counter = transactionCounters.get(session);
650651
if (counter == null) {
651652
counter = new AtomicLong();
652653
transactionCounters.put(session, counter);
653654
}
654655
transactionToTrace.put(
655-
session, String.format("%s", Arrays.toString(Thread.currentThread().getStackTrace())));
656+
session,
657+
String.format(
658+
"%s %s", mutationString, Arrays.toString(Thread.currentThread().getStackTrace())));
656659
return ByteString.copyFromUtf8(
657660
String.format("%s/transactions/%d", session, counter.incrementAndGet()));
658661
}
@@ -1909,9 +1912,34 @@ public void beginTransaction(
19091912
}
19101913
}
19111914

1915+
private String getMutationString(Mutation mutation) {
1916+
StringBuilder sb = new StringBuilder();
1917+
try {
1918+
if (mutation.hasInsert()) {
1919+
for (ListValue listValue : mutation.getInsert().getValuesList()) {
1920+
sb.append(listValue.toString());
1921+
}
1922+
}
1923+
if (mutation.hasUpdate()) {
1924+
for (ListValue listValue : mutation.getUpdate().getValuesList()) {
1925+
sb.append(listValue.toString());
1926+
}
1927+
}
1928+
if (mutation.hasReplace()) {
1929+
for (ListValue listValue : mutation.getReplace().getValuesList()) {
1930+
sb.append(listValue.toString());
1931+
}
1932+
}
1933+
} catch (Exception e) {
1934+
sb.append(e.getMessage());
1935+
}
1936+
return sb.toString();
1937+
}
1938+
19121939
private Transaction beginTransaction(
19131940
Session session, TransactionOptions options, com.google.spanner.v1.Mutation mutationKey) {
1914-
ByteString transactionId = generateTransactionName(session.getName());
1941+
ByteString transactionId =
1942+
generateTransactionName(session.getName(), getMutationString(mutationKey));
19151943
Transaction.Builder builder = Transaction.newBuilder().setId(transactionId);
19161944
if (options != null && options.getModeCase() == ModeCase.READ_ONLY) {
19171945
setReadTimestamp(options, builder);

0 commit comments

Comments
 (0)