diff --git a/serversession-backend-acid-state/src/Web/ServerSession/Backend/Acid/Internal.hs b/serversession-backend-acid-state/src/Web/ServerSession/Backend/Acid/Internal.hs index 12ae658..81df8a1 100644 --- a/serversession-backend-acid-state/src/Web/ServerSession/Backend/Acid/Internal.hs +++ b/serversession-backend-acid-state/src/Web/ServerSession/Backend/Acid/Internal.hs @@ -139,7 +139,7 @@ replaceSession :: SS.Session -> Update ServerSessionAcidState () replaceSession session = do -- Check that the old session exists while replacing it. ServerSessionAcidState sits aits <- get - let (moldSession, sits') = M.updateLookupWithKey (\_ _ -> Just session) sid sits + let (moldSession, sits') = M.insertLookupWithKey (\_ v _ -> v) sid session sits sid = SS.sessionKey session case moldSession of Nothing -> E.throw $ SS.SessionDoesNotExist session diff --git a/serversession/tests/Main.hs b/serversession/tests/Main.hs index 095647b..789d925 100644 --- a/serversession/tests/Main.hs +++ b/serversession/tests/Main.hs @@ -307,7 +307,7 @@ instance Storage MockStorage where replaceSession sto session = join $ I.atomicModifyIORef' (mockSessions sto) $ \oldMap -> let (moldVal, newMap) = - M.updateLookupWithKey (\_ _ -> Just session) (sessionKey session) oldMap + M.insertLookupWithKey (\_ v _ -> v) (sessionKey session) session oldMap in maybe (oldMap, E.throwIO $ SessionDoesNotExist session) (const (newMap, return ()))