Skip to content

Commit ae9601a

Browse files
committed
Fix
1 parent 381ceea commit ae9601a

File tree

2 files changed

+7
-14
lines changed

2 files changed

+7
-14
lines changed

Diff for: grpc/src/main/java/com/linecorp/armeria/internal/server/grpc/AbstractServerCall.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import org.slf4j.Logger;
3030
import org.slf4j.LoggerFactory;
3131

32+
import com.google.common.annotations.VisibleForTesting;
3233
import com.google.common.base.Splitter;
3334

3435
import com.linecorp.armeria.common.HttpData;
@@ -111,8 +112,9 @@ public abstract class AbstractServerCall<I, O> extends ServerCall<I, O> {
111112
private final String clientAcceptEncoding;
112113
private final boolean autoCompression;
113114

115+
@VisibleForTesting
114116
@Nullable
115-
private final Executor blockingExecutor;
117+
final Executor blockingExecutor;
116118
private final InternalGrpcExceptionHandler exceptionHandler;
117119

118120
// Only set once.

Diff for: grpc/src/test/java/com/linecorp/armeria/internal/server/grpc/AbstractServerCallTest.java

+4-13
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@
2020
import static org.awaitility.Awaitility.await;
2121

2222
import java.util.concurrent.CompletableFuture;
23-
import java.util.concurrent.Executors;
24-
import java.util.concurrent.ScheduledExecutorService;
2523
import java.util.concurrent.atomic.AtomicBoolean;
2624
import java.util.concurrent.atomic.AtomicReference;
2725

@@ -33,7 +31,6 @@
3331
import com.linecorp.armeria.client.grpc.GrpcClients;
3432
import com.linecorp.armeria.common.FilteredHttpRequest;
3533
import com.linecorp.armeria.common.HttpObject;
36-
import com.linecorp.armeria.common.util.BlockingTaskExecutor;
3734
import com.linecorp.armeria.server.ServerBuilder;
3835
import com.linecorp.armeria.server.grpc.GrpcService;
3936
import com.linecorp.armeria.testing.junit5.server.ServerExtension;
@@ -57,12 +54,6 @@ class AbstractServerCallTest {
5754
static final ServerExtension server = new ServerExtension() {
5855
@Override
5956
protected void configure(ServerBuilder sb) throws Exception {
60-
// Use a single-threaded executor to run the blocking task once at a time without accessing
61-
// the sequential executor.
62-
final ScheduledExecutorService scheduledExecutorService =
63-
Executors.newSingleThreadScheduledExecutor();
64-
sb.blockingTaskExecutor(BlockingTaskExecutor.of(scheduledExecutorService), true);
65-
6657
final AtomicReference<ServerCall<?, ?>> serverCallCaptor = new AtomicReference<>();
6758
final GrpcService grpcService =
6859
GrpcService.builder()
@@ -88,12 +79,12 @@ public <T, U> Listener<T> interceptCall(
8879
protected void beforeSubscribe(Subscriber<? super HttpObject> subscriber,
8980
Subscription subscription) {
9081
// This is called right before
91-
// blockingExecutor.execute(() -> invokeOnMessage(request, endOfStream)); is called
82+
// blockingExecutor.execute(() -> invokeOnMessage(request, endOfStream));
9283
// in AbstractServerCall.
9384
// https://github.com/line/armeria/blob/0960d091bfc7f350c17e68f57cc627de584b9705/grpc/src/main/java/com/linecorp/armeria/internal/server/grpc/AbstractServerCall.java#L363
94-
scheduledExecutorService.execute(() -> {
95-
final ServerCall<?, ?> serverCall = serverCallCaptor.get();
96-
assertThat(serverCall).isNotNull();
85+
final ServerCall<?, ?> serverCall = serverCallCaptor.get();
86+
assertThat(serverCall).isInstanceOf(AbstractServerCall.class);
87+
((AbstractServerCall<?, ?>) serverCall).blockingExecutor.execute(() -> {
9788
// invokeOnMessage is not called until the request is cancelled.
9889
await().until(serverCall::isCancelled);
9990
// Now, AbstractServerCall.invokeOnMessage() is called and it doesn't call

0 commit comments

Comments
 (0)