public void logoff() { pendingLogoff = true; logoffAck(); while (!queuedServerReplies.isEmpty()) { TransportObject reply = null; try { reply = queuedServerReplies.poll(); if (reply != null) sent.writeObject(reply); } catch (SocketException e) { System.err.println(e); } catch (Exception e) { if (reply != null && reply.getCommand().equals(Command.send)) { User sender = (User) server.getUser(reply.getSender()); if (sender != null) { TransportObject error = new TransportObject(ServerReply.sendack, reply.getSQN()); sender.queueReply(error); } } } } loggedOff = true; }