diff --git a/spring-session-core/src/main/java/org/springframework/session/MapSessionRepository.java b/spring-session-core/src/main/java/org/springframework/session/MapSessionRepository.java index 782888e1..ef1150f1 100644 --- a/spring-session-core/src/main/java/org/springframework/session/MapSessionRepository.java +++ b/spring-session-core/src/main/java/org/springframework/session/MapSessionRepository.java @@ -76,8 +76,9 @@ public class MapSessionRepository implements SessionRepository { this.defaultMaxInactiveInterval = Integer.valueOf(defaultMaxInactiveInterval); } - public void save(Session session) { + public Session save(Session session) { this.sessions.put(session.getId(), new MapSession(session)); + return session; } public Session getSession(String id) { diff --git a/spring-session-core/src/main/java/org/springframework/session/SessionRepository.java b/spring-session-core/src/main/java/org/springframework/session/SessionRepository.java index 3061b75f..7e9a1c36 100644 --- a/spring-session-core/src/main/java/org/springframework/session/SessionRepository.java +++ b/spring-session-core/src/main/java/org/springframework/session/SessionRepository.java @@ -52,7 +52,7 @@ public interface SessionRepository { * * @param session the {@link Session} to save */ - void save(S session); + S save(S session); /** * Gets the {@link Session} by the {@link Session#getId()} or null if no diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisOperationsSessionRepository.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisOperationsSessionRepository.java index 7ee2fb68..3958d92c 100644 --- a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisOperationsSessionRepository.java +++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisOperationsSessionRepository.java @@ -386,13 +386,14 @@ public class RedisOperationsSessionRepository implements this.redisFlushMode = redisFlushMode; } - public void save(RedisSession session) { + public RedisSession save(RedisSession session) { session.saveDelta(); if (session.isNew()) { String sessionCreatedKey = getSessionCreatedChannel(session.getId()); this.sessionRedisOperations.convertAndSend(sessionCreatedKey, session.delta); session.setNew(false); } + return session; } @Scheduled(cron = "${spring.session.cleanup.cron.expression:0 * * * * *}") diff --git a/spring-session-hazelcast/src/main/java/org/springframework/session/hazelcast/HazelcastSessionRepository.java b/spring-session-hazelcast/src/main/java/org/springframework/session/hazelcast/HazelcastSessionRepository.java index 4f3cb8c1..3abab3d3 100644 --- a/spring-session-hazelcast/src/main/java/org/springframework/session/hazelcast/HazelcastSessionRepository.java +++ b/spring-session-hazelcast/src/main/java/org/springframework/session/hazelcast/HazelcastSessionRepository.java @@ -202,12 +202,13 @@ public class HazelcastSessionRepository implements return result; } - public void save(HazelcastSession session) { + public HazelcastSession save(HazelcastSession session) { if (session.isChanged()) { this.sessions.put(session.getId(), session.getDelegate(), session.getMaxInactiveInterval().getSeconds(), TimeUnit.SECONDS); session.markUnchanged(); } + return session; } public HazelcastSession getSession(String id) { diff --git a/spring-session-jdbc/src/main/java/org/springframework/session/jdbc/JdbcOperationsSessionRepository.java b/spring-session-jdbc/src/main/java/org/springframework/session/jdbc/JdbcOperationsSessionRepository.java index 516e71a1..f3e18ea4 100644 --- a/spring-session-jdbc/src/main/java/org/springframework/session/jdbc/JdbcOperationsSessionRepository.java +++ b/spring-session-jdbc/src/main/java/org/springframework/session/jdbc/JdbcOperationsSessionRepository.java @@ -371,7 +371,7 @@ public class JdbcOperationsSessionRepository implements return session; } - public void save(final JdbcSession session) { + public JdbcSession save(final JdbcSession session) { if (session.isNew()) { this.transactionOperations.execute(new TransactionCallbackWithoutResult() { @@ -458,6 +458,7 @@ public class JdbcOperationsSessionRepository implements }); } session.clearChangeFlags(); + return session; } public JdbcSession getSession(final String id) {