* Issue #4208 Content-Length in 304
Added tests for RFC7230 section 3.3.2 for 304 and HEAD responses with content length.
Fixed HttpGenerator to set content-length in 304 response
Fixed insufficient content written check for 304
Signed-off-by: Greg Wilkins <gregw@webtide.com>
* Issue #4208 Content-Length in 304
Use contentLengthField
Signed-off-by: Greg Wilkins <gregw@webtide.com>
* Issue #4188 Spin in close of GzipHandler
Cleanup and simplify code
Signed-off-by: Greg Wilkins <gregw@webtide.com>
* Issue #4188 Spin in close of GzipHandler
Fix slice code. Added unit test for it.
Signed-off-by: Greg Wilkins <gregw@webtide.com>
* Issue #4188 Spin in close of GzipHandler
Fixed last slice.
Signed-off-by: Greg Wilkins <gregw@webtide.com>
* cleanup from review
Signed-off-by: Greg Wilkins <gregw@webtide.com>
* Issue #4156 - Adding test to replicate issue
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
* Issue #4156 Session already in cache
+ check validity of sessions in getSession(SessionHandler)
+ do not replace session in doScope if SessionHandler is the same.
Signed-off-by: Greg Wilkins <gregw@webtide.com>
* Issue #4176 setHeader after sendError
SendError now makes the response immutable for headers and status.
Signed-off-by: Greg Wilkins <gregw@webtide.com>
* Issue #4176 setHeader after sendError
cleanup after review
better names
Signed-off-by: Greg Wilkins <gregw@webtide.com>
* Issue #4176 setHeader after sendError
better name
Signed-off-by: Greg Wilkins <gregw@webtide.com>
* Issue #4176 setHeader after sendError
even better name
Signed-off-by: Greg Wilkins <gregw@webtide.com>
The HttpConnection.SendCallback nulls it's reference to buffers and callbacks after completion to assist with easy GC, since the connection callback is a long lived instance.
Signed-off-by: Greg Wilkins <gregw@webtide.com>
The connection upgrade check is necessary both after the parsing and
after the handling. After the parsing covers HTTP/2 prior knowledge
"PRI * HTTP/2" case; after the handling covers the WebSocket case.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
Added test to reproduce issue
Fixed bug from #2772 where output was shutdown on DONE without checking for END.
Fixed aggregation logic to aggregate last write if aggregation already started
Improved comments and clarify conditions
Signed-off-by: Greg Wilkins <gregw@webtide.com>
Introduced module `jdbc` and made other modules that require JDBC depend on it.
Modified demo.ini to enable the `jdbc` module because some webapp descriptor
of the demo requires JDBC classes.
Now the demo can be run fine on the module-path just by adding --jpms.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
Added test for servlet component lifecycle
Fixed bug where we were destroying listeners before calling them.
Signed-off-by: Greg Wilkins <gregw@webtide.com>
* Issue #4025 Add flushOnCommit mode to sessions.
Added flushOnCommit mode to write a session to the backing store as the
response commits, before any bytes are returned to the client.
Signed-off-by: Jan Bartel <janb@webtide.com>
+ Also made ContextHandler warning message about features
that are unimplemented (and you should use ServletContextHandler)
more clear. (this helped with diagnosing where the bug was
in ServletHolder)
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
Issue #3964
* Avoid creating listener list for rarely used requestAttributeListener
* AbstractConnector keeps a specific list of HttpChannel.Listeners
to avoid Connection.Listeners and MBean listeners being added to
the HttpChannel listener list.
* Simplified listener handling by avoiding null connector, previously
only needed for testing.
* Fixed test that assumed HttpChannel listeners were not cleared by a recycle
* Separated out durable vs cyclic HttpChannel.Listeners, so as to
simplify handling.
* Deprecated cyclic HttpChannel.Listeners, as I'm not sure the channel is
the right place for them.
* Added improved method to combine multiple HttpChannel Listeners
into a single Listener.
* Fixed MockConnector
* Added benchmark
* Improved benchmark
* Updates from review
* Removed benchmark and alternate implementations.
* Updated javadoc
* Updates from review
Signed-off-by: Greg Wilkins <gregw@webtide.com>