Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@paulrutter
Copy link
Contributor

@paulrutter paulrutter commented Jan 20, 2025

  • 1.1.0-SNAPSHOT
  • Use jetty 12.1.0-alpha1
  • Add org.eclipse.jetty.compression.* to exports
  • Add dependency on jetty-compression-gzip (not sure if this is required, maybe only for the client) and jetty-compression-common

This branch is based on EE11 (servlet API 6.1).

- 1.1.0-SNAPSHOT
- Use jetty 12.1.0-alpha1
- Add `org.eclipse.jetty.compression.*` to exports
- Add dependency on jetty-compression-gzip (not sure if this is required, maybe only for the client) and jetty-compression-common
- Move to EE11
- Skip baselining to prevent errors in the baseline phase because of changed API's in 6.1.0
- Pass local maven repo to be able to get to the snapshot version of the servlet-api bundle
- Build servlet-api, as it's used in the Jetty bundles
@paulrutter
Copy link
Contributor Author

@cziegeler i did a first attempt on getting the http.jetty12 bundle to using Jetty 12.1.0 (servlet API 6.1).

Once it's GA we can revisit and check the open ends (like the servlet-api bundle failing on the baseline phase, we might need to remove version 5.0 and 6.0 from this bundle to get this resolved, as the servlet API actually changed in 6.1).

- Update wrappers to implement new methods for servlet-api 6.1. This will break backwards compatbility though
@cziegeler
Copy link
Contributor

Thanks, thats great.
Your changes to the servlet-api bundle look good - we always include the latest version (6.1 in this case) and export it as all earlier versions (5 and 6 in this case). While this is not 100% correct, it is usually good enough as the versions are compatible and code is not compiled against this bundle - it is just used at runtime.
There is of course the exception of servlet 6 which is not fully compatible to servlet 5 - due to removed methods -but we have that problem already today.

paulrutter and others added 20 commits January 22, 2025 09:01
# Conflicts:
#	http/jetty12/src/test/java/org/apache/felix/http/jetty/it/JettySpecificWebsocketIT.java
#	http/samples/whiteboard/src/main/java/org/apache/felix/http/samples/whiteboard/FelixJettyWebSocketServlet.java
#	http/samples/whiteboard/src/main/java/org/apache/felix/http/samples/whiteboard/TestWebSocketServletAlternative.java
# Conflicts:
#	http/itest/pom.xml
#	http/jetty/pom.xml
#	http/jetty12/pom.xml
#	http/samples/whiteboard/pom.xml
…#375)

