Skip to content

Commit 28df24b

Browse files
committed
fix the result size in ParallelResult
1 parent c42f4f4 commit 28df24b

2 files changed

Lines changed: 7 additions & 5 deletions

File tree

sdk-integration-tests/src/test/java/software/amazon/lambda/durable/ParallelIntegrationTest.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1142,10 +1142,8 @@ void testParallelWithFirstSuccessful_earlyTermination(NestingType nestingType, i
11421142
var result = parallel.get();
11431143
assertEquals(ConcurrencyCompletionStatus.MIN_SUCCESSFUL_REACHED, result.completionStatus());
11441144
assertTrue(result.completionStatus().isSucceeded());
1145-
// todo: the result is constructed when handling parallel completion,
1146-
// which might be earlier than the last branch is added.
1147-
assertTrue(result.size() <= 3);
1148-
assertTrue(result.succeeded() <= result.size());
1145+
assertEquals(3, result.size());
1146+
assertTrue(result.succeeded() <= 3);
11491147
assertTrue(1 <= result.succeeded());
11501148

11511149
return "done";

sdk/src/main/java/software/amazon/lambda/durable/operation/ParallelOperation.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,11 @@ protected void replay(Operation existing) {
127127
@Override
128128
public ParallelResult get() {
129129
join();
130-
return cachedResult;
130+
return new ParallelResult(
131+
getBranches().size(), // size might be updated after cached result is built
132+
cachedResult.succeeded(),
133+
cachedResult.failed(),
134+
cachedResult.completionStatus());
131135
}
132136

133137
/** Calls {@link #get()} if not already called. Guarantees that the context is closed. */

0 commit comments

Comments
 (0)