Я не совсем понимаю, каковы ваши потребности.Какое это имеет отношение к Swing или таймерам?С какой нитью вы тут сталкиваетесь?Я сделаю некоторые предположения и предложу пару вещей.
Звучит так, как будто вы хотите поместить сообщение в очередь, а затем подождать, пока ответ не будет получен, или максимум 50 с.Вы должны проверить BlockingQueue .Это потокобезопасно, и вы можете подождать определенное количество времени, пока другой поток что-то добавит в него.Похоже, что это может быть полезно для сообщения / подтверждения проблемы.
BlockingQueue<MSG> queue = new LinkedBlockingQueue<MSG>();
// put a message in the queue
queue.put( msg );
// have a thread wait on the queue until something is available in it
MSG msg = queue.poll( 50, TimeUnit.SECONDS );
Мне нужна более подробная информация о вашей проблеме для получения более конкретной помощи.