Commit Graph

1481 Commits

Author SHA1 Message Date
Simone Bordet 395ecd2b70 Fixed race in updating the key interests.
It was possible that updateKey() was seeing a SELECTING state and
therefore attempt to call setKeyInterests(), while changeInterests()
was also seeing the SELECTING state, then moving to CHANGING so that
_interestOps was accessed concurrently.

Also made the update task to call updateKey() instead of calling
directly setKeyInterests(), in order to comply with the state
machine; this required to have onSelected() handle additional states
that are created by updateKey().

Finally, in updateKey() now setKeyInterests() is called before
updating the state to isolate the call into its own state.
2014-10-14 20:40:13 +02:00
Simone Bordet e7d830c26e Merged branch 'jetty-9.2.x' into 'master'. 2014-10-13 16:57:52 +02:00
Simone Bordet abdd2e4ff0 440729 - SSL requests often fail with EOFException or IllegalStateException.
Fixed IllegalStateException by handling NEED_UNWRAP for the CLOSED
state in fill().
The EOFException does not seem to be an issue with the client.

Also removed an unneeded catch block and an empty if statement.
2014-10-13 16:55:59 +02:00
Simone Bordet 96cf942b70 Fixed race condition in onSelected().
WebSocket and multiplexed protocols are always read interested.
It may happen that while the application is writing, the write
blocks, resulting in a call to changeInterests().
At the same time, the selector may detect data to read and call
onSelected(), so there is a possibility that onSelected() runs
concurrently with changeInterests().

The fix adds an additional state (PROCESSING) that isolates the
changes that onSelected() makes to _interestOps, spin-waiting if
changeInterests() is running concurrently.
Likewise, changeInterests() spin-waits until onSelected() is running
concurrently.
2014-10-09 22:46:04 +02:00
Simone Bordet 76278d3563 Fixed race condition causing onSelected() to throw IllegalStateException.
The race was happening when updateKey() lost the race with
changeInterests() to update the interests and subsequently the key.
In that case, the selector thread that called updateKey() was returning
while changeInterests() was executing the CHANGING state.
Since updateKey() lost the race, the actual key interests was still
(typically) OP_READ so the selector thread would select() and call
onSelected() while changeInterests() was still executing, causing the
IllegalStateException.
2014-10-09 16:43:50 +02:00
Simone Bordet 649eb7f3dc Introduced factory method to create JDK's Selector instances. 2014-10-09 10:08:15 +02:00
Simone Bordet bcbefd3942 Fixed race where the key interests were set before updating the
state, causing onSelected() to be called with the wrong state and
failing an assertion.
2014-09-26 10:13:16 +02:00
Simone Bordet 8d2efaf7eb 445167 - Allow configuration of dispatch after select.
Introduced parameter "dispatchIO" in the relevant factories so that
they can be configured by users and connections will be created
taking into account this parameter.

For less configurable connection factories, this parameter is
currently hardcoded to either true or false depending on the case.
For example, ALPN and NPN connections have it to false, since they
don't do any blocking operation in onFillable().
2014-09-26 10:13:16 +02:00
Greg Wilkins 2018098225 Merge remote-tracking branch 'origin/jetty-9.2.x'
Conflicts:
	jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java
2014-09-18 16:36:51 +10:00
Greg Wilkins 3b066ca2ae 444415 iterative WriteFlusher 2014-09-18 15:31:59 +10:00
Simone Bordet 193eaaf1c3 SelectChannelEndPoint should set the interestOps as requested.
Previously, SCEP was skipping the update of the interestOps in case it
was either input or output shutdown.

Now it always set the interestOps as requested and leaves to the
connection decide what interestOps needs to be set.
2014-09-17 17:44:49 +02:00
Joakim Erdfelt 9249ebb6ef Using 9.2.4-SNAPSHOT for branch 2014-09-11 06:10:44 -07:00
Joakim Erdfelt 2755746def Merge branch 'jetty-http2' 2014-09-11 05:56:55 -07:00
Simone Bordet fd1c9dd8d2 443713 - Reduce number of SelectionKey.setInterestOps() calls.
Introduced a state machine to handle the various scenarios (ST = selector thread, Tx = pooled thread):

ST: call to SCEP.onSelected() moves from SELECTING -> PENDING.
ST: call to SCEP.updateKey() moves from PENDING -> UPDATING -> SELECTING
T1: call to SCEP.changeInterests() moves (SELECTING | PENDING) -> CHANGING -> SELECTING

The race between ST and T1 to move from PENDING to either UPDATING or CHANGING will be won
by one thread only, which will then perform the call to SelectionKey.setInterestOps().
Preferably, this will be done by ST during an updateKey() call. If updateKey() has already
been invoked, then changeInterests() will perform the call to SelectionKey.setInterestOps().

However, if T1 loses, it still has to perform the key update, so it will spin until ST
moves back to SELECTING.
2014-09-10 21:45:27 +02:00
Simone Bordet 1ee11138a7 Introduced field "submitKeyUpdates" instead of relying on a system
property.

Modified method updateKey() to return a boolean to signal whether the
selector was woken up.
2014-09-10 11:11:12 +02:00
Simone Bordet 87cac64dff Fixed typo, improved logging, removed unused type parameter. 2014-09-10 11:11:12 +02:00
Greg Wilkins 40d84ff1e3 443662 Consume buffer in write(ByteBuffer) 2014-09-10 17:41:14 +10:00
Jesse McConnell 88b19abf52 [maven-release-plugin] prepare for next development iteration 2014-09-05 09:19:30 -05:00
Jesse McConnell 9bfeb2221f [maven-release-plugin] prepare release jetty-9.2.3.v20140905 2014-09-05 09:19:23 -05:00
Greg Wilkins 07ec47adfa improved SSL debug logging 2014-09-04 19:09:39 +10:00
Simone Bordet ee3ab1f8ea Merged branch 'master' into 'jetty-http2'. 2014-09-01 11:57:09 +02:00
Simone Bordet 9dbd2cd9d8 442950 - Embedded Jetty client requests to localhost hangs with high cpu usage (NIO OP_CONNECT Solaris/Sparc).
Now checking the return value of SocketChannel.connect() to determine
whether to register the channel (true) or finish the connect (false).
2014-09-01 11:28:59 +02:00
Simone Bordet ca2a23c35d Improved Javadocs and code cleanup. 2014-09-01 11:28:59 +02:00
Greg Wilkins 5507e267ae Merge remote-tracking branch 'origin/master' into jetty-http2
Conflicts:
	jetty-server/src/main/config/etc/jetty-https.xml
	jetty-server/src/main/config/modules/ssl.mod
	jetty-start/src/main/java/org/eclipse/jetty/start/Modules.java
2014-08-29 15:49:25 +10:00
Greg Wilkins 69390954dc 435322 acceptor and selector configuration/priority 2014-08-29 15:36:19 +10:00
Greg Wilkins 23eba39748 Merge remote-tracking branch 'origin/master' into jetty-http2 2014-08-21 16:39:45 +10:00
Greg Wilkins 420df3b5d6 441756 Ssl Stackoverflow on renegotiate 2014-08-21 09:47:01 +10:00
Greg Wilkins b47f9ef605 cleaned up OSGi manifest creation 2014-08-15 19:35:49 +10:00
Simone Bordet 1c984e680f Introduced the capability of inserting buffers at a specific index. 2014-08-04 12:12:19 +02:00
Simone Bordet 51e4885911 Made HTTP2Client support SSL so that it can be used to test websites that serve HTTP2. 2014-08-01 19:03:29 +02:00
Greg Wilkins b439549793 Merge remote-tracking branch 'origin/master' into jetty-http2
Conflicts:
	jetty-server/src/main/java/org/eclipse/jetty/server/HttpConnection.java
2014-08-01 09:50:20 +10:00
Greg Wilkins f970ffc0ac Misc cleanups done whilst fixing 435322 2014-08-01 09:02:44 +10:00
Joakim Erdfelt cb42ef2167 [maven-release-plugin] prepare for next development iteration 2014-07-23 11:18:01 -07:00
Joakim Erdfelt dc62cb5ac7 [maven-release-plugin] prepare release jetty-9.2.2.v20140723 2014-07-23 11:17:55 -07:00
Greg Wilkins a537fefd6b Merge remote-tracking branch 'origin/master' into jetty-http2 2014-07-18 15:28:54 +10:00
Greg Wilkins 5c7f3e7c0d 432815 Fixed selector stop race 2014-07-18 12:05:32 +10:00
Greg Wilkins 5e281dd449 Merge remote-tracking branch 'origin/master' into jetty-http2
Conflicts:
	jetty-util/src/main/java/org/eclipse/jetty/util/IteratingCallback.java
