Commit Graph

1415 Commits

Author SHA1 Message Date
Simone Bordet 22cea067d7 Removed unused method. 2015-07-08 18:49:20 +02:00
Simone Bordet f62305b5a5 Bug 470727 - Thread Starvation of selector wakeups.
Added comment on running non-blocking code immediately.
2015-07-08 12:48:53 +02:00
Greg Wilkins 8d869bf88b 470727 - Thread Starvation with EWYK
Implemented NonBlockingCallbacks and fallback to PEC scheduling
2015-07-01 17:21:53 +10:00
Jesse McConnell 60e45a940e [maven-release-plugin] prepare for next development iteration 2015-06-15 15:34:11 -05:00
Jesse McConnell d3dec8d513 [maven-release-plugin] prepare release jetty-9.2.12.M0 2015-06-15 15:34:03 -05:00
Joakim Erdfelt cf6c4a914e Updating version to 9.3.1-SNAPSHOT 2015-06-15 10:25:49 -07:00
Joakim Erdfelt 1a9da9f9e4 Updating versions to 9.3.0.v20150612 2015-06-12 09:34:24 -07:00
Joakim Erdfelt 496b4dfc83 [maven-release-plugin] prepare for next development iteration 2015-06-11 15:08:36 -07:00
Joakim Erdfelt f53c5d8fac [maven-release-plugin] prepare release jetty-9.3.0.v20150611 2015-06-11 15:08:29 -07:00
Simone Bordet b18adb525f 469633 - Make SpinLock behavior pluggable.
Renamed SpinLock to Locker, uses ReentrantLock by default, but can be
turned into a spin lock by setting the system property
org.eclipse.jetty.util.thread.Locker.spin=true.
2015-06-08 17:15:54 +02:00
Jesse McConnell bfe6c2638e [maven-release-plugin] prepare for next development iteration 2015-05-29 09:06:42 -05:00
Jesse McConnell 71e0f4d8ce [maven-release-plugin] prepare release jetty-9.2.11.v20150529 2015-05-29 09:06:36 -05:00
Greg Wilkins 0db541889b 468714 SelectorManager updateKey race without submit 2015-05-29 12:27:12 +10:00
Jesse McConnell a7087cbfbf [maven-release-plugin] prepare for next development iteration 2015-05-28 10:06:51 -05:00
Jesse McConnell 913c63e597 [maven-release-plugin] prepare release jetty-9.2.11.v20150528 2015-05-28 10:03:44 -05:00
Simone Bordet 72222ba8a3 Small optimization: call readyOps() outside spin lock. 2015-05-26 18:03:55 +02:00
Simone Bordet 34452096c5 Performance optimization: remember the key current interestOps.
This allows to avoid calling SelectionKey.interestOps() (the getter)
which grabs a lock in the NIO implementation.
2015-05-21 15:54:43 +02:00
Simone Bordet 282e53cd06 Performance optimization: call selector.wakeup() outside spinlock. 2015-05-21 10:29:13 +02:00
Greg Wilkins 8b39e7ffb8 464629 JDK8 Socket customization
Added the SocketCustomizationListener class which may be added as a bean to either a Connector or a ConnectionFactory
so that customizations may be made per connector by connection type or even per connection factory.

SSL is unwrapped.
2015-04-30 11:46:10 +10:00
Simone Bordet 09be0702f4 Improved error reporting in case of ReadPendingException. 2015-04-29 22:27:50 +02:00
Greg Wilkins 0dc394869b 465754 Unchecked PrintWriter errors
Removed the old unused UncheckedPrintWriter
Added similar bahaviour to the ResponseWriter class
2015-04-29 14:34:24 +10:00
Joakim Erdfelt 87c0d4fdf1 464727 - Update Javadoc for Java 8 DocLint
+ Fixing javadoc in jetty-io
2015-04-15 14:38:36 -07:00
Joakim Erdfelt 09b5f680b7 464727 - Update Javadoc for Java 8 DocLint
Eliminate empty tag warnings
+ Changed <p/> to <p>
+ Changed <br/> to <br>
2015-04-15 14:38:35 -07:00
Simone Bordet 599ab9bb1b 460671 - Rationalize property names.
Property format is now "jetty.<module|component>.<propertyName>".

