В данный момент я борюсь с ошибкой в классе Sun java.net.Authenticator
.Кажется, что класс Authenticator
имеет общесистемную статическую Authenticator
.Это приводит к следующей проблеме в моем многопоточном приложении.
- Тема 1 - Аутентификации для пользователя 1
- Тема 2 - Аутентификации для пользователя 2
- Тема 1- Выполняет код для загрузки сообщений для пользователя 1
. В этот момент система получит сообщения для пользователя 2 вместо сообщений для пользователя 1.
Я попытался выполнить поискдля решения.Многие предлагали попробовать следующий код:
AuthCacheValue.setAuthCache(new AuthCacheImpl());
Authenticator.setDefault(exchangeAuthenticator);
Однако это не работает для меня, так как мое приложение является многопоточным (exchangeAuthenticator
всегда будет установлен на аутентификатор, инициализированный в последнем потоке).
Если у кого-то есть идея, даже хак на данный момент подойдет, я был бы очень признателен, поскольку на данный момент единственное «аккуратное» решение - это поместить synchronized
в основной метод выполнения с помощьюдраматическое влияние на производительность.