Conversation
🟢 Java Benchmark SLOs — All performance SLOs passed
PR vs. master results
Commit: Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion. |
a44a0c1 to
3b33f1a
Compare
|
|
||
| addTestSuiteForDir('latestDepTest', 'test') | ||
|
|
||
| tasks.named("compileMain_java17Java", JavaCompile) { |
There was a problem hiding this comment.
Remove redundant settings. Additionally, I scanned the project for similar redundant settings and cleaned them up in #12689
a40e696 to
81e6e6c
Compare
…implify the build configuration
Normalize text, binary, and close delegate return types to primitive void. Simplify binary state synchronization under ReceiveContexts, preserve separate text receiver locking, and resolve SpotBugs synchronization warnings. Replace the binary template receiver with immutable handshake metadata. Narrow the production dependency to jetty-websocket-jetty-common. Add boxed-Void handler coverage and real-server receive tests verifying links to the HTTP handshake span.
50be9a5 to
1f751f6
Compare
31a2644 to
5052a0c
Compare
|
@codex review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
🛡️ Codex Security Review · Automatically triggeredSecurity review completed. No security issues were found in this pull request. Reviewed commit: Only the user who started this review can view the report in Codex. ℹ️ About Codex security reviews in GitHubThis is an experimental Codex feature. Security reviews are triggered when:
Once complete, Codex will leave suggestions, or a comment if no findings are found. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5052a0c550
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if (payload != String.class && payload != ByteBuffer.class) { | ||
| return delegate; |
There was a problem hiding this comment.
Trace Reader and InputStream message handlers
For annotated native endpoints using Jetty's supported Reader or InputStream message signatures, the payload type fails this check and the original handle is returned unwrapped, so the handler executes without a websocket.receive span and its failures are not recorded. Jetty explicitly lists both streaming signatures as valid @OnWebSocketMessage patterns, so these handles need corresponding wrapping rather than being silently skipped.
Useful? React with 👍 / 👎.
| AgentSpan span = | ||
| InstrumentationContext.get(Request.class, AgentSpan.class).get(response.getRequest()); | ||
| try { | ||
| if (span != null && failure == null) { |
There was a problem hiding this comment.
Preserve failures swallowed by Jetty's upgrade method
When EndPoint.upgrade() fails after the HTTP 101 response, Jetty catches that throwable inside CoreClientUpgradeRequest.upgrade() and completes its session future exceptionally, so @Advice.Thrown is still null here; Jetty also marks the request upgraded, causing its response-completion path to skip listeners. The Jetty 12.0 implementation therefore makes this branch decorate and finish the handshake as a successful 101 even though connect() fails. The advice needs to observe that exceptional completion rather than treating every normal method return as a successful upgrade.
Useful? React with 👍 / 👎.
What Does This Do
Adds tracing for Jetty 12's native WebSocket API:
websocket.receiveandwebsocket.closespans for listener and annotated endpoints, including handlers returning boxedVoid.websocket.sendspans for both client and server sessions.Also fixes Jetty HTTP client handshake spans left unfinished by successful WebSocket upgrades. Activates the handshake span during upgrade so client sessions capture its context, then finishes it with the HTTP 101 response.
Motivation
Jetty 12 native WebSocket endpoints need dedicated instrumentation to trace message processing, outbound sends, and close handlers. Fragmentation and asynchronous callbacks require per-message lifecycle tracking to avoid premature completion, mixed contexts, and lost errors.
Successful WebSocket upgrades bypass the HTTP client's normal response completion listeners, requiring explicit handshake span completion.
Additional Notes
Contributor Checklist
type:and (comp:orinst:) labels in addition to any other useful labelsclose,fix, or any linking keywords when referencing an issueUse
solvesinstead, and assign the PR milestone to the issueJira ticket: FRAPMS-6125