Skip to content

Commit 47b2131

Browse files
committed
core: remove closeCalled check in ServerCallImpl.triggerEvent
Consistent with ServerCallImpl.request(int), do not short-circuit on the non-volatile closeCalled boolean in triggerEvent. This ensures ServerCallImpl delegates triggerEvent to the underlying ServerStream, where stream lifecycle state and serialization are authoritatively managed in the transport layer. TAG=agy CONV=e1bfa5a2-e855-4f79-abdd-ef2b264977be
1 parent 91ec839 commit 47b2131

2 files changed

Lines changed: 3 additions & 5 deletions

File tree

‎core/src/main/java/io/grpc/internal/ServerCallImpl.java‎

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -256,9 +256,6 @@ public MethodDescriptor<ReqT, RespT> getMethodDescriptor() {
256256

257257
@Override
258258
public void triggerEvent(Object event) {
259-
if (closeCalled) {
260-
return;
261-
}
262259
try (TaskCloseable ignore = PerfMark.traceTask("ServerCall.triggerEvent")) {
263260
PerfMark.attachTag(tag);
264261
stream.triggerEvent(event);

‎core/src/test/java/io/grpc/internal/ServerCallImplTest.java‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -501,13 +501,14 @@ public void triggerEvent_propagatesToStream() {
501501
}
502502

503503
@Test
504-
public void triggerEvent_afterClose_noop() {
504+
public void triggerEvent_afterClose_propagatesToStream() {
505505
call.close(Status.OK, new Metadata());
506506
Object event = new Object();
507507
call.triggerEvent(event);
508-
verify(stream, never()).triggerEvent(event);
508+
verify(stream).triggerEvent(event);
509509
}
510510

511+
511512
@Test
512513
public void streamListener_triggerEvent() {
513514
ServerStreamListenerImpl<Long> streamListener =

0 commit comments

Comments
 (0)