Skip to content

BZPOPMIN & BZPOPMAX throws NPE when sorted set is empty #3928

@JW-Vinay

Description

@JW-Vinay

Expected behavior

BZPOPMIN & BZPOPMAX should return null when the key doesn't exist

Actual behavior

Throws an NPE when the key does not exist
StackTrace

Exception in thread "main" java.lang.NullPointerException: Cannot invoke "java.util.List.isEmpty()" because "l" is null
	at redis.clients.jedis.BuilderFactory$36.build(BuilderFactory.java:599)
	at redis.clients.jedis.BuilderFactory$36.build(BuilderFactory.java:594)
	at redis.clients.jedis.Connection.executeCommand(Connection.java:141)
	at redis.clients.jedis.Jedis.bzpopmin(Jedis.java:7144)
	at com.yext.dataingestion.source.scripts.JedisScriptTesting.test(JedisScriptTesting.java:154)
	at com.yext.dataingestion.source.scripts.JedisScriptTesting.main(JedisScriptTesting.java:137)

Steps to reproduce:

void test() {
  var pool = new JedisSentinelPool("<master>", sentinels, poolConfig, Protocol.DEFAULT_TIMEOUT);
  var jedis = pool.getResource();
  var r = jedis.bzpopmin(0.2, "test"); // throws NPE
}

Redis / Jedis Configuration

Jedis version:

Jedis 5.1.4

Redis version:

7.0.12

Java version:

Java -17

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions