Commit d741df7
Sojan Mathew
Fix activity completion when thread interrupted flag is set
Activities that catch InterruptedException, restore the interrupted flag,
and continue execution were unable to report their completion due to gRPC call failures.
This occurred because gRPC calls fail when the thread's interrupted flag is set.
The fix clears the interrupted flag before making gRPC calls in ActivityWorker.sendReply() and restores it afterward, ensuring:
- Activity results are successfully reported to the server
- Thread interruption semantics are preserved for worker shutdown
- All activity completion scenarios work (success/failure/cancellation)
Additionally, extract executeGrpcCallWithInterruptHandling() method to eliminate code duplication across the three gRPC response calls,
improving maintainability and reducing the risk of inconsistent implementations.
Fixes: temporalio#731
Related: temporalio#7221 parent 832785d commit d741df7Copy full SHA for d741df7
File tree
Expand file treeCollapse file tree
2 files changed
+220
-18
lines changedOpen diff view settings
Filter options
- temporal-sdk/src
- main/java/io/temporal/internal/worker
- test/java/io/temporal/worker
Expand file treeCollapse file tree
2 files changed
+220
-18
lines changedOpen diff view settings
Collapse file
temporal-sdk/src/main/java/io/temporal/internal/worker/ActivityWorker.java
Copy file name to clipboardExpand all lines: temporal-sdk/src/main/java/io/temporal/internal/worker/ActivityWorker.java+50-18Lines changed: 50 additions & 18 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
337 | 337 | |
338 | 338 | |
339 | 339 | |
| 340 | + |
| 341 | + |
| 342 | + |
| 343 | + |
| 344 | + |
| 345 | + |
| 346 | + |
| 347 | + |
| 348 | + |
| 349 | + |
| 350 | + |
| 351 | + |
| 352 | + |
| 353 | + |
| 354 | + |
| 355 | + |
| 356 | + |
| 357 | + |
| 358 | + |
| 359 | + |
| 360 | + |
| 361 | + |
| 362 | + |
| 363 | + |
| 364 | + |
| 365 | + |
340 | 366 | |
341 | 367 | |
342 | 368 | |
| ||
351 | 377 | |
352 | 378 | |
353 | 379 | |
354 | | - |
| 380 | + |
355 | 381 | |
356 | | - |
357 | | - |
358 | | - |
359 | | - |
360 | | - |
| 382 | + |
| 383 | + |
| 384 | + |
| 385 | + |
| 386 | + |
| 387 | + |
| 388 | + |
361 | 389 | |
362 | 390 | |
363 | 391 | |
| ||
369 | 397 | |
370 | 398 | |
371 | 399 | |
372 | | - |
| 400 | + |
373 | 401 | |
374 | | - |
375 | | - |
376 | | - |
377 | | - |
378 | | - |
| 402 | + |
| 403 | + |
| 404 | + |
| 405 | + |
| 406 | + |
| 407 | + |
| 408 | + |
379 | 409 | |
380 | 410 | |
381 | 411 | |
| ||
387 | 417 | |
388 | 418 | |
389 | 419 | |
390 | | - |
| 420 | + |
391 | 421 | |
392 | | - |
393 | | - |
394 | | - |
395 | | - |
396 | | - |
| 422 | + |
| 423 | + |
| 424 | + |
| 425 | + |
| 426 | + |
| 427 | + |
| 428 | + |
397 | 429 | |
398 | 430 | |
399 | 431 | |
|
Collapse file
temporal-sdk/src/test/java/io/temporal/worker/InterruptedActivityCompletionValidationTest.java
Copy file name to clipboard+170Lines changed: 170 additions & 0 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
| 1 | + |
| 2 | + |
| 3 | + |
| 4 | + |
| 5 | + |
| 6 | + |
| 7 | + |
| 8 | + |
| 9 | + |
| 10 | + |
| 11 | + |
| 12 | + |
| 13 | + |
| 14 | + |
| 15 | + |
| 16 | + |
| 17 | + |
| 18 | + |
| 19 | + |
| 20 | + |
| 21 | + |
| 22 | + |
| 23 | + |
| 24 | + |
| 25 | + |
| 26 | + |
| 27 | + |
| 28 | + |
| 29 | + |
| 30 | + |
| 31 | + |
| 32 | + |
| 33 | + |
| 34 | + |
| 35 | + |
| 36 | + |
| 37 | + |
| 38 | + |
| 39 | + |
| 40 | + |
| 41 | + |
| 42 | + |
| 43 | + |
| 44 | + |
| 45 | + |
| 46 | + |
| 47 | + |
| 48 | + |
| 49 | + |
| 50 | + |
| 51 | + |
| 52 | + |
| 53 | + |
| 54 | + |
| 55 | + |
| 56 | + |
| 57 | + |
| 58 | + |
| 59 | + |
| 60 | + |
| 61 | + |
| 62 | + |
| 63 | + |
| 64 | + |
| 65 | + |
| 66 | + |
| 67 | + |
| 68 | + |
| 69 | + |
| 70 | + |
| 71 | + |
| 72 | + |
| 73 | + |
| 74 | + |
| 75 | + |
| 76 | + |
| 77 | + |
| 78 | + |
| 79 | + |
| 80 | + |
| 81 | + |
| 82 | + |
| 83 | + |
| 84 | + |
| 85 | + |
| 86 | + |
| 87 | + |
| 88 | + |
| 89 | + |
| 90 | + |
| 91 | + |
| 92 | + |
| 93 | + |
| 94 | + |
| 95 | + |
| 96 | + |
| 97 | + |
| 98 | + |
| 99 | + |
| 100 | + |
| 101 | + |
| 102 | + |
| 103 | + |
| 104 | + |
| 105 | + |
| 106 | + |
| 107 | + |
| 108 | + |
| 109 | + |
| 110 | + |
| 111 | + |
| 112 | + |
| 113 | + |
| 114 | + |
| 115 | + |
| 116 | + |
| 117 | + |
| 118 | + |
| 119 | + |
| 120 | + |
| 121 | + |
| 122 | + |
| 123 | + |
| 124 | + |
| 125 | + |
| 126 | + |
| 127 | + |
| 128 | + |
| 129 | + |
| 130 | + |
| 131 | + |
| 132 | + |
| 133 | + |
| 134 | + |
| 135 | + |
| 136 | + |
| 137 | + |
| 138 | + |
| 139 | + |
| 140 | + |
| 141 | + |
| 142 | + |
| 143 | + |
| 144 | + |
| 145 | + |
| 146 | + |
| 147 | + |
| 148 | + |
| 149 | + |
| 150 | + |
| 151 | + |
| 152 | + |
| 153 | + |
| 154 | + |
| 155 | + |
| 156 | + |
| 157 | + |
| 158 | + |
| 159 | + |
| 160 | + |
| 161 | + |
| 162 | + |
| 163 | + |
| 164 | + |
| 165 | + |
| 166 | + |
| 167 | + |
| 168 | + |
| 169 | + |
| 170 | + |
0 commit comments