You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by pt...@apache.org on 2022/05/30 12:15:52 UTC

[ignite-3] branch ignite-14972 updated: Fix asyncResultSet.closeAsync

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

ptupitsyn pushed a commit to branch ignite-14972
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/ignite-14972 by this push:
     new 648dcb518 Fix asyncResultSet.closeAsync
648dcb518 is described below

commit 648dcb518f0c4166f1fe49cfa578037a4afbed50
Author: Pavel Tupitsyn <pt...@apache.org>
AuthorDate: Mon May 30 15:15:45 2022 +0300

    Fix asyncResultSet.closeAsync
---
 .../handler/requests/sql/ClientSqlExecuteRequest.java       | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/sql/ClientSqlExecuteRequest.java b/modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/sql/ClientSqlExecuteRequest.java
index e641f69dd..affad42a4 100644
--- a/modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/sql/ClientSqlExecuteRequest.java
+++ b/modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/sql/ClientSqlExecuteRequest.java
@@ -85,14 +85,15 @@ public class ClientSqlExecuteRequest {
 
         Statement statement = statementBuilder.build();
 
-        return session.executeAsync(tx, statement).thenAccept(asyncResultSet -> {
+        return session.executeAsync(tx, statement).thenCompose(asyncResultSet -> {
             if (asyncResultSet.hasRowSet() && asyncResultSet.hasMorePages()) {
                 try {
-                    long resourceId = resources.put(new ClientResource(asyncResultSet, asyncResultSet::close));
+                    long resourceId = resources.put(new ClientResource(asyncResultSet, asyncResultSet::closeAsync));
                     out.packLong(resourceId);
                 } catch (IgniteInternalCheckedException e) {
-                    asyncResultSet.close();
-                    throw new IgniteInternalException(e.getMessage(), e);
+                    return asyncResultSet
+                            .closeAsync()
+                            .thenRun(() -> { throw new IgniteInternalException(e.getMessage(), e); });
                 }
             } else {
                 out.packNil(); // resourceId
@@ -125,8 +126,10 @@ public class ClientSqlExecuteRequest {
             if (asyncResultSet.hasRowSet()) {
                 packCurrentPage(out, asyncResultSet);
             } else {
-                asyncResultSet.close();
+                return asyncResultSet.closeAsync();
             }
+
+            return CompletableFuture.completedFuture(null);
         });
     }
 }