diff --git a/core/src/main/java/io/grpc/internal/DelayedClientTransport.java b/core/src/main/java/io/grpc/internal/DelayedClientTransport.java index 3922ee5b89..761300f19f 100644 --- a/core/src/main/java/io/grpc/internal/DelayedClientTransport.java +++ b/core/src/main/java/io/grpc/internal/DelayedClientTransport.java @@ -375,5 +375,13 @@ final class DelayedClientTransport implements ManagedClientTransport { } syncContext.drain(); } + + @Override + public void appendTimeoutInsight(InsightBuilder insight) { + if (args.getCallOptions().isWaitForReady()) { + insight.append("wait_for_ready"); + } + super.appendTimeoutInsight(insight); + } } } diff --git a/core/src/test/java/io/grpc/internal/DelayedClientTransportTest.java b/core/src/test/java/io/grpc/internal/DelayedClientTransportTest.java index 41a97d62f9..f01b9d4d6f 100644 --- a/core/src/test/java/io/grpc/internal/DelayedClientTransportTest.java +++ b/core/src/test/java/io/grpc/internal/DelayedClientTransportTest.java @@ -16,6 +16,7 @@ package io.grpc.internal; +import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; @@ -600,6 +601,17 @@ public class DelayedClientTransportTest { verify(transportListener).transportInUse(true); } + @Test + public void pendingStream_appendTimeoutInsight_waitForReady() { + ClientStream stream = delayedTransport.newStream( + method, headers, callOptions.withWaitForReady()); + stream.start(streamListener); + InsightBuilder insight = new InsightBuilder(); + stream.appendTimeoutInsight(insight); + assertThat(insight.toString()) + .matches("\\[wait_for_ready, buffered_nanos=[0-9]+\\, waiting_for_connection]"); + } + private static TransportProvider newTransportProvider(final ClientTransport transport) { return new TransportProvider() { @Override