2014-07-10 14:43:39 +10:00
Greg Wilkins 55ca09a00e 438190 findbug improvements 2014-07-10 14:41:32 +10:00
Greg Wilkins 6eceb6bd99 Merge remote-tracking branch 'origin/master' into jetty-http2 2014-06-29 08:11:41 +02:00
Greg Wilkins 9b764ef3fa 435322 Fixed Iterating Callback close 2014-06-27 20:43:12 +02:00
Simone Bordet 66f3913527 Merged branch 'origin/master' into 'jetty-http2'. 2014-06-25 12:34:19 +02:00
Simone Bordet 3ff4195dbc Guarded calls to LOG.debug() with if (LOG.isDebugEnabled()) to reduce allocation of varargs Object[]. 2014-06-25 12:26:45 +02:00
Simone Bordet 334db9fe72 Updated version to 9.3.0-SNAPSHOT. 2014-06-16 21:33:03 +02:00
Simone Bordet 74bf0000c5 Removed Lease.merge() and cleared lists in recycle(). 2014-06-13 13:51:42 +02:00
Simone Bordet 7aeddff675 Changed method acquire() to not append(), to allow callers to decide
whether to append() or prepend the returned buffer.
2014-06-10 18:09:07 +02:00
Simone Bordet 1d2e9da29c Clearing the buffer before returning it. 2014-06-10 12:02:54 +02:00
Jesse McConnell c3ee0711ca [maven-release-plugin] prepare for next development iteration 2014-06-09 13:37:54 -05:00
Jesse McConnell 06b494eeac [maven-release-plugin] prepare release jetty-9.2.1.v20140609 2014-06-09 13:37:49 -05:00
Simone Bordet bedfda03d2 Introduced Lease.prepend(). 2014-06-09 14:01:51 +02:00
Greg Wilkins 36081dbcbf reworked for metadata 2014-06-09 13:01:15 +02:00
Simone Bordet 244158ee3e Introduced class ByteBufferPool.Lease to keep track of buffers with
associated information of whether they have been borrowed from the
ByteBufferPool or not.
2014-06-06 16:24:09 +02:00
Greg Wilkins 8f4aeeeb8d updated version to 10.0.0-SNAPSHOT 2014-06-04 15:08:54 +02:00
Jesse McConnell 2e859e4ae2 [maven-release-plugin] prepare for next development iteration 2014-05-26 12:04:15 -05:00
Jesse McConnell 71ad2114c5 [maven-release-plugin] prepare release jetty-9.2.0.v20140526 2014-05-26 12:04:08 -05:00
Jesse McConnell d59dbe936b [maven-release-plugin] prepare for next development iteration 2014-05-23 09:59:19 -05:00
Jesse McConnell edc7646a4c [maven-release-plugin] prepare release jetty-9.2.0.v20140523 2014-05-23 09:59:13 -05:00
Jesse McConnell 6a3cab2a2f [maven-release-plugin] prepare for next development iteration 2014-05-15 14:44:37 -05:00
Jesse McConnell eec01cbff4 [maven-release-plugin] prepare release jetty-9.2.0.RC0 2014-05-15 14:44:28 -05:00
Jesse McConnell 4d2fdee7fc [maven-release-plugin] prepare for next development iteration 2014-05-08 11:44:34 -05:00
Jesse McConnell 4515fe661b [maven-release-plugin] prepare release jetty-9.2.0.M1 2014-05-08 11:44:27 -05:00
Greg Wilkins 2e261b75d6 433692 improved buffer resizing 2014-04-29 20:36:13 +02:00
Greg Wilkins 61b2e7f75e Improved failsafe close handling for half closed endpoints 2014-04-24 10:01:46 +02:00
Joakim Erdfelt 9f76856fcf EndPoint onIdleExpired should not close on its own
+ From discussion with Simone, the dispatched fillInterest.onFail()
  needs to occur, so that the AbstractConnection.onReadTimeout() can
  handle the close conditions needed by SPDY and WebSocket.
  The EndPoint close within onIdleExpired is a race condition with
  this onReadTimeout desired behavior.
2014-04-17 10:38:06 -07:00
Greg Wilkins ef400675aa 431519 Fixed NetworkTrafficListener 2014-04-10 16:20:10 +10:00
Joakim Erdfelt 28d9df1dbb Refactoring alpn stuff into jetty-alpn-server and jetty-alpn-client 2014-03-31 14:18:37 -07:00
Greg Wilkins c5e1e249e7 set version for 9.2.x 2014-03-31 11:35:06 +11:00
Greg Wilkins c895f6dbcd organised imports 2014-03-31 09:57:59 +11:00
Simone Bordet a7f9e5a674 Made test more reliable. 2014-03-28 19:34:03 +01:00
Simone Bordet 342c97d8ba 430654 - closing client connections can hang worker threads.
Prettified usage of NonBlockingThread and added Javadocs.
2014-03-27 15:37:23 +01:00
Greg Wilkins 86d13b91a5 430654 avoid dispatching failure callbacks 2014-03-27 19:08:16 +11:00
Jesse McConnell 0ec0d452e9 [maven-release-plugin] prepare for next development iteration 2014-03-07 09:10:08 -06:00
Jesse McConnell 1e555567a9 [maven-release-plugin] prepare release jetty-9.1.3.v20140225 2014-03-07 09:10:08 -06:00
Greg Wilkins 15952aeee4 428232 - Rework batch mode / buffering in websocket. 2014-02-21 00:54:32 +11:00
Simone Bordet 5d8b00a098 Avoid boxing of the number of bytes flushed. 2014-02-18 18:31:48 +01:00
Jesse McConnell eb0aea46ce set versions.txt file to new version and fix mistaken developmentVersion 2014-02-10 13:48:29 -06:00
Jesse McConnell f3d38dfb15 [maven-release-plugin] prepare for next development iteration 2014-02-10 11:17:14 -06:00
Jesse McConnell 8f6cbc9111 [maven-release-plugin] prepare release jetty-9.1.2.v20140210 2014-02-10 11:17:07 -06:00
Simone Bordet 95c728c12f Do not track null ByteBuffers that are being released. 2014-02-10 09:46:16 +01:00
Jesse McConnell 91429ea123 Merge branch 'release-9' 2014-01-10 09:11:25 -06:00
Jesse McConnell b82ec6e668 [maven-release-plugin] prepare for next development iteration 2014-01-08 16:47:09 -06:00
Jesse McConnell b99623a21d [maven-release-plugin] prepare release jetty-9.1.1.v20140108 2014-01-08 16:47:01 -06:00
Joakim Erdfelt 36340c4898 Minor tweaks to leak detector stuff 2014-01-08 14:54:39 -07:00
Simone Bordet 8720fb213c 425043 - Track whether pools are used correctly.
Introduced LeakDetector and utility classes LeakTrackingConnectionPool
and LeakTrackingByteBufferPool to track resource pool leakages.

Fixed ConnectionPool to be more precise in closing connections when
release() cannot recycle the connection.

Fixed a leak in server's HttpConnection in case a request arrives with
the Connection: close header: a ByteBuffer was allocated but never
released.
2014-01-07 19:44:29 +01:00
Joakim Erdfelt a12fd9ea03 Happy New Year - 2014! 2014-01-02 14:50:14 -07:00
Greg Wilkins b91d1745ad 424498 made bytebufferendpoint threadsafe 2013-12-20 12:49:57 +11:00
Simone Bordet cb6bacb11c 423926 - Remove code duplication in class IdleTimeout.
Removed code duplications, and also removed method close(),
unnecessary since onClose() was performing the exact same code.

Also reviewed subclasses of IdleTimeout to make sure that they always
call onClose() when they are "closed", to make sure that the timeout
does not fire and that there are no memory leaks (the scheduler
holding a reference to the timeout task, which in turn holds a
reference to the IdleTimeout instance).
2013-12-13 13:39:46 +01:00
Greg Wilkins 1b30b0f9a8 422723 - Dispatch failed callbacks to avoid blocking selector 2013-11-28 10:04:08 +11:00
Greg Wilkins e37a369ca6 422427 improved TestConnection 2013-11-25 11:08:54 +11:00
Joakim Erdfelt 9172d6115b [maven-release-plugin] prepare for next development iteration 2013-11-15 16:58:44 -07:00
Joakim Erdfelt 6feeab6ec3 [maven-release-plugin] prepare release jetty-9.1.0.v20131115 2013-11-15 16:58:36 -07:00
Joakim Erdfelt 7bbc0ff4df [maven-release-plugin] rollback the release of jetty-9.1.0.v20131115 2013-11-15 16:33:52 -07:00
Joakim Erdfelt 1126e68971 [maven-release-plugin] prepare for next development iteration 2013-11-15 16:03:28 -07:00
Joakim Erdfelt d6418c73d4 [maven-release-plugin] prepare release jetty-9.1.0.v20131115 2013-11-15 16:03:20 -07:00
Joakim Erdfelt 6c372b9440 Reverting <version> to 9.1.0-SNAPSHOT 2013-11-15 15:36:26 -07:00
Jesse McConnell b5345caed1 [maven-release-plugin] prepare for next development iteration 2013-11-14 15:27:52 -06:00
Jesse McConnell 1582aa196d [maven-release-plugin] prepare release jetty-9.1.0.v20131114 2013-11-14 15:27:37 -06:00
Jesse McConnell 63f20d4518 [maven-release-plugin] prepare for next development iteration 2013-11-07 10:42:54 -06:00
Jesse McConnell dc2fd1b9ce [maven-release-plugin] prepare release jetty-9.1.0.RC2 2013-11-07 10:42:41 -06:00
Greg Wilkins 72696ba030 420359 - fixed thread warnings 2013-11-07 22:35:49 +11:00
Simone Bordet 03983102e6 Merged branch 'master' into 'jetty-9.1'. 2013-11-05 09:58:34 +01:00
Simone Bordet 40fa764863 Catching Throwable everywhere and closing channels when necessary to
avoid leaks.
2013-11-05 09:42:50 +01:00
Simone Bordet 4024708bbc Connection and NetworkConnector now implements Closeable,
rather than AutoCloseable, since they deal with I/O.
2013-11-05 09:41:49 +01:00
Greg Wilkins 36c807c2f3 417223 - removed deprecated ThreadPool.dispatch 2013-11-04 17:21:50 +11:00
Greg Wilkins 17bf8ccee0 420359 - Support 0 acceptors for ServerConnector
improved javadoc
2013-11-04 17:13:19 +11:00
Greg Wilkins 74272663e6 420359 - Support 0 acceptors for ServerConnector 2013-11-04 16:16:54 +11:00
Greg Wilkins f567bddad9 global clean up imports 2013-11-04 13:48:03 +11:00
Greg Wilkins eb3bb660b5 Merge remote-tracking branch 'origin/master' into jetty-9.1
Conflicts:
	jetty-client/src/main/java/org/eclipse/jetty/client/util/DigestAuthentication.java
	jetty-client/src/test/java/org/eclipse/jetty/client/HttpReceiverTest.java
	jetty-client/src/test/java/org/eclipse/jetty/client/HttpSenderTest.java
	jetty-http/src/main/java/org/eclipse/jetty/http/HttpField.java
	jetty-server/src/test/java/org/eclipse/jetty/server/AbstractHttpTest.java
	jetty-servlets/src/test/java/org/eclipse/jetty/servlets/AbstractDoSFilterTest.java
	jetty-spdy/spdy-core/src/main/java/org/eclipse/jetty/spdy/generator/HeadersBlockGenerator.java
	jetty-spdy/spdy-core/src/main/java/org/eclipse/jetty/spdy/parser/HeadersBlockParser.java
	jetty-websocket/websocket-client/src/main/java/org/eclipse/jetty/websocket/client/ClientUpgradeRequest.java
	jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/WebSocketFrame.java
	jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/WebSocketSession.java
	jetty-websocket/websocket-common/src/test/java/org/eclipse/jetty/websocket/common/extensions/compress/DeflateCompressionMethodTest.java
	jetty-websocket/websocket-common/src/test/java/org/eclipse/jetty/websocket/common/extensions/compress/PerMessageDeflateExtensionTest.java
