vaadin / framework

Vaadin 6, 7, 8 is a Java framework for modern Java web applications.
http://vaadin.com/
Other
1.77k stars 729 forks source link

Invisible components break grid editor #12527

Open pwilkin opened 2 years ago

pwilkin commented 2 years ago

In Vaadin Framework 8.4.13, when you are registering a component to be used as a grid editor for a column, if that component happens to be invisible, it completely breaks the grid. Reason: CustomEditorHandler's getWidget() method tries to get the editor component by its connector ID. Now, if the connector ID is null, then it correctly renders an empty editor. However, if the connector ID is not null (as is the case with an existing, but invisible component), an attempt is made to retrieve the connector from the id-to-connector map, but the connector is not there (because the server-side code didn't push it as a dirty, but invisible connector), causing a client-side null pointer.

Steps to reproduce: create a editable Grid, register a field as a custom editor for any column, set that field to invisible, try to activate the editor.

Easiest fix is probably splitting EditorConnector::getWidget on line 146 to do a null check on the return of the getConnector() method.

TatuLund commented 2 years ago

The free support of Vaadin 8 has ended February 22, 2022. We are continuing offering commercial Extended Maintenance of Vaadin 8. If you are interested to get this fix, you need to have Vaadin Prime or Enterprise subscription with Extended Maintenance option included. See more at: https://vaadin.com/pricing

pwilkin commented 2 years ago

Does this mean you're not accepting pull requests into the project as well? I could contribute the fix if it's permitted.

TatuLund commented 2 years ago

@pwilkin It does not make much sense, since we will not be building the future releases from this repo. We will keep the issue tracker open.