diff --git a/redisson-spring-data/redisson-spring-data-16/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java b/redisson-spring-data/redisson-spring-data-16/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java index 8ac806eda..3768209a2 100644 --- a/redisson-spring-data/redisson-spring-data-16/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java +++ b/redisson-spring-data/redisson-spring-data-16/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java @@ -160,7 +160,9 @@ public class RedissonConnection extends AbstractRedisConnection { @Override public Object execute(String command, byte[]... args) { for (Method method : this.getClass().getDeclaredMethods()) { - if (method.getName().equalsIgnoreCase(command) && Modifier.isPublic(method.getModifiers())) { + if (method.getName().equalsIgnoreCase(command) + && Modifier.isPublic(method.getModifiers()) + && (method.getParameterTypes().length == args.length)) { try { Object t = execute(method, args); if (t instanceof String) { diff --git a/redisson-spring-data/redisson-spring-data-17/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java b/redisson-spring-data/redisson-spring-data-17/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java index c1c033118..08c30f618 100644 --- a/redisson-spring-data/redisson-spring-data-17/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java +++ b/redisson-spring-data/redisson-spring-data-17/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java @@ -179,7 +179,9 @@ public class RedissonConnection extends AbstractRedisConnection { @Override public Object execute(String command, byte[]... args) { for (Method method : this.getClass().getDeclaredMethods()) { - if (method.getName().equalsIgnoreCase(command) && Modifier.isPublic(method.getModifiers())) { + if (method.getName().equalsIgnoreCase(command) + && Modifier.isPublic(method.getModifiers()) + && (method.getParameterTypes().length == args.length)) { try { Object t = execute(method, args); if (t instanceof String) { diff --git a/redisson-spring-data/redisson-spring-data-18/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java b/redisson-spring-data/redisson-spring-data-18/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java index 38959e609..a517be55f 100644 --- a/redisson-spring-data/redisson-spring-data-18/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java +++ b/redisson-spring-data/redisson-spring-data-18/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java @@ -182,7 +182,9 @@ public class RedissonConnection extends AbstractRedisConnection { @Override public Object execute(String command, byte[]... args) { for (Method method : this.getClass().getDeclaredMethods()) { - if (method.getName().equalsIgnoreCase(command) && Modifier.isPublic(method.getModifiers())) { + if (method.getName().equalsIgnoreCase(command) + && Modifier.isPublic(method.getModifiers()) + && (method.getParameterTypes().length == args.length)) { try { Object t = execute(method, args); if (t instanceof String) { diff --git a/redisson-spring-data/redisson-spring-data-20/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java b/redisson-spring-data/redisson-spring-data-20/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java index 327235f5d..7f4e14cf4 100644 --- a/redisson-spring-data/redisson-spring-data-20/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java +++ b/redisson-spring-data/redisson-spring-data-20/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java @@ -164,7 +164,9 @@ public class RedissonConnection extends AbstractRedisConnection { @Override public Object execute(String command, byte[]... args) { for (Method method : this.getClass().getDeclaredMethods()) { - if (method.getName().equalsIgnoreCase(command) && Modifier.isPublic(method.getModifiers())) { + if (method.getName().equalsIgnoreCase(command) + && Modifier.isPublic(method.getModifiers()) + && (method.getParameterTypes().length == args.length)) { try { Object t = execute(method, args); if (t instanceof String) { diff --git a/redisson-spring-data/redisson-spring-data-21/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java b/redisson-spring-data/redisson-spring-data-21/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java index e9f15aeba..935341c33 100644 --- a/redisson-spring-data/redisson-spring-data-21/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java +++ b/redisson-spring-data/redisson-spring-data-21/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java @@ -157,7 +157,9 @@ public class RedissonConnection extends AbstractRedisConnection { @Override public Object execute(String command, byte[]... args) { for (Method method : this.getClass().getDeclaredMethods()) { - if (method.getName().equalsIgnoreCase(command) && Modifier.isPublic(method.getModifiers())) { + if (method.getName().equalsIgnoreCase(command) + && Modifier.isPublic(method.getModifiers()) + && (method.getParameterTypes().length == args.length)) { try { Object t = execute(method, args); if (t instanceof String) { diff --git a/redisson-spring-data/redisson-spring-data-22/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java b/redisson-spring-data/redisson-spring-data-22/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java index 9ee24aebd..bc9b50339 100644 --- a/redisson-spring-data/redisson-spring-data-22/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java +++ b/redisson-spring-data/redisson-spring-data-22/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java @@ -157,7 +157,9 @@ public class RedissonConnection extends AbstractRedisConnection { @Override public Object execute(String command, byte[]... args) { for (Method method : this.getClass().getDeclaredMethods()) { - if (method.getName().equalsIgnoreCase(command) && Modifier.isPublic(method.getModifiers())) { + if (method.getName().equalsIgnoreCase(command) + && Modifier.isPublic(method.getModifiers()) + && (method.getParameterTypes().length == args.length)) { try { Object t = execute(method, args); if (t instanceof String) { diff --git a/redisson-spring-data/redisson-spring-data-23/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java b/redisson-spring-data/redisson-spring-data-23/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java index 469f1ccb3..66a29f5c9 100644 --- a/redisson-spring-data/redisson-spring-data-23/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java +++ b/redisson-spring-data/redisson-spring-data-23/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java @@ -157,7 +157,9 @@ public class RedissonConnection extends AbstractRedisConnection { @Override public Object execute(String command, byte[]... args) { for (Method method : this.getClass().getDeclaredMethods()) { - if (method.getName().equalsIgnoreCase(command) && Modifier.isPublic(method.getModifiers())) { + if (method.getName().equalsIgnoreCase(command) + && Modifier.isPublic(method.getModifiers()) + && (method.getParameterTypes().length == args.length)) { try { Object t = execute(method, args); if (t instanceof String) { diff --git a/redisson-spring-data/redisson-spring-data-24/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java b/redisson-spring-data/redisson-spring-data-24/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java index 2423ab535..4bb0c764e 100644 --- a/redisson-spring-data/redisson-spring-data-24/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java +++ b/redisson-spring-data/redisson-spring-data-24/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java @@ -157,7 +157,9 @@ public class RedissonConnection extends AbstractRedisConnection { @Override public Object execute(String command, byte[]... args) { for (Method method : this.getClass().getDeclaredMethods()) { - if (method.getName().equalsIgnoreCase(command) && Modifier.isPublic(method.getModifiers())) { + if (method.getName().equalsIgnoreCase(command) + && Modifier.isPublic(method.getModifiers()) + && (method.getParameterTypes().length == args.length)) { try { Object t = execute(method, args); if (t instanceof String) { diff --git a/redisson-spring-data/redisson-spring-data-25/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java b/redisson-spring-data/redisson-spring-data-25/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java index 66bf0270f..0de52cef5 100644 --- a/redisson-spring-data/redisson-spring-data-25/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java +++ b/redisson-spring-data/redisson-spring-data-25/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java @@ -157,7 +157,9 @@ public class RedissonConnection extends AbstractRedisConnection { @Override public Object execute(String command, byte[]... args) { for (Method method : this.getClass().getDeclaredMethods()) { - if (method.getName().equalsIgnoreCase(command) && Modifier.isPublic(method.getModifiers())) { + if (method.getName().equalsIgnoreCase(command) + && Modifier.isPublic(method.getModifiers()) + && (method.getParameterTypes().length == args.length)) { try { Object t = execute(method, args); if (t instanceof String) { diff --git a/redisson-spring-data/redisson-spring-data-26/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java b/redisson-spring-data/redisson-spring-data-26/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java index 66bf0270f..0de52cef5 100644 --- a/redisson-spring-data/redisson-spring-data-26/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java +++ b/redisson-spring-data/redisson-spring-data-26/src/main/java/org/redisson/spring/data/connection/RedissonConnection.java @@ -157,7 +157,9 @@ public class RedissonConnection extends AbstractRedisConnection { @Override public Object execute(String command, byte[]... args) { for (Method method : this.getClass().getDeclaredMethods()) { - if (method.getName().equalsIgnoreCase(command) && Modifier.isPublic(method.getModifiers())) { + if (method.getName().equalsIgnoreCase(command) + && Modifier.isPublic(method.getModifiers()) + && (method.getParameterTypes().length == args.length)) { try { Object t = execute(method, args); if (t instanceof String) { diff --git a/redisson-spring-data/redisson-spring-data-26/src/test/java/org/redisson/spring/data/connection/RedissonConnectionTest.java b/redisson-spring-data/redisson-spring-data-26/src/test/java/org/redisson/spring/data/connection/RedissonConnectionTest.java index 59ef0d7cb..b584f4bd3 100644 --- a/redisson-spring-data/redisson-spring-data-26/src/test/java/org/redisson/spring/data/connection/RedissonConnectionTest.java +++ b/redisson-spring-data/redisson-spring-data-26/src/test/java/org/redisson/spring/data/connection/RedissonConnectionTest.java @@ -19,6 +19,13 @@ import java.util.Set; public class RedissonConnectionTest extends BaseConnectionTest { + @Test + public void testExecute() { + Long s = (Long) connection.execute("ttl", "key".getBytes()); + assertThat(s).isEqualTo(-2); + connection.execute("flushDb"); + } + @Test public void testRandomMembers() { RedisTemplate redisTemplate = new RedisTemplate<>();