J'ai un filtre Tomcat qui délègue des requêtes à un objet de gestion en fonction de l'URL. C'est le seul filtre du FilterChain
. J'ai une application Ajax qui martèle ce filtre avec beaucoup de demandes.Tomcat doFilter() invoqué avec la réponse validée
Récemment, j'ai remarqué un problème où la méthode doFilter
du filtre est souvent appelée avec une réponse validée en tant que paramètre (en interne, c'est la réponse de coyote qui est marquée commise).
Il me semble que la seule façon que cela peut arriver est si la méthode recycle()
n'est pas appelée sur cette réponse de coyote. J'ai vérifié pour m'assurer que je ne garde aucune référence à l'un des objets request, response, outputStream ou writer. De plus, je me suis assuré de fermer le outputStream dans un bloc finally. Cependant, cela ne résout pas ce problème. Cela ressemble à quelque chose que je fais pour abuser du conteneur de servlet, mais j'ai du mal à le suivre.
nous devions faire exactement la même chose. Envelopper le flux de sortie et l'empêcher de valider la réponse jusqu'à ce que nous soyons prêts. – ScArcher2