Commit Graph

8674 Commits

Author SHA1 Message Date
Simone Bordet 41fc2b8f87 424043 - IteratingCallback Idle race.
Renamed Next enum to Action, and renamed some constant of the State
enum to avoid confusion with the Action enum.

Simplified succeeded() and failed(Throwable) code,
covering also cases not covered before.

Fixed case SCHEDULED in succeeded() that was returning in case the
compareAndSet failed.

Fixed race in perform(), where 2 threads may execute concurrently
after having returned from process().

Vastly improved javadocs and comments.
2013-12-15 00:47:55 +01:00
Greg Wilkins 7141483356 424043 - IteratingCallback Idle race 2013-12-14 09:14:12 +11:00
Joakim Erdfelt 46ef022cf4 421314 - Websocket / Connect attempt with Chrome 32+ fails with "Some extension already uses the compress bit"
+ Reworked extension negotiation to be more consistent with the changes
  to the spec that Chrome 32 are introducing.  Namely that first
  extension to claim RSV bit wins, all other conflicting extensions are
  ignored.
2013-12-13 12:30:26 -07:00
Joakim Erdfelt 5c296c99d8 Cleaning up tests 2013-12-13 12:30:25 -07:00
Simone Bordet 5bbdbadec7 421795 - ContentProvider should have a method to release resources.
Implemented close of the request content based on the fact that the
Iterator returned by the content provider implements Closeable.
2013-12-13 18:47:38 +01:00
Simone Bordet b0c275837b 421794 - Iterator from InputStreamProvider is not implemented properly.
Now the iterator contract is better respected.
2013-12-13 16:32:14 +01:00
Simone Bordet 6473bbc2b6 424014 - PathContentProvider does not close its internal
SeekableByteChannel.

Fixed by closing the channel when it has been fully read and in case
of exceptions.
2013-12-13 14:27:13 +01:00
Simone Bordet ce4e07f6a4 Added comments about optimizations that may be included as part of
fixing 423974 - Optimize flow control.
2013-12-13 13:39:46 +01:00
Simone Bordet 6f316f9887 423930 - SPDY streams are leaked.
With this fix, when streams are closed or failed, the stream is closed
and its idle timeout is canceled, avoiding the leaking.
2013-12-13 13:39:46 +01:00
Simone Bordet f4a5f68bdd Using org.junit.Assert rather than junit.framework.Assert. 2013-12-13 13:39:46 +01:00
Simone Bordet 510afdef2a Removed unused field. 2013-12-13 13:39:46 +01: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
Jan Bartel 2d3d912173 423361 Ensure ServletContainerInitializers called before injecting Listeners 2013-12-13 15:03:46 +11:00
Greg Wilkins 1731e0c69a 423392 - GzipFilter without wrapping or blocking
ensure that servlets are enabled for demo
2013-12-13 12:19:38 +11:00
Greg Wilkins 0104374adb 423048 - Receiving a PING while sending a message kills the connection
Optimised to remove msgLock and just have a concurrent state machine on msgType
2013-12-13 11:51:05 +11:00
Joakim Erdfelt 0a30b4934b 423915 - WebSocket / Active connection from IOS that goes into airplane mode not disconnected on server side
+ Adding testcase verifying Native WebSocket API behavior
2013-12-12 17:04:35 -07:00
Joakim Erdfelt 6d70aab61d 423915 - WebSocket / Active connection from IOS that goes into airplane mode not disconnected on server side
+ Working testcase for JSR-356
2013-12-12 16:58:42 -07:00
Joakim Erdfelt 7af074bafb 423048 - Receiving a PING while sending a message kills the connection
+ Removed msgLock on control frames.
+ Moved sendPing() and sendPong() to async frame handling
+ Squelched a mess of stacktraces in the testing output
2013-12-12 16:08:53 -07:00
Joakim Erdfelt 5941e9db83 Fixing various warnings / imports 2013-12-12 14:46:40 -07:00
Joakim Erdfelt ecf3b8a68f 421189 - WebSocket / AbstractExtension's WebSocketPolicy is not Session-specific
+ Ensuring that the EventDriver managed policy is used by the
  ExtensionStack
2013-12-12 13:51:01 -07:00
Joakim Erdfelt bc7afdc172 423476 - WebSocket / JSR / @OnMessage(maxMessageSize=20000000) not properly supported
+ Correcting @OnMessage handling of max message size for TEXT/BINARY
  from both @ClientEndpoint and @ServerEndpoint usage
