@Override public void run() { final InfoProvider locInfoProvider = InfoProviderManager.getFileProvider(); final IMessage locMessage = getMessage(); if (locMessage instanceof DisconnectMessage == false) { locInfoProvider.appendMessage( Level.SEVERE, "Le type du message est incorrect. Le message reçu est : " + locMessage); SystemUtil.close(getSocket()); return; } DisconnectMessage locDiscoMess = (DisconnectMessage) locMessage; // On supprime le user Caches.user().remove(locDiscoMess.getLogin()); // On supprime la partie final String partie = locDiscoMess.getPartie(); if (StringUtil.isNotEmpty(partie)) { final AbstractCache<String, Partie> locPartiesCache = Caches.parties(); final Partie locPartie = locPartiesCache.get(partie); if (locPartie.isEmpty()) { locPartiesCache.remove(partie); } } SystemUtil.close(getSocket()); }