diff --git a/core/src/main/java/io/grpc/ClientCall.java b/core/src/main/java/io/grpc/ClientCall.java index 3122877dba..fadd54eb26 100644 --- a/core/src/main/java/io/grpc/ClientCall.java +++ b/core/src/main/java/io/grpc/ClientCall.java @@ -75,8 +75,6 @@ public abstract class ClientCall { /** * The response headers have been received. Headers always precede messages. - * This method is always called, if no headers were received then an empty {@link Metadata} - * is passed. * * @param headers containing metadata sent by the server at the start of the response. */ diff --git a/core/src/main/java/io/grpc/internal/ClientCallImpl.java b/core/src/main/java/io/grpc/internal/ClientCallImpl.java index a2c5b7fc00..8a9d8881b8 100644 --- a/core/src/main/java/io/grpc/internal/ClientCallImpl.java +++ b/core/src/main/java/io/grpc/internal/ClientCallImpl.java @@ -169,9 +169,6 @@ final class ClientCallImpl extends ClientCall callExecutor.execute(new ContextRunnable(context) { @Override public void runInContext() { - // Must call onHeaders per API contract - observer.onHeaders(new Metadata()); - // then notify of immediate closure. observer.onClose(Status.CANCELLED.withCause(context.cause()), new Metadata()); } }); diff --git a/core/src/test/java/io/grpc/internal/ClientCallImplTest.java b/core/src/test/java/io/grpc/internal/ClientCallImplTest.java index 8e27b732c2..029331c789 100644 --- a/core/src/test/java/io/grpc/internal/ClientCallImplTest.java +++ b/core/src/test/java/io/grpc/internal/ClientCallImplTest.java @@ -414,21 +414,9 @@ public class ClientCallImplTest { final SettableFuture statusFuture = SettableFuture.create(); call.start(new ClientCall.Listener() { - boolean headersCalled; - @Override - public void onHeaders(Metadata headers) { - headersCalled = true; - } - @Override public void onClose(Status status, Metadata trailers) { - if (headersCalled) { - statusFuture.set(status); - } else { - statusFuture.setException( - new AssertionError("Headers must be called before close")); - } - + statusFuture.set(status); } }, new Metadata());