diff --git a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceReactiveClusterKeyCommands.java b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceReactiveClusterKeyCommands.java index 4233987eb..082f66e76 100644 --- a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceReactiveClusterKeyCommands.java +++ b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceReactiveClusterKeyCommands.java @@ -87,7 +87,7 @@ public class LettuceReactiveClusterKeyCommands extends LettuceReactiveKeyCommand } Mono result = cmd.dump(command.getKey()) - .otherwiseIfEmpty(Mono.error(new RedisSystemException("Cannot rename key that does not exist", + .switchIfEmpty(Mono.error(new RedisSystemException("Cannot rename key that does not exist", new RedisException("ERR no such key.")))) .flatMap(value -> cmd.restore(command.getNewName(), 0, value).flatMap(res -> cmd.del(command.getKey()))) .map(LettuceConverters.longToBooleanConverter()::convert); @@ -119,7 +119,7 @@ public class LettuceReactiveClusterKeyCommands extends LettuceReactiveKeyCommand } return cmd.dump(command.getKey()) - .otherwiseIfEmpty(Mono.error(new RedisSystemException("Cannot rename key that does not exist", + .switchIfEmpty(Mono.error(new RedisSystemException("Cannot rename key that does not exist", new RedisException("ERR no such key.")))) .flatMap(value -> cmd.restore(command.getNewName(), 0, value).flatMap(res -> cmd.del(command.getKey()))) .map(LettuceConverters.longToBooleanConverter()::convert); diff --git a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceReactiveHashCommands.java b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceReactiveHashCommands.java index 1d899382e..89e9581db 100644 --- a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceReactiveHashCommands.java +++ b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceReactiveHashCommands.java @@ -105,7 +105,7 @@ public class LettuceReactiveHashCommands implements ReactiveHashCommands { if (command.getFields().size() == 1) { ByteBuffer key = command.getFields().iterator().next(); result = cmd.hget(command.getKey(), key.duplicate()).map(value -> KeyValue.fromNullable(key, value)) - .map(Collections::singletonList).otherwiseReturn(Collections.emptyList()); + .map(Collections::singletonList).onErrorReturn(Collections.emptyList()); } else { result = cmd.hmget(command.getKey(), command.getFields().stream().toArray(ByteBuffer[]::new)).collectList(); } diff --git a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceReactiveRedisClusterConnection.java b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceReactiveRedisClusterConnection.java index 22dc9e24f..361d918dd 100644 --- a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceReactiveRedisClusterConnection.java +++ b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceReactiveRedisClusterConnection.java @@ -125,7 +125,7 @@ public class LettuceReactiveRedisClusterConnection extends LettuceReactiveRedisC return Flux.error(e); } - return Flux.defer(() -> callback.doWithCommands(getCommands(node))).onErrorResumeWith(translateExeception()); + return Flux.defer(() -> callback.doWithCommands(getCommands(node))).onErrorMap(translateException()); } /* (non-Javadoc) diff --git a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceReactiveRedisConnection.java b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceReactiveRedisConnection.java index 18d12c580..8894b20fd 100644 --- a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceReactiveRedisConnection.java +++ b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceReactiveRedisConnection.java @@ -31,20 +31,12 @@ import java.util.function.Function; import org.reactivestreams.Publisher; import org.springframework.dao.DataAccessException; import org.springframework.dao.InvalidDataAccessResourceUsageException; -import org.springframework.data.redis.connection.ReactiveGeoCommands; -import org.springframework.data.redis.connection.ReactiveHashCommands; -import org.springframework.data.redis.connection.ReactiveHyperLogLogCommands; -import org.springframework.data.redis.connection.ReactiveKeyCommands; -import org.springframework.data.redis.connection.ReactiveListCommands; -import org.springframework.data.redis.connection.ReactiveNumberCommands; -import org.springframework.data.redis.connection.ReactiveRedisConnection; -import org.springframework.data.redis.connection.ReactiveSetCommands; -import org.springframework.data.redis.connection.ReactiveStringCommands; -import org.springframework.data.redis.connection.ReactiveZSetCommands; +import org.springframework.data.redis.connection.*; import org.springframework.util.Assert; /** * @author Christoph Strobl + * @author Mark Paluch * @since 2.0 */ public class LettuceReactiveRedisConnection implements ReactiveRedisConnection { @@ -145,7 +137,7 @@ public class LettuceReactiveRedisConnection implements ReactiveRedisConnection { * @return */ public Flux execute(LettuceReactiveCallback callback) { - return Flux.defer(() -> callback.doWithCommands(getCommands())).onErrorResumeWith(translateExeception()); + return Flux.defer(() -> callback.doWithCommands(getCommands())).onErrorMap(translateException()); } /* (non-Javadoc) @@ -171,20 +163,18 @@ public class LettuceReactiveRedisConnection implements ReactiveRedisConnection { throw new RuntimeException("o.O unknown connection type " + connection); } - Function> translateExeception() { + Function translateException() { return throwable -> { if (throwable instanceof RuntimeException) { - DataAccessException convertedException = null; - if (throwable instanceof RuntimeException) { - convertedException = LettuceConverters.exceptionConverter().convert((RuntimeException) throwable); - } - return Flux.error(convertedException != null ? convertedException : throwable); + DataAccessException convertedException = LettuceConverters.exceptionConverter() + .convert((RuntimeException) throwable); + return convertedException != null ? convertedException : throwable; } - return Flux.error(throwable); + return throwable; }; } diff --git a/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceReactiveKeyCommandsTests.java b/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceReactiveKeyCommandsTests.java index d58b09112..68ba0f183 100644 --- a/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceReactiveKeyCommandsTests.java +++ b/src/test/java/org/springframework/data/redis/connection/lettuce/LettuceReactiveKeyCommandsTests.java @@ -110,7 +110,7 @@ public class LettuceReactiveKeyCommandsTests extends LettuceReactiveCommandsTest } @Test(expected = RedisSystemException.class) // DATAREDIS-525 - public void renameShouldThrowErrorWhenKeyDoesNotExit() { + public void renameShouldThrowErrorWhenKeyDoesNotExist() { assertThat(connection.keyCommands().rename(KEY_1_BBUFFER, KEY_2_BBUFFER).block(), is(true)); }