Skip to content

Commit d50610f

Browse files
committed
traces_tests
1 parent 8795fe3 commit d50610f

File tree

9 files changed

+298
-34
lines changed

9 files changed

+298
-34
lines changed

google-cloud-spanner/pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,12 @@
261261
<version>${opentelemetry.version}</version>
262262
<scope>test</scope>
263263
</dependency>
264+
<dependency>
265+
<groupId>io.opentelemetry</groupId>
266+
<artifactId>opentelemetry-sdk-testing</artifactId>
267+
<version>${opentelemetry.version}</version>
268+
<scope>test</scope>
269+
</dependency>
264270
<dependency>
265271
<groupId>io.opentelemetry</groupId>
266272
<artifactId>opentelemetry-sdk-metrics-testing</artifactId>

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,6 @@
8383

8484
/** Implementation of {@link ResultSet}. */
8585
abstract class AbstractResultSet<R> extends AbstractStructReader implements ResultSet {
86-
private static final io.opentelemetry.api.trace.Tracer openTelemetryTracer =
87-
SpannerOptions.getTracer();
8886
private static final Tracer tracer = Tracing.getTracer();
8987
private static final com.google.protobuf.Value NULL_VALUE =
9088
com.google.protobuf.Value.newBuilder().setNullValue(NullValue.NULL_VALUE).build();
@@ -1119,7 +1117,7 @@ protected ResumableStreamIterator(
11191117
this.maxBufferSize = maxBufferSize;
11201118
this.openTelemetrySpan =
11211119
OpenTelemetryTraceUtil.spanBuilderWithExplicitParent(
1122-
openTelemetryTracer, streamName, openTelemetryParent);
1120+
SpannerOptions.getTracer(), streamName, openTelemetryParent);
11231121
this.span = tracer.spanBuilderWithExplicitParent(streamName, parent).startSpan();
11241122
this.streamingRetrySettings = Preconditions.checkNotNull(streamingRetrySettings);
11251123
this.retryableCodes = Preconditions.checkNotNull(retryableCodes);

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

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,8 @@ class DatabaseClientImpl implements DatabaseClient {
3535
private static final String READ_ONLY_TRANSACTION = "CloudSpanner.ReadOnlyTransaction";
3636
private static final String PARTITION_DML_TRANSACTION = "CloudSpanner.PartitionDMLTransaction";
3737
private static final Tracer tracer = Tracing.getTracer();
38-
private static final io.opentelemetry.api.trace.Tracer openTelemetryTracer =
39-
SpannerOptions.getTracer();
4038

39+
private final io.opentelemetry.api.trace.Tracer openTelemetryTracer;
4140
@VisibleForTesting final String clientId;
4241
@VisibleForTesting final SessionPool pool;
4342

@@ -49,6 +48,7 @@ class DatabaseClientImpl implements DatabaseClient {
4948
DatabaseClientImpl(String clientId, SessionPool pool) {
5049
this.clientId = clientId;
5150
this.pool = pool;
51+
this.openTelemetryTracer = SpannerOptions.getTracer();
5252
}
5353

5454
@VisibleForTesting
@@ -78,7 +78,7 @@ public CommitResponse writeWithOptions(
7878
throws SpannerException {
7979
Span span = tracer.spanBuilder(READ_WRITE_TRANSACTION).startSpan();
8080
io.opentelemetry.api.trace.Span openTelemetrySpan =
81-
OpenTelemetryTraceUtil.spanBuilder(openTelemetryTracer, READ_WRITE_TRANSACTION);
81+
OpenTelemetryTraceUtil.spanBuilder(this.openTelemetryTracer, READ_WRITE_TRANSACTION);
8282
try (Scope s = tracer.withSpan(span);
8383
io.opentelemetry.context.Scope ss = openTelemetrySpan.makeCurrent()) {
8484
return runWithSessionRetry(session -> session.writeWithOptions(mutations, options));
@@ -103,7 +103,7 @@ public CommitResponse writeAtLeastOnceWithOptions(
103103
throws SpannerException {
104104
Span span = tracer.spanBuilder(READ_WRITE_TRANSACTION).startSpan();
105105
io.opentelemetry.api.trace.Span openTelemetrySpan =
106-
OpenTelemetryTraceUtil.spanBuilder(openTelemetryTracer, READ_WRITE_TRANSACTION);
106+
OpenTelemetryTraceUtil.spanBuilder(this.openTelemetryTracer, READ_WRITE_TRANSACTION);
107107
try (Scope s = tracer.withSpan(span);
108108
io.opentelemetry.context.Scope ss = openTelemetrySpan.makeCurrent()) {
109109
return runWithSessionRetry(
@@ -122,7 +122,7 @@ public CommitResponse writeAtLeastOnceWithOptions(
122122
public ReadContext singleUse() {
123123
Span span = tracer.spanBuilder(READ_ONLY_TRANSACTION).startSpan();
124124
io.opentelemetry.api.trace.Span openTelemetrySpan =
125-
OpenTelemetryTraceUtil.spanBuilder(openTelemetryTracer, READ_ONLY_TRANSACTION);
125+
OpenTelemetryTraceUtil.spanBuilder(this.openTelemetryTracer, READ_ONLY_TRANSACTION);
126126
try (Scope s = tracer.withSpan(span);
127127
io.opentelemetry.context.Scope ss = openTelemetrySpan.makeCurrent()) {
128128
return getSession().singleUse();
@@ -137,7 +137,7 @@ public ReadContext singleUse() {
137137
public ReadContext singleUse(TimestampBound bound) {
138138
Span span = tracer.spanBuilder(READ_ONLY_TRANSACTION).startSpan();
139139
io.opentelemetry.api.trace.Span openTelemetrySpan =
140-
OpenTelemetryTraceUtil.spanBuilder(openTelemetryTracer, READ_ONLY_TRANSACTION);
140+
OpenTelemetryTraceUtil.spanBuilder(this.openTelemetryTracer, READ_ONLY_TRANSACTION);
141141
try (Scope s = tracer.withSpan(span);
142142
io.opentelemetry.context.Scope ss = openTelemetrySpan.makeCurrent()) {
143143
return getSession().singleUse(bound);
@@ -152,7 +152,7 @@ public ReadContext singleUse(TimestampBound bound) {
152152
public ReadOnlyTransaction singleUseReadOnlyTransaction() {
153153
Span span = tracer.spanBuilder(READ_ONLY_TRANSACTION).startSpan();
154154
io.opentelemetry.api.trace.Span openTelemetrySpan =
155-
OpenTelemetryTraceUtil.spanBuilder(openTelemetryTracer, READ_ONLY_TRANSACTION);
155+
OpenTelemetryTraceUtil.spanBuilder(this.openTelemetryTracer, READ_ONLY_TRANSACTION);
156156
try (Scope s = tracer.withSpan(span);
157157
io.opentelemetry.context.Scope ss = openTelemetrySpan.makeCurrent()) {
158158
return getSession().singleUseReadOnlyTransaction();
@@ -167,7 +167,7 @@ public ReadOnlyTransaction singleUseReadOnlyTransaction() {
167167
public ReadOnlyTransaction singleUseReadOnlyTransaction(TimestampBound bound) {
168168
Span span = tracer.spanBuilder(READ_ONLY_TRANSACTION).startSpan();
169169
io.opentelemetry.api.trace.Span openTelemetrySpan =
170-
OpenTelemetryTraceUtil.spanBuilder(openTelemetryTracer, READ_ONLY_TRANSACTION);
170+
OpenTelemetryTraceUtil.spanBuilder(this.openTelemetryTracer, READ_ONLY_TRANSACTION);
171171
try (Scope s = tracer.withSpan(span);
172172
io.opentelemetry.context.Scope ss = openTelemetrySpan.makeCurrent()) {
173173
return getSession().singleUseReadOnlyTransaction(bound);
@@ -182,7 +182,7 @@ public ReadOnlyTransaction singleUseReadOnlyTransaction(TimestampBound bound) {
182182
public ReadOnlyTransaction readOnlyTransaction() {
183183
Span span = tracer.spanBuilder(READ_ONLY_TRANSACTION).startSpan();
184184
io.opentelemetry.api.trace.Span openTelemetrySpan =
185-
OpenTelemetryTraceUtil.spanBuilder(openTelemetryTracer, READ_ONLY_TRANSACTION);
185+
OpenTelemetryTraceUtil.spanBuilder(this.openTelemetryTracer, READ_ONLY_TRANSACTION);
186186
try (Scope s = tracer.withSpan(span);
187187
io.opentelemetry.context.Scope ss = openTelemetrySpan.makeCurrent()) {
188188
return getSession().readOnlyTransaction();
@@ -197,7 +197,7 @@ public ReadOnlyTransaction readOnlyTransaction() {
197197
public ReadOnlyTransaction readOnlyTransaction(TimestampBound bound) {
198198
Span span = tracer.spanBuilder(READ_ONLY_TRANSACTION).startSpan();
199199
io.opentelemetry.api.trace.Span openTelemetrySpan =
200-
OpenTelemetryTraceUtil.spanBuilder(openTelemetryTracer, READ_ONLY_TRANSACTION);
200+
OpenTelemetryTraceUtil.spanBuilder(this.openTelemetryTracer, READ_ONLY_TRANSACTION);
201201
try (Scope s = tracer.withSpan(span);
202202
io.opentelemetry.context.Scope ss = openTelemetrySpan.makeCurrent()) {
203203
return getSession().readOnlyTransaction(bound);
@@ -212,7 +212,7 @@ public ReadOnlyTransaction readOnlyTransaction(TimestampBound bound) {
212212
public TransactionRunner readWriteTransaction(TransactionOption... options) {
213213
Span span = tracer.spanBuilder(READ_WRITE_TRANSACTION).startSpan();
214214
io.opentelemetry.api.trace.Span openTelemetrySpan =
215-
OpenTelemetryTraceUtil.spanBuilder(openTelemetryTracer, READ_WRITE_TRANSACTION);
215+
OpenTelemetryTraceUtil.spanBuilder(this.openTelemetryTracer, READ_WRITE_TRANSACTION);
216216
try (Scope s = tracer.withSpan(span);
217217
io.opentelemetry.context.Scope ss = openTelemetrySpan.makeCurrent()) {
218218
return getSession().readWriteTransaction(options);
@@ -230,7 +230,7 @@ public TransactionRunner readWriteTransaction(TransactionOption... options) {
230230
public TransactionManager transactionManager(TransactionOption... options) {
231231
Span span = tracer.spanBuilder(READ_WRITE_TRANSACTION).startSpan();
232232
io.opentelemetry.api.trace.Span openTelemetrySpan =
233-
OpenTelemetryTraceUtil.spanBuilder(openTelemetryTracer, READ_WRITE_TRANSACTION);
233+
OpenTelemetryTraceUtil.spanBuilder(this.openTelemetryTracer, READ_WRITE_TRANSACTION);
234234
try (Scope s = tracer.withSpan(span);
235235
io.opentelemetry.context.Scope ss = openTelemetrySpan.makeCurrent()) {
236236
return getSession().transactionManager(options);
@@ -245,7 +245,7 @@ public TransactionManager transactionManager(TransactionOption... options) {
245245
public AsyncRunner runAsync(TransactionOption... options) {
246246
Span span = tracer.spanBuilder(READ_WRITE_TRANSACTION).startSpan();
247247
io.opentelemetry.api.trace.Span openTelemetrySpan =
248-
OpenTelemetryTraceUtil.spanBuilder(openTelemetryTracer, READ_WRITE_TRANSACTION);
248+
OpenTelemetryTraceUtil.spanBuilder(this.openTelemetryTracer, READ_WRITE_TRANSACTION);
249249
try (Scope s = tracer.withSpan(span);
250250
io.opentelemetry.context.Scope ss = openTelemetrySpan.makeCurrent()) {
251251
return getSession().runAsync(options);
@@ -260,7 +260,7 @@ public AsyncRunner runAsync(TransactionOption... options) {
260260
public AsyncTransactionManager transactionManagerAsync(TransactionOption... options) {
261261
Span span = tracer.spanBuilder(READ_WRITE_TRANSACTION).startSpan();
262262
io.opentelemetry.api.trace.Span openTelemetrySpan =
263-
OpenTelemetryTraceUtil.spanBuilder(openTelemetryTracer, READ_WRITE_TRANSACTION);
263+
OpenTelemetryTraceUtil.spanBuilder(this.openTelemetryTracer, READ_WRITE_TRANSACTION);
264264
try (Scope s = tracer.withSpan(span);
265265
io.opentelemetry.context.Scope ss = openTelemetrySpan.makeCurrent()) {
266266
return getSession().transactionManagerAsync(options);
@@ -275,7 +275,7 @@ public AsyncTransactionManager transactionManagerAsync(TransactionOption... opti
275275
public long executePartitionedUpdate(final Statement stmt, final UpdateOption... options) {
276276
Span span = tracer.spanBuilder(PARTITION_DML_TRANSACTION).startSpan();
277277
io.opentelemetry.api.trace.Span openTelemetrySpan =
278-
OpenTelemetryTraceUtil.spanBuilder(openTelemetryTracer, PARTITION_DML_TRANSACTION);
278+
OpenTelemetryTraceUtil.spanBuilder(this.openTelemetryTracer, PARTITION_DML_TRANSACTION);
279279
try (Scope s = tracer.withSpan(span);
280280
io.opentelemetry.context.Scope ss = openTelemetrySpan.makeCurrent()) {
281281
return runWithSessionRetry(session -> session.executePartitionedUpdate(stmt, options));

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

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ private final class BatchCreateSessionsRunnable implements Runnable {
113113
private final long channelHint;
114114
private final int sessionCount;
115115
private final SessionConsumer consumer;
116+
private final io.opentelemetry.api.trace.Tracer openTelemetryTracer;
116117

117118
private BatchCreateSessionsRunnable(
118119
int sessionCount, long channelHint, SessionConsumer consumer) {
@@ -121,6 +122,7 @@ private BatchCreateSessionsRunnable(
121122
this.channelHint = channelHint;
122123
this.sessionCount = sessionCount;
123124
this.consumer = consumer;
125+
this.openTelemetryTracer = SpannerOptions.getTracer();
124126
}
125127

126128
@Override
@@ -130,7 +132,7 @@ public void run() {
130132
Span span = SpannerImpl.tracer.spanBuilder(SpannerImpl.BATCH_CREATE_SESSIONS).startSpan();
131133
io.opentelemetry.api.trace.Span openTelemetrySpan =
132134
OpenTelemetryTraceUtil.spanBuilder(
133-
SpannerImpl.openTelemetryTracer, SpannerImpl.BATCH_CREATE_SESSIONS);
135+
this.openTelemetryTracer, SpannerImpl.BATCH_CREATE_SESSIONS);
134136
try (Scope s = SpannerImpl.tracer.withSpan(span);
135137
io.opentelemetry.context.Scope ss = openTelemetrySpan.makeCurrent()) {
136138
SpannerImpl.tracer
@@ -183,6 +185,7 @@ interface SessionConsumer {
183185
private final ExecutorFactory<ScheduledExecutorService> executorFactory;
184186
private final ScheduledExecutorService executor;
185187
private final DatabaseId db;
188+
private final io.opentelemetry.api.trace.Tracer openTelemetryTracer;
186189

187190
@GuardedBy("this")
188191
private volatile long sessionChannelCounter;
@@ -195,6 +198,7 @@ interface SessionConsumer {
195198
this.db = db;
196199
this.executorFactory = executorFactory;
197200
this.executor = executorFactory.get();
201+
this.openTelemetryTracer = SpannerOptions.getTracer();
198202
}
199203

200204
@Override
@@ -220,8 +224,7 @@ SessionImpl createSession() {
220224
}
221225
Span span = SpannerImpl.tracer.spanBuilder(SpannerImpl.CREATE_SESSION).startSpan();
222226
io.opentelemetry.api.trace.Span openTelemetrySpan =
223-
OpenTelemetryTraceUtil.spanBuilder(
224-
SpannerImpl.openTelemetryTracer, SpannerImpl.CREATE_SESSION);
227+
OpenTelemetryTraceUtil.spanBuilder(this.openTelemetryTracer, SpannerImpl.CREATE_SESSION);
225228
try (Scope s = SpannerImpl.tracer.withSpan(span);
226229
io.opentelemetry.context.Scope ss = openTelemetrySpan.makeCurrent()) {
227230
com.google.spanner.v1.Session session =
@@ -312,7 +315,7 @@ private List<SessionImpl> internalBatchCreateSessions(
312315
io.opentelemetry.api.trace.Span.fromContext(io.opentelemetry.context.Context.current());
313316
io.opentelemetry.api.trace.Span openTelemetrySpan =
314317
OpenTelemetryTraceUtil.spanBuilderWithExplicitParent(
315-
SpannerImpl.openTelemetryTracer,
318+
this.openTelemetryTracer,
316319
SpannerImpl.BATCH_CREATE_SESSIONS_REQUEST,
317320
openTelemetryParentSpan);
318321
OpenTelemetryTraceUtil.addEvent(

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,6 @@
5757
*/
5858
class SessionImpl implements Session {
5959
private static final Tracer tracer = Tracing.getTracer();
60-
private static final io.opentelemetry.api.trace.Tracer openTelemetryTracer =
61-
SpannerOptions.getTracer();
6260

6361
/** Keep track of running transactions on this session per thread. */
6462
static final ThreadLocal<Boolean> hasPendingTransaction = ThreadLocal.withInitial(() -> false);
@@ -98,6 +96,7 @@ interface SessionTransaction {
9896
private SessionTransaction activeTransaction;
9997
ByteString readyTransactionId;
10098
private final Map<SpannerRpc.Option, ?> options;
99+
private final io.opentelemetry.api.trace.Tracer openTelemetryTracer;
101100
private Span currentSpan;
102101
private io.opentelemetry.api.trace.Span openTelemetryCurrentSpan;
103102

@@ -106,6 +105,7 @@ interface SessionTransaction {
106105
this.options = options;
107106
this.name = checkNotNull(name);
108107
this.databaseId = SessionId.of(name).getDatabaseId();
108+
this.openTelemetryTracer = SpannerOptions.getTracer();
109109
}
110110

111111
@Override
@@ -197,7 +197,7 @@ public CommitResponse writeAtLeastOnceWithOptions(
197197
}
198198
Span span = tracer.spanBuilder(SpannerImpl.COMMIT).startSpan();
199199
io.opentelemetry.api.trace.Span openTelemetrySpan =
200-
OpenTelemetryTraceUtil.spanBuilder(openTelemetryTracer, SpannerImpl.COMMIT);
200+
OpenTelemetryTraceUtil.spanBuilder(this.openTelemetryTracer, SpannerImpl.COMMIT);
201201
try (Scope s = tracer.withSpan(span);
202202
io.opentelemetry.context.Scope ss = openTelemetrySpan.makeCurrent()) {
203203
com.google.spanner.v1.CommitResponse response =
@@ -308,7 +308,7 @@ public ApiFuture<Empty> asyncClose() {
308308
public void close() {
309309
Span span = tracer.spanBuilder(SpannerImpl.DELETE_SESSION).startSpan();
310310
io.opentelemetry.api.trace.Span openTelemetrySpan =
311-
OpenTelemetryTraceUtil.spanBuilder(openTelemetryTracer, SpannerImpl.DELETE_SESSION);
311+
OpenTelemetryTraceUtil.spanBuilder(this.openTelemetryTracer, SpannerImpl.DELETE_SESSION);
312312

313313
try (Scope s = tracer.withSpan(span);
314314
io.opentelemetry.context.Scope ss = openTelemetrySpan.makeCurrent()) {
@@ -341,7 +341,7 @@ ApiFuture<ByteString> beginTransactionAsync(Options transactionOptions, boolean
341341
final SettableApiFuture<ByteString> res = SettableApiFuture.create();
342342
final Span span = tracer.spanBuilder(SpannerImpl.BEGIN_TRANSACTION).startSpan();
343343
final io.opentelemetry.api.trace.Span openTelemetrySpan =
344-
OpenTelemetryTraceUtil.spanBuilder(openTelemetryTracer, SpannerImpl.BEGIN_TRANSACTION);
344+
OpenTelemetryTraceUtil.spanBuilder(this.openTelemetryTracer, SpannerImpl.BEGIN_TRANSACTION);
345345
final BeginTransactionRequest request =
346346
BeginTransactionRequest.newBuilder()
347347
.setSession(name)

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,8 +131,6 @@ class SessionPool {
131131

132132
private static final Logger logger = Logger.getLogger(SessionPool.class.getName());
133133
private static final Tracer tracer = Tracing.getTracer();
134-
private static final io.opentelemetry.api.trace.Tracer openTelemetryTracer =
135-
SpannerOptions.getTracer();
136134
static final String WAIT_FOR_SESSION = "SessionPool.WaitForSession";
137135
static final ImmutableSet<ErrorCode> SHOULD_STOP_PREPARE_SESSIONS_ERROR_CODES =
138136
ImmutableSet.of(
@@ -1682,7 +1680,7 @@ public PooledSession get() {
16821680
while (true) {
16831681
Span span = tracer.spanBuilder(WAIT_FOR_SESSION).startSpan();
16841682
io.opentelemetry.api.trace.Span openTelemetrySpan =
1685-
OpenTelemetryTraceUtil.spanBuilder(openTelemetryTracer, WAIT_FOR_SESSION);
1683+
OpenTelemetryTraceUtil.spanBuilder(SpannerOptions.getTracer(), WAIT_FOR_SESSION);
16861684
try (Scope waitScope = tracer.withSpan(span);
16871685
io.opentelemetry.context.Scope ss = openTelemetrySpan.makeCurrent()) {
16881686
PooledSession s = pollUninterruptiblyWithTimeout(currentTimeout);

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@
5858
class SpannerImpl extends BaseService<SpannerOptions> implements Spanner {
5959
private static final Logger logger = Logger.getLogger(SpannerImpl.class.getName());
6060
static final Tracer tracer = Tracing.getTracer();
61-
static final io.opentelemetry.api.trace.Tracer openTelemetryTracer = SpannerOptions.getTracer();
6261

6362
static final String CREATE_SESSION = "CloudSpannerOperation.CreateSession";
6463
static final String BATCH_CREATE_SESSIONS = "CloudSpannerOperation.BatchCreateSessions";

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,6 @@
7373
/** Default implementation of {@link TransactionRunner}. */
7474
class TransactionRunnerImpl implements SessionTransaction, TransactionRunner {
7575
private static final Tracer tracer = Tracing.getTracer();
76-
private static final io.opentelemetry.api.trace.Tracer openTelemetryTracer =
77-
SpannerOptions.getTracer();
7876
private static final Logger txnLogger = Logger.getLogger(TransactionRunner.class.getName());
7977
/**
8078
* (Part of) the error message that is returned by Cloud Spanner if a transaction is cancelled
@@ -407,7 +405,7 @@ public void run() {
407405
tracer.spanBuilderWithExplicitParent(SpannerImpl.COMMIT, span).startSpan();
408406
final io.opentelemetry.api.trace.Span openTelemetryOpSpan =
409407
OpenTelemetryTraceUtil.spanBuilderWithExplicitParent(
410-
openTelemetryTracer, SpannerImpl.COMMIT, openTelemetrySpan);
408+
SpannerOptions.getTracer(), SpannerImpl.COMMIT, openTelemetrySpan);
411409
final ApiFuture<com.google.spanner.v1.CommitResponse> commitFuture =
412410
rpc.commitAsync(commitRequest, session.getOptions());
413411
commitFuture.addListener(

0 commit comments

Comments
 (0)