summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2020-10-02 15:19:37 +0200
committerJon Marius Venstad <venstad@gmail.com>2020-10-02 15:19:37 +0200
commita0334edd0177249a36c493a9e73b190ea911f062 (patch)
tree4db51641a2e65bcc9ed1adfc4dc9c6fdeca42507
parentebe20db2bf63f001e5792812057e7ae8bc76c385 (diff)
Call completion handlers earlier when receiving data/close in doc/v1/handler
-rw-r--r--vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java22
1 files changed, 18 insertions, 4 deletions
diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java
index bb1dd8f20c4..c056fe46e01 100644
--- a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java
+++ b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java
@@ -552,16 +552,30 @@ public class DocumentV1ApiHandler extends AbstractRequestHandler {
this.reader = reader;
}
+ /** Write is complete when we have stored the buffer — call completion handler. */
@Override
public void write(ByteBuffer buf, CompletionHandler handler) {
- delegate.write(buf, handler);
+ try {
+ delegate.write(buf, logException);
+ handler.completed();
+ }
+ catch (Exception e) {
+ handler.failed(e);
+ }
}
+ /** Close is complete when we have close the buffer. */
@Override
public void close(CompletionHandler handler) {
- delegate.close(handler);
- try (UnsafeContentInputStream in = new UnsafeContentInputStream(delegate)) {
- reader.accept(in);
+ try {
+ delegate.close(logException);
+ try (UnsafeContentInputStream in = new UnsafeContentInputStream(delegate)) {
+ reader.accept(in);
+ }
+ handler.completed();
+ }
+ catch (Exception e) {
+ handler.failed(e);
}
}