Fix NPE when maxAttempts = 0 in RetryableCommandExecutor #4187
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes a
NullPointerException
whenmaxAttempts = 0
inRetryableCommandExecutor
. When no retries are allowed,lastException
remainsnull
, and callingaddSuppressed(lastException)
throws:java.lang.NullPointerException: Cannot suppress a null exception
This fix checks for null before suppressing.
Reproducible with:
JedisCluster jedis = new JedisCluster( new HostAndPort("localhost", 6379), 2000, // connection timeout 2000, // soTimeout 0, // maxAttempts null, // password new JedisPoolConfig() ); jedis.set("key", "value"); // NPE thrown
Confirmed on: Jedis 3.9.0
master branch (RetryableCommandExecutor.java#L71