Skip to content

Commit c1ad5de

Browse files
authored
core: fix boq conformance failures (#8281)
Fix false alarm to please boq conformance verifications, ref. go/boq-conformance-violations/BLOCKING#what-should-i-do-instead.
1 parent c092d94 commit c1ad5de

File tree

2 files changed

+6
-9
lines changed

2 files changed

+6
-9
lines changed

core/src/main/java/io/grpc/internal/ServerImpl.java

+2-8
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import com.google.common.annotations.VisibleForTesting;
2929
import com.google.common.base.MoreObjects;
3030
import com.google.common.base.Preconditions;
31+
import com.google.common.util.concurrent.Futures;
3132
import com.google.common.util.concurrent.ListenableFuture;
3233
import com.google.common.util.concurrent.SettableFuture;
3334
import io.grpc.Attributes;
@@ -53,7 +54,6 @@
5354
import io.grpc.ServerServiceDefinition;
5455
import io.grpc.ServerTransportFilter;
5556
import io.grpc.Status;
56-
import io.grpc.StatusException;
5757
import io.perfmark.Link;
5858
import io.perfmark.PerfMark;
5959
import io.perfmark.Tag;
@@ -606,17 +606,11 @@ public void runInContext() {
606606

607607
private void runInternal() {
608608
ServerStreamListener listener = NOOP_LISTENER;
609-
ServerCallParameters<?,?> callParameters;
610609
try {
611610
if (future.isCancelled()) {
612611
return;
613612
}
614-
if (!future.isDone() || (callParameters = future.get()) == null) {
615-
Status status = Status.INTERNAL.withDescription(
616-
"Unexpected failure retrieving server call parameters.");
617-
throw new StatusException(status);
618-
}
619-
listener = startWrappedCall(methodName, callParameters, headers);
613+
listener = startWrappedCall(methodName, Futures.getDone(future), headers);
620614
} catch (Throwable ex) {
621615
stream.close(Status.fromThrowable(ex), new Metadata());
622616
context.cancel(null);

core/src/test/java/io/grpc/internal/ServerImplTest.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@
7474
import io.grpc.ServerTransportFilter;
7575
import io.grpc.ServiceDescriptor;
7676
import io.grpc.Status;
77+
import io.grpc.Status.Code;
7778
import io.grpc.StringMarshaller;
7879
import io.grpc.internal.ServerImpl.JumpToApplicationThreadServerStreamListener;
7980
import io.grpc.internal.ServerImplBuilder.ClientTransportServersBuilder;
@@ -533,6 +534,7 @@ public ServerCall.Listener<String> startCall(
533534
}
534535

535536
@Test
537+
@SuppressWarnings("CheckReturnValue")
536538
public void executorSupplierFutureNotSet() throws Exception {
537539
builder.executorSupplier = new ServerCallExecutorSupplier() {
538540
@Override
@@ -575,7 +577,8 @@ public ServerCall.Listener<String> startCall(
575577
assertThat(callReference.get()).isNull();
576578
verify(stream, times(2)).close(statusCaptor.capture(), any(Metadata.class));
577579
Status status = statusCaptor.getAllValues().get(1);
578-
assertEquals(Status.Code.INTERNAL, status.getCode());
580+
assertEquals(Code.UNKNOWN, status.getCode());
581+
assertThat(status.getCause() instanceof IllegalStateException);
579582
}
580583

581584
@Test

0 commit comments

Comments
 (0)