diff --git a/okhttp/src/main/java/io/grpc/okhttp/OkHttpClientStream.java b/okhttp/src/main/java/io/grpc/okhttp/OkHttpClientStream.java index 36c4877897..68d4aebd5c 100644 --- a/okhttp/src/main/java/io/grpc/okhttp/OkHttpClientStream.java +++ b/okhttp/src/main/java/io/grpc/okhttp/OkHttpClientStream.java @@ -125,9 +125,16 @@ class OkHttpClientStream extends Http2ClientStream { requestHeaders = null; if (pendingData != null) { + boolean flush = false; while (!pendingData.isEmpty()) { PendingData data = pendingData.poll(); - outboundFlow.data(data.endOfStream, id, data.buffer, data.flush); + outboundFlow.data(data.endOfStream, id, data.buffer, false); + if (data.flush) { + flush = true; + } + } + if (flush) { + outboundFlow.flush(); } pendingData = null; } diff --git a/okhttp/src/main/java/io/grpc/okhttp/OutboundFlowController.java b/okhttp/src/main/java/io/grpc/okhttp/OutboundFlowController.java index 628ceeb865..b796df9be9 100644 --- a/okhttp/src/main/java/io/grpc/okhttp/OutboundFlowController.java +++ b/okhttp/src/main/java/io/grpc/okhttp/OutboundFlowController.java @@ -160,7 +160,7 @@ class OutboundFlowController { } } - private void flush() { + void flush() { try { frameWriter.flush(); } catch (IOException e) {