Updated all references with new properties.
2015-04-13 16:21:48 +02:00
Greg Wilkins 5ed2f84d06 430951 Support SNI with ExtendedSslContextFactory 2015-04-02 19:12:44 +11:00
Greg Wilkins 1cb0449be3 Organised imports 2015-03-26 12:32:15 +11:00
Jesse McConnell da4f95f3d3 [maven-release-plugin] prepare for next development iteration 2015-03-25 09:08:27 -05:00
Jesse McConnell e92fd438fd [maven-release-plugin] prepare release jetty-9.2.11.M0 2015-03-25 09:08:21 -05:00
Simone Bordet 161317a5ef Merged branch 'jetty-9.2.x' into 'master'. 2015-03-23 22:32:40 +01:00
Simone Bordet 517b575c7f Fixed logging statement. 2015-03-23 22:27:00 +01:00
Simone Bordet d47ef4b846 462616 - Race between finishing a connect and timing it out. 2015-03-20 00:22:16 +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 a88d52b4e0 Merged branch 'jetty-9.2.x' into 'master'. 2015-03-09 12:31:39 +01:00
Simone Bordet ddc901f736 Fixed MappedByteBufferPool.Tagged.
The problem was that release uses ByteBuffer.isDirect() to know where
to put the released buffer, and Tagged was always creating heap buffers.
This leads to a very high miss ratio in the pool, which causes OOME in
some tests.
2015-03-09 12:30:15 +01:00
Simone Bordet b7715fb3eb Merged branch 'jetty-9.2.x' into 'master'. 2015-03-07 23:26:59 +01:00
Simone Bordet 66e1f0a863 Made the tag counter a non-static variable.
This was needed to avoid random test failures where a test running
before another could increase the tag and fail the test.
2015-03-07 22:35:02 +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 130afb9535 Merge branch 'jetty-9.2.x'
Conflicts:
	jetty-client/src/main/java/org/eclipse/jetty/client/LeakTrackingConnectionPool.java
	jetty-client/src/test/java/org/eclipse/jetty/client/HttpClientLoadTest.java
	jetty-client/src/test/java/org/eclipse/jetty/client/HttpClientUploadDuringServerShutdown.java
	jetty-server/src/main/java/org/eclipse/jetty/server/HttpInput.java
	jetty-spdy/spdy-server/src/test/java/org/eclipse/jetty/spdy/server/SynDataReplyDataLoadTest.java
	jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/TooFastClientTest.java
2015-03-06 15:57:52 -07: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 9b5205ba40 Merge remote-tracking branch 'origin/jetty-9.2.x'
Conflicts:
	jetty-util/src/main/java/org/eclipse/jetty/util/BufferUtil.java
2015-03-06 12:45:55 +11:00
Greg Wilkins 2c3a4869ab Tagged buffers from MappedByteBufferPool 2015-03-06 11:47:56 +11:00
Joakim Erdfelt 32de92f7d6 Updating Leak Tracking/Detecting behavior.
+ NOISY logging is now configurable at JVM startup
+ Improved javadoc in LeakDetector
2015-03-05 11:06:15 -07:00
Joakim Erdfelt 4396987ad5 Making LeakTracking more noisy 2015-03-05 11:06:15 -07:00
Joakim Erdfelt 5d29e6f351 Making report of release but not acquired report stack 2015-03-05 11:06:15 -07:00
Greg Wilkins 48b6bec64c Merge remote-tracking branch 'origin/jetty-9.2.x'
Conflicts:
	jetty-http/src/main/java/org/eclipse/jetty/http/HttpParser.java
