diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/messaging/CursorReadingTask.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/messaging/CursorReadingTask.java index 8c6c03466..6aa24cb1a 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/messaging/CursorReadingTask.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/messaging/CursorReadingTask.java @@ -91,7 +91,7 @@ abstract class CursorReadingTask implements Task { synchronized (lifecycleMonitor) { state = State.CANCELLED; } - Thread.interrupted(); + Thread.currentThread().interrupt(); } } } @@ -126,7 +126,7 @@ abstract class CursorReadingTask implements Task { if (valid) { this.cursor = cursor; state = State.RUNNING; - } else { + } else if(cursor != null){ cursor.close(); } } @@ -141,7 +141,7 @@ abstract class CursorReadingTask implements Task { synchronized (lifecycleMonitor) { state = State.CANCELLED; } - Thread.interrupted(); + Thread.currentThread().interrupt(); } } } while (State.STARTING.equals(getState())); @@ -258,7 +258,7 @@ abstract class CursorReadingTask implements Task { * @throws RuntimeException The potentially translated exception. */ @Nullable - private T execute(Supplier callback) { + private V execute(Supplier callback) { try { return callback.get();