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

Reply via email to