2013-11-03 18:22:09 +11:00
Mikhail Mazursky 6b0269a16d [Bug 420930] Use Charset to specify character encoding
Signed-off-by: Mikhail Mazursky <mikhail.mazursky@gmail.com>
2013-11-02 14:44:36 +06:00
Greg Wilkins 852be79a3c Merge remote-tracking branch 'origin/master' into jetty-9.1
Conflicts:
	jetty-server/src/test/java/org/eclipse/jetty/server/HttpConnectionTest.java
	jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ServletHandler.java
2013-11-01 14:45:16 +11:00
Greg Wilkins a76ddc1c6a 420572 IOTest explicitly uses 127.0.0.1 2013-11-01 12:17:30 +11:00
Simone Bordet edcb39cc89 Catching Throwable and closing channels rigorously. 2013-10-29 10:03:31 +01:00
Simone Bordet 00867b094b Making classes implement Closeable, rather than AutoCloseable,
since it is more semantically correct.
2013-10-29 10:03:31 +01:00
Simone Bordet c822ee4f82 Make sure we never exit the selector loop unless stopped. 2013-10-28 12:19:16 +01:00
Greg Wilkins c44537fca8 419899 Do not wrap SSL Exception as EoFException 2013-10-21 16:29:20 +11:00
Greg Wilkins f3b393aa5d Refactored complexity out of HttpFields
In preparation of merging Fields class and supporting HTTP/2.0 HPACK
2013-10-17 21:35:11 +11:00
Greg Wilkins 27a3ceeb27 Optimised SelectorManager to avoid changeQ for interest ops 2013-10-17 12:43:28 +11:00
Simone Bordet 879c3eb6f5 Improved code in case of connection failures: close the connection,
and cancel the connect timeout task.
2013-10-16 17:24:43 +02:00
Simone Bordet 8bd6ab0beb Removed class SocketBased, not necessary. 2013-10-16 16:36:23 +02:00
Simone Bordet 114a95234b Merged branch 'master' into 'jetty-9.1'. 2013-10-16 16:30:04 +02:00
Simone Bordet 45828ee906 418892 - SSL session caching so unreliable it effectively does not
work.

Fixed by making sure that we completely decrypt read bytes.

Before the fix, it was possible that we returned after the decryption
of one TLS frame, while another was still present in the
_encryptedBuffer.
This lead to non-clean closes of the connection, which hampered the
capability of session reuse by clients.

Now we decrypt in a loop and only return if there is nothing more
that we can decrypt.
2013-10-16 16:27:36 +02:00
Simone Bordet 25d9b8704f 417356 - Add SOCKS support to jetty client.
Big refactoring to allow for additional proxy schemes that work at a
lower level than HTTP.

Introduced client-side ConnectionFactory, and binding that to a
HttpDestination, so that connections to that destination will use the
same ConnectionFactory.

The destination's ConnectionFactory is now initialized from the proxy
configuration and the transport, which is now itself a
ConnectionFactory.

The proxy configuration has also changed becoming polymorphic by
introducing a new ProxyConfiguration.Proxy abstract class,
which is implemented as HTTPProxy and can be implemented in future as
SOCKS4Proxy (and possibly others).
2013-10-08 15:06:39 +02:00
Jesse McConnell 856a24b65a [maven-release-plugin] prepare for next development iteration 2013-09-30 14:46:09 -05:00
Jesse McConnell f466f03c6a [maven-release-plugin] prepare release jetty-9.0.6.v20130930 2013-09-30 14:46:00 -05:00
Jesse McConnell 0b3f431d27 set version back to 9.0.6-SNAPSHOT 2013-09-30 12:33:06 -05:00
Jesse McConnell af2e6ff911 Merge branch 'master' into release-9 2013-09-30 12:28:04 -05:00
Greg Wilkins 6146f0cc9c cleanup threadpool usage 2013-09-30 14:07:17 +10:00
Greg Wilkins 5f02620603 Merge remote-tracking branch 'origin/master' into jetty-9.1
Conflicts:
	jetty-server/src/main/java/org/eclipse/jetty/server/HttpChannel.java
	jetty-server/src/main/java/org/eclipse/jetty/server/HttpInput.java
2013-09-30 13:20:13 +10:00
Greg Wilkins f07722909f reduced routine exception verbosity 2013-09-30 12:45:16 +10:00
Greg Wilkins 643b6c3c77 removed ExecutorCallback 2013-09-26 18:06:10 +10:00
Jesse McConnell 0525498ad3 [maven-release-plugin] prepare for next development iteration 2013-09-19 15:06:31 -05:00
Jesse McConnell c05a725db6 [maven-release-plugin] prepare release jetty-9.0.6.v20130919 2013-09-19 15:06:17 -05:00
Simone Bordet 4663fa4992 Renamed "Empty" inner classes to "Adapter" to comply with the rest of
the codebase.
2013-09-04 13:15:23 +02:00
Greg Wilkins 2e444d2f17 Merge remote-tracking branch 'origin/master' into jetty-9.1
Conflicts:
	jetty-io/src/main/java/org/eclipse/jetty/io/AbstractConnection.java
	jetty-server/src/test/java/org/eclipse/jetty/server/HttpServerTestBase.java
	jetty-spdy/spdy-http-server/src/main/java/org/eclipse/jetty/spdy/server/proxy/ProxyHTTPSPDYConnection.java
2013-09-02 17:00:07 +10:00
Greg Wilkins 07ae3615ed 416321 handle failure during blocked committing write 2013-09-02 14:44:23 +10:00
Simone Bordet ddca8bc327 Avoid StackOverflowErrors when submitting changes.
These were possible on a busy server, when many new connections are
created, and each triggers read interest: one connection submits the
read interest change, then runs the changes, finds that another
connections is created, runs it, which schedule a read interest
change, and so on.

Now the code is simpler, and while we always offer to the queue,
it may even be faster.
2013-08-29 20:04:01 +02:00
Simone Bordet 4923252ce4 Changed defaults for ArrayByteBufferPool.
There are cases, for example in WebSocket, where we want to allocate
small buffers to write frame headers and then do a gathered write.
ArrayByteBufferPool had a minimum size of 64 bytes,
which was too big and always led to allocation rather than pooling,
leading to performance slowdowns.

