From e9824c3790bcb34495890a8b5f11885ba1c9d882 Mon Sep 17 00:00:00 2001
From: Michele Rastelli <michele@arangodb.com>
Date: Fri, 5 Jan 2024 14:04:53 +0100
Subject: [PATCH] fixed closing AQL cursor

---
 .../main/java/com/arangodb/internal/ArangoDatabaseImpl.java | 6 +++---
 .../java/com/arangodb/internal/cursor/ArangoCursorImpl.java | 4 ++--
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/core/src/main/java/com/arangodb/internal/ArangoDatabaseImpl.java b/core/src/main/java/com/arangodb/internal/ArangoDatabaseImpl.java
index d4ac43f7c..af319c479 100644
--- a/core/src/main/java/com/arangodb/internal/ArangoDatabaseImpl.java
+++ b/core/src/main/java/com/arangodb/internal/ArangoDatabaseImpl.java
@@ -202,8 +202,9 @@ public <T> ArangoCursor<T> cursor(final String cursorId, final Class<T> type, fi
     private <T> ArangoCursor<T> createCursor(
             final CursorEntity<T> result,
             final Class<T> type,
-            final AqlQueryOptions options,
+            final AqlQueryOptions opts,
             final HostHandle hostHandle) {
+        AqlQueryOptions options = opts != null ? opts : new AqlQueryOptions();
 
         final ArangoCursorExecute<T> execute = new ArangoCursorExecute<T>() {
             @Override
@@ -223,8 +224,7 @@ public void close(final String id) {
                 }
             }
         };
-
-        return new ArangoCursorImpl<>(execute, type, result);
+        return new ArangoCursorImpl<>(execute, type, result, options.getAllowRetry());
     }
 
     @Override
diff --git a/core/src/main/java/com/arangodb/internal/cursor/ArangoCursorImpl.java b/core/src/main/java/com/arangodb/internal/cursor/ArangoCursorImpl.java
index be5d24b28..0c279f15b 100644
--- a/core/src/main/java/com/arangodb/internal/cursor/ArangoCursorImpl.java
+++ b/core/src/main/java/com/arangodb/internal/cursor/ArangoCursorImpl.java
@@ -44,14 +44,14 @@ public class ArangoCursorImpl<T> implements ArangoCursor<T> {
     private final boolean allowRetry;
 
     public ArangoCursorImpl(final ArangoCursorExecute<T> execute,
-                            final Class<T> type, final CursorEntity<T> result) {
+                            final Class<T> type, final CursorEntity<T> result, final Boolean allowRetry) {
         super();
         this.execute = execute;
         this.type = type;
         id = result.getId();
         pontentialDirtyRead = result.isPotentialDirtyRead();
         iterator = new ArangoCursorIterator<>(id, execute, result);
-        this.allowRetry = result.getNextBatchId() != null;
+        this.allowRetry = Boolean.TRUE.equals(allowRetry);
     }
 
     @Override