diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2020-10-14 17:47:08 +0200 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2020-10-14 17:47:08 +0200 |
commit | f0c452cc8a83d0396375caf5486699a392b88acf (patch) | |
tree | dae72e4787929decceba1acfcb3fa1b042ebad35 /vespaclient-container-plugin | |
parent | ad379f928f476f92a235019e149074c400362105 (diff) |
Add logging on unexpected behaviour
Diffstat (limited to 'vespaclient-container-plugin')
-rw-r--r-- | vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java | 9 |
1 files changed, 8 insertions, 1 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 ff36c108572..147dd9e77cd 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 @@ -80,6 +80,7 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicReference; import java.util.function.Consumer; @@ -640,6 +641,7 @@ public class DocumentV1ApiHandler extends AbstractRequestHandler { private final ReadableContentChannel delegate = new ReadableContentChannel(); private final Consumer<InputStream> reader; + private final AtomicBoolean written = new AtomicBoolean(); public ForwardingContentChannel(Consumer<InputStream> reader) { this.reader = reader; @@ -650,17 +652,21 @@ public class DocumentV1ApiHandler extends AbstractRequestHandler { public void write(ByteBuffer buf, CompletionHandler handler) { try { delegate.write(buf, logException); + written.set(true); handler.completed(); } catch (Exception e) { + log.log(WARNING, "Failed writing request data", e); handler.failed(e); } } - /** Close is complete when we have close the buffer. */ + /** Close is complete when we have closed the buffer. */ @Override public void close(CompletionHandler handler) { try { + if ( ! written.get()) + log.log(WARNING, "Closed without any content. Really!? Usage error (no content needed) or bug."); delegate.close(logException); try (UnsafeContentInputStream in = new UnsafeContentInputStream(delegate)) { reader.accept(in); @@ -668,6 +674,7 @@ public class DocumentV1ApiHandler extends AbstractRequestHandler { handler.completed(); } catch (Exception e) { + log.log(WARNING, "Failed closing request data", e); handler.failed(e); } } |