2015-03-05 20:17:20 +11:00
Greg Wilkins 9b307bc0ed added leak detecting bufferpool to ssl tests 2015-03-05 16:55:10 +11:00
Greg Wilkins 8ec5cab568 fixed LocalClient issue with integration tests 2015-02-27 11:18:45 +11:00
Greg Wilkins 165ae8f238 Improved LocalConnector 2015-02-26 20:13:45 +11:00
Greg Wilkins f44bf8e368 460210 - ExecutionStragegy producer for SelectManager calls onOpen from produce method
Further refactoring.   Handle the initial onDataAvailable and final onAllDataRead calls
specially, as they may need to be called without scheduling read interest.
2015-02-25 10:47:09 +11: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 72ac0d0a03 Improved logging. 2015-02-24 13:08:06 +01:00
Simone Bordet d4dfc0762f Reviewed and made cosmetic changes. 2015-02-20 16:02:53 +01:00
Greg Wilkins b60ea47ef4 Revert "Revert "Fixed AsyncIO double dispatch""
This reverts commit 8bd94ec6be.
This is a revert of the revert to add back in the useful debug, plus some TODO comments describing the problems
2015-02-20 00:18:29 +11:00
Greg Wilkins 8bd94ec6be Revert "Fixed AsyncIO double dispatch"
This reverts commit 968063c1ab.
2015-02-20 00:03:40 +11:00
Greg Wilkins 968063c1ab Fixed AsyncIO double dispatch 2015-02-19 18:13:31 +11:00
Greg Wilkins bb8b5f9b76 better toString 2015-02-19 15:39:36 +11:00
Greg Wilkins c4a49110ef 460210 - ExecutionStragegy producer for SelectManager calls onOpen from produce method
fixed NPE on connection destroy for stopped selector
2015-02-19 14:30:39 +11:00
Greg Wilkins 363d04174d 460210 - ExecutionStragegy producer for SelectManager calls onOpen from produce method
onClose also a Product task
2015-02-19 13:35:58 +11:00
Greg Wilkins 28d2172ea7 460210 - ExecutionStragegy producer for SelectManager calls onOpen from produce method
Refinements to the refactored managed selector
2015-02-19 13:25:12 +11:00
Greg Wilkins e541865cef 460211 Fixed Idle race in ExecuteProduceRun
Fixed new race in refactored SelectorManager between attaching to key and calling onOpen
2015-02-19 13:25:12 +11:00
Simone Bordet adaa520cc9 Rewrite of ManagedSelector to handle connection creation as an ExecutionStrategy task.
Now the creation of a connection, and the Connection.onOpen() call
happen as a Runnable that is run by the ExecutionStrategy.
This allows onOpen() to block or otherwise perform tasks that are not
suitable to be run by a selector thread, since the ExecutionStrategy
will guarantee that another thread will take over the selector duties.
2015-02-18 23:00:37 +01:00
Greg Wilkins e18573f4a3 460211 Fixed Idle race in ExecuteProduceRun
Reimplemented ExecuteProduceRun with a spin lock
2015-02-18 21:47:22 +11: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
Greg Wilkins c3332e7d2e 459845 - Support upgrade from http1 to http2/websocket
Added support for unofficial "upgrade" from http/1 to h2c
2015-02-13 12:16:03 +11:00
Greg Wilkins 0f7ee8d607 Merge remote-tracking branch 'origin/jetty-9.2.x'
Conflicts:
	jetty-http/src/main/java/org/eclipse/jetty/http/HttpParser.java
	jetty-http/src/main/java/org/eclipse/jetty/http/HttpVersion.java
	jetty-io/src/main/java/org/eclipse/jetty/io/EndPoint.java
	jetty-server/src/main/java/org/eclipse/jetty/server/HttpConnection.java
