Вот так валидатор не принимает:
while (true) {
                Message message = connection.receive();
                if (connection.receive().getType() == MessageType.TEXT) {
                    String mess = userName + ": " + message.getData();
                    Message message1 = new Message(MessageType.TEXT, mess);
                    Server.sendBroadcastMessage(message1);
                } else {
                    ConsoleHelper.writeMessage("Error!");
                }
            }
А вот так принимает:
while (true) {
                Message message = connection.receive();
                if (message.getType() == MessageType.TEXT) {
                    String mess = userName + ": " + message.getData();
                    Message message1 = new Message(MessageType.TEXT, mess);
                    Server.sendBroadcastMessage(message1);
                } else {
                    ConsoleHelper.writeMessage("Error!");
                }
            }
В чем суть? Тип при каждом вызове комманды receive, мы читаем разные данные из ObjectInputStream in?