Defaults are now minSize=0, increment=1024.
2013-08-23 15:56:44 +02:00
Simone Bordet 72c4dbc46e 415062 SelectorManager wakeup optimisation.
Fixed race condition that could have allowed changes in queue but
selector waiting in select().
2013-08-23 14:12:11 +02:00
Greg Wilkins c27020740f 415062 SelectorManager wakeup optimisation 2013-08-23 11:01:54 +10:00
Joakim Erdfelt 3c28bf8c60 Revert "415062 SelectorManager wakeup optimisation"
This reverts commit edbf6e07aa.
2013-08-16 14:38:10 -07:00
Joakim Erdfelt fd3537e012 Revert "415062 SelectorManager wakeup optimisation"
This reverts commit 2f0becff8f.
2013-08-16 14:38:08 -07:00
Joakim Erdfelt d351c82de8 Revert "415062 SelectorManager wakeup optimisation"
This reverts commit b58c05d77c.
2013-08-16 14:38:02 -07:00
Greg Wilkins b58c05d77c 415062 SelectorManager wakeup optimisation
Some further cleanup after sbordet review
2013-08-17 00:01:20 +10:00
Greg Wilkins 2f0becff8f 415062 SelectorManager wakeup optimisation
removed wakeup spin
2013-08-16 19:23:59 +10:00
Greg Wilkins edbf6e07aa 415062 SelectorManager wakeup optimisation 2013-08-16 16:35:38 +10:00
Thomas Becker 38549f20cd FillInterest fix javadoc 2013-08-15 12:13:44 +02:00
Jan Bartel c80100b4a9 [maven-release-plugin] prepare for next development iteration 2013-08-15 19:13:27 +10:00
Jan Bartel e7e7e45500 [maven-release-plugin] prepare release jetty-9.0.5.v20130815 2013-08-15 19:13:13 +10:00
Jan Bartel 716430bb03 [maven-release-plugin] rollback the release of jetty-9.0.5.v20130815 2013-08-15 18:03:49 +10:00
Jan Bartel 3d13c15d35 [maven-release-plugin] prepare release jetty-9.0.5.v20130815 2013-08-15 17:22:03 +10:00
Jan Bartel 7947b35134 Reset version for rerun of 9.0.5 2013-08-15 16:47:03 +10:00
Joakim Erdfelt 5dbd746047 Fixing malformed Javadoc warnings in jetty-io 2013-08-14 12:46:25 -07:00
Simone Bordet 34032552ea Avoid boxing of primitive int variables in logging statements. 2013-08-14 14:33:05 +02:00
Jesse McConnell 4383c9042d [maven-release-plugin] prepare for next development iteration 2013-08-13 14:20:56 -05:00
Jesse McConnell 160d34ec23 [maven-release-plugin] prepare release jetty-9.0.5.v20130813 2013-08-13 14:20:47 -05:00
Greg Wilkins b8f7637e7d Merge remote-tracking branch 'origin/master' into jetty-9.1 2013-07-22 23:32:04 +10:00
Thomas Becker 8946b4946b SSLConnection comment out setting soLonger timeout to avoid threads stuck in preClose0 2013-07-22 11:52:13 +02:00
Greg Wilkins 3add75f135 398467 Servlet 3.1 Non Blocking IO
prevent fillInterest from HTTP after upgrade
2013-07-12 13:01:46 +10:00
Greg Wilkins 93faa8147b 398467 Servlet 3.1 Non Blocking IO
use nested classes for better stack trace
2013-07-11 19:13:58 +10:00
Greg Wilkins e35914e400 Merge remote-tracking branch 'origin/master' into jetty-9.1
Conflicts:
	jetty-http/src/main/java/org/eclipse/jetty/http/HttpParser.java
	jetty-server/src/main/java/org/eclipse/jetty/server/HttpConnection.java
2013-07-09 00:32:41 +10:00
Greg Wilkins 981102fda5 398467 Servlet 3.1 Non Blocking IO
Asynchronous reads working.
2013-07-05 18:11:09 +10:00
Greg Wilkins 965918d8f2 Merge remote-tracking branch 'origin/master' into jetty-9.1 2013-07-04 17:28:57 +10:00
Thomas Becker f8049caf3d 412234 fix bug where NetworkTrafficSelectChannelEndpoint counted bytes wrong on incomplete writes 2013-07-03 18:13:07 +02:00
Greg Wilkins e4716e05e1 Merge remote-tracking branch 'origin/master' into jetty-9.1
Conflicts:
	aggregates/jetty-all/pom.xml
	examples/async-rest/async-rest-jar/pom.xml
	examples/async-rest/async-rest-webapp/pom.xml
	examples/async-rest/pom.xml
	examples/embedded/pom.xml
	examples/pom.xml
	jetty-annotations/pom.xml
	jetty-ant/pom.xml
	jetty-client/pom.xml
	jetty-continuation/pom.xml
	jetty-deploy/pom.xml
	jetty-distribution/pom.xml
	jetty-http/pom.xml
	jetty-io/pom.xml
	jetty-jaas/pom.xml
	jetty-jaspi/pom.xml
	jetty-jmx/pom.xml
	jetty-jndi/pom.xml
	jetty-jsp/pom.xml
	jetty-jspc-maven-plugin/pom.xml
	jetty-maven-plugin/pom.xml
	jetty-monitor/pom.xml
	jetty-nosql/pom.xml
	jetty-osgi/jetty-osgi-boot-jsp/pom.xml
	jetty-osgi/jetty-osgi-boot-warurl/pom.xml
	jetty-osgi/jetty-osgi-boot/pom.xml
	jetty-osgi/jetty-osgi-httpservice/pom.xml
	jetty-osgi/jetty-osgi-npn/pom.xml
	jetty-osgi/pom.xml
	jetty-osgi/test-jetty-osgi-context/pom.xml
	jetty-osgi/test-jetty-osgi-webapp/pom.xml
	jetty-plus/pom.xml
	jetty-proxy/pom.xml
	jetty-rewrite/pom.xml
	jetty-runner/pom.xml
	jetty-security/pom.xml
	jetty-server/pom.xml
	jetty-servlet/pom.xml
	jetty-servlets/pom.xml
	jetty-spdy/pom.xml
	jetty-spdy/spdy-client/pom.xml
	jetty-spdy/spdy-core/pom.xml
	jetty-spdy/spdy-example-webapp/pom.xml
	jetty-spdy/spdy-http-server/pom.xml
	jetty-spdy/spdy-server/pom.xml
	jetty-spring/pom.xml
	jetty-start/pom.xml
	jetty-util-ajax/pom.xml
	jetty-util/pom.xml
	jetty-webapp/pom.xml
	jetty-websocket/pom.xml
	jetty-websocket/websocket-api/pom.xml
	jetty-websocket/websocket-client/pom.xml
	jetty-websocket/websocket-common/pom.xml
	jetty-websocket/websocket-server/pom.xml
	jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/ab/Fuzzer.java
	jetty-websocket/websocket-servlet/pom.xml
	jetty-xml/pom.xml
	pom.xml
	tests/pom.xml
	tests/test-continuation/pom.xml
	tests/test-loginservice/pom.xml
	tests/test-sessions/pom.xml
	tests/test-sessions/test-hash-sessions/pom.xml
	tests/test-sessions/test-jdbc-sessions/pom.xml
	tests/test-sessions/test-sessions-common/pom.xml
	tests/test-webapps/pom.xml
	tests/test-webapps/test-jaas-webapp/pom.xml
	tests/test-webapps/test-jetty-webapp/pom.xml
	tests/test-webapps/test-jndi-webapp/pom.xml
	tests/test-webapps/test-mock-resources/pom.xml
	tests/test-webapps/test-proxy-webapp/pom.xml
	tests/test-webapps/test-servlet-spec/pom.xml
	tests/test-webapps/test-servlet-spec/test-container-initializer/pom.xml
	tests/test-webapps/test-servlet-spec/test-spec-webapp/pom.xml
	tests/test-webapps/test-servlet-spec/test-web-fragment/pom.xml
	tests/test-webapps/test-webapp-rfc2616/pom.xml
2013-06-27 09:12:28 +10:00
Joakim Erdfelt 78b5f7df1f [maven-release-plugin] prepare for next development iteration 2013-06-25 08:29:26 -07:00
Joakim Erdfelt 5f2c937fcb [maven-release-plugin] prepare release jetty-9.0.4.v20130625 2013-06-25 08:29:18 -07:00
Joakim Erdfelt 31faf2fe20 Reverting failed release from friday 2013-06-25 07:42:45 -07:00
Joakim Erdfelt 1f21c96f6c 411545 - SslConnection.DecryptedEndpoint.fill() sometimes misses a few network bytes
+ Adding continuation in this rare SSL case to allow the remaining bytes
  to be read properly.
2013-06-25 07:38:17 -07:00
Greg Wilkins c0facf57f6 398467 simplified AbstractConnection fill interest handling 2013-06-24 14:36:22 +10:00
Jesse McConnell 57bfda2a08 [maven-release-plugin] prepare for next development iteration 2013-06-21 09:49:25 -05:00
Jesse McConnell c1082ad4d4 [maven-release-plugin] prepare release jetty-9.0.4.v20130621 2013-06-21 09:49:15 -05:00
Greg Wilkins 4e4ffaa54c Merge remote-tracking branch 'origin/master' into servlet-3.1-api
Conflicts:
	jetty-server/src/main/java/org/eclipse/jetty/server/HttpChannelState.java
	jetty-server/src/main/java/org/eclipse/jetty/server/HttpOutput.java
2013-06-17 16:29:39 +10:00
Jesse McConnell eddb49941d [Bug 408600] set correct jetty.url in all pom files 2013-06-12 15:52:36 -05:00
Greg Wilkins 955e7e8d74 410559 Removed FillInterest race 2013-06-12 18:35:13 +10:00
Greg Wilkins d2794584e1 Merge remote-tracking branch 'origin/master' into servlet-3.1-api
Conflicts:
	jetty-server/src/main/java/org/eclipse/jetty/server/HttpChannel.java
	jetty-server/src/main/java/org/eclipse/jetty/server/HttpOutput.java
	jetty-server/src/main/java/org/eclipse/jetty/server/Response.java