2015-02-13 11:45:56 +11: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 cb5541b58e Merged branch 'jetty-9.2.x' into 'master'. 2015-02-09 17:39:16 +01:00
Simone Bordet e3ae501db8 Improved AbstractEndPoint.toString() to print for how long it has been idle. 2015-02-09 12:12:14 +01:00
Greg Wilkins f6cfe07a69 added direct buffer configuration 2015-02-05 10:02:01 +11: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
Jesse McConnell 7865f88b81 [maven-release-plugin] prepare release jetty-9.2.7.v20150116 2015-01-16 12:06:30 -06:00
Jesse McConnell db991355a2 [maven-release-plugin] prepare for next development iteration 2015-01-16 10:41:45 -06:00
Jesse McConnell 6930abb8d3 [maven-release-plugin] prepare release jetty-9.2.7.v20140116 2015-01-16 10:41:39 -06:00
Jesse McConnell 9225b124a4 [maven-release-plugin] prepare for next development iteration 2015-01-16 08:21:35 -06:00
Jesse McConnell ebd563e64d [maven-release-plugin] prepare release 9.2.7.v20140116 2015-01-16 08:21:29 -06:00
Greg Wilkins 55bcd32448 fixed merge 2015-01-08 17:43:55 +01:00
Greg Wilkins e1cc5fb487 Merge remote-tracking branch 'origin/master' into jetty-9.3-ewyk
Conflicts:
	jetty-server/src/main/java/org/eclipse/jetty/server/HttpChannel.java
	jetty-server/src/main/java/org/eclipse/jetty/server/QueuedHttpInput.java
	jetty-util/src/main/java/org/eclipse/jetty/util/thread/NonBlockingThread.java
2015-01-08 15:21:01 +01:00
Joakim Erdfelt a3201a3c81 Happy New Year 2015 2015-01-07 17:06:59 -07:00
Joakim Erdfelt 6a0668b7a1 Happy New Year 2015 2015-01-07 17:03:30 -07:00
Simone Bordet bb3f296626 Fixed byte arithmetic: byte is signed and can't be used as array
index without proper conversion to int.
2015-01-05 16:57:19 +01:00
Greg Wilkins a4d2895400 removed unneeded execute for SslConnection onFillable 2015-01-02 15:24:14 +01:00
Greg Wilkins 39b478e2c4 Speculative fix for EWYK SSL client 2015-01-02 14:33:25 +01:00
Greg Wilkins beacb948b1 Allow configuration of ExecutionStrategy
eg -Dorg.eclipse.jetty.io.ManagedSelector.ExecutionStrategy=org.eclipse.jetty.util.thread.ExecutionStrategy$ExecuteProduceRun
2015-01-01 17:04:00 +01:00
Greg Wilkins 3af9b145a3 Deprecated the AbstractConnection dispatchIO mechanism 2015-01-01 16:18:13 +01:00
Greg Wilkins 191286970a Use remote IP to distribute connections over selectors 2014-12-28 01:05:56 +01:00
Greg Wilkins ee3481cb3f fixed ByteArrayEndPoint dispatch 2014-12-24 12:50:19 +01:00
Greg Wilkins fecc03a2f5 fixed some more tests after EWYK refactor 2014-12-23 22:20:49 +01:00
Greg Wilkins 3f59bc4c14 refactored HttpConnector for EWYK - work in progress 2014-12-23 17:15:27 +01:00
Simone Bordet 023c593d35 Removed loop calling the ExecutionStrategy, since it was spinning.
In case of ProduceExecuteRun, the producer is called in a loop, and
it never returns null (unless stopped), so ExecutionStrategy.execute()
never returns.

