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();
}