diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2020-10-02 15:19:37 +0200 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2020-10-02 15:19:37 +0200 |
commit | a0334edd0177249a36c493a9e73b190ea911f062 (patch) | |
tree | 4db51641a2e65bcc9ed1adfc4dc9c6fdeca42507 | |
parent | ebe20db2bf63f001e5792812057e7ae8bc76c385 (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.java | 22 |
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); } } |