• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

uber / cadence-java-client / 2263

19 Apr 2024 03:59PM UTC coverage: 60.13% (-0.2%) from 60.328%
2263

push

buildkite

web-flow
Update idls (#882)

Implement required methods for new IDL types

0 of 51 new or added lines in 7 files covered. (0.0%)

16 existing lines in 7 files now uncovered.

11456 of 19052 relevant lines covered (60.13%)

0.6 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

53.0
/src/main/java/com/uber/cadence/internal/sync/TestWorkflowEnvironmentInternal.java
1
/*
2
 *  Copyright 2012-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
 *
4
 *  Modifications copyright (C) 2017 Uber Technologies, Inc.
5
 *
6
 *  Licensed under the Apache License, Version 2.0 (the "License"). You may not
7
 *  use this file except in compliance with the License. A copy of the License is
8
 *  located at
9
 *
10
 *  http://aws.amazon.com/apache2.0
11
 *
12
 *  or in the "license" file accompanying this file. This file is distributed on
13
 *  an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
14
 *  express or implied. See the License for the specific language governing
15
 *  permissions and limitations under the License.
16
 */
17

18
package com.uber.cadence.internal.sync;
19

20
import com.uber.cadence.BadRequestError;
21
import com.uber.cadence.ClientVersionNotSupportedError;
22
import com.uber.cadence.ClusterInfo;
23
import com.uber.cadence.CountWorkflowExecutionsRequest;
24
import com.uber.cadence.CountWorkflowExecutionsResponse;
25
import com.uber.cadence.DeprecateDomainRequest;
26
import com.uber.cadence.DescribeDomainRequest;
27
import com.uber.cadence.DescribeDomainResponse;
28
import com.uber.cadence.DescribeTaskListRequest;
29
import com.uber.cadence.DescribeTaskListResponse;
30
import com.uber.cadence.DescribeWorkflowExecutionRequest;
31
import com.uber.cadence.DescribeWorkflowExecutionResponse;
32
import com.uber.cadence.DomainAlreadyExistsError;
33
import com.uber.cadence.DomainNotActiveError;
34
import com.uber.cadence.EntityNotExistsError;
35
import com.uber.cadence.GetSearchAttributesResponse;
36
import com.uber.cadence.GetTaskListsByDomainRequest;
37
import com.uber.cadence.GetTaskListsByDomainResponse;
38
import com.uber.cadence.GetWorkflowExecutionHistoryRequest;
39
import com.uber.cadence.GetWorkflowExecutionHistoryResponse;
40
import com.uber.cadence.InternalServiceError;
41
import com.uber.cadence.LimitExceededError;
42
import com.uber.cadence.ListArchivedWorkflowExecutionsRequest;
43
import com.uber.cadence.ListArchivedWorkflowExecutionsResponse;
44
import com.uber.cadence.ListClosedWorkflowExecutionsRequest;
45
import com.uber.cadence.ListClosedWorkflowExecutionsResponse;
46
import com.uber.cadence.ListDomainsRequest;
47
import com.uber.cadence.ListDomainsResponse;
48
import com.uber.cadence.ListOpenWorkflowExecutionsRequest;
49
import com.uber.cadence.ListOpenWorkflowExecutionsResponse;
50
import com.uber.cadence.ListTaskListPartitionsRequest;
51
import com.uber.cadence.ListTaskListPartitionsResponse;
52
import com.uber.cadence.ListWorkflowExecutionsRequest;
53
import com.uber.cadence.ListWorkflowExecutionsResponse;
54
import com.uber.cadence.PollForActivityTaskRequest;
55
import com.uber.cadence.PollForActivityTaskResponse;
56
import com.uber.cadence.PollForDecisionTaskRequest;
57
import com.uber.cadence.PollForDecisionTaskResponse;
58
import com.uber.cadence.QueryFailedError;
59
import com.uber.cadence.QueryRejectCondition;
60
import com.uber.cadence.QueryWorkflowRequest;
61
import com.uber.cadence.QueryWorkflowResponse;
62
import com.uber.cadence.RecordActivityTaskHeartbeatByIDRequest;
63
import com.uber.cadence.RecordActivityTaskHeartbeatRequest;
64
import com.uber.cadence.RecordActivityTaskHeartbeatResponse;
65
import com.uber.cadence.RefreshWorkflowTasksRequest;
66
import com.uber.cadence.RegisterDomainRequest;
67
import com.uber.cadence.RequestCancelWorkflowExecutionRequest;
68
import com.uber.cadence.ResetStickyTaskListRequest;
69
import com.uber.cadence.ResetStickyTaskListResponse;
70
import com.uber.cadence.ResetWorkflowExecutionRequest;
71
import com.uber.cadence.ResetWorkflowExecutionResponse;
72
import com.uber.cadence.RespondActivityTaskCanceledByIDRequest;
73
import com.uber.cadence.RespondActivityTaskCanceledRequest;
74
import com.uber.cadence.RespondActivityTaskCompletedByIDRequest;
75
import com.uber.cadence.RespondActivityTaskCompletedRequest;
76
import com.uber.cadence.RespondActivityTaskFailedByIDRequest;
77
import com.uber.cadence.RespondActivityTaskFailedRequest;
78
import com.uber.cadence.RespondDecisionTaskCompletedRequest;
79
import com.uber.cadence.RespondDecisionTaskCompletedResponse;
80
import com.uber.cadence.RespondDecisionTaskFailedRequest;
81
import com.uber.cadence.RespondQueryTaskCompletedRequest;
82
import com.uber.cadence.RestartWorkflowExecutionRequest;
83
import com.uber.cadence.RestartWorkflowExecutionResponse;
84
import com.uber.cadence.ServiceBusyError;
85
import com.uber.cadence.SignalWithStartWorkflowExecutionAsyncRequest;
86
import com.uber.cadence.SignalWithStartWorkflowExecutionAsyncResponse;
87
import com.uber.cadence.SignalWithStartWorkflowExecutionRequest;
88
import com.uber.cadence.SignalWorkflowExecutionRequest;
89
import com.uber.cadence.StartWorkflowExecutionAsyncRequest;
90
import com.uber.cadence.StartWorkflowExecutionAsyncResponse;
91
import com.uber.cadence.StartWorkflowExecutionRequest;
92
import com.uber.cadence.StartWorkflowExecutionResponse;
93
import com.uber.cadence.TerminateWorkflowExecutionRequest;
94
import com.uber.cadence.UpdateDomainRequest;
95
import com.uber.cadence.UpdateDomainResponse;
96
import com.uber.cadence.WorkflowExecution;
97
import com.uber.cadence.WorkflowExecutionAlreadyCompletedError;
98
import com.uber.cadence.WorkflowExecutionAlreadyStartedError;
99
import com.uber.cadence.client.ActivityCompletionClient;
100
import com.uber.cadence.client.QueryOptions;
101
import com.uber.cadence.client.WorkflowClient;
102
import com.uber.cadence.client.WorkflowClientInterceptor;
103
import com.uber.cadence.client.WorkflowClientOptions;
104
import com.uber.cadence.client.WorkflowOptions;
105
import com.uber.cadence.client.WorkflowStub;
106
import com.uber.cadence.internal.testservice.TestWorkflowService;
107
import com.uber.cadence.serviceclient.IWorkflowService;
108
import com.uber.cadence.testing.TestEnvironmentOptions;
109
import com.uber.cadence.testing.TestWorkflowEnvironment;
110
import com.uber.cadence.worker.Worker;
111
import com.uber.cadence.worker.WorkerFactory;
112
import com.uber.cadence.worker.WorkerOptions;
113
import java.lang.reflect.Type;
114
import java.time.Duration;
115
import java.util.Optional;
116
import java.util.concurrent.CompletableFuture;
117
import java.util.concurrent.ExecutionException;
118
import java.util.concurrent.TimeUnit;
119
import java.util.concurrent.TimeoutException;
120
import java.util.function.Function;
121
import org.apache.thrift.TException;
122
import org.apache.thrift.async.AsyncMethodCallback;
123

124
public final class TestWorkflowEnvironmentInternal implements TestWorkflowEnvironment {
125

126
  private final TestEnvironmentOptions testEnvironmentOptions;
127
  private final WorkflowServiceWrapper service;
128
  private final WorkerFactory workerFactory;
129

130
  public TestWorkflowEnvironmentInternal(
131
      WorkflowServiceWrapper workflowServiceWrapper, TestEnvironmentOptions options) {
1✔
132
    if (options == null) {
1✔
133
      this.testEnvironmentOptions = new TestEnvironmentOptions.Builder().build();
×
134
    } else {
135
      this.testEnvironmentOptions = options;
1✔
136
    }
137

138
    if (workflowServiceWrapper == null) {
1✔
139
      this.service = new WorkflowServiceWrapper();
1✔
140
    } else {
141
      this.service = workflowServiceWrapper;
1✔
142
    }
143

144
    this.service.lockTimeSkipping("TestWorkflowEnvironmentInternal constructor");
1✔
145
    WorkflowClient client =
1✔
146
        WorkflowClient.newInstance(this.service, testEnvironmentOptions.getWorkflowClientOptions());
1✔
147
    workerFactory =
1✔
148
        WorkerFactory.newInstance(client, testEnvironmentOptions.getWorkerFactoryOptions());
1✔
149
  }
1✔
150

151
  @Override
152
  public Worker newWorker(String taskList) {
153
    return newWorker(taskList, x -> x);
1✔
154
  }
155

156
  @Override
157
  public Worker newWorker(
158
      String taskList, Function<WorkerOptions.Builder, WorkerOptions.Builder> overrideOptions) {
159
    WorkerOptions.Builder builder =
160
        WorkerOptions.newBuilder()
1✔
161
            .setInterceptorFactory(testEnvironmentOptions.getInterceptorFactory());
1✔
162
    builder = overrideOptions.apply(builder);
1✔
163
    return workerFactory.newWorker(taskList, builder.build());
1✔
164
  }
165

166
  @Override
167
  public WorkflowClient newWorkflowClient() {
168
    WorkflowClientOptions options =
169
        WorkflowClientOptions.newBuilder()
1✔
170
            .setDataConverter(testEnvironmentOptions.getDataConverter())
1✔
171
            .setInterceptors(new TimeLockingInterceptor(service))
1✔
172
            .setMetricsScope(testEnvironmentOptions.getWorkflowClientOptions().getMetricsScope())
1✔
173
            .setDomain(testEnvironmentOptions.getWorkflowClientOptions().getDomain())
1✔
174
            .build();
1✔
175
    return WorkflowClientInternal.newInstance(service, options);
1✔
176
  }
177

178
  @Override
179
  public WorkflowClient newWorkflowClient(WorkflowClientOptions options) {
180
    WorkflowClientInterceptor[] existingInterceptors = options.getInterceptors();
1✔
181
    WorkflowClientInterceptor[] interceptors =
1✔
182
        new WorkflowClientInterceptor[existingInterceptors.length + 1];
183
    System.arraycopy(existingInterceptors, 0, interceptors, 0, existingInterceptors.length);
1✔
184
    interceptors[interceptors.length - 1] = new TimeLockingInterceptor(service);
1✔
185
    WorkflowClientOptions newOptions =
1✔
186
        WorkflowClientOptions.newBuilder(options).setInterceptors(interceptors).build();
1✔
187
    return WorkflowClientInternal.newInstance(service, newOptions);
1✔
188
  }
189

190
  @Override
191
  public long currentTimeMillis() {
192
    return service.currentTimeMillis();
1✔
193
  }
194

195
  @Override
196
  public void sleep(Duration duration) {
197
    service.sleep(duration);
1✔
198
  }
1✔
199

200
  @Override
201
  public void registerDelayedCallback(Duration delay, Runnable r) {
202
    service.registerDelayedCallback(delay, r);
1✔
203
  }
1✔
204

205
  @Override
206
  public IWorkflowService getWorkflowService() {
207
    return service;
1✔
208
  }
209

210
  @Override
211
  public String getDomain() {
212
    return testEnvironmentOptions.getWorkflowClientOptions().getDomain();
1✔
213
  }
214

215
  @Override
216
  public String getDiagnostics() {
217
    StringBuilder result = new StringBuilder();
1✔
218
    service.getDiagnostics(result);
1✔
219
    return result.toString();
1✔
220
  }
221

222
  @Override
223
  public void close() {
224
    workerFactory.shutdownNow();
1✔
225
    workerFactory.awaitTermination(10, TimeUnit.SECONDS);
1✔
226
    service.close();
1✔
227
  }
1✔
228

229
  @Override
230
  public void start() {
231
    workerFactory.start();
1✔
232
  }
1✔
233

234
  @Override
235
  public boolean isStarted() {
236
    return workerFactory.isStarted();
×
237
  }
238

239
  @Override
240
  public boolean isShutdown() {
241
    return workerFactory.isShutdown();
×
242
  }
243

244
  @Override
245
  public boolean isTerminated() {
246
    return workerFactory.isTerminated();
×
247
  }
248

249
  @Override
250
  public void shutdown() {
251
    workerFactory.shutdown();
1✔
252
  }
1✔
253

254
  @Override
255
  public void shutdownNow() {
256
    workerFactory.shutdownNow();
1✔
257
  }
1✔
258

259
  @Override
260
  public void awaitTermination(long timeout, TimeUnit unit) {
261
    workerFactory.awaitTermination(timeout, unit);
1✔
262
  }
1✔
263

264
  @Override
265
  public WorkerFactory getWorkerFactory() {
266
    return workerFactory;
1✔
267
  }
268

269
  public static class WorkflowServiceWrapper implements IWorkflowService {
270

271
    private final TestWorkflowService impl;
272

273
    public WorkflowServiceWrapper() {
1✔
274
      impl = new TestWorkflowService();
1✔
275
    }
1✔
276

277
    public long currentTimeMillis() {
278
      return impl.currentTimeMillis();
1✔
279
    }
280

281
    @Override
282
    public RecordActivityTaskHeartbeatResponse RecordActivityTaskHeartbeat(
283
        RecordActivityTaskHeartbeatRequest heartbeatRequest) throws TException {
284
      return impl.RecordActivityTaskHeartbeat(heartbeatRequest);
1✔
285
    }
286

287
    @Override
288
    public RecordActivityTaskHeartbeatResponse RecordActivityTaskHeartbeatByID(
289
        RecordActivityTaskHeartbeatByIDRequest heartbeatRequest) throws TException {
290
      return impl.RecordActivityTaskHeartbeatByID(heartbeatRequest);
×
291
    }
292

293
    @Override
294
    public void RespondActivityTaskCompleted(RespondActivityTaskCompletedRequest completeRequest)
295
        throws TException {
296
      impl.RespondActivityTaskCompleted(completeRequest);
1✔
297
    }
1✔
298

299
    @Override
300
    public void RespondActivityTaskCompletedByID(
301
        RespondActivityTaskCompletedByIDRequest completeRequest) throws TException {
302
      impl.RespondActivityTaskCompletedByID(completeRequest);
1✔
303
    }
1✔
304

305
    @Override
306
    public void RespondActivityTaskFailed(RespondActivityTaskFailedRequest failRequest)
307
        throws TException {
308
      impl.RespondActivityTaskFailed(failRequest);
1✔
309
    }
1✔
310

311
    @Override
312
    public void RespondActivityTaskFailedByID(RespondActivityTaskFailedByIDRequest failRequest)
313
        throws TException {
314
      impl.RespondActivityTaskFailedByID(failRequest);
×
315
    }
×
316

317
    @Override
318
    public void RespondActivityTaskCanceled(RespondActivityTaskCanceledRequest canceledRequest)
319
        throws TException {
320
      impl.RespondActivityTaskCanceled(canceledRequest);
1✔
321
    }
1✔
322

323
    @Override
324
    public void RespondActivityTaskCanceledByID(
325
        RespondActivityTaskCanceledByIDRequest canceledRequest) throws TException {
326
      impl.RespondActivityTaskCanceledByID(canceledRequest);
×
327
    }
×
328

329
    @Override
330
    public void RequestCancelWorkflowExecution(RequestCancelWorkflowExecutionRequest cancelRequest)
331
        throws TException {
332
      impl.RequestCancelWorkflowExecution(cancelRequest);
1✔
333
    }
1✔
334

335
    @Override
336
    public void SignalWorkflowExecution(SignalWorkflowExecutionRequest signalRequest)
337
        throws TException {
338
      impl.SignalWorkflowExecution(signalRequest);
1✔
339
    }
1✔
340

341
    @Override
342
    public StartWorkflowExecutionResponse SignalWithStartWorkflowExecution(
343
        SignalWithStartWorkflowExecutionRequest signalWithStartRequest) throws TException {
344
      return impl.SignalWithStartWorkflowExecution(signalWithStartRequest);
1✔
345
    }
346

347
    @Override
348
    public SignalWithStartWorkflowExecutionAsyncResponse SignalWithStartWorkflowExecutionAsync(
349
        SignalWithStartWorkflowExecutionAsyncRequest signalWithStartRequest)
350
        throws BadRequestError, WorkflowExecutionAlreadyStartedError, ServiceBusyError,
351
            DomainNotActiveError, LimitExceededError, EntityNotExistsError,
352
            ClientVersionNotSupportedError, TException {
NEW
353
      return impl.SignalWithStartWorkflowExecutionAsync(signalWithStartRequest);
×
354
    }
355

356
    @Override
357
    public ResetWorkflowExecutionResponse ResetWorkflowExecution(
358
        ResetWorkflowExecutionRequest resetRequest) throws TException {
359
      return impl.ResetWorkflowExecution(resetRequest);
×
360
    }
361

362
    @Override
363
    public void TerminateWorkflowExecution(TerminateWorkflowExecutionRequest terminateRequest)
364
        throws TException {
365
      impl.TerminateWorkflowExecution(terminateRequest);
×
366
    }
×
367

368
    @Override
369
    public ListOpenWorkflowExecutionsResponse ListOpenWorkflowExecutions(
370
        ListOpenWorkflowExecutionsRequest listRequest) throws TException {
371
      return impl.ListOpenWorkflowExecutions(listRequest);
1✔
372
    }
373

374
    @Override
375
    public ListClosedWorkflowExecutionsResponse ListClosedWorkflowExecutions(
376
        ListClosedWorkflowExecutionsRequest listRequest) throws TException {
377
      return impl.ListClosedWorkflowExecutions(listRequest);
1✔
378
    }
379

380
    @Override
381
    public ListWorkflowExecutionsResponse ListWorkflowExecutions(
382
        ListWorkflowExecutionsRequest listRequest) throws TException {
383
      return impl.ListWorkflowExecutions(listRequest);
×
384
    }
385

386
    @Override
387
    public ListArchivedWorkflowExecutionsResponse ListArchivedWorkflowExecutions(
388
        ListArchivedWorkflowExecutionsRequest listRequest) throws TException {
389
      return impl.ListArchivedWorkflowExecutions(listRequest);
×
390
    }
391

392
    @Override
393
    public ListWorkflowExecutionsResponse ScanWorkflowExecutions(
394
        ListWorkflowExecutionsRequest listRequest) throws TException {
395
      return impl.ScanWorkflowExecutions(listRequest);
×
396
    }
397

398
    @Override
399
    public CountWorkflowExecutionsResponse CountWorkflowExecutions(
400
        CountWorkflowExecutionsRequest countRequest) throws TException {
401
      return impl.CountWorkflowExecutions(countRequest);
×
402
    }
403

404
    @Override
405
    public GetSearchAttributesResponse GetSearchAttributes() throws TException {
406
      return impl.GetSearchAttributes();
×
407
    }
408

409
    @Override
410
    public void RespondQueryTaskCompleted(RespondQueryTaskCompletedRequest completeRequest)
411
        throws TException {
412
      impl.RespondQueryTaskCompleted(completeRequest);
1✔
413
    }
1✔
414

415
    @Override
416
    public ResetStickyTaskListResponse ResetStickyTaskList(ResetStickyTaskListRequest resetRequest)
417
        throws TException {
418
      return impl.ResetStickyTaskList(resetRequest);
×
419
    }
420

421
    @Override
422
    public QueryWorkflowResponse QueryWorkflow(QueryWorkflowRequest queryRequest)
423
        throws BadRequestError, InternalServiceError, EntityNotExistsError, QueryFailedError,
424
            TException {
425
      return impl.QueryWorkflow(queryRequest);
1✔
426
    }
427

428
    @Override
429
    public DescribeWorkflowExecutionResponse DescribeWorkflowExecution(
430
        DescribeWorkflowExecutionRequest describeRequest) throws TException {
431
      return impl.DescribeWorkflowExecution(describeRequest);
×
432
    }
433

434
    @Override
435
    public DescribeTaskListResponse DescribeTaskList(DescribeTaskListRequest request)
436
        throws TException {
437
      return impl.DescribeTaskList(request);
×
438
    }
439

440
    @Override
441
    public ClusterInfo GetClusterInfo() throws InternalServiceError, ServiceBusyError, TException {
442
      return impl.GetClusterInfo();
×
443
    }
444

445
    @Override
446
    public ListTaskListPartitionsResponse ListTaskListPartitions(
447
        ListTaskListPartitionsRequest request) throws TException {
448
      return impl.ListTaskListPartitions(request);
×
449
    }
450

451
    @Override
452
    public void RefreshWorkflowTasks(RefreshWorkflowTasksRequest request)
453
        throws BadRequestError, DomainNotActiveError, ServiceBusyError, EntityNotExistsError,
454
            TException {
455
      impl.RefreshWorkflowTasks(request);
×
456
    }
×
457

458
    @Override
459
    public void RegisterDomain(
460
        RegisterDomainRequest registerRequest, AsyncMethodCallback resultHandler)
461
        throws TException {
462
      impl.RegisterDomain(registerRequest, resultHandler);
×
463
    }
×
464

465
    @Override
466
    public void DescribeDomain(
467
        DescribeDomainRequest describeRequest, AsyncMethodCallback resultHandler)
468
        throws TException {
469
      impl.DescribeDomain(describeRequest, resultHandler);
×
470
    }
×
471

472
    @Override
473
    public void ListDomains(ListDomainsRequest listRequest, AsyncMethodCallback resultHandler)
474
        throws TException {
475
      impl.ListDomains(listRequest, resultHandler);
×
476
    }
×
477

478
    @Override
479
    public void UpdateDomain(UpdateDomainRequest updateRequest, AsyncMethodCallback resultHandler)
480
        throws TException {
481
      impl.UpdateDomain(updateRequest, resultHandler);
×
482
    }
×
483

484
    @Override
485
    public void DeprecateDomain(
486
        DeprecateDomainRequest deprecateRequest, AsyncMethodCallback resultHandler)
487
        throws TException {
488
      impl.DeprecateDomain(deprecateRequest, resultHandler);
×
489
    }
×
490

491
    @Override
492
    public void RestartWorkflowExecution(
493
        RestartWorkflowExecutionRequest restartRequest, AsyncMethodCallback resultHandler)
494
        throws TException {
NEW
495
      impl.RestartWorkflowExecution(restartRequest);
×
NEW
496
    }
×
497

498
    @Override
499
    public void GetTaskListsByDomain(
500
        GetTaskListsByDomainRequest request, AsyncMethodCallback resultHandler)
501
        throws org.apache.thrift.TException {
502
      impl.GetTaskListsByDomain(request, resultHandler);
×
503
    }
×
504

505
    @Override
506
    public void StartWorkflowExecution(
507
        StartWorkflowExecutionRequest startRequest, AsyncMethodCallback resultHandler)
508
        throws TException {
509
      impl.StartWorkflowExecution(startRequest, resultHandler);
×
510
    }
×
511

512
    @Override
513
    public void StartWorkflowExecutionAsync(
514
        StartWorkflowExecutionAsyncRequest startRequest, AsyncMethodCallback resultHandler)
515
        throws TException {
NEW
516
      impl.StartWorkflowExecutionAsync(startRequest, resultHandler);
×
NEW
517
    }
×
518

519
    @Override
520
    public void StartWorkflowExecutionWithTimeout(
521
        StartWorkflowExecutionRequest startRequest,
522
        AsyncMethodCallback resultHandler,
523
        Long timeoutInMillis)
524
        throws TException {
525
      impl.StartWorkflowExecutionWithTimeout(startRequest, resultHandler, timeoutInMillis);
1✔
526
    }
1✔
527

528
    @Override
529
    public void GetWorkflowExecutionHistory(
530
        GetWorkflowExecutionHistoryRequest getRequest, AsyncMethodCallback resultHandler)
531
        throws TException {
532
      impl.GetWorkflowExecutionHistory(getRequest, resultHandler);
×
533
    }
×
534

535
    @Override
536
    public void GetWorkflowExecutionHistoryWithTimeout(
537
        GetWorkflowExecutionHistoryRequest getRequest,
538
        AsyncMethodCallback resultHandler,
539
        Long timeoutInMillis)
540
        throws TException {
541
      impl.GetWorkflowExecutionHistoryWithTimeout(getRequest, resultHandler, timeoutInMillis);
1✔
542
    }
1✔
543

544
    @Override
545
    public CompletableFuture<Boolean> isHealthy() {
546
      return impl.isHealthy();
×
547
    }
548

549
    @Override
550
    public void PollForDecisionTask(
551
        PollForDecisionTaskRequest pollRequest, AsyncMethodCallback resultHandler)
552
        throws TException {
553
      impl.PollForDecisionTask(pollRequest, resultHandler);
×
554
    }
×
555

556
    @Override
557
    public void RespondDecisionTaskCompleted(
558
        RespondDecisionTaskCompletedRequest completeRequest, AsyncMethodCallback resultHandler)
559
        throws TException {
560
      impl.RespondDecisionTaskCompleted(completeRequest, resultHandler);
×
561
    }
×
562

563
    @Override
564
    public void RespondDecisionTaskFailed(
565
        RespondDecisionTaskFailedRequest failedRequest, AsyncMethodCallback resultHandler)
566
        throws TException {
567
      impl.RespondDecisionTaskFailed(failedRequest, resultHandler);
×
568
    }
×
569

570
    @Override
571
    public void PollForActivityTask(
572
        PollForActivityTaskRequest pollRequest, AsyncMethodCallback resultHandler)
573
        throws TException {
574
      impl.PollForActivityTask(pollRequest, resultHandler);
×
575
    }
×
576

577
    @Override
578
    public void RecordActivityTaskHeartbeat(
579
        RecordActivityTaskHeartbeatRequest heartbeatRequest, AsyncMethodCallback resultHandler)
580
        throws TException {
581
      impl.RecordActivityTaskHeartbeat(heartbeatRequest, resultHandler);
×
582
    }
×
583

584
    @Override
585
    public void RecordActivityTaskHeartbeatByID(
586
        RecordActivityTaskHeartbeatByIDRequest heartbeatRequest, AsyncMethodCallback resultHandler)
587
        throws TException {
588
      impl.RecordActivityTaskHeartbeatByID(heartbeatRequest, resultHandler);
×
589
    }
×
590

591
    @Override
592
    public void RespondActivityTaskCompleted(
593
        RespondActivityTaskCompletedRequest completeRequest, AsyncMethodCallback resultHandler)
594
        throws TException {
595
      impl.RespondActivityTaskCompleted(completeRequest, resultHandler);
×
596
    }
×
597

598
    @Override
599
    public void RespondActivityTaskCompletedByID(
600
        RespondActivityTaskCompletedByIDRequest completeRequest, AsyncMethodCallback resultHandler)
601
        throws TException {
602
      impl.RespondActivityTaskCompletedByID(completeRequest, resultHandler);
×
603
    }
×
604

605
    @Override
606
    public void RespondActivityTaskFailed(
607
        RespondActivityTaskFailedRequest failRequest, AsyncMethodCallback resultHandler)
608
        throws TException {
609
      impl.RespondActivityTaskFailed(failRequest, resultHandler);
×
610
    }
×
611

612
    @Override
613
    public void RespondActivityTaskFailedByID(
614
        RespondActivityTaskFailedByIDRequest failRequest, AsyncMethodCallback resultHandler)
615
        throws TException {
616
      impl.RespondActivityTaskFailedByID(failRequest, resultHandler);
×
617
    }
×
618

619
    @Override
620
    public void RespondActivityTaskCanceled(
621
        RespondActivityTaskCanceledRequest canceledRequest, AsyncMethodCallback resultHandler)
622
        throws TException {
623
      impl.RespondActivityTaskCanceled(canceledRequest, resultHandler);
×
624
    }
×
625

626
    @Override
627
    public void RespondActivityTaskCanceledByID(
628
        RespondActivityTaskCanceledByIDRequest canceledRequest, AsyncMethodCallback resultHandler)
629
        throws TException {
630
      impl.RespondActivityTaskCanceledByID(canceledRequest, resultHandler);
×
631
    }
×
632

633
    @Override
634
    public void RequestCancelWorkflowExecution(
635
        RequestCancelWorkflowExecutionRequest cancelRequest, AsyncMethodCallback resultHandler)
636
        throws TException {
637
      impl.RequestCancelWorkflowExecution(cancelRequest, resultHandler);
×
638
    }
×
639

640
    @Override
641
    public void SignalWorkflowExecution(
642
        SignalWorkflowExecutionRequest signalRequest, AsyncMethodCallback resultHandler)
643
        throws TException {
644
      impl.SignalWorkflowExecution(signalRequest, resultHandler);
1✔
645
    }
1✔
646

647
    @Override
648
    public void SignalWorkflowExecutionWithTimeout(
649
        SignalWorkflowExecutionRequest signalRequest,
650
        AsyncMethodCallback resultHandler,
651
        Long timeoutInMillis)
652
        throws TException {
653
      impl.SignalWorkflowExecutionWithTimeout(signalRequest, resultHandler, timeoutInMillis);
×
654
    }
×
655

656
    @Override
657
    public void SignalWithStartWorkflowExecution(
658
        SignalWithStartWorkflowExecutionRequest signalWithStartRequest,
659
        AsyncMethodCallback resultHandler)
660
        throws TException {
661
      impl.SignalWithStartWorkflowExecution(signalWithStartRequest, resultHandler);
×
662
    }
×
663

664
    @Override
665
    public void SignalWithStartWorkflowExecutionAsync(
666
        SignalWithStartWorkflowExecutionAsyncRequest signalWithStartRequest,
667
        AsyncMethodCallback resultHandler)
668
        throws TException {
NEW
669
      impl.SignalWithStartWorkflowExecutionAsync(signalWithStartRequest, resultHandler);
×
NEW
670
    }
×
671

672
    @Override
673
    public void ResetWorkflowExecution(
674
        ResetWorkflowExecutionRequest resetRequest, AsyncMethodCallback resultHandler)
675
        throws TException {
676
      impl.ResetWorkflowExecution(resetRequest, resultHandler);
×
677
    }
×
678

679
    @Override
680
    public void TerminateWorkflowExecution(
681
        TerminateWorkflowExecutionRequest terminateRequest, AsyncMethodCallback resultHandler)
682
        throws TException {
683
      impl.TerminateWorkflowExecution(terminateRequest, resultHandler);
×
684
    }
×
685

686
    @Override
687
    public void ListOpenWorkflowExecutions(
688
        ListOpenWorkflowExecutionsRequest listRequest, AsyncMethodCallback resultHandler)
689
        throws TException {
690
      impl.ListOpenWorkflowExecutions(listRequest, resultHandler);
×
691
    }
×
692

693
    @Override
694
    public void ListClosedWorkflowExecutions(
695
        ListClosedWorkflowExecutionsRequest listRequest, AsyncMethodCallback resultHandler)
696
        throws TException {
697
      impl.ListClosedWorkflowExecutions(listRequest, resultHandler);
×
698
    }
×
699

700
    @Override
701
    public void ListWorkflowExecutions(
702
        ListWorkflowExecutionsRequest listRequest, AsyncMethodCallback resultHandler)
703
        throws TException {
704
      impl.ListWorkflowExecutions(listRequest, resultHandler);
×
705
    }
×
706

707
    @Override
708
    public void ListArchivedWorkflowExecutions(
709
        ListArchivedWorkflowExecutionsRequest listRequest, AsyncMethodCallback resultHandler)
710
        throws TException {
711
      impl.ListArchivedWorkflowExecutions(listRequest, resultHandler);
×
712
    }
×
713

714
    @Override
715
    public void ScanWorkflowExecutions(
716
        ListWorkflowExecutionsRequest listRequest, AsyncMethodCallback resultHandler)
717
        throws TException {
718
      impl.ScanWorkflowExecutions(listRequest, resultHandler);
×
719
    }
×
720

721
    @Override
722
    public void CountWorkflowExecutions(
723
        CountWorkflowExecutionsRequest countRequest, AsyncMethodCallback resultHandler)
724
        throws TException {
725
      impl.CountWorkflowExecutions(countRequest, resultHandler);
×
726
    }
×
727

728
    @Override
729
    public void GetSearchAttributes(AsyncMethodCallback resultHandler) throws TException {
730
      impl.GetSearchAttributes();
×
731
    }
×
732

733
    @Override
734
    public void RespondQueryTaskCompleted(
735
        RespondQueryTaskCompletedRequest completeRequest, AsyncMethodCallback resultHandler)
736
        throws TException {
737
      impl.RespondQueryTaskCompleted(completeRequest, resultHandler);
×
738
    }
×
739

740
    @Override
741
    public void ResetStickyTaskList(
742
        ResetStickyTaskListRequest resetRequest, AsyncMethodCallback resultHandler)
743
        throws TException {
744
      impl.ResetStickyTaskList(resetRequest, resultHandler);
×
745
    }
×
746

747
    @Override
748
    public void QueryWorkflow(QueryWorkflowRequest queryRequest, AsyncMethodCallback resultHandler)
749
        throws TException {
750
      impl.QueryWorkflow(queryRequest, resultHandler);
×
751
    }
×
752

753
    @Override
754
    public void DescribeWorkflowExecution(
755
        DescribeWorkflowExecutionRequest describeRequest, AsyncMethodCallback resultHandler)
756
        throws TException {
757
      impl.DescribeWorkflowExecution(describeRequest, resultHandler);
×
758
    }
×
759

760
    @Override
761
    public void DescribeTaskList(DescribeTaskListRequest request, AsyncMethodCallback resultHandler)
762
        throws TException {
763
      impl.DescribeTaskList(request, resultHandler);
×
764
    }
×
765

766
    @Override
767
    public void GetClusterInfo(AsyncMethodCallback resultHandler) throws TException {}
×
768

769
    @Override
770
    public void ListTaskListPartitions(
771
        ListTaskListPartitionsRequest request, AsyncMethodCallback resultHandler)
772
        throws TException {}
×
773

774
    @Override
775
    public void RefreshWorkflowTasks(
776
        RefreshWorkflowTasksRequest request, AsyncMethodCallback resultHandler) throws TException {}
×
777

778
    @Override
779
    public void RegisterDomain(RegisterDomainRequest registerRequest)
780
        throws BadRequestError, InternalServiceError, DomainAlreadyExistsError, TException {
781
      impl.RegisterDomain(registerRequest);
×
782
    }
×
783

784
    @Override
785
    public DescribeDomainResponse DescribeDomain(DescribeDomainRequest describeRequest)
786
        throws BadRequestError, InternalServiceError, EntityNotExistsError, TException {
787
      return impl.DescribeDomain(describeRequest);
×
788
    }
789

790
    @Override
791
    public ListDomainsResponse ListDomains(ListDomainsRequest listRequest)
792
        throws BadRequestError, InternalServiceError, EntityNotExistsError, ServiceBusyError,
793
            TException {
794
      return impl.ListDomains(listRequest);
×
795
    }
796

797
    @Override
798
    public UpdateDomainResponse UpdateDomain(UpdateDomainRequest updateRequest)
799
        throws BadRequestError, InternalServiceError, EntityNotExistsError, TException {
800
      return impl.UpdateDomain(updateRequest);
×
801
    }
802

803
    @Override
804
    public void DeprecateDomain(DeprecateDomainRequest deprecateRequest)
805
        throws BadRequestError, InternalServiceError, EntityNotExistsError, TException {
806
      impl.DeprecateDomain(deprecateRequest);
×
807
    }
×
808

809
    @Override
810
    public RestartWorkflowExecutionResponse RestartWorkflowExecution(
811
        RestartWorkflowExecutionRequest restartRequest)
812
        throws BadRequestError, ServiceBusyError, DomainNotActiveError, LimitExceededError,
813
            EntityNotExistsError, ClientVersionNotSupportedError, TException {
NEW
814
      return impl.RestartWorkflowExecution(restartRequest);
×
815
    }
816

817
    @Override
818
    public GetTaskListsByDomainResponse GetTaskListsByDomain(GetTaskListsByDomainRequest request)
819
        throws BadRequestError, EntityNotExistsError, LimitExceededError, ServiceBusyError,
820
            ClientVersionNotSupportedError, TException {
821
      return impl.GetTaskListsByDomain(request);
×
822
    }
823

824
    @Override
825
    public StartWorkflowExecutionResponse StartWorkflowExecution(
826
        StartWorkflowExecutionRequest startRequest)
827
        throws BadRequestError, InternalServiceError, WorkflowExecutionAlreadyStartedError,
828
            ServiceBusyError, TException {
829
      return impl.StartWorkflowExecution(startRequest);
1✔
830
    }
831

832
    @Override
833
    public StartWorkflowExecutionAsyncResponse StartWorkflowExecutionAsync(
834
        StartWorkflowExecutionAsyncRequest startRequest)
835
        throws BadRequestError, WorkflowExecutionAlreadyStartedError, ServiceBusyError,
836
            DomainNotActiveError, LimitExceededError, EntityNotExistsError,
837
            ClientVersionNotSupportedError, TException {
NEW
838
      return impl.StartWorkflowExecutionAsync(startRequest);
×
839
    }
840

841
    @Override
842
    public GetWorkflowExecutionHistoryResponse GetWorkflowExecutionHistory(
843
        GetWorkflowExecutionHistoryRequest getRequest)
844
        throws BadRequestError, InternalServiceError, EntityNotExistsError, ServiceBusyError,
845
            TException {
846
      return impl.GetWorkflowExecutionHistory(getRequest);
1✔
847
    }
848

849
    @Override
850
    public GetWorkflowExecutionHistoryResponse GetWorkflowExecutionHistoryWithTimeout(
851
        GetWorkflowExecutionHistoryRequest getRequest, Long timeoutInMillis)
852
        throws BadRequestError, InternalServiceError, EntityNotExistsError, ServiceBusyError,
853
            TException {
854
      return impl.GetWorkflowExecutionHistoryWithTimeout(getRequest, timeoutInMillis);
1✔
855
    }
856

857
    @Override
858
    public PollForDecisionTaskResponse PollForDecisionTask(PollForDecisionTaskRequest pollRequest)
859
        throws BadRequestError, InternalServiceError, ServiceBusyError, TException {
860
      return impl.PollForDecisionTask(pollRequest);
1✔
861
    }
862

863
    @Override
864
    public RespondDecisionTaskCompletedResponse RespondDecisionTaskCompleted(
865
        RespondDecisionTaskCompletedRequest completeRequest)
866
        throws BadRequestError, InternalServiceError, EntityNotExistsError,
867
            WorkflowExecutionAlreadyCompletedError, TException {
868
      return impl.RespondDecisionTaskCompleted(completeRequest);
1✔
869
    }
870

871
    @Override
872
    public void RespondDecisionTaskFailed(RespondDecisionTaskFailedRequest failedRequest)
873
        throws BadRequestError, InternalServiceError, EntityNotExistsError,
874
            WorkflowExecutionAlreadyCompletedError, TException {
875
      impl.RespondDecisionTaskFailed(failedRequest);
1✔
876
    }
1✔
877

878
    @Override
879
    public PollForActivityTaskResponse PollForActivityTask(PollForActivityTaskRequest pollRequest)
880
        throws BadRequestError, InternalServiceError, ServiceBusyError, TException {
881
      return impl.PollForActivityTask(pollRequest);
1✔
882
    }
883

884
    public void getDiagnostics(StringBuilder result) {
885
      impl.getDiagnostics(result);
1✔
886
    }
1✔
887

888
    @Override
889
    public void close() {
890
      impl.close();
1✔
891
    }
1✔
892

893
    public void registerDelayedCallback(Duration delay, Runnable r) {
894
      impl.registerDelayedCallback(delay, r);
1✔
895
    }
1✔
896

897
    public void lockTimeSkipping(String caller) {
898
      impl.lockTimeSkipping(caller);
1✔
899
    }
1✔
900

901
    public void unlockTimeSkipping(String caller) {
902
      impl.unlockTimeSkipping(caller);
1✔
903
    }
1✔
904

905
    public void sleep(Duration duration) {
906
      impl.sleep(duration);
1✔
907
    }
1✔
908
  }
909

910
  private static class TimeLockingInterceptor implements WorkflowClientInterceptor {
911

912
    private final WorkflowServiceWrapper service;
913

914
    TimeLockingInterceptor(WorkflowServiceWrapper service) {
1✔
915
      this.service = service;
1✔
916
    }
1✔
917

918
    @Override
919
    public WorkflowStub newUntypedWorkflowStub(
920
        String workflowType, WorkflowOptions options, WorkflowStub next) {
921
      return new TimeLockingWorkflowStub(service, next);
1✔
922
    }
923

924
    @Override
925
    public WorkflowStub newUntypedWorkflowStub(
926
        WorkflowExecution execution, Optional<String> workflowType, WorkflowStub next) {
927
      return new TimeLockingWorkflowStub(service, next);
1✔
928
    }
929

930
    @Override
931
    public ActivityCompletionClient newActivityCompletionClient(ActivityCompletionClient next) {
932
      return next;
1✔
933
    }
934

935
    private class TimeLockingWorkflowStub implements WorkflowStub {
936

937
      private final WorkflowServiceWrapper service;
938
      private final WorkflowStub next;
939

940
      TimeLockingWorkflowStub(WorkflowServiceWrapper service, WorkflowStub next) {
1✔
941
        this.service = service;
1✔
942
        this.next = next;
1✔
943
      }
1✔
944

945
      @Override
946
      public void signal(String signalName, Object... args) {
947
        next.signal(signalName, args);
1✔
948
      }
1✔
949

950
      @Override
951
      public CompletableFuture<Void> signalAsync(String signalName, Object... args) {
952
        return next.signalAsync(signalName, args);
1✔
953
      }
954

955
      @Override
956
      public CompletableFuture<Void> signalAsyncWithTimeout(
957
          long timeout, TimeUnit unit, String signalName, Object... args) {
958
        return next.signalAsyncWithTimeout(timeout, unit, signalName, args);
1✔
959
      }
960

961
      @Override
962
      public WorkflowExecution start(Object... args) {
963
        return next.start(args);
1✔
964
      }
965

966
      @Override
967
      public CompletableFuture<WorkflowExecution> startAsync(Object... args) {
968
        return next.startAsync(args);
1✔
969
      }
970

971
      @Override
972
      public CompletableFuture<WorkflowExecution> startAsyncWithTimeout(
973
          long timeout, TimeUnit unit, Object... args) {
974
        return next.startAsyncWithTimeout(timeout, unit, args);
1✔
975
      }
976

977
      @Override
978
      public WorkflowExecution signalWithStart(
979
          String signalName, Object[] signalArgs, Object[] startArgs) {
980
        return next.signalWithStart(signalName, signalArgs, startArgs);
1✔
981
      }
982

983
      @Override
984
      public Optional<String> getWorkflowType() {
985
        return next.getWorkflowType();
1✔
986
      }
987

988
      @Override
989
      public WorkflowExecution getExecution() {
990
        return next.getExecution();
1✔
991
      }
992

993
      @Override
994
      public <R> R getResult(Class<R> resultClass, Type resultType) {
995
        service.unlockTimeSkipping("TimeLockingWorkflowStub getResult");
1✔
996
        try {
997
          return next.getResult(resultClass, resultType);
1✔
998
        } finally {
999
          service.lockTimeSkipping("TimeLockingWorkflowStub getResult");
1✔
1000
        }
1001
      }
1002

1003
      @Override
1004
      public <R> R getResult(Class<R> resultClass) {
1005
        service.unlockTimeSkipping("TimeLockingWorkflowStub getResult");
1✔
1006
        try {
1007
          return next.getResult(resultClass);
1✔
1008
        } finally {
1009
          service.lockTimeSkipping("TimeLockingWorkflowStub getResult");
1✔
1010
        }
1011
      }
1012

1013
      @Override
1014
      public <R> CompletableFuture<R> getResultAsync(Class<R> resultClass, Type resultType) {
1015
        return new TimeLockingFuture<>(next.getResultAsync(resultClass, resultType));
1✔
1016
      }
1017

1018
      @Override
1019
      public <R> CompletableFuture<R> getResultAsync(Class<R> resultClass) {
1020
        return new TimeLockingFuture<>(next.getResultAsync(resultClass));
1✔
1021
      }
1022

1023
      @Override
1024
      public <R> R getResult(long timeout, TimeUnit unit, Class<R> resultClass, Type resultType)
1025
          throws TimeoutException {
1026
        service.unlockTimeSkipping("TimeLockingWorkflowStub getResult");
×
1027
        try {
1028
          return next.getResult(timeout, unit, resultClass, resultType);
×
1029
        } finally {
1030
          service.lockTimeSkipping("TimeLockingWorkflowStub getResult");
×
1031
        }
1032
      }
1033

1034
      @Override
1035
      public <R> R getResult(long timeout, TimeUnit unit, Class<R> resultClass)
1036
          throws TimeoutException {
1037
        service.unlockTimeSkipping("TimeLockingWorkflowStub getResult");
×
1038
        try {
1039
          return next.getResult(timeout, unit, resultClass);
×
1040
        } finally {
1041
          service.lockTimeSkipping("TimeLockingWorkflowStub getResult");
×
1042
        }
1043
      }
1044

1045
      @Override
1046
      public <R> CompletableFuture<R> getResultAsync(
1047
          long timeout, TimeUnit unit, Class<R> resultClass, Type resultType) {
1048
        return new TimeLockingFuture<>(next.getResultAsync(timeout, unit, resultClass, resultType));
×
1049
      }
1050

1051
      @Override
1052
      public <R> CompletableFuture<R> getResultAsync(
1053
          long timeout, TimeUnit unit, Class<R> resultClass) {
1054
        return new TimeLockingFuture<>(next.getResultAsync(timeout, unit, resultClass));
×
1055
      }
1056

1057
      @Override
1058
      public <R> R query(String queryType, Class<R> resultClass, Object... args) {
1059
        return next.query(queryType, resultClass, args);
1✔
1060
      }
1061

1062
      @Override
1063
      public <R> R query(String queryType, Class<R> resultClass, Type resultType, Object... args) {
1064
        return next.query(queryType, resultClass, resultType, args);
1✔
1065
      }
1066

1067
      @Override
1068
      public <R> R query(
1069
          String queryType,
1070
          Class<R> resultClass,
1071
          QueryRejectCondition queryRejectCondition,
1072
          Object... args) {
1073
        return next.query(queryType, resultClass, queryRejectCondition, args);
×
1074
      }
1075

1076
      @Override
1077
      public <R> R query(
1078
          String queryType,
1079
          Class<R> resultClass,
1080
          Type resultType,
1081
          QueryRejectCondition queryRejectCondition,
1082
          Object... args) {
1083
        return next.query(queryType, resultClass, resultType, queryRejectCondition, args);
×
1084
      }
1085

1086
      @Override
1087
      public <R> R queryWithOptions(
1088
          String queryType,
1089
          QueryOptions options,
1090
          Type resultType,
1091
          Class<R> resultClass,
1092
          Object... args) {
1093
        return next.queryWithOptions(queryType, options, resultType, resultClass, args);
×
1094
      }
1095

1096
      @Override
1097
      public void cancel() {
1098
        next.cancel();
1✔
1099
      }
1✔
1100

1101
      @Override
1102
      public Optional<WorkflowOptions> getOptions() {
1103
        return next.getOptions();
1✔
1104
      }
1105

1106
      /** Unlocks time skipping before blocking calls and locks back after completion. */
1107
      private class TimeLockingFuture<R> extends CompletableFuture<R> {
1108

1109
        public TimeLockingFuture(CompletableFuture<R> resultAsync) {
1✔
1110
          @SuppressWarnings({"FutureReturnValueIgnored", "unused"})
1111
          CompletableFuture<R> ignored =
1✔
1112
              resultAsync.whenComplete(
1✔
1113
                  (r, e) -> {
1114
                    service.lockTimeSkipping(
1✔
1115
                        "TimeLockingWorkflowStub TimeLockingFuture constructor");
1116
                    if (e == null) {
1✔
1117
                      this.complete(r);
1✔
1118
                    } else {
1119
                      this.completeExceptionally(e);
1✔
1120
                    }
1121
                  });
1✔
1122
        }
1✔
1123

1124
        @Override
1125
        public R get() throws InterruptedException, ExecutionException {
1126
          service.unlockTimeSkipping("TimeLockingWorkflowStub TimeLockingFuture get");
1✔
1127
          try {
1128
            return super.get();
1✔
1129
          } finally {
1130
            service.lockTimeSkipping("TimeLockingWorkflowStub TimeLockingFuture get");
1✔
1131
          }
1132
        }
1133

1134
        @Override
1135
        public R get(long timeout, TimeUnit unit)
1136
            throws InterruptedException, ExecutionException, TimeoutException {
1137
          service.unlockTimeSkipping("TimeLockingWorkflowStub TimeLockingFuture get");
1✔
1138
          try {
1139
            return super.get(timeout, unit);
×
1140
          } finally {
1141
            service.lockTimeSkipping("TimeLockingWorkflowStub TimeLockingFuture get");
1✔
1142
          }
1143
        }
1144

1145
        @Override
1146
        public R join() {
1147
          service.unlockTimeSkipping("TimeLockingWorkflowStub TimeLockingFuture join");
×
1148
          return super.join();
×
1149
        }
1150
      }
1151
    }
1152
  }
1153
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc