1292 Commits

Author SHA1 Message Date
Simone Bordet
1dc66b72dd 461499 - ConnectionPool may leak connections.
Made associate(), disassociate() and abort() atomic operations using
the HttpExchange state to coordinate atomicity.
In this way, it's not possible to associate a HttpChannel and a
HttpExchange if the latter has been aborted.
2015-03-24 16:19:45 +01:00
Simone Bordet
79e74c64e1 Introduced a generic Sweeper.
The Sweeper class periodically sweeps resources added to it.
Currently used to check whether the HttpClient code does not leak
connections.
2015-03-20 00:42:24 +01:00
Simone Bordet
6fa30da0eb Fixed code that compared enum values. 2015-03-20 00:25:42 +01:00
Jesse McConnell
e3fd0056cf [maven-release-plugin] prepare for next development iteration 2015-03-10 08:00:22 -05:00
Jesse McConnell
9d648f4000 [maven-release-plugin] prepare release jetty-9.2.10.v20150310 2015-03-10 08:00:14 -05:00
Simone Bordet
38250545fc Improved exception handling, aborting the exchange rather than throwing. 2015-03-10 10:36:24 +01:00
Simone Bordet
bab7888c59 Fixed HttpClient Javadocs. 2015-03-10 10:15:41 +01:00
Simone Bordet
7c915bcba2 461643 - HttpContent.advance() race.
Fixed by correctly synchronizing on ContentProvider.iterator.hasNext()
and ContentProvider.iterator.next() for those ContentProviders that
require it, such as DeferredContentProvider.
2015-03-07 23:13:21 +01:00
Simone Bordet
a13a55e242 Introduced LeakDetector.id() to be consistent in logging the resource ID. 2015-03-07 22:32:59 +01:00
Joakim Erdfelt
74ee154bb1 Cleaning up LeakTrackingByteBufferPool / LeakDetector
+ Making use of LeakTrackingByteBufferPool more consistent
+ Using MappedByteBufferPool.Tagged where appropriate in test cases
+ Adding leak count tracking to LeakDetector
+ Adding leak count tracking to LeakTrackingByteBufferPool
+ Renaming websocket LeakTrackingBufferPool to
  LeakTrackingBufferPoolRule to reflect junit @Rule usage
+ Making websocket LeakTrackingBufferPoolRule always use
  MappedByteBufferPool.Tagged
