Такую запись приняло за ответ, но мы же не закрываем потоки, и не разрываем связь. Или где-то всё-же разрываем ?
public void run() {
            String userName = null;
            Connection connection = null;
            try{
                ....
            }
            catch (ClassNotFoundException e){
                e.printStackTrace();
                ConsoleHelper.writeMessage("Произошла ошибка при обмене данными с удаленным адресом");
            }
            catch (IOException e){
                e.printStackTrace();
                ConsoleHelper.writeMessage("Произошла ошибка при обмене данными с удаленным адресом");
            }

            if(userName != null && !userName.isEmpty()) {
                connectionMap.remove(userName);
                sendBroadcastMessage(new Message(MessageType.USER_REMOVED, userName));
            }

            ConsoleHelper.writeMessage("Соединение закрыто");
Объясните пожалуйста а то чувство, что потоки у нас не закрыты. Ловить - ловим, а finally нет блока же.