+ Testcases to prevent regression.
2013-12-12 13:20:49 -07:00
Jan Bartel 4d2c6ca21a 423060 Allow ${jetty.base}/work 2013-12-12 18:06:43 +11:00
Greg Wilkins a12ad15a2c 423739 Start checks module files.
At runtime, required modules files are checked.  Either a warning is generated
or they are downloaded/create if --download or --create is specified.
2013-12-12 17:01:51 +11:00
Jan Bartel 0ac021b6fd 423875 Update jetty-distro build to use jetty-toolchain jetty-schemas 3.1.M0 2013-12-12 15:50:50 +11:00
Greg Wilkins 084ed61711 423695 - <HT> Horizontal-tab used as HTTP Header Field separator unsupported
Added tests to confirm that multivalue parsing is OK
2013-12-12 15:15:54 +11:00
Jan Bartel dfe5889bc4 423361 Make all listeners injectable irrespective of method of declaration (descriptor, api, annotation) 2013-12-12 14:44:38 +11:00
Joakim Erdfelt 120e0e59ca Cleanup (Imports / StandardCharset / Dead APIs) 2013-12-11 17:27:58 -07:00
Joakim Erdfelt eb2f3acfbd 423804 - WebSocket / JSR improper use of ServerEndpointConfig.Configurator.getNegotiatedSubprotocol()
+ Correcting BasicServerEndpointConfigurator response for no subprotocol
+ Correcting JsrCreator assumption for no subprotocol
2013-12-11 17:00:28 -07:00
Joakim Erdfelt 5bb1631c68 Removing conflicting javax.websocket:javax.websocket-client-api artifact 2013-12-11 17:00:28 -07:00
Joakim Erdfelt 85f2bebab3 formatting cleanup 2013-12-11 17:00:28 -07:00
Joakim Erdfelt 8f132a2e0c Updating clirr comparison to first released 9.1 2013-12-11 17:00:28 -07:00
Joakim Erdfelt 8bbaf64250 Updating to jetty-project:21-SNAPSHOT 2013-12-11 17:00:28 -07:00
Simone Bordet 125cfe7e71 419911 - Empty chunk causes ArrayIndexOutOfBoundsException in
InputStreamResponseListener.

Fixed by adding relevant checks for zero-length content,
and not notifying listeners in such case.
2013-12-11 16:02:14 +01:00
Simone Bordet f2cc5295df 422264 - OutputStreamContentProvider does not work with Basic
Authentication.

Improved exception message in case of reuse of the same instance in
multiple requests.
2013-12-11 15:24:52 +01:00
Joakim Erdfelt 5b77679ecf Attempted fix for intermittent test failures around MessageInputStream 2013-12-10 13:01:12 -07:00
Simone Bordet 6f87a9b995 Added test that verifies that the host header is correctly
overwritten by a user-provided value.
2013-12-10 16:59:54 +01:00
Simone Bordet 7a235e6e69 423397 - Jetty server does not run on Linux server startup because of
a bug in jetty.sh script.

Fixed by using the "*" instead of "+" for numbers so that sed does not
complain and it's also non-GNU compliant.
2013-12-10 16:42:39 +01:00
Joakim Erdfelt 3eb959a1e2 423695 - <HT> Horizontal-tab used as HTTP Header Field separator unsupported
+ Adding suggested fix to HttpParser
2013-12-10 06:58:00 -07:00
Joakim Erdfelt a345bdf4ff 423695 - <HT> Horizontal-tab used as HTTP Header Field separator unsupported
+ Adding @Ignore'd testcase HttpParserTest.testHeaderTab()
2013-12-10 06:31:56 -07:00
Joakim Erdfelt 54c22d0aca 418622 - WebSocket / When rejecting old WebSocket protocols, log client details 2013-12-09 17:00:18 -07:00
Joakim Erdfelt 48fe92d939 423185 - Update permessage-deflate for finalized spec
+ Adding support for new permessage-deflate parameters
+ Tested against pywebsocket (rev 790)
+ Tested against Chrome Canary 32
2013-12-09 16:20:14 -07:00
Joakim Erdfelt db777310b5 WebSocket / RFC-6455: Section 5.1 frame masking validation 2013-12-09 16:20:14 -07:00
Greg Wilkins 8243bd60b7 423392 - GzipFilter without wrapping or blocking
Handle the case where a gzip flush requires multiple iterations to go from finish() to finished()
Better handling of exceptional cases
2013-12-09 18:20:04 +11:00
Jan Bartel 39d21aee0a 410750 NPE Protection in Mongo save session 2013-12-09 17:16:54 +11:00
Jan Bartel 8b544e4327 423556 HttpSessionIdListener should be resource injectable 2013-12-09 17:05:52 +11:00
Greg Wilkins cd05751ff7 423392 - GzipFilter without wrapping or blocking
I Added AsyncGzipFilter, which uses a modified HttpOutput instance to provide gzip compression without wrapping or blocking.
Does not currently handle deflate.
2013-12-06 22:53:41 +11:00
Jan Bartel 5f204b8812 423395 Ensure @WebListeners are injected 2013-12-06 15:46:51 +11:00
Jan Bartel d067dc6010 423373 Correct namespace use for JEE7 Schemas 2013-12-06 11:58:03 +11:00
Joakim Erdfelt 4d761edb53 Fixing missing license header 2013-12-05 13:37:35 -07:00
Joakim Erdfelt fb0b67621b 423373 - Correct namespace use for JEE Schemas
+ Updating webdefault.xml for new namespace in JEE7
2013-12-05 13:36:38 -07:00