From hirt at openjdk.org Mon Feb 2 13:09:16 2026 From: hirt at openjdk.org (Marcus Hirt) Date: Mon, 2 Feb 2026 13:09:16 GMT Subject: Integrated: 8528: UI tests fail after platform upgrade In-Reply-To: References: Message-ID: On Fri, 30 Jan 2026 18:19:17 GMT, Marcus Hirt wrote: > The uitests also caught a problem with the finalizer removal which is also fixed. This pull request has now been integrated. Changeset: a7a5ff70 Author: Marcus Hirt URL: https://git.openjdk.org/jmc/commit/a7a5ff7071702da561572745f76db454fe9eccf5 Stats: 25 lines in 3 files changed: 7 ins; 12 del; 6 mod 8528: UI tests fail after platform upgrade Reviewed-by: aptmac ------------- PR: https://git.openjdk.org/jmc/pull/706 From hirt at openjdk.org Mon Feb 2 13:11:22 2026 From: hirt at openjdk.org (Marcus Hirt) Date: Mon, 2 Feb 2026 13:11:22 GMT Subject: RFR: 8476: Websocket server is tied to JfrEditor In-Reply-To: References: Message-ID: On Wed, 7 Jan 2026 19:23:18 GMT, Alex Macdonald wrote: > This PR addresses JMC-8476, in which the current websocket server implemention ties the server to a JfrEditor page. > > At the moment, the Websocket server that is used to send selection data is created from within a JfrEditor page. So every time you open a new recording file, the JfrEditor code tries to start a new websocket server. This is a problem because there is only one field in the JMC settings to set the port number, and it is global to the application. So if I open recording-1, and then use the preferences menu to start the websocket server on port 8029, if I then open up recording-2 it will also try to open a websocket server on port 8029, and fail. As a result, sending data from recording-1 will work, but recording-2 will not (this can be seen in my "before" gif below). > > I have extracted the websocket code out into it's own package and made it such that there is one server for the JMC application. So now if you toggle between recordings you can still send data to whatever application you want over websocket. > > Before: > (exception thrown when trying to send events from the second recording) > ![before](https://github.com/user-attachments/assets/8e9a3c97-f974-4409-99ea-6f86eb33e8cb) > > After: > (selecting events from multiple recordings now works) > ![after](https://github.com/user-attachments/assets/11ff55af-f691-4780-b504-adf4847be3e8) Very nice! :) Marked as reviewed by hirt (Lead). ------------- PR Review: https://git.openjdk.org/jmc/pull/698#pullrequestreview-3739301846 PR Review: https://git.openjdk.org/jmc/pull/698#pullrequestreview-3739303305 From hirt at openjdk.org Mon Feb 2 13:12:26 2026 From: hirt at openjdk.org (Marcus Hirt) Date: Mon, 2 Feb 2026 13:12:26 GMT Subject: RFR: 8475: Writing events with fields not explicitly set can corrupt the recording [v2] In-Reply-To: References: Message-ID: On Wed, 3 Dec 2025 16:24:51 GMT, Jaroslav Bachorik wrote: >> ## Summary >> Fixes an issue where events written with builtin type fields that are not explicitly set could cause field misalignment during JFR recording parsing, leading to corrupted field values. >> >> ## Problem >> When writing JFR events using the Writer API without explicitly setting values for builtin type fields (byte, char, short, int, long, float, double, boolean, string), the previous implementation in `Chunk.writeBuiltinType()` would skip writing null builtin values (except for strings). This caused field alignment issues during parsing, where subsequent field values would be read at incorrect offsets. >> >> ## Solution >> Modified `Chunk.writeBuiltinType()` (lines 88-150) to write appropriate default values for null builtin types instead of skipping them: >> - Numeric types (byte, char, short, int, long, float, double): Write `0` >> - Boolean: Write `false` >> - String: Continue to write null encoding (existing behavior) >> >> Additionally enhanced `TypedValueImpl.getDefaultImplicitFieldValue()` to provide `System.nanoTime()` as default for `@Timestamp` annotated fields in event types, ensuring valid monotonic timestamps. >> >> ## Testing >> Added comprehensive test `ImplicitEventFieldsTest.eventWithAllBuiltinFieldsUnset()` that: >> - Creates an event with all 9 builtin type fields >> - Writes the event without setting any builtin field values >> - Includes a final field with an explicit value (99999L) to verify alignment >> - Verifies all default values are correct and the explicit field reads back correctly >> >> All 277 existing tests pass with the changes. >> >> ## Files Changed >> - `Chunk.java`: Fixed builtin type serialization to write defaults instead of skipping >> - `TypedValueImpl.java`: Enhanced default value handling for timestamp fields >> - `ImplicitEventFieldsTest.java`: Added comprehensive test for builtin defaults >> - `Type.java`, `TypedValueBuilder.java`: Enhanced documentation >> >> Fixes #8475 >> >> ? Generated with [Claude Code](https://claude.com/claude-code) > > Jaroslav Bachorik has refreshed the contents of this pull request, and previous commits have been removed. The incremental views will show differences compared to the previous content of the PR. The pull request contains one new commit since the last revision: > > 8475: Writing events with fields not explicitly set can corrupt the recording Marked as reviewed by hirt (Lead). ------------- PR Review: https://git.openjdk.org/jmc/pull/690#pullrequestreview-3739307836 From jbachorik at openjdk.org Mon Feb 2 13:33:34 2026 From: jbachorik at openjdk.org (Jaroslav Bachorik) Date: Mon, 2 Feb 2026 13:33:34 GMT Subject: RFR: 8475: Writing events with fields not explicitly set can corrupt the recording [v2] In-Reply-To: References: Message-ID: <4wZr8uSRQZmpnZKQ2276ojxMEfHMxWQMxDCvdnr8kP4=.afc798a9-5c3e-4bce-877d-7b2f06959a3b@github.com> On Wed, 3 Dec 2025 16:24:51 GMT, Jaroslav Bachorik wrote: >> ## Summary >> Fixes an issue where events written with builtin type fields that are not explicitly set could cause field misalignment during JFR recording parsing, leading to corrupted field values. >> >> ## Problem >> When writing JFR events using the Writer API without explicitly setting values for builtin type fields (byte, char, short, int, long, float, double, boolean, string), the previous implementation in `Chunk.writeBuiltinType()` would skip writing null builtin values (except for strings). This caused field alignment issues during parsing, where subsequent field values would be read at incorrect offsets. >> >> ## Solution >> Modified `Chunk.writeBuiltinType()` (lines 88-150) to write appropriate default values for null builtin types instead of skipping them: >> - Numeric types (byte, char, short, int, long, float, double): Write `0` >> - Boolean: Write `false` >> - String: Continue to write null encoding (existing behavior) >> >> Additionally enhanced `TypedValueImpl.getDefaultImplicitFieldValue()` to provide `System.nanoTime()` as default for `@Timestamp` annotated fields in event types, ensuring valid monotonic timestamps. >> >> ## Testing >> Added comprehensive test `ImplicitEventFieldsTest.eventWithAllBuiltinFieldsUnset()` that: >> - Creates an event with all 9 builtin type fields >> - Writes the event without setting any builtin field values >> - Includes a final field with an explicit value (99999L) to verify alignment >> - Verifies all default values are correct and the explicit field reads back correctly >> >> All 277 existing tests pass with the changes. >> >> ## Files Changed >> - `Chunk.java`: Fixed builtin type serialization to write defaults instead of skipping >> - `TypedValueImpl.java`: Enhanced default value handling for timestamp fields >> - `ImplicitEventFieldsTest.java`: Added comprehensive test for builtin defaults >> - `Type.java`, `TypedValueBuilder.java`: Enhanced documentation >> >> Fixes #8475 >> >> ? Generated with [Claude Code](https://claude.com/claude-code) > > Jaroslav Bachorik has refreshed the contents of this pull request, and previous commits have been removed. The incremental views will show differences compared to the previous content of the PR. The pull request contains one new commit since the last revision: > > 8475: Writing events with fields not explicitly set can corrupt the recording ? Thanks! ------------- PR Comment: https://git.openjdk.org/jmc/pull/690#issuecomment-3835126997 From jbachorik at openjdk.org Mon Feb 2 13:33:36 2026 From: jbachorik at openjdk.org (Jaroslav Bachorik) Date: Mon, 2 Feb 2026 13:33:36 GMT Subject: Integrated: 8475: Writing events with fields not explicitly set can corrupt the recording In-Reply-To: References: Message-ID: On Wed, 3 Dec 2025 10:18:08 GMT, Jaroslav Bachorik wrote: > ## Summary > Fixes an issue where events written with builtin type fields that are not explicitly set could cause field misalignment during JFR recording parsing, leading to corrupted field values. > > ## Problem > When writing JFR events using the Writer API without explicitly setting values for builtin type fields (byte, char, short, int, long, float, double, boolean, string), the previous implementation in `Chunk.writeBuiltinType()` would skip writing null builtin values (except for strings). This caused field alignment issues during parsing, where subsequent field values would be read at incorrect offsets. > > ## Solution > Modified `Chunk.writeBuiltinType()` (lines 88-150) to write appropriate default values for null builtin types instead of skipping them: > - Numeric types (byte, char, short, int, long, float, double): Write `0` > - Boolean: Write `false` > - String: Continue to write null encoding (existing behavior) > > Additionally enhanced `TypedValueImpl.getDefaultImplicitFieldValue()` to provide `System.nanoTime()` as default for `@Timestamp` annotated fields in event types, ensuring valid monotonic timestamps. > > ## Testing > Added comprehensive test `ImplicitEventFieldsTest.eventWithAllBuiltinFieldsUnset()` that: > - Creates an event with all 9 builtin type fields > - Writes the event without setting any builtin field values > - Includes a final field with an explicit value (99999L) to verify alignment > - Verifies all default values are correct and the explicit field reads back correctly > > All 277 existing tests pass with the changes. > > ## Files Changed > - `Chunk.java`: Fixed builtin type serialization to write defaults instead of skipping > - `TypedValueImpl.java`: Enhanced default value handling for timestamp fields > - `ImplicitEventFieldsTest.java`: Added comprehensive test for builtin defaults > - `Type.java`, `TypedValueBuilder.java`: Enhanced documentation > > Fixes #8475 > > ? Generated with [Claude Code](https://claude.com/claude-code) This pull request has now been integrated. Changeset: 020f06d7 Author: Jaroslav Bachorik URL: https://git.openjdk.org/jmc/commit/020f06d717e32451b641b6b75e391410f0089b69 Stats: 430 lines in 5 files changed: 416 ins; 4 del; 10 mod 8475: Writing events with fields not explicitly set can corrupt the recording Reviewed-by: hirt ------------- PR: https://git.openjdk.org/jmc/pull/690 From hirt at openjdk.org Mon Feb 2 13:40:36 2026 From: hirt at openjdk.org (Marcus Hirt) Date: Mon, 2 Feb 2026 13:40:36 GMT Subject: RFR: 5561: Support for Crypto Events in JMC [v4] In-Reply-To: References: Message-ID: On Tue, 23 Dec 2025 22:45:13 GMT, Suchita Chaturvedi wrote: >> This PR enhances the JMC UI for adding new information related to crypto events: specifically X509CertificateEvent. >> >> This PR adds a new rule with respect to X509CertificateEvent which provides alert related to expired/expiring certificates and weak signature algorithms or weak key length or key type. The rule gives a basic overview of all the certificate ids which needs action or attention, however complete details are provided as part of a new screen - Security. >> >> Attaching the screenshots here for better reference: >> >> Rule Page: >> >> image >> >> Security Screen Page: >> >> image > > Suchita Chaturvedi has updated the pull request incrementally with one additional commit since the last revision: > > Fixing spotless failure Changes requested by hirt (Lead). application/org.openjdk.jmc.docs/html/SecurityPage.htm line 4: > 2: PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> > 3: