On Wed, 8 Jul 2026 08:45:24 GMT, Petr Štechmüller <[email protected]> wrote:
>> ProxyBuilder is used by the FXML loader to instantiate classes whose >> constructors are annotated with `@NamedArg`. When such a class also exposes >> a read-only `Map` property (e.g. getProperties() — the same pattern used by >> `javafx.scene.Node`), setting child elements under that property in FXML >> caused incorrect behaviour or a runtime error. >> >> **Root cause:** _getReadOnlyProperty()_ always returned an >> `ArrayListWrapper` regardless of the actual **getter** return type. When the >> getter returns a `Map`, an `ArrayListWrapper` is the wrong container and the >> entries are never transferred to the real map on the object. >> >> - [x] I confirm that I make this contribution in accordance with the >> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai). > > Petr Štechmüller has updated the pull request incrementally with one > additional commit since the last revision: > > Fix ProxyBuilder to correctly handle read-only Observable Integer/Float > array with @NamedArg I will review and test this later. modules/javafx.fxml/src/test/java/test/com/sun/javafx/fxml/builder/ProxyBuilderTest.java line 343: > 341: "containsKey must be true for the plain-List getter"); > 342: > 343: @SuppressWarnings("unchecked") No need to keep those (in my opinion, those just clutter the code without any real benefit) ------------- PR Comment: https://git.openjdk.org/jfx/pull/2167#issuecomment-4923126231 PR Review Comment: https://git.openjdk.org/jfx/pull/2167#discussion_r3550084131
