Код в строке 44 - 47 об этом позаботится,
} catch(IOException ex) {
System.out.println(ex);
queue.remove(ac);
}
И здесь, в 75 - 83, используя тайм-аут,
req.addAsyncListener(new AsyncListener() {
public void onComplete(AsyncEvent event) throws IOException {
queue.remove(ac);
}
public void onTimeout(AsyncEvent event) throws IOException {
queue.remove(ac);
}
});
РЕДАКТИРОВАТЬ: После получения немного больше понимания.
- Tomcat 7.0.4 все еще находится в бета-версии.Таким образом, вы можете ожидать такого поведения
- Я очень старался, но не могу найти метод
setAsyncTimeout()
в документе, ни здесь , ни здесь .Итак, я думаю, что они полностью удалили его в окончательной версии по неизвестной действительной причине - В примере говорится: « почему я должен использовать инфраструктуру вместо ожидания Servlet 3.0 Async API »,Это означает, что написано перед последней вещью
Итак, что я могу сказать, после объединения всех этих фактов, что вы пытаетесь работать с вещью, которая в некотором смысле сломана.Это также может быть причиной разных и странных результатов.