Closed
Description
This is same underlying issue as #1270, with a small twist—the exception message has more detail.
Describe the bug
We’re using RedissonConnectionFactory
with our RedisOperationsSessionRepository
(we’re still on Spring Session 2.1.13). Redisson’s exception handling adds a little extra context to the exception message, so this check in handleErrNoSuchKeyError
fails:
if (!"ERR no such key".equals(NestedExceptionUtils.getMostSpecificCause(ex).getMessage())) {
// NestedExceptionUtils.getMostSpecificCause(ex).getMessage() →
// "ERR no such key. channel: [id: 0xec125091, L:/100.96.17.194:46330 - R:redis/100.67.2.163:6379] command: (RENAME), params: [[115, 112, 114, 105, 110, 103, 58, 115, 101, 115, ...], [115, 112, 114, 105, 110, 103, 58, 115, 101, 115, ...]]"
throw ex;
}
and the exception bubbles up.
To Reproduce
Make concurrent requests with the same session ID, which both result in changing the session ID—typically via session fixation prevention.
Expected behavior
The session repository gracefully handle concurrent requests that change the session ID.