Я запускаю процесс в отдельном потоке с таймаутом, используя ExecutorService и Будущее (пример кода здесь) (происходит поток "нереста" в AOP Aspect).
Теперь основной поток представляет собой запрос Resteasy. Resteasy использует одну или несколько переменных ThreadLocal для хранения некоторой информации контекста, которую мне нужно получить в какой-то момент в вызове метода Rest. Проблема в том, что, поскольку поток Resteasy запущен в новом потоке, переменные ThreadLocal arelost.
Каким будет лучший способ "распространять" любую переменную ThreadLocal, используемую Resteasy для нового потока? Кажется, что Resteasy использует более одной переменной ThreadLocal для отслеживания контекстной информации, и я хотел бы "слепо" передать всю информацию в новый поток.
Я просмотрел подклассификацию ThreadPoolExecutor
и используя метод beforeExecute, чтобы передать текущий поток в пул, но я не мог 't найти способ передать переменные ThreadLocal в пул.
Любое предложение?
Спасибо