You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2019/09/19 08:01:18 UTC

[httpcomponents-core] branch master updated: Propagate BasicResponse{Consumer, Producer}#failed() to data{Consumer, Producer}.

This is an automated email from the ASF dual-hosted git repository.

olegk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/httpcomponents-core.git


The following commit(s) were added to refs/heads/master by this push:
     new d463637  Propagate BasicResponse{Consumer,Producer}#failed() to data{Consumer,Producer}.
d463637 is described below

commit d46363722d15d302f7307f6e7d1dc803420146f0
Author: Roy Hashimoto <ro...@shoestringresearch.com>
AuthorDate: Wed Sep 18 09:02:24 2019 -0700

    Propagate BasicResponse{Consumer,Producer}#failed() to data{Consumer,Producer}.
    
    Wrapped AsyncEntityConsumers and AsyncEntityProducers were not receiving failed()
    calls before releaseResources() when an exchange was abnormally terminated.
---
 .../org/apache/hc/core5/http/nio/support/BasicResponseConsumer.java   | 4 ++++
 .../org/apache/hc/core5/http/nio/support/BasicResponseProducer.java   | 3 +++
 2 files changed, 7 insertions(+)

diff --git a/httpcore5/src/main/java/org/apache/hc/core5/http/nio/support/BasicResponseConsumer.java b/httpcore5/src/main/java/org/apache/hc/core5/http/nio/support/BasicResponseConsumer.java
index 5c24793..d6a2ff8 100644
--- a/httpcore5/src/main/java/org/apache/hc/core5/http/nio/support/BasicResponseConsumer.java
+++ b/httpcore5/src/main/java/org/apache/hc/core5/http/nio/support/BasicResponseConsumer.java
@@ -142,6 +142,10 @@ public class BasicResponseConsumer<T> implements AsyncResponseConsumer<Message<H
 
     @Override
     public void failed(final Exception cause) {
+        final AsyncEntityConsumer<T> dataConsumer = dataConsumerRef.get();
+        if (dataConsumer != null) {
+            dataConsumer.failed(cause);
+        }
         releaseResources();
     }
 
diff --git a/httpcore5/src/main/java/org/apache/hc/core5/http/nio/support/BasicResponseProducer.java b/httpcore5/src/main/java/org/apache/hc/core5/http/nio/support/BasicResponseProducer.java
index 56e73f6..ece4279 100644
--- a/httpcore5/src/main/java/org/apache/hc/core5/http/nio/support/BasicResponseProducer.java
+++ b/httpcore5/src/main/java/org/apache/hc/core5/http/nio/support/BasicResponseProducer.java
@@ -105,6 +105,9 @@ public class BasicResponseProducer implements AsyncResponseProducer {
 
     @Override
     public void failed(final Exception cause) {
+        if (dataProducer != null) {
+            dataProducer.failed(cause);
+        }
         releaseResources();
     }