diff --git a/redisson-tomcat/redisson-tomcat-6/src/main/java/org/redisson/tomcat/RedissonSessionManager.java b/redisson-tomcat/redisson-tomcat-6/src/main/java/org/redisson/tomcat/RedissonSessionManager.java index 8dfee2d22..a8b4c533a 100644 --- a/redisson-tomcat/redisson-tomcat-6/src/main/java/org/redisson/tomcat/RedissonSessionManager.java +++ b/redisson-tomcat/redisson-tomcat-6/src/main/java/org/redisson/tomcat/RedissonSessionManager.java @@ -181,12 +181,20 @@ public class RedissonSessionManager extends ManagerBase implements Lifecycle { Session result = super.findSession(id); if (result == null) { if (id != null) { - Map attrs = new HashMap(); + Map attrs = null; try { - attrs = getMap(id).getAll(RedissonSession.ATTRS); + RMap map = getMap(id); + if (map.isExists()) { + attrs = map.getAll(RedissonSession.ATTRS); + } } catch (Exception e) { log.error("Can't read session object by id: " + id, e); } + + if (attrs == null) { + log.info("Session " + id + " can't be found"); + return null; + } RedissonSession session = (RedissonSession) createEmptySession(); session.load(attrs); diff --git a/redisson-tomcat/redisson-tomcat-7/src/main/java/org/redisson/tomcat/RedissonSessionManager.java b/redisson-tomcat/redisson-tomcat-7/src/main/java/org/redisson/tomcat/RedissonSessionManager.java index 916ff692c..6de4fbd9e 100644 --- a/redisson-tomcat/redisson-tomcat-7/src/main/java/org/redisson/tomcat/RedissonSessionManager.java +++ b/redisson-tomcat/redisson-tomcat-7/src/main/java/org/redisson/tomcat/RedissonSessionManager.java @@ -160,12 +160,20 @@ public class RedissonSessionManager extends ManagerBase { Session result = super.findSession(id); if (result == null) { if (id != null) { - Map attrs = new HashMap(); + Map attrs = null; try { - attrs = getMap(id).getAll(RedissonSession.ATTRS); + RMap map = getMap(id); + if (map.isExists()) { + attrs = map.getAll(RedissonSession.ATTRS); + } } catch (Exception e) { log.error("Can't read session object by id: " + id, e); } + + if (attrs == null) { + log.info("Session " + id + " can't be found"); + return null; + } RedissonSession session = (RedissonSession) createEmptySession(); session.load(attrs); diff --git a/redisson-tomcat/redisson-tomcat-8/src/main/java/org/redisson/tomcat/RedissonSessionManager.java b/redisson-tomcat/redisson-tomcat-8/src/main/java/org/redisson/tomcat/RedissonSessionManager.java index 45ef7ba49..9d9afc489 100644 --- a/redisson-tomcat/redisson-tomcat-8/src/main/java/org/redisson/tomcat/RedissonSessionManager.java +++ b/redisson-tomcat/redisson-tomcat-8/src/main/java/org/redisson/tomcat/RedissonSessionManager.java @@ -159,13 +159,21 @@ public class RedissonSessionManager extends ManagerBase { Session result = super.findSession(id); if (result == null) { if (id != null) { - Map attrs = new HashMap(); + Map attrs = null; try { - attrs = getMap(id).getAll(RedissonSession.ATTRS); + RMap map = getMap(id); + if (map.isExists()) { + attrs = map.getAll(RedissonSession.ATTRS); + } } catch (Exception e) { log.error("Can't read session object by id: " + id, e); } - + + if (attrs == null) { + log.info("Session " + id + " can't be found"); + return null; + } + RedissonSession session = (RedissonSession) createEmptySession(); session.load(attrs); session.setId(id); diff --git a/redisson-tomcat/redisson-tomcat-9/src/main/java/org/redisson/tomcat/RedissonSessionManager.java b/redisson-tomcat/redisson-tomcat-9/src/main/java/org/redisson/tomcat/RedissonSessionManager.java index 45ef7ba49..a0001096f 100644 --- a/redisson-tomcat/redisson-tomcat-9/src/main/java/org/redisson/tomcat/RedissonSessionManager.java +++ b/redisson-tomcat/redisson-tomcat-9/src/main/java/org/redisson/tomcat/RedissonSessionManager.java @@ -159,12 +159,20 @@ public class RedissonSessionManager extends ManagerBase { Session result = super.findSession(id); if (result == null) { if (id != null) { - Map attrs = new HashMap(); + Map attrs = null; try { - attrs = getMap(id).getAll(RedissonSession.ATTRS); + RMap map = getMap(id); + if (map.isExists()) { + attrs = map.getAll(RedissonSession.ATTRS); + } } catch (Exception e) { log.error("Can't read session object by id: " + id, e); } + + if (attrs == null) { + log.info("Session " + id + " can't be found"); + return null; + } RedissonSession session = (RedissonSession) createEmptySession(); session.load(attrs);