2013-06-07 15:48:22 +10:00
Greg Wilkins 6732dcfe76 409403 fix IllegalStateException when SPDY is used and the response is written through BufferUtil.writeTo byte by byte
Removed the clear from ChannelEndPoint#flush
2013-06-06 17:13:45 +10:00
Greg Wilkins 15e0d50b79 Merge remote-tracking branch 'origin/master' into servlet-3.1-api 2013-05-23 09:50:27 +10:00
Jesse McConnell 74a4077dad Add package-info.java files to all jetty packages. 2013-05-21 15:09:49 -05:00
Jesse McConnell 3d600ed95e [maven-release-plugin] prepare for next development iteration 2013-05-06 18:13:04 -05:00
Jesse McConnell d832f3dc7e [maven-release-plugin] prepare release jetty-9.0.3.v20130506 2013-05-06 18:12:55 -05:00
Jan Bartel e7ecfd2b2b Merge remote-tracking branch 'origin/master' into servlet-3.1-api
Conflicts:
	jetty-server/src/test/java/org/eclipse/jetty/server/ResponseTest.java
2013-05-02 09:07:24 +10:00
Simone Bordet b67f8204a5 Reverted commit 39d690e. 2013-04-30 12:24:40 +02:00
Greg Wilkins 7955548d10 406390 Close if at END and content remaining 2013-04-29 14:01:11 +10:00
Greg Wilkins a7073d05a6 updated version to 9.1.0-SNAPSHOT 2013-04-19 13:59:18 +10:00
Jesse McConnell 7baaa14ba1 [maven-release-plugin] prepare for next development iteration 2013-04-17 11:46:39 -05:00
Jesse McConnell e390b54b25 [maven-release-plugin] prepare release jetty-9.0.2.v20140417 2013-04-17 11:46:31 -05:00
Jesse McConnell 0b20467c6f [maven-release-plugin] prepare for next development iteration 2013-04-15 11:40:45 -05:00
Jesse McConnell 3aa4301711 [maven-release-plugin] prepare release jetty-9.0.2.v20140415 2013-04-15 11:40:37 -05:00
Greg Wilkins c912231d74 364921 - FIN WAIT sockets 2013-04-15 18:40:05 +10:00
Greg Wilkins 4b546de9c9 364921 - FIN WAIT sockets 2013-04-15 17:19:35 +10:00
Simone Bordet 70e6655ec5 364921 - FIN WAIT sockets.
Interim commit, as things are not working exactly right yet.
2013-04-12 23:17:24 +02:00
Greg Wilkins 9885449bdf 364921 improved close of SSL to avoid FINWAITs 2013-04-12 20:37:13 +10:00
Greg Wilkins b8dd8bde14 [maven-release-plugin] prepare for next development iteration 2013-04-08 12:31:34 +10:00
Greg Wilkins bf3771904b [maven-release-plugin] prepare release jetty-9.0.1.v20130408 2013-04-08 12:30:59 +10:00
Greg Wilkins 39d690ed2a 404889 SelectorManager accepts attachments with sockets 2013-04-05 15:36:23 +11:00
Simone Bordet c5931ad56f 404610 - Reintroduce ability to disallow TLS renegotiation.
After review with Greg, avoid to clear the encrypted buffer after detection of reconnection denied.
2013-04-05 01:26:51 +02:00
Greg Wilkins 5d451e5fec Merge branch 'master' of ssh://git.eclipse.org/gitroot/jetty/org.eclipse.jetty.project 2013-04-05 08:31:48 +11:00
Greg Wilkins 1191142c97 Merge remote-tracking branch 'origin/jetty-8'
Conflicts:
	jetty-io/src/main/java/org/eclipse/jetty/io/nio/SelectChannelEndPoint.java
	jetty-servlet/src/main/java/org/eclipse/jetty/servlet/DefaultServlet.java
2013-04-05 08:31:31 +11:00
Simone Bordet 72219d016b 404610 - Reintroduce ability to disallow TLS renegotiation. 2013-04-04 17:11:01 +02:00
Greg Wilkins e9185aa062 Merge remote-tracking branch 'origin/jetty-7' into jetty-8 2013-04-04 16:09:19 +11:00
Greg Wilkins df6e18cc00 404517 Close connection if request received after half close 2013-04-04 15:38:15 +11:00
Simone Bordet b312fffd7e 402666 - Improve handling of TLS exceptions due to raw socket close. 2013-03-29 16:57:05 +01:00
Greg Wilkins 76607e20a5 403591 do not use the ConcurrentArrayBlockingQueue for thread pool, selector and async request log 2013-03-18 16:19:58 +11:00
Greg Wilkins 8514e8452b 403591 use the ConcurrentArrayBlockingQueue for thread pool, selector and async request log 2013-03-18 15:37:00 +11:00
Greg Wilkins 5f1980f408 merged unsafe blocking Q, removed unsafe usage and usage of Q 2013-03-18 13:27:37 +11:00
Greg Wilkins ba9d70589a Merge branch 'master' into unsafe 2013-03-18 12:02:37 +11:00
Simone Bordet d6cac8cf0d 403451 - Review synchronization in SslConnection.
The review consisted in finding all the places where SslConnection was calling application code
and made sure those call where performed outside synchronized blocks.

The few calls that remain within synchronized blocks are SslConnection.fillInterested() and
SelectChannelEndPoint.write(...), which are dealing with the encrypted connection and do not
call application code.
2013-03-15 16:37:56 +01:00
Simone Bordet b66ec3d57e Made isOpen() public to avoid clashes with AbstractEndPoint. 2013-03-15 16:37:56 +01:00
Joakim Erdfelt 8a96cc8c4a Merge branch 'jetty-7' into jetty-8 2013-03-14 16:54:35 -07:00
Joakim Erdfelt 5084a1430f Fixing build.
+ Bumping jetty-test-helper to 2.0
 + Bumping jetty-version-maven-plugin to 1.0.10
 + Fixing JDK 1.5 build warts
 + Updating Stress use for new "test.stress" property introduced by upgrades
2013-03-14 16:52:52 -07:00
Simone Bordet e40e2a9913 Merged branch 'master' into 'unsafe'. 2013-03-13 22:37:36 +01:00
Jesse McConnell acb5919844 [maven-release-plugin] prepare for next development iteration 2013-03-12 09:10:50 -05:00
Jesse McConnell d6ebdc0a4a [maven-release-plugin] prepare release jetty-7.6.10.v20130312 2013-03-12 09:10:42 -05:00
Jesse McConnell 0405c8ded6 [maven-release-plugin] prepare for next development iteration 2013-03-12 09:05:25 -05:00
Jesse McConnell 852178cd01 [maven-release-plugin] prepare release jetty-8.1.10.v20130312 2013-03-12 09:05:14 -05:00
Joakim Erdfelt 897c35c2cb [maven-release-plugin] prepare for next development iteration 2013-03-08 11:33:23 -07:00
Joakim Erdfelt cc6196af50 [maven-release-plugin] prepare release jetty-9.0.0.v20130308 2013-03-08 11:33:15 -07:00
Joakim Erdfelt 7fc38f6c0f [maven-release-plugin] prepare for next development iteration 2013-03-07 19:14:19 -07:00
Joakim Erdfelt 96d045442f [maven-release-plugin] prepare release jetty-9.0.0.v20130307 2013-03-07 19:14:11 -07:00
Simone Bordet 91e5720ca2 Introduced a concurrent queue based on array chunks to reduce allocation,
to be used as drop-in replacement of j.u.c.ConcurrentLinkedQueue.
Using it in SelectorManager.ManagedSelector, but build fails on OSGi.
2013-03-07 10:00:50 +01:00
Jesse McConnell 778ee1411b [maven-release-plugin] prepare for next development iteration 2013-03-06 10:21:46 -06:00
Jesse McConnell d916078711 [maven-release-plugin] prepare release jetty-9.0.0.v20130306 2013-03-06 10:21:38 -06:00
Greg Wilkins 056be85766 less verbose exception 2013-03-04 16:40:18 +11:00
Simone Bordet 2feafb9a97 402090 - httpsender PendingState cause uncertain data send to server.
WriteFlusher was storing consumed buffers that may have been reused,
and when the write was being completed those consumed buffer may have
contained new content that was being written too.

Fixed by compacting the buffers at the moment of creation of the
WriteFlusher.PendingState (and not at the moment of the completeWrite() like
it was in historically done, see 4e94601619).
2013-03-01 14:30:51 +01:00
Greg Wilkins 718ee4ddeb 402075 Cancel idle timeouts on close 2013-03-01 14:09:04 +11:00
Joakim Erdfelt 29b2118870 [maven-release-plugin] prepare for next development iteration 2013-02-26 09:20:45 -07:00
Joakim Erdfelt 2b82b54f6d [maven-release-plugin] prepare release jetty-9.0.0.RC2 2013-02-26 09:20:45 -07:00
Jan Bartel 6a48749f0c Merge remote-tracking branch 'origin/jetty-7' into jetty-8
Conflicts:
	jetty-annotations/src/main/java/org/eclipse/jetty/annotations/AnnotationParser.java