Bumps [ch.qos.logback:logback-core](https://github.com/qos-ch/logback) from 1.3.12 to 1.3.15.
- [Commits](qos-ch/logback@v_1.3.12...v_1.3.15)

---
updated-dependencies:
- dependency-name: ch.qos.logback:logback-core
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [ch.qos.logback:logback-core](https://github.com/qos-ch/logback) from 1.3.12 to 1.3.15.
- [Release notes](https://github.com/qos-ch/logback/releases)
- [Commits](qos-ch/logback@v_1.3.12...v_1.3.15)

---
updated-dependencies:
- dependency-name: ch.qos.logback:logback-core
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps org.apache.felix:org.apache.felix.webconsole from 4.0.0 to 4.9.10.

---
updated-dependencies:
- dependency-name: org.apache.felix:org.apache.felix.webconsole
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- revert unneeded changes now 6.1.0 already contains the 6.1 changes of the servlet api
- revert unneeded changes now 6.1.0 already contains the 6.1 changes of the servlet api
- revert unneeded changes now 6.1.0 already contains the 6.1 changes of the servlet api
@paulrutter
Copy link
Contributor Author

Updated to 12.1.0.beta0

- Fix merge
- Move to EE11 for ErrorHandler
- Use try with resources
- Move to EE11 for new tests
- Simplify HTTP client migration
- Call start
- Handle java.nio.channels.AsynchronousCloseException with a FIXME, might be a Jetty bug?
- Fix FIXME, handle async with future
- Reset FIXME, AsynchronousCloseException still happens
# Conflicts:
#	http/base/pom.xml
#	http/itest/pom.xml
#	http/jetty12/pom.xml
#	http/jetty12/src/test/java/org/apache/felix/http/jetty/it/AbstractJettyTestSupport.java
#	http/samples/whiteboard/pom.xml
@paulrutter
Copy link
Contributor Author

Moved to 12.1.0.beta1

# Conflicts:
#	http/base/pom.xml
#	http/jetty12/pom.xml
#	http/jetty12/src/test/java/org/apache/felix/http/jetty/it/AbstractJettyTestSupport.java
#	http/samples/whiteboard/pom.xml

Update to 12.1.0.beta2
# Conflicts:
#	http/base/pom.xml
#	http/jetty12/pom.xml
#	http/jetty12/src/test/java/org/apache/felix/http/jetty/it/AbstractJettyTestSupport.java
#	http/samples/whiteboard/pom.xml
@paulrutter
Copy link
Contributor Author

2025-08-20T11:22:46.6539890Z [�[1;31mERROR�[m] org.apache.felix.http.jetty.it.JettySizeLimitHandlerIT.testRequestResponseLimits -- Time elapsed: 1.154 s <<< ERROR!
2025-08-20T11:22:46.6542634Z java.io.EOFException: oejcti.HttpConnectionOverHTTP@48dc780c::oeji.SocketChannelEndPoint@5a81bc0a[{l=/127.0.0.1:59234,r=localhost/127.0.0.1:40165,ISHUT,fill=-,flush=-,to=2/30000}{io=0/0,kio=0,kro=1}]->[oejcti.HttpConnectionOverHTTP@48dc780c(l:/127.0.0.1:59234 <-> r:localhost/127.0.0.1:40165,closed=false)=>oejcti.HttpChannelOverHTTP@2f563bdc(exchange=HttpExchange@666c142c{req=oejct.HttpRequest[GET /withinlimit/a HTTP/1.1]@1c8306b9[TERMINATED/null] res=HttpResponse[null 0 null]@6069c786[PENDING/null]})[send=oejcti.HttpSenderOverHTTP@48515fd5(req=QUEUED,failure=null)[oejh.HttpGenerator@63e652cb{s=START}],recv=oejcti.HttpReceiverOverHTTP@3991f71a(ex=HttpExchange@666c142c{req=oejct.HttpRequest[GET /withinlimit/a HTTP/1.1]@1c8306b9[TERMINATED/null] res=HttpResponse[null 0 null]@6069c786[PENDING/null]},rsp=IDLE,failure=null)[oejh.HttpParser{s=CLOSED,0 of -1}]]]
2025-08-20T11:22:46.6543002Z 	at org.eclipse.jetty.client.transport.internal.HttpReceiverOverHTTP.earlyEOF(HttpReceiverOverHTTP.java:550)
2025-08-20T11:22:46.6543184Z 	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:1799)
2025-08-20T11:22:46.6543569Z 	at org.eclipse.jetty.client.transport.internal.HttpReceiverOverHTTP.parse(HttpReceiverOverHTTP.java:323)
2025-08-20T11:22:46.6543939Z 	at org.eclipse.jetty.client.transport.internal.HttpReceiverOverHTTP.parseAndFill(HttpReceiverOverHTTP.java:252)
2025-08-20T11:22:46.6544293Z 	at org.eclipse.jetty.client.transport.internal.HttpReceiverOverHTTP.receiveNext(HttpReceiverOverHTTP.java:537)
2025-08-20T11:22:46.6544542Z 	at org.eclipse.jetty.util.thread.Invocable$ReadyTask.run(Invocable.java:178)
2025-08-20T11:22:46.6544790Z 	at org.eclipse.jetty.util.thread.SerializedInvoker$Link.run(SerializedInvoker.java:274)
2025-08-20T11:22:46.6545016Z 	at org.eclipse.jetty.util.thread.SerializedInvoker.run(SerializedInvoker.java:174)
2025-08-20T11:22:46.6545272Z 	at org.eclipse.jetty.client.transport.HttpReceiver.responseHeaders(HttpReceiver.java:247)
2025-08-20T11:22:46.6545602Z 	at org.eclipse.jetty.client.transport.internal.HttpReceiverOverHTTP.parse(HttpReceiverOverHTTP.java:335)
2025-08-20T11:22:46.6546118Z 	at org.eclipse.jetty.client.transport.internal.HttpReceiverOverHTTP.parseAndFill(HttpReceiverOverHTTP.java:252)
2025-08-20T11:22:46.6546455Z 	at org.eclipse.jetty.client.transport.internal.HttpReceiverOverHTTP.receive(HttpReceiverOverHTTP.java:85)
2025-08-20T11:22:46.6546784Z 	at org.eclipse.jetty.client.transport.internal.HttpChannelOverHTTP.receive(HttpChannelOverHTTP.java:97)
2025-08-20T11:22:46.6547154Z 	at org.eclipse.jetty.client.transport.internal.HttpConnectionOverHTTP.onFillable(HttpConnectionOverHTTP.java:267)
2025-08-20T11:22:46.6547581Z 	at org.eclipse.jetty.client.transport.internal.HttpConnectionOverHTTP$FillableCallback.succeeded(HttpConnectionOverHTTP.java:458)
2025-08-20T11:22:46.6547756Z 	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:99)
2025-08-20T11:22:46.6548012Z 	at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:54)
2025-08-20T11:22:46.6548241Z 	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:999)
2025-08-20T11:22:46.6548511Z 	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1229)
2025-08-20T11:22:46.6548752Z 	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1184)
2025-08-20T11:22:46.6548871Z 	at java.base/java.lang.Thread.run(Thread.java:1583)

Again when switching to 12.1.0 (only on java 21 and 23).
I will try/catch it for now, but unclear why it happens again (was solved in beta2).

@paulrutter
Copy link
Contributor Author

@cziegeler now 12.1.0 is out, #376 (comment) might become something to look into. It has been intermittent between beta versions. In the final version, it's again an issue.

@cziegeler
Copy link
Contributor

maybe we just wait for 12.1.1 :)

- Use 1.2.0-SNAPSHOT now 1.1.0 will be released soon on master
# Conflicts:
#	http/base/pom.xml
#	http/jetty12/pom.xml
#	http/jetty12/src/test/java/org/apache/felix/http/jetty/it/AbstractJettyTestSupport.java
#	http/samples/whiteboard/pom.xml
- Use 1.2.0 snapshot
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants