InMemoryRepository implements SessionRepository { @Override public void sessionIdChange(SessionData sessionData) { String id = id(sessionData.getId()); String oldId = id(sessionData.getOriginalId()); SessionData originalSessionData = sessionDataCache.get(oldId); if (originalSessionData != null) { sessionDataCache.put(id, originalSessionData); sessionDataCache.remove(oldId); originalSessionData.setNewSessionId(sessionData.getId()); } Map<String, Object> attributes = sessionAttributeCache.remove(oldId); if (attributes != null) { sessionAttributeCache.put(id, attributes); sessionAttributeCache.remove(oldId); } } InMemoryRepository(String namespace); @Override SessionData getSessionData(String id); @Override void storeSessionData(SessionData sessionData); @Override Set<String> getAllKeys(SessionData session); @Override Object getSessionAttribute(SessionData session, String attribute); @Override void remove(SessionData session); @Override boolean prepareRemove(SessionData session); @Override SessionRepository.CommitTransaction startCommit(SessionData session); @Override void setSessionManager(final SessionManager sessionManager); @Override void requestFinished(); @Override void setSessionAttribute(SessionData session, String name, Object value); @Override void removeSessionAttribute(SessionData session, String name); @Override boolean cleanSessionsOnShutdown(); @Override Collection<String> getOwnedSessionIds(); @Override void close(); @Override void reset(); @Override void sessionIdChange(SessionData sessionData); @Override boolean isConnected();  }
@Test public void testSessionIdChange() { SessionData sessionData = new SessionData("test", 1000, 10); repository.storeSessionData(sessionData); repository.setSessionAttribute(sessionData, "name", "value"); SessionData sessionData2 = new SessionData("test", 1000, 10); sessionData2.setNewSessionId("test2"); repository.sessionIdChange(sessionData2); assertNotNull(repository.getSessionAttribute(sessionData2, "name")); SessionData sessionDataOrig = new SessionData("test", 1000, 10); assertNull(repository.getSessionAttribute(sessionDataOrig, "name")); }