2013-02-22 11:32:57 +11:00
Simone Bordet ecfd7f74e6 376273 - Early EOF because of SSL Protocol Error on https://api-3t.paypal.com/nvp.
This was caused by the fact that the other peer closed the raw socket after sending data.
SslConnection was reading the data, but not notifying the application of the data, then
reading the abrupt close, which was causing an exception, ending up in the application
never being notified of the data that arrived.
Now we catch and ignore the exception during SSLEngine.closeInbound(), and we properly
send an alert to the other peer (instead of hard closing the connection as well).
In this way, the application has the chance to read the data and then close the connection.
2013-02-21 17:15:19 +01:00
Greg Wilkins 68f3319719 Merge remote-tracking branch 'origin/jetty-7' into jetty-8 2013-02-15 12:14:48 +11:00
Greg Wilkins c7d985fa02 400859 limit max size of writes from cached content 2013-02-15 11:20:29 +11:00
Joakim Erdfelt ebaffcfd27 399535 - Websocket-client connect should have configurable connect timeout
+ Made default value for connectTimeout be exposed from SelectorManager.
 + Added javadoc on time unit.
2013-02-12 12:56:46 -07:00
Joakim Erdfelt 4dc3ed38c2 [maven-release-plugin] prepare for next development iteration 2013-02-05 10:00:36 -07:00
Joakim Erdfelt ed24f78498 [maven-release-plugin] prepare release jetty-9.0.0.RC0 2013-02-05 10:00:36 -07:00
Jesse McConnell e073ceb06d [maven-release-plugin] prepare for next development iteration 2013-02-05 10:00:36 -07:00
Jesse McConnell 2f2ad287af [maven-release-plugin] prepare release jetty-9.0.0.RC0 2013-02-05 10:00:35 -07:00
Jesse McConnell 5c58878c3c [maven-release-plugin] prepare for next development iteration 2013-01-31 11:34:38 -06:00
Jesse McConnell ebbe37294f [maven-release-plugin] prepare release jetty-8.1.9.v20130131 2013-01-31 11:34:30 -06:00
Jesse McConnell a5e1e04af1 [maven-release-plugin] prepare for next development iteration 2013-01-31 08:42:20 -06:00
Jesse McConnell b7fb18fd65 [maven-release-plugin] prepare release jetty-7.6.9.v20130131 2013-01-31 08:42:12 -06:00
Jan Bartel 495230579c 399576 Server dumpStdErr throws exception if server is stopping 2013-01-31 15:45:57 +11:00
Simone Bordet b2f3852fb3 398872 - SslConnection should not be notified of idle timeouts. First solution. 2013-01-24 10:29:27 +01:00
Thomas Becker 9ebea3938d 393385: Make hostname verification configurable in SslContextFactory and enable it by default (See http://www.ietf.org/rfc/rfc2818.txt section 3.1) 2013-01-17 10:28:15 +01:00
Joakim Erdfelt c631d9b461 Removing noisy logging/debugging 2013-01-16 15:11:57 -07:00
Joakim Erdfelt 1dfee4c992 393733 - WebSocketClient interface should support multiple connections
+ Reworking Connection Timeout handling
2013-01-16 15:11:57 -07:00
Jesse McConnell e1c516c7d1 merge from jetty-8 and update license blocks. 2013-01-11 17:04:53 -06:00
Jesse McConnell 863944873d merge from 7 and update license blocks for 2013 2013-01-11 15:01:16 -06:00
Jesse McConnell a4dbb5823c update license blocks for 2013 2013-01-11 14:57:51 -06:00
Greg Wilkins 27c31fb403 jetty-9 organised imports. Cleaned up some TODOs 2013-01-11 16:37:32 +11:00
Greg Wilkins b5d4add750 jetty-9 copyright header 2013-01-11 16:02:33 +11:00
Greg Wilkins 76c068dfe6 jetty-9 refined the IdleTimeout mechanism and added a unit test 2013-01-11 13:06:42 +11:00
Greg Wilkins 6bfc19be1b jetty-9 optimisation to dispatch before parsing so that handling is done in same thread 2012-12-14 09:50:22 +11:00
Joakim Erdfelt be83cb100d Adding java assert() on bad buffer release, per discussion with Simone and Jesse 2012-12-12 11:06:15 -07:00
Joakim Erdfelt 3fd59fa189 Rejecting BufferPool.release() of buffers below factor 2012-12-11 13:01:54 -07:00
Thomas Becker e909bc4bc5 Fix WriteFlusher javadoc 2012-12-03 13:55:41 +01:00
Greg Wilkins 7737dc8c76 394854 Implemented Promise 2012-11-23 12:18:51 +11:00
Jesse McConnell d7e2bad665 add license block 2012-11-08 16:43:05 -06:00
Greg Wilkins 6cd32362d0 jetty-9 factored out IdleTimeout 2012-11-09 08:04:58 +11:00
Greg Wilkins a1d0efc2bb 393832 start connectors last 2012-11-08 19:30:58 +11:00
Jesse McConnell bb27f561c1 [maven-release-plugin] prepare for next development iteration 2012-11-05 12:24:06 -06:00
Jesse McConnell 1d767e99a3 [maven-release-plugin] prepare release jetty-8.1.8.v20121105 2012-11-05 12:23:59 -06:00
Jesse McConnell 70d591c430 [maven-release-plugin] prepare for next development iteration 2012-11-05 12:16:03 -06:00
Jesse McConnell 017826b4eb [maven-release-plugin] prepare release jetty-7.6.8.v20121105 2012-11-05 12:15:57 -06:00
Greg Wilkins 8723408731 Merge remote-tracking branch 'origin/jetty-7' into jetty-8
Conflicts:
	jetty-servlets/src/main/java/org/eclipse/jetty/servlets/MultiPartFilter.java
2012-11-02 13:17:53 +11:00
Greg Wilkins 65202e9abe 393363 Use Locale.ENGLISH for all toUpperCase and toLowerCase calls 2012-11-02 11:55:00 +11:00
Greg Wilkins 18f7293efd 392237 Fixed 3.0 port of chat servlet 2012-10-25 12:27:30 +11:00
Simone Bordet c21a17ea83 #392463 - Client SSL handshake may hang.
Now we check whether a fill() called from flush() has changed the SSLEngine state to NEED_WRAP,
and if so, we continue to wrap.
2012-10-19 17:53:54 +02:00
Greg Wilkins 2b13648b0e 392237 fixed many TODOs and many minor code cleanups 2012-10-19 16:17:30 +11:00
Greg Wilkins f420f5016d 392237 Implemented HttpOutput.sendContent for large content 2012-10-19 10:16:30 +11:00
Greg Wilkins b618ce59e3 392304 fixed intermittent client SSL failure. Correctly compact in flip2fill 2012-10-18 19:55:57 +11:00
Greg Wilkins 27e8efec94 jetty-9 optimised the selector change submission 2012-10-18 15:34:10 +11:00
Simone Bordet 444d5845ec jetty-9: improved logging. 2012-10-16 13:50:24 +02:00
Simone Bordet 84a1cff26e jetty-9: changed the way changes are run.
Before: changes were submitted, but if this happened in the selector thread, then they were executed immediately.
This lead to recursion: the run of a change submitted another change, which was run, which submitted a change, etc.
To avoid StackOverFlowException, a ForkInvoker was used, breaking the stack after 4 recursive calls.
The reason for this was to avoid to queue a change that could have been run in place, but costs probably it costs
more than what it saves.

Current: changes are now always queued. This avoids recursion and the need for a ForkInvoker, making the code simpler.
Instead of recursing we now iterate over the queue of changes.
2012-10-16 13:50:24 +02:00
Simone Bordet 39fb81c486 jetty-9: Fixed concurrent updates to volatile variable _interestOps.
Read interest and write interest can be setting concurrently, and they may cancel each other.
Replaced _interestOps with an AtomicInteger and checking whether the update succeeds,
otherwise it is reattempted.
2012-10-12 15:58:52 +02:00
Simone Bordet e41ad27ca4 jetty-9: always clearing the buffer before returning it from acquire(). 2012-10-10 21:35:32 +02:00
Simone Bordet 7cad4ebe52 jetty-9: DecryptedEndPoint now delegates the set of the idle timeout to the underlying EndPoint.
DecryptedEndPoint does not perform any scheduling for idle timeouts, because those are done
by SelectChannelEndPoint that is the usual underlying EndPoint of DecryptedEndPoint.
In case of more nested EndPoint/Connection chains, EndPoints that delegate (such as
DecryptedEndPoint) should delegate the idle timeout to the underlying EndPoint.
2012-10-08 11:05:27 +02:00
Simone Bordet 2748a9381e jetty-9: Added support for connect timeout. 2012-10-08 11:05:26 +02:00
Greg Wilkins f4d12412eb jetty-9 added FilterConnectionFactory and made SpdyServer use it 2012-10-08 15:22:49 +11:00
Greg Wilkins c5d8fd748b jetty-9 added FilterConnection 2012-10-07 09:09:23 +11:00
Greg Wilkins 97d08c399a jetty-9 removed race with NPN replacing connection and extra wrap causing NPE in SSLEngineImpl 2012-10-02 15:00:31 -07:00
Greg Wilkins 6cc0734a1a jetty-9 miscillaneous optimizations: donot dispatch to HTTP and SPDY; improved executorCallback 2012-10-02 13:48:51 -07:00
Greg Wilkins cb4e7982b1 jetty-9 SslConnection fill does not try to send close handshake 2012-09-24 13:10:18 +10:00
Simone Bordet 9e7fcf4fee jetty-9: Fixed SslBytesServerTest, and added factory methods to relevant classes. 2012-09-21 16:47:01 +02:00
Greg Wilkins e04494da64 jetty-9 fixed test onOpen 2012-09-21 18:00:46 +10:00
Greg Wilkins 68ee346b8a jetty-9 combined the Container and AggregateLifeCycle into ContainerLifeCycle 2012-09-21 11:45:51 +10:00
Greg Wilkins b9ceb8703d Merge branch 'jetty-9' into jetty-9-open-close 2012-09-21 08:36:22 +10:00
Joakim Erdfelt 857498b115 Upgrading to junit-dep-4.10.jar (banning junit.jar) 2012-09-20 11:52:59 -07:00
Simone Bordet 37a7e5977d Merged branch 'jetty-9' into jetty-9-open-close. 2012-09-20 18:46:16 +02:00
Simone Bordet 40382bad3a jetty-9 - Removed references to JUnit 3.x. 2012-09-20 18:23:02 +02:00
Greg Wilkins 0d2627b6e9 jetty-9 improved onOpen onclose handling 2012-09-20 11:05:20 +10:00
Simone Bordet 851de69d9d jetty-9 - Third take at open/close refactoring. 2012-09-19 18:04:15 +02:00
Simone Bordet 44b3bb067c jetty-9 - Second take at open/close refactoring. 2012-09-19 13:37:47 +02:00
Simone Bordet f257f4b2bb jetty-9 - First take at open/close refactoring. 2012-09-19 13:37:47 +02:00
Simone Bordet 0915b2b0ab jetty-9 - Refactored code that was counting the number of reentrant invocations into a common utility class, ForkInvoker. 2012-09-17 14:39:13 +02:00
Simone Bordet 4ea5734ab1 jetty-9 - Avoiding StackOverflowErrors when processing changes. 2012-09-17 11:46:26 +02:00
Simone Bordet 4f1a2990de jetty-9 - Always making SslConnection dispatch completion callbacks to avoid StackOverflowErrors. 2012-09-17 11:46:26 +02:00
Greg Wilkins 129583679a jetty-9 javadoc improvements and renamed SelectChannelConnector to ServerConnector 2012-09-17 17:37:56 +10:00
Simone Bordet 4ffe66f899 jetty-9 - HTTP client: better cleanup at stop. 2012-09-14 23:30:21 +02:00
Simone Bordet 88cbfed7e0 jetty-9 - Made SelectorManager.connection[Opened|Closed]() concrete, since they are overridden only by SelectChannelConnector. 2012-09-14 23:30:21 +02:00
Simone Bordet cf3f12297f jetty-9 - Cosmetics. 2012-09-14 23:30:21 +02:00
Simone Bordet 8c9f097666 jetty-9 - Throwing EofException when trying to flush after output shutdown.
When the output is shutdown, field _cannotAcceptMoreAppDataToFlush is set to true,
indicating that no more flush() calls are accepted.
However, a further call to flush() was reading _cannotAcceptMoreAppDataToFlush and
just returning false, leaving writes in pending state but without chance to be completed.
Now, if we detect _cannotAcceptMoreAppDataToFlush==true in flush(), we check
whether the output was shutdown; if it is the case, we throw an EofException to signal
to the application that it cannot write because the connection is already closed.
2012-09-14 15:20:10 +02:00
Simone Bordet 655a313fdf jetty-9 - Improved logging. 2012-09-14 15:09:22 +02:00
Greg Wilkins 22ba57b8d2 jetty-9 refactored onOpen and onClose 2012-09-14 17:38:47 +10:00
Simone Bordet b264f20dc9 jetty-9 - Removed the write of an empty buffer from onOpen().
SslConnection should remain as passive as possible, with the next connection driving the activity.
If client connections need to drive the SSL handshake with an empty write, they should do it, and
not SslConnection.
2012-09-14 00:38:25 +02:00
Simone Bordet 24cbb6385b jetty-9 - Just returning in case we want to fail an already failed write flusher. 2012-09-14 00:38:25 +02:00
Joakim Erdfelt 12470a2715 Introduce SocketBased, and squelching logging on tests 2012-09-13 08:51:45 -07:00
Jan Bartel 944b23240e 388706 Avoid unnecessary indirection through Charset.name 2012-09-13 17:03:10 +10:00
Greg Wilkins c709981aa5 jetty-9 finished refactor for oneconnector and configuration pluggability 2012-09-13 10:00:44 +10:00
Greg Wilkins a41b6e32ac Merge branch 'jetty-9-configuration' into jetty-9
Conflicts:
	jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java
2012-09-13 08:22:06 +10:00
Greg Wilkins b3e8f91026 jetty-9 flush returns boolean to say completely flushed or not 2012-09-13 08:11:05 +10:00
Greg Wilkins 79caf45604 Merge branch 'jetty-9' into jetty-9-configuration
Conflicts:
	jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java
2012-09-12 23:11:12 +10:00
Greg Wilkins 427a01855c jetty-9 WriteFlusher handlers buffering endpoints 2012-09-12 23:06:19 +10:00
Joakim Erdfelt 550f0d28f6 attempting to address the SCEPSslTest.testWriteBlocked() failures 2012-09-10 15:15:31 -07:00
Greg Wilkins 26f5ffc459 jetty-9 improve SslConnection toString 2012-09-11 08:04:33 +10:00
Jesse McConnell a8994178f5 [maven-release-plugin] prepare for next development iteration 2012-09-10 14:18:11 -05:00
Jesse McConnell 92180a9700 [maven-release-plugin] prepare release jetty-7.6.7.v20120910 2012-09-10 14:18:01 -05:00
Jesse McConnell 10e4027579 [maven-release-plugin] prepare for next development iteration 2012-09-10 13:59:34 -05:00
Jesse McConnell 57a6258f96 [maven-release-plugin] prepare release jetty-8.1.7.v20120910 2012-09-10 13:59:10 -05:00
Jesse McConnell 1ec8b2621b [maven-release-plugin] prepare release jetty-7.6.7.v20120910 2012-09-10 13:47:05 -05:00
Jesse McConnell 4180d7e1f5 prepare for release 2012-09-10 12:59:04 -05:00
Greg Wilkins 73ebe89019 jetty-9 refactored configuration 2012-09-10 20:26:14 +10:00
Greg Wilkins a15d71932f jetty-9 protection from double onFillable calls 2012-09-09 08:31:31 +10:00
Greg Wilkins 2bb425d0b2 jetty-9 improved buffer recycling 2012-09-09 07:42:03 +10:00
Simone Bordet 236df8e94b Jetty9 - Fixed compilation issues. 2012-09-06 09:37:11 +02:00
Simone Bordet 7231c82b69 Merged branch 'jetty-9' into jetty-9-client. 2012-09-06 08:41:48 +02:00
Simone Bordet 2715f64441 Jetty9 - Fourth take at HTTP client implementation. 2012-09-05 13:33:38 +02:00
Simone Bordet b18ab0e76a Jetty9 - First take at HTTP client implementation. 2012-09-04 19:20:29 +02:00
Jesse McConnell d37deeea74 [maven-release-plugin] prepare for next development iteration 2012-09-03 13:33:18 -05:00
Jesse McConnell b418b0dd57 [maven-release-plugin] prepare for next development iteration 2012-09-03 13:33:16 -05:00
Jesse McConnell 41e9b1f6e2 [maven-release-plugin] prepare release jetty-7.6.6.v20120903 2012-09-03 13:33:10 -05:00
Jesse McConnell 6c0b0af2fe [maven-release-plugin] prepare release jetty-8.1.6.v20120903 2012-09-03 13:33:08 -05:00
Greg Wilkins c3776764f4 jetty-9 ConcurrentScheduler refinements 2012-09-03 15:24:36 +10:00
Greg Wilkins 83dbca6553 jetty-9 reworked the schedulers 2012-08-31 13:22:58 +10:00
Greg Wilkins 8c6ad12088 jetty-9 fixed ArrayByteBufferPool and added test 2012-08-31 08:05:09 +10:00
Thomas Becker 8fbe6c59d5 jetty-9 merge 2012-08-29 17:27:26 +02:00
Simone Bordet d84eee0b46 Jetty9 - Reverted AbstractConnector to use MappedByteBufferPool, as ArrayByteBufferPool is leaking buffers. 2012-08-28 18:14:22 +02:00
Simone Bordet 7a2b53d987 Jetty9 - Dispatching the onConnect(Session) callback in a different thread.
This is needed for two reasons: the first is that onOpen() is called from the selector thread
and onConnect() may perform I/O (such as sending a SETTINGS frame), and second
because onOpen() may be called when NPN upgrades the connection.
In the latter case, SslConnection is busy with the SSL handshake (for example is filling)
and calling onConnect() triggers a write, that ends up in the SslConnection that sees that
it is still in the SSL handshake and needs to fill, resulting in a reentrant fill, which is not
supported correctly by SslConnection.
Dispatching to a new thread makes the call safe, since SslConnection is properly synchronized.
2012-08-28 15:20:14 +02:00
Simone Bordet 2339da7cc0 Jetty9 - Marked tests as @Slow. 2012-08-28 13:04:18 +02:00
Simone Bordet 5aa3702606 Jetty9 - Better logging. 2012-08-28 11:56:37 +02:00
Simone Bordet 6601b65162 Jetty9 - Made the test more reliable and marked it as slow. 2012-08-28 11:56:22 +02:00
Simone Bordet 7a1faf3c08 Jetty9 - Start counting for idleness when we register read interest.
Otherwise it was possible that the endPoint was created, upon creation
it started counting for idleness, after a while read interested was set
and the endPoint idle timed out before having the chance to read.
2012-08-28 11:55:01 +02:00
Simone Bordet a935c26764 Jetty9 - Fixed typo. 2012-08-27 16:32:01 +02:00
Greg Wilkins cb5dd493fb jetty-9 merged jetty-9-aggregation 2012-08-27 10:24:34 +10:00
Greg Wilkins 1d654a08cf jetty-9 restructured graceful shutdown 2012-08-24 20:16:23 +10:00
Simone Bordet 06b2de17d5 Merge branch 'jetty-9-aggregation' into jetty-9-spdy-http 2012-08-24 11:52:29 +02:00
Greg Wilkins c707ba11d1 jetty-9 improved SSL shutdown input 2012-08-24 17:56:22 +10:00
Greg Wilkins fac03a306b jetty-9 more server test fixes 2012-08-24 16:53:36 +10:00
Greg Wilkins cd719bf979 jetty-9 cleanups and fixes after refactor 2012-08-23 14:07:10 +10:00
Greg Wilkins 325bfc290d jetty-9 work in progress on moving aggregation out of HttpChannel 2012-08-20 20:43:10 +10:00
Jesse McConnell 6ffaa478c4 standardize license headers 2012-08-17 16:09:49 -05:00
Joakim Erdfelt 3d1d76d214 Merge from jetty-8 to jetty-9 (license header standarization) 2012-08-17 13:44:22 -07:00
Jesse McConnell 5de0cee1eb merge from master + license block standardization 2012-08-17 14:50:43 -05:00
Greg Wilkins 2a66567a5b jetty-9 improved handling of half close 2012-08-17 15:34:53 +10:00
Jesse McConnell 00ed549898 standardize license header blocks 2012-08-16 19:11:27 -05:00
Greg Wilkins c84b496330 jetty-9 more work on stop/close. Turned on statistics all of the time, but still not enough. more work needed. 2012-08-12 11:24:24 +10:00
Greg Wilkins 488f53f8d6 jetty-9 cleaned up the stop and stopTimeout handlng 2012-08-11 12:51:32 +10:00
Joakim Erdfelt 74490580da Merge branch 'jetty-9' into multimap-ng 2012-08-10 11:32:42 -07:00
Joakim Erdfelt da0e5a1ef6 [multimap-ng] step 1, make MultiMap participate as a full fledged member of the Collections framework 2012-08-10 10:25:10 -07:00
Simone Bordet c3dfd0c653 Jetty9 - Set stopTimeout to zero by default, and setting defaults for threaded component that need a non-zero stop timeout to stop properly. 2012-08-10 19:02:16 +02:00
Simone Bordet 136f7924fd Jetty9 - Refactored usage of components that were using custom stop timeout to use the get/setStopTimeout() methods inherited from AbstractLifeCycle. 2012-08-10 19:02:16 +02:00
Greg Wilkins 1740b45342 jetty-9 Less reliance on booleans in SslConnection 2012-08-10 21:12:44 +10:00
Simone Bordet 6a2041ae27 Jetty9 - Better handling of cases where the SslConnection has its output shutdown. 2012-08-10 10:34:00 +02:00
Simone Bordet 2d832fa9ad Jetty9 - Introduced Connection.close() for better stop of lifecycle components. 2012-08-10 10:32:45 +02:00
Simone Bordet cf5801f437 Jetty9 - Added logging. 2012-08-10 10:31:35 +02:00
Greg Wilkins afe489e986 jetty-9 potential SSL fix 2012-08-10 15:21:52 +10:00
Greg Wilkins 54ea5a7de2 jetty-9 better dispatching of events to SSL 2012-08-10 14:39:51 +10:00
Greg Wilkins 97ff08b3be jetty-9 write on ssl connection test harness 2012-08-10 13:31:11 +10:00
Greg Wilkins 16b404754e jetty-9 improved logging 2012-08-10 13:31:11 +10:00
Simone Bordet 523f1a8295 Jetty9 - Made close(), isOpen() and onOpen() use the _open AtomicBoolean for their logic, to avoid race conditions. 2012-08-08 14:58:04 +02:00
Simone Bordet fe99631069 Jetty9 - Avoid to throw just after having written the SSL close message. 2012-08-08 11:28:53 +02:00
Simone Bordet 2816187e0d Jetty9 - More logging. 2012-08-08 11:28:53 +02:00
Simone Bordet cac1c933c3 Jetty9 - Prevented NPE in case the connection cannot be created. 2012-08-08 11:28:53 +02:00
Simone Bordet d40170001a Jetty9 - Removed call to onOpen() for the nested connection, it's not needed, and always calling completeWrite() from onFillable() in case there is application data left to be written.
Improved logging.
2012-08-08 11:28:53 +02:00
Greg Wilkins 32c5f6c093 jetty-9 reduced LazyList usage 2012-08-08 11:58:50 +10:00
Thomas Becker d4d41fb877 jetty9 - fix WriteFlusherTest.testConcurrentAccessToIncompleteWriteAndOnFail() 2012-08-03 19:56:00 +02:00
Thomas Becker 5743483f9c jetty9 - WriteFlusher.PendingState._buffers is final now 2012-08-03 19:27:35 +02:00
Thomas Becker 90112965b6 jetty9 - SelectChannelEndPoint.toString() fix 2012-08-03 19:10:21 +02:00
Simone Bordet 433839bd47 Jetty9 - Introduced ConnectionFactory for SelectChannelConnector.
This change abstracts out the connection creation from the connector itself,
so there can be only one connector managing all protocols, depending on
the configuration of the connection factories.
2012-08-03 19:10:21 +02:00
Thomas Becker 9f2d1586ca jetty9 - WriteFlusher minor changes. Some ConcurrentTests for WriteFlusher added. Cleanup. Javadoc. 2012-08-03 19:10:18 +02:00
Greg Wilkins 2d7b6c9c06 jetty-9 some post simone review changes to WriteFlusher 2012-08-03 19:41:56 +10:00
Greg Wilkins 99a4b5955f jetty-9 more common code in AbstractEndPoint 2012-08-03 15:51:21 +10:00
Greg Wilkins 40d4e1070f jetty-9 renamed ReadInterest to fillInterest 2012-08-03 12:49:37 +10:00
Greg Wilkins 7df281bb16 jetty-9 renamed ReadInterest to fillInterest 2012-08-03 12:47:33 +10:00
Greg Wilkins 29833f000b Merge branch 'jetty-9' into jetty-9-oneconnector
Conflicts:
	jetty-io/src/main/java/org/eclipse/jetty/io/AsyncByteArrayEndPoint.java
	jetty-io/src/main/java/org/eclipse/jetty/io/ChannelEndPoint.java
	jetty-io/src/main/java/org/eclipse/jetty/io/WriteFlusher.java
	jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java
	jetty-io/src/test/java/org/eclipse/jetty/io/WriteFlusherTest.java
2012-08-03 12:39:21 +10:00
Thomas Becker 137ccca7c5 jetty9 - Make WriteFlusher.java threadsafe 2012-08-03 01:06:41 +02:00
Thomas Becker a4018d3484 merge with jetty-9 2012-08-02 15:00:43 +02:00
Thomas Becker 4e94601619 jetty-9: Make WriteFlusher threadsafe. 2012-08-02 14:38:54 +02:00
Greg Wilkins 0865a9cfb0 jetty-9 removed more AsyncConnection names 2012-08-02 18:10:29 +10:00
Greg Wilkins b52930be14 jetty-9 merged Async and non-Async classes for EndPoint and Connection 2012-08-02 16:08:49 +10:00
Greg Wilkins 96b5c05674 jetty-9 one connector passing most tests 2012-08-02 11:51:54 +10:00
Greg Wilkins 2a470631bf Merge branch 'jetty-9' into jetty-9-oneconnector
Conflicts:
	jetty-server/src/main/java/org/eclipse/jetty/server/ssl/SslSelectChannelConnector.java
2012-08-02 08:11:12 +10:00
Greg Wilkins b2a8fc02dc jetty-9 renaming and javadoc to improve the understandability of SslConnection 2012-08-01 15:53:03 +10:00
Simone Bordet 9a34c08b8e Jetty9 - Removed unused fields. 2012-07-31 16:23:43 +02:00
Thomas Becker a480e2c94d Merge branch 'jetty-9' of ssh://git.eclipse.org/gitroot/jetty/org.eclipse.jetty.project into writeFlusher_refactoring 2012-07-31 13:55:13 +02:00
Thomas Becker 377065fae7 interims changes 2012-07-31 13:51:19 +02:00
Greg Wilkins 50ac775bf5 jetty-9 added WriteFlusherTest 2012-07-31 19:07:25 +10:00
Greg Wilkins acdc1c1abd jetty-9 explain the sslConnection flush contract 2012-07-31 18:12:40 +10:00
Greg Wilkins 01529ba128 jetty-9 ignore all selector exceptions if not running, since closed selector exception is not an IOException 2012-07-31 14:55:06 +10:00
Greg Wilkins e772e26b5b jetty-9 synchronized writeflusher until correct non blocking impl 2012-07-31 14:54:22 +10:00
Simone Bordet 35b61feae2 Jetty9 - Test for better handling for I/O interests. 2012-07-30 23:02:25 +02:00
Simone Bordet 0c1ca16e86 Jetty9 - Better handling for I/O interests.
When the SelectChannelEndPoint is selected, it should only remove interests
for what has been selected, so that other interests are kept unchanged.
2012-07-30 19:43:13 +02:00