lettuce icon indicating copy to clipboard operation
lettuce copied to clipboard

Eval lua script expects return integer but null

Open CodePlayer opened this issue 1 year ago • 0 comments

Bug Report

Current Behavior

There is a string key named a, which value is 1 in Redis. I want to read the value as Long by lua script. However, it returns null unexpectedlly.

Input Code

// code example
final RedisCommands<String, String> redisCommands = redisClient.connect().sync();
redisCommands.set("a", "1"); // SET a 1

String luaScript = "return redis.call('GET', KEYS[1])";
Long val = redisCommands.eval(luaScript, ScriptOutputType.INTEGER, "a");
System.out.println(val); // expect output "1" but "null"

Expected behavior/code

return 1 as expected ( OR maybe throw exception ) . Does NOT return null silently.

Environment

  • Lettuce version(s): 6.1.9.RELEASE
  • Redis version: 6.0.14

Possible Solution

Enhance type conversion compatibility. Throw an exception when the types are still not compatible.

Additional context

BTW, Redisson client works well in same situation.

CodePlayer avatar Sep 21 '22 03:09 CodePlayer