summaryrefslogtreecommitdiffstats
path: root/jdisc_http_service
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@oath.com>2018-07-09 10:47:52 +0200
committerBjørn Christian Seime <bjorncs@oath.com>2018-07-09 10:47:52 +0200
commitb207e295011f7fd7edc70dd80883e354edb9a8ab (patch)
treec093cb7896226b2f335d6e67d43bb8ff943774cd /jdisc_http_service
parentb67f1500eb43e739f68f47c857fbad0415bffcb1 (diff)
Use ServletRequestReader to determine bytes consumed
Diffstat (limited to 'jdisc_http_service')
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpRequestDispatch.java1
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/ServletRequestReader.java7
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() {