From 2a4c941c80c1c017ef755afa8bf46bc878080bce Mon Sep 17 00:00:00 2001 From: Junghoon Ban Date: Mon, 11 Dec 2023 15:48:02 +0900 Subject: [PATCH] Use getRequiredAdapter to avoid NPE. --- .../data/redis/core/RedisQueryEngine.java | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/springframework/data/redis/core/RedisQueryEngine.java b/src/main/java/org/springframework/data/redis/core/RedisQueryEngine.java index 82d8da2a14..d7bb0f327a 100644 --- a/src/main/java/org/springframework/data/redis/core/RedisQueryEngine.java +++ b/src/main/java/org/springframework/data/redis/core/RedisQueryEngine.java @@ -48,6 +48,7 @@ * * @author Christoph Strobl * @author Mark Paluch + * @author Junghoon Ban * @since 1.7 */ class RedisQueryEngine extends QueryEngine> { @@ -89,7 +90,7 @@ private List doFind(RedisOperationChain criteria, long offset, int rows, if (criteria == null || (CollectionUtils.isEmpty(criteria.getOrSismember()) && CollectionUtils.isEmpty(criteria.getSismember())) && criteria.getNear() == null) { - return getAdapter().getAllOf(keyspace, type, offset, rows); + return getRequiredAdapter().getAllOf(keyspace, type, offset, rows); } RedisCallback>> callback = connection -> { @@ -118,7 +119,8 @@ private List doFind(RedisOperationChain criteria, long offset, int rows, } } - byte[] keyspaceBin = getAdapter().getConverter().getConversionService().convert(keyspace + ":", byte[].class); + byte[] keyspaceBin = getRequiredAdapter().getConverter().getConversionService().convert(keyspace + ":", + byte[].class); Map> rawData = new LinkedHashMap<>(); @@ -139,7 +141,7 @@ private List doFind(RedisOperationChain criteria, long offset, int rows, return rawData; }; - Map> raw = this.getAdapter().execute(callback); + Map> raw = this.getRequiredAdapter().execute(callback); List result = new ArrayList<>(raw.size()); for (Map.Entry> entry : raw.entrySet()) { @@ -149,10 +151,10 @@ private List doFind(RedisOperationChain criteria, long offset, int rows, } RedisData data = new RedisData(entry.getValue()); - data.setId(getAdapter().getConverter().getConversionService().convert(entry.getKey(), String.class)); + data.setId(getRequiredAdapter().getConverter().getConversionService().convert(entry.getKey(), String.class)); data.setKeyspace(keyspace); - T converted = this.getAdapter().getConverter().read(type, data); + T converted = this.getRequiredAdapter().getConverter().read(type, data); result.add(converted); } @@ -169,10 +171,10 @@ public Collection execute(RedisOperationChain criteria, Comparator sort, l public long count(RedisOperationChain criteria, String keyspace) { if (criteria == null || criteria.isEmpty()) { - return this.getAdapter().count(keyspace); + return this.getRequiredAdapter().count(keyspace); } - return this.getAdapter().execute(connection -> { + return this.getRequiredAdapter().execute(connection -> { long result = 0; @@ -194,9 +196,9 @@ private byte[][] keys(String prefix, Collection source) { int i = 0; for (PathAndValue pathAndValue : source) { - byte[] convertedValue = getAdapter().getConverter().getConversionService().convert(pathAndValue.getFirstValue(), - byte[].class); - byte[] fullPath = getAdapter().getConverter().getConversionService() + byte[] convertedValue = getRequiredAdapter().getConverter().getConversionService() + .convert(pathAndValue.getFirstValue(), byte[].class); + byte[] fullPath = getRequiredAdapter().getConverter().getConversionService() .convert(prefix + pathAndValue.getPath() + ":", byte[].class); keys[i] = ByteUtils.concat(fullPath, convertedValue); @@ -208,7 +210,7 @@ private byte[][] keys(String prefix, Collection source) { private byte[] geoKey(String prefix, NearPath source) { String path = GeoIndexedPropertyValue.geoIndexName(source.getPath()); - return getAdapter().getConverter().getConversionService().convert(prefix + path, byte[].class); + return getRequiredAdapter().getConverter().getConversionService().convert(prefix + path, byte[].class); }