Some minor changes to debug logging messages and server user handling.

This commit is contained in:
LevelX2 2014-04-24 08:26:37 +02:00
parent 64e0b4d1b9
commit 90b3e75435
5 changed files with 25 additions and 11 deletions

View file

@ -159,10 +159,10 @@ public class ChatManager {
}
public void removeUser(UUID userId, User.DisconnectReason reason) {
Logger.getLogger(ChatManager.class).debug("Remove user start");
Logger.getLogger(ChatManager.class).debug("ChatManager: Remove user start");
for (ChatSession chat: chatSessions.values()) {
chat.kill(userId, reason);
}
Logger.getLogger(ChatManager.class).debug("Remove user end");
Logger.getLogger(ChatManager.class).debug("ChatManager: Remove user end");
}
}

View file

@ -66,12 +66,11 @@ public class ChatSession {
}
synchronized public void kill(UUID userId, User.DisconnectReason reason) {
if (userId != null && clients.containsKey(userId)) {
logger.debug("kill user: Start kill userId " + userId);
if (userId != null && clients.containsKey(userId)) {
String userName = clients.get(userId);
String message;
logger.debug(userName + " leaves chat: " + chatId);
clients.remove(userId);
logger.debug("kill user: After remove " + userId);
String message;
switch (reason) {
case Disconnected:
message = " has left MAGE";
@ -83,7 +82,7 @@ public class ChatSession {
message = " has left chat";
}
broadcast(null, new StringBuilder(userName).append(message).toString(), MessageColor.BLUE, true, MessageType.STATUS);
logger.debug("kill user: " + userName + message + " " + chatId);
logger.debug(userName + "left chat with reason " + message + " " + chatId);
}
}

View file

@ -207,7 +207,8 @@ public class TableManager {
}
public void leaveTable(UUID userId, UUID tableId) {
if (controllers.containsKey(tableId)) {
TableController tableController = controllers.get(tableId);
if (tableController != null) {
// table not started yet and user is the owner, remove the table
Table table = getTable(tableId);
if (table != null
@ -217,7 +218,7 @@ public class TableManager {
removeTable(tableId);
} else {
controllers.get(tableId).leaveTable(userId);
tableController.leaveTable(userId);
}
}
}

View file

@ -321,15 +321,19 @@ public class User {
}
public void kill(DisconnectReason reason) {
logger.debug("kill: game sessions " + gameSessions.size());
for (GameSession gameSession: gameSessions.values()) {
gameSession.kill();
}
logger.debug("kill: draft sessions " + draftSessions.size());
for (DraftSession draftSession: draftSessions.values()) {
draftSession.setKilled();
}
logger.debug("kill: tournament sessions " + tournamentSessions.size());
for (TournamentSession tournamentSession: tournamentSessions.values()) {
tournamentSession.setKilled();
}
logger.debug("kill: tables " + tables.size());
for (Entry<UUID, Table> entry: tables.entrySet()) {
TableManager.getInstance().leaveTable(userId, entry.getValue().getId());
}

View file

@ -58,6 +58,16 @@ public class UserManager {
}
private UserManager() {
Thread.setDefaultUncaughtExceptionHandler(
new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread t, Throwable e) {
System.out.println(t.getName() + ": " + e.getMessage());
e.printStackTrace();
}
});
expireExecutor.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
@ -109,7 +119,7 @@ public class UserManager {
if (users.containsKey(userId)) {
User user = users.get(userId);
user.setSessionId(""); // Session will be set again with new id if user reconnects
ChatManager.getInstance().broadcast(userId, "has lost connection", MessageColor.BLACK);
// ChatManager.getInstance().broadcast(userId, "has lost connection", MessageColor.BLACK);
logger.info(new StringBuilder("User ").append(user.getName()).append(" has lost connection userId:").append(userId));
}
ChatManager.getInstance().removeUser(userId, reason);
@ -130,8 +140,8 @@ public class UserManager {
.append(" userId: ").append(userId)
.append(" sessionId: ").append(user.getSessionId())
.append(" Reason: ").append(reason.toString()));
ChatManager.getInstance().removeUser(userId, reason);
ChatManager.getInstance().broadcast(userId, new StringBuilder("has disconnected (").append(reason.toString()).append(")").toString(), MessageColor.BLACK);
ChatManager.getInstance().removeUser(userId, reason);
users.get(userId).kill(reason);
users.remove(userId);
} else {