+ Fixed various grammar concerns
2015-03-06 14:27:58 -07:00
Greg Wilkins
6ed01cf15b removed ambiguous logging 2015-03-06 16:29:25 +11:00
Simone Bordet
3b8bf8d1e0 Made test more stable. 2015-03-05 16:55:04 +01:00
Simone Bordet
a64368df5d Factored into own method code executed after creation of a new
connection.
2015-03-05 16:54:44 +01:00
Simone Bordet
1a5346ec4f 461499 - ConnectionPool may leak connections.
Now using SpinLock to guard concurrent access to the connection
queues (idle and active) so that operations on them are atomic.
2015-03-05 15:42:03 +01:00
Greg Wilkins
2169ea6494 further cleanups of HttpExchange 2015-03-05 19:50:30 +11:00
Greg Wilkins
e8b6902b16 SpinLock cleanup of HttpExchange 2015-03-05 18:32:17 +11:00
Greg Wilkins
2619edff5a 461452 Double release of buffer by HttpReceiverOverHTTP
Clear buffer on exception to avoid release guard
2015-03-05 16:22:07 +11:00
Greg Wilkins
042de2ec9f 461452 Double release of buffer by HttpReceiverOverHTTP
Updated HttpParse to always return from parseNext when messageComplete is called.  This allows it to notice reentrant state changes
and removes the need for HttpReceiverOverHTTP.methodComplete to return true, thus avoiding the race.
2015-03-05 15:26:19 +11:00
Greg Wilkins
418a60bbd0 461452 Double release of buffer by HttpReceiverOverHTTP
Updated comments to better describe the race to double release the buffer
2015-03-05 12:15:31 +11:00
Greg Wilkins
8cbab09527 461452 Double release of buffer by HttpReceiverOverHTTP
This commit is just a tidy up of the code to reduce the size of the race causing this problem.  It is not a fix.
2015-03-05 11:05:35 +11:00
Simone Bordet
40ad8dc608 Notifying the "failure" event for request and response when the failure
is detected during the processing of another event.
2015-03-04 01:01:09 +01:00
Simone Bordet
da80498c56 Improved logging. 2015-02-26 23:38:27 +01:00
Simone Bordet
bbc2d0c29d Simplified abort logic. 2015-02-26 23:26:24 +01:00
Simone Bordet
31a0b36f3c Improved logging and toString() implementations. 2015-02-26 23:26:24 +01:00
Simone Bordet
008b03ac78 460905 - Make sure TimeoutCompleteListener is cancelled if the request cannot be sent. 2015-02-26 12:25:42 +01:00
Simone Bordet
d5a6ad2345 460905 - Make sure TimeoutCompleteListener is cancelled if the request cannot be sent. 2015-02-26 10:56:19 +01:00
Jesse McConnell
1659d83978 [maven-release-plugin] prepare for next development iteration 2015-02-24 10:38:33 -06:00
Jesse McConnell
dc0c3f4c52 [maven-release-plugin] prepare release jetty-9.2.9.v20150224 2015-02-24 10:38:28 -06:00
Simone Bordet
b69b8dfe50 460443 - Race condition releasing the response buffer.
Fixed by making sure that the response buffer is released at the
appropriate times.
2015-02-20 16:00:42 +01:00
Simone Bordet
ddde0db339 Added test to check that a 100 Continue response and a normal response,
when read in a single read by the client, are processed correctly.
2015-02-20 16:00:42 +01:00
Jesse McConnell
ce5db2ca55 [maven-release-plugin] prepare for next development iteration 2015-02-17 16:02:22 -06:00
Jesse McConnell
26b7597928 [maven-release-plugin] prepare release jetty-9.2.8.v20150217 2015-02-17 16:02:16 -06:00
Simone Bordet
ffa32dfae7 459963 - Failure writing content of a committed request leaks connections.
Fixed by making the logic in HttpSender fail and complete the response
in case of request failure, without taking in consideration whether
the request was committed or aborted.
2015-02-15 20:42:55 +01:00
Simone Bordet
cf022de2fd Removed unused @Slow annotations. 2015-02-15 20:41:36 +01:00
Simone Bordet
8f0a874163 Removed unnecessary hiding of stack traces. 2015-02-15 20:40:50 +01:00
Simone Bordet
ed1cbc0631 Improved logging. 2015-02-15 20:39:01 +01:00
Greg Wilkins
2b2a70a93a 459845 Support upgrade
Added the concept of UpgradeFrom and UpgradeTo connections that support
transferring a buffer with content before opening new connection.
Aded EndPoint.update method as utility
2015-02-13 11:41:18 +11:00
Simone Bordet
12e2f9e6c8 459542 - AsyncMiddleManServlet race condition on first download content.
Fixed the race condition by submitting a zero length buffer to write
from onWritePossible() which will succeed the callback without
causing races.
2015-02-10 13:10:57 +01:00
Simone Bordet
2a749dc0ea Fail the callback in case we cannot activate a newly created connection. 2015-02-09 12:11:18 +01:00
Simone Bordet
43f14997d8 Improved toString() methods for better reporting during dump(). 2015-02-09 08:54:52 +01:00
Simone Bordet
ee16dfd066 Added test to verify the complete event is not fired until the
content is consumed.
2015-02-06 21:42:07 +01:00
Simone Bordet
12eaedd96b Refactored HttpDestination to allow customization of the request enqueuing.
Subclasses may override enqueue() and provide a different algorihtm.
2015-02-06 21:42:07 +01:00
Simone Bordet
e03cd5e286 451092 - Connector will fail if HeaderListener return false.
Not a bug, but wrote one more test and clarified Javadocs.
2015-01-29 11:44:11 +01:00
Simone Bordet
af312dbca0 Fixed case where a trying to send a request was causing an IllegalStateException.
It is always possible that a request is aborted by the client code
while being sent, so we should just return rather than throwing.
2015-01-29 11:13:39 +01:00
Simone Bordet
b6e4852179 Improved dump() output. 2015-01-29 11:13:39 +01:00
Simone Bordet
88ed996295 Improved toString(). 2015-01-29 11:13:39 +01:00
Simone Bordet
a52703cba9 458527 - Implement an async proxy servlet that can perform content transformations. 2015-01-27 15:29:47 +01:00
Jesse McConnell
aa22842c20 [maven-release-plugin] prepare for next development iteration 2015-01-16 17:48:29 -06:00
Jesse McConnell
8c58a9abc4 [maven-release-plugin] prepare release jetty-9.2.7.v20150116 2015-01-16 17:48:23 -06:00
Jesse McConnell
81bb8411d1 [maven-release-plugin] prepare for next development iteration 2015-01-16 12:06:36 -06:00