From ac20a6c1833bcdedd31dcc7acd8a3d72e1ae44b3 Mon Sep 17 00:00:00 2001 From: yifeizhuang Date: Wed, 23 Jun 2021 16:40:19 -0700 Subject: [PATCH 1/2] core: attempting to fix boq complaints --- core/src/main/java/io/grpc/internal/ServerImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/io/grpc/internal/ServerImpl.java b/core/src/main/java/io/grpc/internal/ServerImpl.java index 1efa4bf78b0..91b0b9bd8ea 100644 --- a/core/src/main/java/io/grpc/internal/ServerImpl.java +++ b/core/src/main/java/io/grpc/internal/ServerImpl.java @@ -28,6 +28,7 @@ import com.google.common.annotations.VisibleForTesting; import com.google.common.base.MoreObjects; import com.google.common.base.Preconditions; +import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.SettableFuture; import io.grpc.Attributes; @@ -611,7 +612,7 @@ private void runInternal() { if (future.isCancelled()) { return; } - if (!future.isDone() || (callParameters = future.get()) == null) { + if (!future.isDone() || (callParameters = Futures.getDone(future)) == null) { Status status = Status.INTERNAL.withDescription( "Unexpected failure retrieving server call parameters."); throw new StatusException(status); From 889482c8989f1605aeb133da56af8e98e2ce3f66 Mon Sep 17 00:00:00 2001 From: yifeizhuang Date: Wed, 23 Jun 2021 18:28:03 -0700 Subject: [PATCH 2/2] refactor --- core/src/main/java/io/grpc/internal/ServerImpl.java | 9 +-------- core/src/test/java/io/grpc/internal/ServerImplTest.java | 5 ++++- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/core/src/main/java/io/grpc/internal/ServerImpl.java b/core/src/main/java/io/grpc/internal/ServerImpl.java index 91b0b9bd8ea..113aeb3fab7 100644 --- a/core/src/main/java/io/grpc/internal/ServerImpl.java +++ b/core/src/main/java/io/grpc/internal/ServerImpl.java @@ -54,7 +54,6 @@ import io.grpc.ServerServiceDefinition; import io.grpc.ServerTransportFilter; import io.grpc.Status; -import io.grpc.StatusException; import io.perfmark.Link; import io.perfmark.PerfMark; import io.perfmark.Tag; @@ -607,17 +606,11 @@ public void runInContext() { private void runInternal() { ServerStreamListener listener = NOOP_LISTENER; - ServerCallParameters callParameters; try { if (future.isCancelled()) { return; } - if (!future.isDone() || (callParameters = Futures.getDone(future)) == null) { - Status status = Status.INTERNAL.withDescription( - "Unexpected failure retrieving server call parameters."); - throw new StatusException(status); - } - listener = startWrappedCall(methodName, callParameters, headers); + listener = startWrappedCall(methodName, Futures.getDone(future), headers); } catch (Throwable ex) { stream.close(Status.fromThrowable(ex), new Metadata()); context.cancel(null); diff --git a/core/src/test/java/io/grpc/internal/ServerImplTest.java b/core/src/test/java/io/grpc/internal/ServerImplTest.java index a7152919b3b..2a9dbd5a1fe 100644 --- a/core/src/test/java/io/grpc/internal/ServerImplTest.java +++ b/core/src/test/java/io/grpc/internal/ServerImplTest.java @@ -74,6 +74,7 @@ import io.grpc.ServerTransportFilter; import io.grpc.ServiceDescriptor; import io.grpc.Status; +import io.grpc.Status.Code; import io.grpc.StringMarshaller; import io.grpc.internal.ServerImpl.JumpToApplicationThreadServerStreamListener; import io.grpc.internal.ServerImplBuilder.ClientTransportServersBuilder; @@ -533,6 +534,7 @@ public ServerCall.Listener startCall( } @Test + @SuppressWarnings("CheckReturnValue") public void executorSupplierFutureNotSet() throws Exception { builder.executorSupplier = new ServerCallExecutorSupplier() { @Override @@ -575,7 +577,8 @@ public ServerCall.Listener startCall( assertThat(callReference.get()).isNull(); verify(stream, times(2)).close(statusCaptor.capture(), any(Metadata.class)); Status status = statusCaptor.getAllValues().get(1); - assertEquals(Status.Code.INTERNAL, status.getCode()); + assertEquals(Code.UNKNOWN, status.getCode()); + assertThat(status.getCause() instanceof IllegalStateException); } @Test