In case of ExecuteProduceRun, ExecutionStrategy.execute() does return,
but only after it has arranged another thread to continue producing.
Therefore calling ExecutionStrategy.execute() in a loop was spinning
since the ExecutionStrategy had already arranged to produce with
another thread and therefore calling execute() again was a
no-operation hence causing the spinning.
2014-12-23 17:01:10 +01:00
Simone Bordet 9cff4a57e7 Merged branch 'master' into 'jetty-9.3-ewyk'. 2014-12-22 21:34:10 +01:00
Simone Bordet e8c88cfd9c Merged branch 'jetty-9.2.x' into 'master'. 2014-12-22 21:32:09 +01:00
Greg Wilkins 2a584613ee work in progress on EWYK HTTP 2014-12-21 20:56:36 +01:00
Greg Wilkins b0b038f5b0 fillInterest never recurses 2014-12-19 23:03:01 +01:00
Simone Bordet 448f150ac4 Cleaned up ExecutionStrategy by adding javadocs, removing methods not
used and renaming classes and methods to better names.
2014-12-19 11:25:09 +01:00
Simone Bordet 393bfa76f0 Code cleanups. 2014-12-19 10:15:14 +01:00
Greg Wilkins 3b34423b17 EWYK SelectorManager 2014-12-18 17:06:32 +01:00
Greg Wilkins 31e06b5791 refactored jetty-io to not have onFillable statemachine. work in progres... 2014-12-18 14:10:06 +01:00
Greg Wilkins 97af3632a1 SelectManager executes endpoint tasks 2014-12-17 17:03:15 +01:00
Greg Wilkins bbd2ba60e7 fixed refactor file header 2014-12-17 16:36:46 +01:00
Greg Wilkins cdd2b0a9d2 refacted SelectorManager to have a ManagedSelector 2014-12-17 16:29:24 +01:00
Joakim Erdfelt 2b241ac04b 454773 - SSLConnection use on Android client results in loop
+ Adding safety check for SSL unwrap in client mode that
  results in OK status but no content
2014-12-12 09:24:39 -07:00
Greg Wilkins d161bdcb36 Merge remote-tracking branch 'origin/jetty-9.2.x'
Conflicts:
	VERSION.txt
	aggregates/jetty-all/pom.xml
	apache-jsp/pom.xml
	apache-jstl/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-alpn/jetty-alpn-client/pom.xml
	jetty-alpn/jetty-alpn-server/pom.xml
	jetty-alpn/pom.xml
	jetty-annotations/pom.xml
	jetty-ant/pom.xml
	jetty-cdi/pom.xml
	jetty-client/pom.xml
	jetty-continuation/pom.xml
	jetty-deploy/pom.xml
	jetty-distribution/pom.xml
	jetty-fcgi/fcgi-client/pom.xml
	jetty-fcgi/fcgi-server/pom.xml
	jetty-fcgi/pom.xml
	jetty-http-spi/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-alpn/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-osgi/test-jetty-osgi/pom.xml
	jetty-plus/pom.xml
	jetty-proxy/pom.xml
	jetty-quickstart/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-alpn-tests/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-client-transport/pom.xml
	jetty-spdy/spdy-http-common/pom.xml
	jetty-spdy/spdy-http-server/pom.xml
	jetty-spdy/spdy-npn-tests/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/javax-websocket-client-impl/pom.xml
	jetty-websocket/javax-websocket-server-impl/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-servlet/pom.xml
	jetty-xml/pom.xml
	pom.xml
	tests/pom.xml
	tests/test-continuation/pom.xml
	tests/test-integration/pom.xml
	tests/test-loginservice/pom.xml
	tests/test-quickstart/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-mongodb-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
2014-12-11 13:50:21 +01:00
Jan Bartel bc22ba72dc [maven-release-plugin] prepare for next development iteration 2014-12-05 16:45:12 +01:00
Jan Bartel 1cc075cf98 [maven-release-plugin] prepare release jetty-9.2.6.v20141205 2014-12-05 16:45:01 +01:00
Simone Bordet cce5c14e7c Fixed typos. 2014-12-05 14:01:05 +01:00
Greg Wilkins 07e87f0ecf 454157 abort to avoid spin in async HttpInput.consumeAll 2014-12-04 17:39:53 +01:00
Jesse McConnell 127b48c932 [maven-release-plugin] prepare for next development iteration 2014-12-03 09:00:57 -06:00
Jesse McConnell 028f4b9610 [maven-release-plugin] prepare release jetty-9.2.6.v20141203 2014-12-03 09:00:46 -06:00
Jesse McConnell 1263d1f3c8 [maven-release-plugin] prepare for next development iteration 2014-12-03 08:26:47 -06:00
Jesse McConnell 5c7f706496 [maven-release-plugin] prepare release jetty-9.2.6.v20141203 2014-12-03 08:26:35 -06:00
Greg Wilkins 981e27b383 452246 Fixed SSL hang on last chunk
Back ported refinements from 9.3 to handle empty arrays
2014-11-27 18:23:21 +11:00
Greg Wilkins 30776f9662 fixed merge 2014-11-27 14:32:09 +11:00
Greg Wilkins 1159111c52 Merge remote-tracking branch 'origin/jetty-9.2.x'
Conflicts:
	jetty-io/src/main/java/org/eclipse/jetty/io/SelectChannelEndPoint.java
	jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebAppContext.java
2014-11-27 13:34:45 +11:00
Greg Wilkins a39dcd6fe5 452246 Fixed SSL hang on last chunk
Fixed WriteFlusher to distinguish between a flush that consumes all content and returns false, from one
that consumes all content and returns true.
If false is returned, the flusher needs to remain in pending so encrypted buffers can be flushed.
2014-11-27 11:45:08 +11:00
Jesse McConnell 09846e324d [maven-release-plugin] prepare for next development iteration 2014-11-12 17:13:19 -06:00
Jesse McConnell 97d2bd95a6 [maven-release-plugin] prepare release jetty-9.2.5.v20141112 2014-11-12 17:13:14 -06:00
Jesse McConnell 5d0595cabd [maven-release-plugin] prepare for next development iteration 2014-11-03 13:46:58 -06:00
Jesse McConnell 772ff0bfd4 [maven-release-plugin] prepare release jetty-9.2.4.v20141103 2014-11-03 13:46:52 -06:00
Jesse McConnell 1c4a08b35b [maven-release-plugin] prepare for next development iteration 2014-10-31 09:58:16 -05:00
Jesse McConnell a4ff7bf841 [maven-release-plugin] prepare release jetty-9.2.4.v20141031 2014-10-31 09:58:10 -05:00
Jesse McConnell e1b73a64eb [maven-release-plugin] prepare for next development iteration 2014-10-30 11:28:41 -05:00
Jesse McConnell 5770cc1179 [maven-release-plugin] prepare release jetty-9.2.4.v20141030 2014-10-30 11:28:35 -05:00
Jesse McConnell 58eb6740ec [maven-release-plugin] prepare for next development iteration 2014-10-28 14:20:30 -05:00
Jesse McConnell 19a44846cf [maven-release-plugin] prepare release jetty-9.2.4.v20141028 2014-10-28 14:20:24 -05:00
Greg Wilkins 5da7c29787 Simplified SelectorManager state machine
Removed changing state, as it is just an aspect of processing.
2014-10-22 10:29:41 +11:00
Greg Wilkins a906aaa266 Simplified SelectorManager state machine
Made the SelectorManager use the CaS state machine for both locking and controlling
the mode of handling changes.

Replaced the concurrent change queue with a pair of array lists that are switched while the lock state is held
2014-10-17 14:16:48 +11:00
Greg Wilkins e8a843dc6a Submit selector interest changes
After seeing a stack trace with many threads blocked on setInterest, have reverted to always submitting changes
2014-10-17 12:36:02 +11:00
Simone Bordet 61ec3efd65 Cosmetics. 2014-10-15 11:39:32 +02:00
Greg Wilkins d82809d2f1 Simplified state machine for select interest update.
The state machine now simply tracks if the endpoint is selecting or has been selected.
The slight complexity is that any transition between these two states goes via a locked
state, where there is exclusive access to the interested ops and selection key.
2014-10-15 17:33:58 +11:00
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