From 267decf1897e2e592c457c6ded3f1edea3cc0047 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Wed, 9 Jan 2019 12:03:56 +0100 Subject: [PATCH] DATAMONGO-2173 - Polishing. Set interrupted thread state after catching InterruptedException. Fix potential NPE by checking the cursor. Streamline generics to not hide class-level generic types. Original pull request: #634. --- .../data/mongodb/core/messaging/CursorReadingTask.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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();