HttpTestCase in das Modul test verschoben und schweren Fehler korrigiert
authorKai Moritz <kai@coolibri.de>
Thu, 8 Mar 2012 21:24:03 +0000 (22:24 +0100)
committerKai Moritz <kai@coolibri.de>
Thu, 2 Aug 2012 07:03:25 +0000 (09:03 +0200)
commitd0f92829349bec782236b5ad0ef089b961cd4901
treec3ff49d4c459620356273cfb38318c07e207a182
parent74241e3e3fcf85d3ac34d56d4551262c960e6c87
HttpTestCase in das Modul test verschoben und schweren Fehler korrigiert

Schweren Denkfehler in der Klasse HttpTestCase und dem zugehörigen Response-
Wrapper behoben:
Der Servlet-Container ruft flush erst auf, wenn die Filter-Kette fertig
abgearbeitet wurde. Da hat er aber wieder nur den ursprünglichen Response
zur Verfügung und nicht mehr den Response-Wrapper, in den der Response hier
zu Test-Zwecken verpackt wurde. Dementsprechend kann der Servlet-Container
die Methode flush während der Finalisierung des Requests nur auf dem
ursprünglichen Response-Objekt aufrufen -- nicht aber auf dem Response-
Wrapper!
Wenn der Response-Wrapper also (wie hier der Fall) ein spezielles flush
benötigt, kann man sich dafür nicht auf den Servlet-Container verlassen!!
Der Flush muss explizit auf angestoßen werden, wenn der Response-Wrapper
keine Daten verschlucken soll.

Dabei:
 * Den bisher als innere Klasse implementierten Response-Wrapper in
   LoggingHttpServletResponseWrapper umbenannt und in eine eigenständige
   Klasse umgewandelt.
 * LoggingHttpServletResponseFilter implementiert, mit dem sich der
   Response-Wrapper auch in enier normalen Java-Webanwendung verwenden
   lässt, um zu Protokollieren, wie ein Response-Objekt benutzt wird.
cachecontrol/pom.xml
cachecontrol/src/test/java/de/halbekunst/juplo/cachecontrol/HttpTestCase.java [deleted file]
cachecontrol/src/test/java/de/halbekunst/juplo/cachecontrol/ParameterGuessingTest.java
cachecontrol/src/test/java/de/halbekunst/juplo/cachecontrol/RequestSizeTest.java
pom.xml
test/pom.xml
test/src/main/java/de/halbekunst/juplo/test/HttpTestCase.java [new file with mode: 0644]
test/src/main/java/de/halbekunst/juplo/test/LoggingHttpServletResponseFilter.java [new file with mode: 0644]
test/src/main/java/de/halbekunst/juplo/test/LoggingHttpServletResponseWrapper.java [new file with mode: 0644]