-
Notifications
You must be signed in to change notification settings - Fork 71
fix: improve custom editors internal structure to prevent NPE errors #7755
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
DiegoCardoso
merged 20 commits into
main
from
fix/spreadsheet/prevent-npe-custom-editors
Jul 31, 2025
Merged
fix: improve custom editors internal structure to prevent NPE errors #7755
DiegoCardoso
merged 20 commits into
main
from
fix/spreadsheet/prevent-npe-custom-editors
Jul 31, 2025
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Use the top and left frozen panel size to calculate the amount of headers and rows to be rendered when the user scrolls. Currently, the size of the frozen panels are not accounted which causes some of the columns and rows to not be rendered even when there's available space for that. Fixes #7507
Sometimes, the call to `removeCellCustomEditor` can be done to a widget already removed from its parent, which causes a client-side error. This change try to address that with some refactor on the custom editors internal map. The refactor aims to replace the keys that currently refer to the cell address with the editor ID itself. That way, in case the same editor is shared by more than one cell, the same `Slot` will be used. With the current logic, more than one `Slot` element would be created for the same editor, which could cause issues like, the editor not being shown because it was moved to the other `Slot` parent.
ugur-vaadin
reviewed
Jul 29, 2025
...tegration-tests/src/test/java/com/vaadin/flow/component/spreadsheet/test/CustomEditorIT.java
Show resolved
Hide resolved
ugur-vaadin
approved these changes
Jul 31, 2025
|
vaadin-bot
pushed a commit
that referenced
this pull request
Jul 31, 2025
…7755) * fix: prevent trying to remove already removed Sometimes, the call to `removeCellCustomEditor` can be done to a widget already removed from its parent, which causes a client-side error. This change try to address that with some refactor on the custom editors internal map. The refactor aims to replace the keys that currently refer to the cell address with the editor ID itself. That way, in case the same editor is shared by more than one cell, the same `Slot` will be used. With the current logic, more than one `Slot` element would be created for the same editor, which could cause issues like, the editor not being shown because it was moved to the other `Slot` parent.
vaadin-bot
pushed a commit
that referenced
this pull request
Jul 31, 2025
…7755) * fix: prevent trying to remove already removed Sometimes, the call to `removeCellCustomEditor` can be done to a widget already removed from its parent, which causes a client-side error. This change try to address that with some refactor on the custom editors internal map. The refactor aims to replace the keys that currently refer to the cell address with the editor ID itself. That way, in case the same editor is shared by more than one cell, the same `Slot` will be used. With the current logic, more than one `Slot` element would be created for the same editor, which could cause issues like, the editor not being shown because it was moved to the other `Slot` parent.
DiegoCardoso
added a commit
that referenced
this pull request
Jul 31, 2025
…7755) (#7773) * fix: prevent trying to remove already removed Sometimes, the call to `removeCellCustomEditor` can be done to a widget already removed from its parent, which causes a client-side error. This change try to address that with some refactor on the custom editors internal map. The refactor aims to replace the keys that currently refer to the cell address with the editor ID itself. That way, in case the same editor is shared by more than one cell, the same `Slot` will be used. With the current logic, more than one `Slot` element would be created for the same editor, which could cause issues like, the editor not being shown because it was moved to the other `Slot` parent. Co-authored-by: Diego Cardoso <diego@vaadin.com>
DiegoCardoso
added a commit
that referenced
this pull request
Jul 31, 2025
…7755) (#7772) * fix: prevent trying to remove already removed Sometimes, the call to `removeCellCustomEditor` can be done to a widget already removed from its parent, which causes a client-side error. This change try to address that with some refactor on the custom editors internal map. The refactor aims to replace the keys that currently refer to the cell address with the editor ID itself. That way, in case the same editor is shared by more than one cell, the same `Slot` will be used. With the current logic, more than one `Slot` element would be created for the same editor, which could cause issues like, the editor not being shown because it was moved to the other `Slot` parent. Co-authored-by: Diego Cardoso <diego@vaadin.com>
This was referenced Aug 1, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Sometimes, the call to
removeCellCustomEditor
can be done to a widget already removed from its parent, which causes a client-side error.This change tries to address that with some refactoring on the custom editors' internal map.
The refactor aims to replace the keys that currently refer to the cell address with the editor ID itself. That way, in case the same editor is shared by more than one cell, the same
Slot
will be used. With the current logic, more than oneSlot
element would be created for the same editor, which could cause issues like the editor not being shown because it was moved to the otherSlot
parent.Type of change