You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2020/09/04 11:16:19 UTC
[lucene-solr] 13/13: @733 Complete on send exception.
This is an automated email from the ASF dual-hosted git repository.
markrmiller pushed a commit to branch reference_impl
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
commit 5ced9d4e1f21f3ec40decd9372ebc3ee3f0cb2c6
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Thu Sep 3 18:45:39 2020 -0500
@733 Complete on send exception.
---
.../solr/client/solrj/impl/Http2SolrClient.java | 48 ++++++++++++----------
1 file changed, 26 insertions(+), 22 deletions(-)
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java
index f9a48f6..f95c158 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java
@@ -398,32 +398,36 @@ public class Http2SolrClient extends SolrClient {
if (onComplete != null) {
asyncTracker.register();
// This async call only suitable for indexing since the response size is limited by 5MB
- req.send(new BufferingResponseListener(5 * 1024 * 1024) {
-
- @Override
- public void onComplete(Result result) {
- try {
- if (result.isFailed()) {
- onComplete.onFailure(result.getFailure());
- return;
- }
+ try {
+ req.send(new BufferingResponseListener(5 * 1024 * 1024) {
- NamedList<Object> rsp;
+ @Override
+ public void onComplete(Result result) {
try {
- InputStream is = getContentAsInputStream();
- assert ObjectReleaseTracker.track(is);
- rsp = processErrorsAndResponse(req, result.getResponse(),
- parser, is, getMediaType(), getEncoding(), isV2ApiRequest(solrRequest));
- onComplete.onSuccess(rsp);
- } catch (Exception e) {
- ParWork.propegateInterrupt(e);
+ if (result.isFailed()) {
+ onComplete.onFailure(result.getFailure());
+ return;
+ }
+
+ NamedList<Object> rsp;
+ try {
+ InputStream is = getContentAsInputStream();
+ assert ObjectReleaseTracker.track(is);
+ rsp = processErrorsAndResponse(req, result.getResponse(), parser, is, getMediaType(), getEncoding(), isV2ApiRequest(solrRequest));
+ onComplete.onSuccess(rsp);
+ } catch (Exception e) {
+ ParWork.propegateInterrupt(e);
+ }
+ } finally {
+ asyncTracker.completeListener.onComplete(result);
}
- } finally {
- asyncTracker.completeListener.onComplete(result);
}
- }
- });
- return null;
+ });
+ return null;
+ } catch (Exception e) {
+ onComplete.onFailure(e);
+ throw new SolrException(SolrException.ErrorCode.UNKNOWN, e);
+ }
} else {
try {
InputStreamResponseListener listener = new MyInputStreamResponseListener(asyncTracker);