Commit Graph

2556 Commits

Author SHA1 Message Date
Lachlan Roberts a11c7f554c Issue #4903 - cleanup catch statement from review
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-05-27 09:42:44 +10:00
Lachlan Roberts 5c63b0ef78 Issue #4903 - catch Throwable instead of RuntimeException
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-05-26 17:37:04 +10:00
Lachlan Roberts c41560c7cd Issue #4903 - add cause to Exception when creating endpoint instance
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-05-26 15:35:39 +10:00
Lachlan Roberts 470d948504 Issue #4903 - changes from review
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-05-26 09:35:17 +10:00
Lachlan Roberts add00c9dd8 Issue #4903 - check endpoint class is default constructable
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-05-25 13:57:41 +10:00
Lachlan Roberts 28a588b8bd Issue #4903 - Better errors for non public endpoints
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-05-25 12:36:09 +10:00
Joakim Erdfelt 5d6f3e2ddc Updating to version 9.4.30-SNAPSHOT 2020-05-21 13:42:25 -05:00
Joakim Erdfelt 77c232aed8 Updating to version 9.4.29.v20200521 2020-05-21 12:04:14 -05:00
Ludovic Orban 7d80c8fc39 Add constructor to better align with 10.0.x
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2020-05-13 17:38:43 +02:00
Lachlan Roberts 71df3b57ee Issue #4824 - add configuration on RemoteEndpoint for maxOutgoingFrames
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-04-30 09:39:58 +10:00
Joakim Erdfelt 5699b9ff3d Updating to version 9.4.29-SNAPSHOT 2020-04-08 13:15:04 -05:00
Joakim Erdfelt ab228fde9e Updating to version 9.4.28.v20200408 2020-04-08 12:33:56 -05:00
Lachlan Roberts 3d74148652 Issue #4650 - do not use ServiceLoader every time a WSSession is started
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-03-12 12:34:03 +11:00
Olivier Lamy 3a77542303
upgrade shade plugin and align version (#4639)
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2020-03-05 09:10:12 +10:00
Lachlan b014e2faca
Merge pull request #4597 from eclipse/jetty-9.4.x-847-WSasyncWriteTimeout
Issue #847 - deprecate asyncWriteTimeout in the jetty websocket API
2020-03-02 10:19:01 +11:00
Joakim Erdfelt 8aabb52557 Updating to version 9.4.28-SNAPSHOT 2020-02-27 13:03:44 -06:00
Joakim Erdfelt a304fd9f35 Updating to version 9.4.27.v20200227 2020-02-27 12:21:57 -06:00
Lachlan Roberts b138ce55bb Issue #847 - deprecate asyncWriteTimeout in the jetty websocket api
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-02-21 14:58:19 +11:00
Lachlan aaf6f17766
Merge pull request #4555 from eclipse/jetty-9.4.x-4537-WebSocketSpin
Issue #4537 - fix potential spin when discarding in WebSocketConnection
2020-02-13 09:14:06 +11:00
Sergey Tselovalnikov 66f4bda2ea comments
Signed-off-by: Sergey Tselovalnikov <sergeicelov@gmail.com>
2020-02-10 21:02:36 +11:00
Sergey Tselovalnikov d371c1498c Improve performance of small websocket messages
Signed-off-by: Sergey Tselovalnikov <sergeicelov@gmail.com>
2020-02-10 20:07:33 +11:00
Lachlan Roberts 20621b76fb Issue #4537 - fix potential spin when discarding in WebSocketConnection
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-02-10 18:29:55 +11:00
Lachlan b64964113c
Merge pull request #4486 from eclipse/jetty-9.4.x-4475-WebSocketStreamMessageOrder
Issue #4475 - fix WebSocket streaming message ordering
2020-01-24 10:01:22 +11:00
Joakim Erdfelt 56fc476d55 Updating to version 9.4.27-SNAPSHOT 2020-01-17 07:00:10 -06:00
Joakim Erdfelt 7b38981d25 Updating to version 9.4.26.v20200117 2020-01-17 06:21:47 -06:00
Lachlan Roberts 08b1be6ea8 Issue #4475 - improve testing for MessageInputStream
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-01-17 18:37:47 +11:00
Lachlan Roberts 3d309a5797 Issue #4475 - use state machine for MessageInputStream
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-01-17 18:37:20 +11:00
Lachlan Roberts 3fd7094c01 Issue #4475 - suspend/resume to control reading frames while streaming
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-01-17 13:11:48 +11:00
Joakim Erdfelt 8c65309963
Addressing Checkstyle violations in src/test/java
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2020-01-14 12:33:34 -06:00
Lachlan Roberts c7b6ccca98 Issue #4475 - add tests not reading until EOF
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-01-14 19:14:48 +11:00
Lachlan Roberts 16c406b55c Issue #4475 - add test for fragmented frames
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-01-14 15:15:56 +11:00
Lachlan Roberts 26d12b9c2d Issue #4475 - proof of concept
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-01-14 14:52:50 +11:00
Lachlan Roberts a7b9df96fd cleanup WebSocket logging in EventSocket
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-01-14 10:33:19 +11:00
Lachlan e1f19be353
Closes #2620 - guard against exceptions for WebSocket onClose and onError (#4346)
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2020-01-14 09:22:56 +11:00
Simone Bordet 923ec38adf Merged branch 'jetty-9.3.x' into 'jetty-9.4.x'. 2020-01-07 16:51:25 +01:00
Simone Bordet e3c8546667 Merged branch 'jetty-9.2.x' into 'jetty-9.3.x'. 2020-01-07 16:35:05 +01:00
Simone Bordet de890bb1b7 Happy New Year 2020.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2020-01-07 16:25:32 +01:00
Joakim Erdfelt f4e7e4c3db Merge branch 'release-9.4.25' into jetty-9.4.x 2020-01-03 12:49:27 -06:00
olivier lamy e1371a1c13 happy new year
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2020-01-02 21:54:05 +01:00
Joakim Erdfelt 8974176c4b Updating to version 9.4.26-SNAPSHOT 2019-12-20 11:30:41 -06:00
Joakim Erdfelt a9729c7e7f Updating to version 9.4.25.v20191220 2019-12-20 10:46:56 -06:00
Joakim Erdfelt c2c2c56a02
Issue #3730 - EventDriverFactory and SessionFactory setters
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-12-19 13:46:12 -06:00
Joakim Erdfelt 26fde02c55
Issue #3730 - Updating invalid test assertion
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-12-19 12:43:49 -06:00
Joakim Erdfelt 94988596a1
Issue #3730 - Further updates from PR Review
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-12-19 12:33:43 -06:00
Joakim Erdfelt bb79f3e6e0
Issue #3730 - Collapsing now redundant private Constructor
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-12-18 15:33:23 -06:00
Joakim Erdfelt e02ef3efdd
Issue #3730 - Making new Constructor private
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-12-18 14:43:53 -06:00
Joakim Erdfelt 9da1820f13
Issue #3730 - Removing HttpContainerScope
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-12-18 14:38:37 -06:00
Joakim Erdfelt 7d65183e2c
Issue #3730 - Cleaning up Scopes in WebSocketClient
+ Introducing HttpContainerScope to track HttpClient specific
  ByteBufferPool, SslContextFactory, and Executor.
+ New private WebSocketClient constructor that use HttpContainerScope
+ Deprecated many constructors as irrelevant now that HttpClient
  is an option to create a WebSocketClient.

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-12-13 13:44:57 -06:00
Joakim Erdfelt 0f7a3b2d91 Updating to version 9.4.25-SNAPSHOT 2019-11-20 16:08:38 -06:00
Joakim Erdfelt 363d5f2df3 Updating to version 9.4.24.v20191120 2019-11-20 15:25:01 -06:00
Joakim Erdfelt 453d41940b Updating to version 9.4.24-SNAPSHOT 2019-11-18 13:52:51 -06:00
Joakim Erdfelt abbccc65d6 Updating to version 9.4.23.v20191118 2019-11-18 13:09:44 -06:00
Joakim Erdfelt c44e7c5eb1
Merge pull request #4299 from eclipse/jetty-9.4.x-4248-websocketclient-success-flag
Fixes #4248 - WebSocketClient UpgradeResponse.isSuccess never set true
2019-11-14 09:42:45 -06:00
Joakim Erdfelt 5479ed030f
Issue #4248 - Using ServletUpgradeResponse.setSuccess(true) for servlet side
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-11-13 15:33:00 -06:00
Joakim Erdfelt 6a6206d8e4
Issue #4248 - Deprecating UpgradeResponse setSuccess / isSuccess
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-11-13 15:32:23 -06:00
Joakim Erdfelt 2d50c92979
Fixes #4296 - WebSocketClient cannot connect with "%25" in query
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-11-12 10:22:19 -06:00
Joakim Erdfelt 544ad0a28a
Fixes #4248 - WebSocketClient UpgradeResponse.isSuccess never set true
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-11-12 10:14:51 -06:00
Joakim Erdfelt 5de1289ac0
Merge branch 'release-9.3.28' into jetty-9.3.x 2019-11-07 12:10:00 -06:00
Joakim Erdfelt 0df21b6e86
Merge branch 'jetty-9.2.x' into jetty-9.3.x
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>

# 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-client/src/test/java/org/eclipse/jetty/client/HttpClientTLSTest.java
#	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-http2/http2-alpn-tests/pom.xml
#	jetty-io/pom.xml
#	jetty-io/src/main/java/org/eclipse/jetty/io/ssl/SslConnection.java
#	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/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-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-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-server/src/test/java/org/eclipse/jetty/websocket/server/browser/BrowserDebugTool.java
#	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-jmx/jmx-webapp-it/pom.xml
#	tests/test-jmx/jmx-webapp/pom.xml
#	tests/test-jmx/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
2019-11-07 12:09:39 -06:00
Joakim Erdfelt 43d95cd984 Updating to version 9.3.29-SNAPSHOT 2019-11-05 13:02:10 -06:00
Joakim Erdfelt d7dd68d6e9 Updating to version 9.3.28.v20191105 2019-11-05 11:46:40 -06:00
Joakim Erdfelt b17439c731 Updating to version 9.2.30-SNAPSHOT 2019-11-05 11:23:21 -06:00
Joakim Erdfelt 36c95fdd43 Updating to version 9.2.29.v20191105 2019-11-05 10:43:15 -06:00
Joakim Erdfelt c980e3dd34
Fixing compilation issue
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-10-30 17:18:03 -05:00
Joakim Erdfelt 1ed13b6b30 Updating to version 9.4.23-SNAPSHOT 2019-10-22 09:19:41 -05:00
Joakim Erdfelt b1e6b55512 Updating to version 9.4.22.v20191022 2019-10-22 08:20:50 -05:00
Greg Wilkins 2eb251a4b8 fix logging defaults to INFO
Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-10-16 13:53:57 +11:00
Lachlan 00baa7147e
Merge pull request #4153 from eclipse/jetty-9.4.x-3558-websocket_onErrorAfterClose
Issue #3558 - only notify WS onError if onClose has not been called
2019-10-10 15:27:11 +11:00
Lachlan Roberts d95c825c5c Issue #3558 - only notify WS onError if onClose has not been called
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-10-04 11:13:38 +10:00
Joakim Erdfelt 6fc42d8ba2 Merge branch 'release-9.4.21' into jetty-9.4.x 2019-10-01 13:35:43 -05:00
Lachlan fef5975b86
Merge pull request #4108 from eclipse/jetty-9.4.x-4104-WSSession_SendAfterClose
Issue #4104 - WebSocketSession will reject outgoing frames if closed
2019-10-01 15:46:16 +10:00
Joakim Erdfelt 7807eafad9 Updating to version 9.4.22-SNAPSHOT 2019-09-26 10:46:28 -05:00
Joakim Erdfelt 72970db61a Updating to version 9.4.21.v20190926 2019-09-26 09:59:15 -05:00
Lachlan 3edc6c9102
Issue #3734 - throw ISE for WebSocket suspend after close (jetty-9.4) (#4098)
* Issue #3734 - throw ISE for WebSocket suspend after close

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>

* Issue #3734 - suspend is error if onClose() has been called

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-09-25 14:55:13 +10:00
Lachlan Roberts 5a52235464 Issue #4104 - WebSocketSession will reject outgoing frames if closed
Outgoing frames will now go RemoteEndpoint->Session->ExtensionStack
instead of just RemoteEndpoint->ExtensionStack.

This will allow the Session to check whether it has been closed before
allowing the frame through the ExtensionStack.

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-09-20 10:30:31 +10:00
Lachlan Roberts 22fba9aa91 Issue #3106 - deprecate old WebSocket stats mechanism
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-09-13 11:28:05 +10:00
Lachlan Roberts 63c7a44969 Issue #3982 - fix to WebSocket bytesIn for flaky WebSocketStatsTest
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-09-13 11:18:57 +10:00
Lachlan Roberts c2eff992b7 Issue #3982 - fix to WebSocket bytesIn for flaky WebSocketStatsTest
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-09-13 11:15:13 +10:00
Lachlan 74e560fb7a
Issue #4031 - stop unopened WebSocketSessions gracefully (#4046)
* Issue #4031 - stop unopened WebSocketSessions gracefully

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>

* Issue #4031 - notify onError if shutdown before open

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-09-06 13:50:33 +10:00
康智冬 49ba6d1acb fix typo and grammar (#4045)
Signed-off-by: KangZhiDong <worldkzd@gmail.com>
2019-09-02 14:29:50 -04:00
Joakim Erdfelt 2b72f08f1b
Merge pull request #4019 from eclipse/jetty-9.4.x-155-jsr-websocket-client-ssl-init
Issue #155 - Adding public ClientContainer(HttpClient) constructor
2019-08-28 14:31:51 -05:00
Joakim Erdfelt 37e7884382 Issue #4020 - Applying change requested from PR review
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-08-28 12:36:07 -05:00
Joakim Erdfelt e56d91196d Issue #4020 - Adding JMX to BrowserDebugTool to test dump
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-08-28 12:31:33 -05:00
Joakim Erdfelt 2979ed5046 Fixes #4020 - Satisfy Container LifeCycle dumpable behaviors
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-08-27 20:25:10 -05:00
Joakim Erdfelt 6bcfa2dc6e Fixes #4020 - Deprecate ExtensionFactory
+ This class is removed in Jetty 10 anyway.
+ If all you want is to access available extension names
  then use the Factory.getAvailableExtensionNames() method
  (which exists in Jetty 10.0.0 as well)

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-08-27 13:25:08 -05:00
Joakim Erdfelt 149d9d4862 Fixes #4020 - Revert ExtensionFactory change to interface.
+ The change in commit 30dc103a12
  was done to allow the InflaterPool and DeflaterPool
  to be managed by the Jetty lifecycle.
+ This restore the original abstract class ExtensionFactory.
+ Had to break the traditional LifeCycle usage for a more
  non-traditional one in order to both, not break this existing
  API, and not introduce jetty-util to the webapp classloader.
+ This will restore API / binary compatibility for other
  projects, like spring-boot.

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-08-26 13:40:32 -05:00
Greg Wilkins bde86467f4
Issue #3806 - Make Async sendError fully Async (#3912)
* Issue #3806 async sendError

Avoid using isHandled as a test withing sendError as this can be
called asynchronously and is in a race with the normal dispatch of the
request, which could also be setting handled status.

The ErrorHandler was dispatching directly to a context from within
sendError.  This meant that an async thread can call sendError and be
dispatched to within the servlet container at the same time that the
original thread was still dispatched to the container.

This commit fixes that problem by using an async dispatch for error
pages within the ErrorHandler.  However, this introduces a new problem
that a well behaved async app will call complete after calling
sendError.  Thus we have ignore complete ISEs for the remainder of
the current async cycle.

Fixed the closing of the output after calling sendError. Do not
close if the request was async (and thus might be dispatched to an
async error) or if it is now async because the error page itself is
async.

* updates from review
* better tests
* revert ignore complete
* added some TODOs
* more TODOs
* fixed rename
* cleanup ISE and more TODOs
* refactored to call sendError for uncaught exceptions rather than onError
* more of the refactor
* extra tests for sendError from completing state

Reworked HttpChannelState and sendError so that sendError is now
just a change of state. All the work is done in the ErrorDispatch
action, including calling the ErrorHandler.  Async not yet working.

Additional tests

Converted ERRORED state to a separate boolean so it can be used for
both Sync and Async dispatches.

Removed ASYNC_IO state as it was just the same as DISPATCHED

The async onError listener handling is now most likely broken.


WIP making sendError simpler and more tests pass
WIP handling async and thrown exceptions
WIP passing tests

Improved thread handling

removed bad test

Implemented error dispatch on complete properly
more fixed tests

sendError state looks committed

- Added resetContent method to leave more non-content headers during sendError
- Fixed security tests
- simplified the non dispatch error page writing.  Moved towards being able to write async

* fixed gzipHandlerTest

* Updated handling of timeout errors.  According to servlet spec,
exceptions thrown from onTimeout should not be passed to onError, but
just logged and ignored:

   If an exception is thrown while invoking methods in an AsyncListener,
   it is logged and will not affect the invocation of any other AsyncListeners.

* This changes several tests.

* Dispatcher/ContextHandler changes for new ERROR dispatch handling. Feels a bit fragile!

* Fixed tests in jetty-servlets
* Fixed tests in jetty-proxy

* more test fixes

* Fixed head handling
reverted unnecessary changes
Improved reason handling

WIP on fully async error handling.
Simplified HttpChannelState state machines to allow for async actions
during completing

more WIP on fully async error handling.

sendError and completion are not both non-blocking, without using
a startAsync operation. However we are lacking unit tests that actually
exercise those code paths.

* Simplified name of states
Added test for async completion
* Cleanups and javadoc
* Cleanups and javadoc
* remove snake case
* feedback from review
* Write error page into fixed pooled buffer

Use the response to get/release a pooled buffer into which the error
page can be written.  Make it a fixed sized buffer and if it overflows
then no error page is generated (first overflow turns off showstacks
to save space).

The ErrorHandler badly needs to be refactored, but we cannot change
API in jetty-9

* More test fixes for different error page format
* minor cleanups
* Cleanup from Review
* Fixed javadoc
* cleanups and simplifications
* Cleanup from Review
* renaming and some TODOs
* Cleanup from Review
* Checkstyle fixes
* Cleanup from Review
* Code cleanups and simplifications
* fixed debug
* Cleanup from Review
* Ensure response sent before server shutdown
* removed unnecessary optimisation
* fixed duplicate from merge
* Updates from review

Signed-off-by: Greg Wilkins <gregw@webtide.com>
2019-08-26 17:55:58 +10:00
Joakim Erdfelt f692af3d53 Issue #155 - Adding public ClientContainer(HttpClient) constructor
+ This helps with programmatic configuration of HttpClient
  layer (for SSL and Proxy).

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-08-23 11:55:13 -05:00
Joakim Erdfelt 12e1473fd0 Adding reference to javax.websocket issue
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-08-22 17:04:01 -05:00
Joakim Erdfelt 5bcbe0f9d9 Adding javax.websocket secure client example
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-08-22 16:45:04 -05:00
Olivier Lamy fe3d3f7158
fix checkstyle in test sources (#4013)
Signed-off-by: olivier lamy <oliver.lamy@gmail.com>
2019-08-22 19:56:41 +10:00
Lachlan 44986be6c0
fix flaky test ClientCloseTest.testStopLifecycle() in jetty 9.4.x (#3990)
* fix flaky test ClientCloseTest.testStopLifecycle() in 9.4.x

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>

* test code cleanups in ClientCloseTest

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-08-20 12:49:52 +10:00
Joakim Erdfelt 50b524bb6b Merge branch `release-9.4.20` into `jetty-9.4.x` 2019-08-15 07:27:25 -05:00
Lachlan Roberts 7d7d932288 Issue #3968 - remove public from methods in ReadState
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-08-15 09:16:05 +10:00
Lachlan Roberts 11d1ad6504 disable flaky test WebSocketConnectionStatsTest
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-08-15 08:04:57 +10:00
Lachlan 2a109dccbc
Issue #3968 - prevent ReadPending and ISE from AbstractWebSocketConnection (#3979)
* Issue #3968 - websocket suspend fix and cleanups

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>

* Issue #3968 - fixed race conditions when using websocket ReadState

combine the previous ReadMode into ReadState by using ReadState.Action
which is returned from ReadState.getAction(ByteBuffer) where an atomic
decision is made of what action to do

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-08-14 21:28:35 +10:00
Joakim Erdfelt f1efc99918 Updating to version 9.4.21-SNAPSHOT 2019-08-13 17:34:20 -05:00
Joakim Erdfelt 84700530e6 Updating to version 9.4.20.v20190813 2019-08-13 16:13:21 -05:00
Joakim Erdfelt b8f29630ed Issue #3884 - Updating tests and fixing merge
+ Test cases have been updated based on PR review
+ Fixing merge from `jetty-9.4.x` that caused a duplicate
  JettyListenerEventDriver.onContinuationFrame() method

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2019-08-05 12:52:20 -05:00
Joakim Erdfelt 1ee771e991 Merge branch `jetty-9.4.x` into `jetty-9.4.x-3884-websocket-frame-listener` 2019-08-05 12:27:53 -05:00