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