From 518c03a4f86fb4c0882f5db4e549f9c4733cda09 Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer <paul-christian.volkmer@mni.thm.de> Date: Tue, 11 Jun 2013 08:43:07 +0200 Subject: [PATCH] Remove websocket sessionId from map on session destroy --- .../java/de/thm/arsnova/services/UserService.java | 2 +- .../arsnova/services/UserSessionServiceImpl.java | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main/java/de/thm/arsnova/services/UserService.java b/src/main/java/de/thm/arsnova/services/UserService.java index c76517ef5..d7e017981 100644 --- a/src/main/java/de/thm/arsnova/services/UserService.java +++ b/src/main/java/de/thm/arsnova/services/UserService.java @@ -258,7 +258,7 @@ public class UserService implements IUserService, InitializingBean, DisposableBe File tmpDir = new File(System.getProperty("java.io.tmpdir")); File store = new File(tmpDir, "arsnova.bin"); if (!store.exists()) { - if (! store.createNewFile()) { + if (!store.createNewFile()) { LOGGER.info("Could not create store file"); } } diff --git a/src/main/java/de/thm/arsnova/services/UserSessionServiceImpl.java b/src/main/java/de/thm/arsnova/services/UserSessionServiceImpl.java index e10a7b6c6..fcbdcbc79 100644 --- a/src/main/java/de/thm/arsnova/services/UserSessionServiceImpl.java +++ b/src/main/java/de/thm/arsnova/services/UserSessionServiceImpl.java @@ -3,8 +3,11 @@ package de.thm.arsnova.services; import java.io.Serializable; import java.util.UUID; +import javax.annotation.PreDestroy; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.context.annotation.ScopedProxyMode; import org.springframework.stereotype.Component; @@ -26,6 +29,17 @@ public class UserSessionServiceImpl implements UserSessionService, Serializable private Session session; private UUID socketId; + @Autowired + private IUserService userService; + + @PreDestroy + public void tearDown() { + if ( socketId != null ) { + LOGGER.info("Removing websocket session {}", socketId); + userService.removeUser2SocketId(socketId); + } + } + @Override public void setUser(User u) { this.user = u; -- GitLab