Согласно комментарию javado c для метода disconnect()
вы не должны вызывать его из кода пользователя:
* This method should not be called from user-code since it is likely
* to deadlock when called from a different thread than the Session thread
* and messages are sent/received concurrently.
* Instead the logout() method should be used where possible.
Поэтому, пожалуйста, используйте метод logout()
для выхода из сеанса , Это также отключит сессию таким образом, что контрагенты будут отключены при подключении. Но могут быть короткие сроки, когда они будут зарегистрированы. Это потому, что этот флаг проверяется только раз в секунду.
Чтобы сразу отклонить вход в систему, вы можете выбросить исключение RejectLogon
из вашего fromAdmin()
обратного вызова.