HTTPCORE-727 (follow-up): async HTTP/1.1 protocol handler fails to count bytes transferred while flushing session buffer when writing out a message head or suspending session output.
diff --git a/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/AbstractHttp1StreamDuplexer.java b/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/AbstractHttp1StreamDuplexer.java
index 6710149..1424508 100644
--- a/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/AbstractHttp1StreamDuplexer.java
+++ b/httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/AbstractHttp1StreamDuplexer.java
@@ -446,7 +446,10 @@ void commitMessageHead(
             }
             outgoingMessageWriter.reset();
             if (flushMode == FlushMode.IMMEDIATE) {
-                outbuf.flush(ioSession);
+                final int bytesWritten = outbuf.flush(ioSession);
+                if (bytesWritten > 0) {
+                    outTransportMetrics.incrementBytesTransferred(bytesWritten);
+                }
             }
             ioSession.setEvent(EventMask.WRITE);
         } finally {
@@ -479,7 +482,10 @@ void suspendSessionOutput() throws IOException {
         ioSession.getLock().lock();
         try {
             if (outbuf.hasData()) {
-                outbuf.flush(ioSession);
+                final int bytesWritten = outbuf.flush(ioSession);
+                if (bytesWritten > 0) {
+                    outTransportMetrics.incrementBytesTransferred(bytesWritten);
+                }
             } else {
                 ioSession.clearEvent(SelectionKey.OP_WRITE);
             }