diff options
author | Bjørn Christian Seime <bjorncs@oath.com> | 2018-07-09 10:47:52 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@oath.com> | 2018-07-09 10:47:52 +0200 |
commit | b207e295011f7fd7edc70dd80883e354edb9a8ab (patch) | |
tree | c093cb7896226b2f335d6e67d43bb8ff943774cd /jdisc_http_service | |
parent | b67f1500eb43e739f68f47c857fbad0415bffcb1 (diff) |
Use ServletRequestReader to determine bytes consumed
Diffstat (limited to 'jdisc_http_service')
2 files changed, 7 insertions, 1 deletions
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpRequestDispatch.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpRequestDispatch.java index db7670b604a..0a20e4f4757 100644 --- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpRequestDispatch.java +++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpRequestDispatch.java @@ -124,7 +124,6 @@ class HttpRequestDispatch { } boolean reportedError = false; - parent.metricReporter.contentSize((int) parent.jettyRequest.getContentRead()); if (error != null) { if (error instanceof CompletionException && error.getCause() instanceof EofException) { diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/ServletRequestReader.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/ServletRequestReader.java index 47ef20e181e..a80f5bb3c14 100644 --- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/ServletRequestReader.java +++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/ServletRequestReader.java @@ -45,6 +45,8 @@ class ServletRequestReader implements ReadListener { private final Executor executor; private final MetricReporter metricReporter; + private int bytesRead; + /** * Rules: * 1. If state != State.READING, then numberOfOutstandingUserCalls must not increase @@ -134,6 +136,7 @@ class ServletRequestReader implements ReadListener { int bytesReceived = buf.remaining(); requestContentChannel.write(buf, writeCompletionHandler); metricReporter.successfulRead(bytesReceived); + bytesRead += bytesReceived; } catch (final Throwable t) { finishedFuture.completeExceptionally(t); } finally { @@ -184,6 +187,7 @@ class ServletRequestReader implements ReadListener { private void doneReading() { final boolean shouldCloseRequestContentChannel; + int bytesRead; synchronized (monitor) { if (state != State.READING) { return; @@ -195,11 +199,14 @@ class ServletRequestReader implements ReadListener { if (shouldCloseRequestContentChannel) { state = State.REQUEST_CONTENT_CLOSED; } + bytesRead = this.bytesRead; } if (shouldCloseRequestContentChannel) { closeCompletionHandler_noThrow(); } + + metricReporter.contentSize(bytesRead); } private void closeCompletionHandler_noThrow() { |