jfx
jfx copied to clipboard
JDK-8325402: TreeTableRow updateItem() does not check item with isItemChanged(..) unlike all other cell implementations
TreeTableRow
does not check the item with isItemChanged(..)
, unlike all other implementations of the cell.
This also means that the TreeTableRow
always updates the item, although it should not, resulting in a performance loss as a TreeTableRow
will always call updateItem(..)
.
It looks like that this was forgotten in JDK-8092593.
Checking the whole history, it looks like the following was happening:
- There was a check if the item is the same in all cell implementations (with
.equals(..)
) - Check was removed as it caused bugs
- Check was readded, but instead we first check the index (same index) and then if we also have the same item (this time with
.isItemChanged(..)
, to allow developers to subclass it) - Forgotten for
TreeTableRow
inbetween this chaos.
Added many tests for the case where an item should be changed and where it should not.
Improved existing tests as well. Using stageLoader
, as before the tests only created a stage when doing the assert.
NOTE: The update logic is now the same as for all other 5 cell implementations. Especially TreeCell
(since it is for a tree structure as well).
Progress
- [x] Change must not contain extraneous whitespace
- [x] Commit message must refer to an issue
- [ ] Change must be properly reviewed (2 reviews required, with at least 1 Reviewer, 1 Author)
Issue
- JDK-8325402: TreeTableRow updateItem() does not check item with isItemChanged(..) unlike all other cell implementations (Bug - P4)
Reviewing
Using git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jfx.git pull/1360/head:pull/1360
$ git checkout pull/1360
Update a local copy of the PR:
$ git checkout pull/1360
$ git pull https://git.openjdk.org/jfx.git pull/1360/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 1360
View PR using the GUI difftool:
$ git pr show -t 1360
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jfx/pull/1360.diff
Webrev
:wave: Welcome back mhanl! A progress list of the required criteria for merging this PR into master
will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.
/reviewers 2
@andy-goryachev-oracle The total number of required reviews for this PR (including the jcheck configuration and the last /reviewers command) is now set to 2 (with at least 1 Reviewer, 1 Author).
@Maran23 This change now passes all automated pre-integration checks.
ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details.
After integration, the commit message for the final commit will be:
8325402: TreeTableRow updateItem() does not check item with isItemChanged(..) unlike all other cell implementations
Reviewed-by: angorya, kpk
You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed.
At the time when this comment was updated there had been 23 new commits pushed to the master
branch:
- 66d96818413f8ce5518cc20cff848eacd1a2d56c: 8319844: Text/TextFlow.hitTest() is incorrect in RTL orientation
- 8114559ed666fe272d238cdf1e531e5d8ec22226: 8327177: macOS: wrong GlobalRef deleted in GlassMenu
- 56b20dee26a01a770f50e2ef9718891ee528f703: 8325073: javadoc warnings: missing @param tags and other issues
- b99eb45828317e4c195b46eb0c9371d4645f2c6c: 8324233: Update JPEG Image Decoding Software to 9f
- 5512a5add0b5ce4a41e6c377c274b9518ee68489: 8326618: Replace usage of deprecated method getId() in Thread
- d9645730f1e76e95e0bb93ceaeb5550390bf95c1: 8314147: Updated the PhongMaterial documentation
- df3707d7444c542ba55a8e76a8ed7e8f0637e874: 8320965: Scrolling on a touch enabled display fails on Wayland
- b43c4edf7590429fd051d1b0e2ccb6dd49a10b8b: 8325550: Grammatical error in AnchorPane.setLeftAnchor (and other setters) javadoc
- d9263ab268d33104279755dc1de139bd0835fdd7: 8301900: TextArea: Committing text with ENTER in an IME window inserts newline
- afa206b546a580a784d830712be174bb84f09ee9: 8321603: Bump minimum JDK version for JavaFX to JDK 21
- ... and 13 more: https://git.openjdk.org/jfx/compare/17dfab066b1f5db3d34b130cade3acd09ee21a70...master
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details.
➡️ To integrate this PR with the above commit message to the master
branch, type /integrate in a new comment.
/integrate
Going to push as commit 11305843300cdbfed9bfa2120da1c7ecd361df39.
Since your change was applied there have been 25 commits pushed to the master
branch:
- 64af987576214fc5483520ce8131895be74a641d: 8326989: Text selection issues on WebView after WebKit 617.1
- 830122718d49c8c27a2ee3f44fdf34529f873753: 8270996: javadoc: missing comments in serialized classes
- 66d96818413f8ce5518cc20cff848eacd1a2d56c: 8319844: Text/TextFlow.hitTest() is incorrect in RTL orientation
- 8114559ed666fe272d238cdf1e531e5d8ec22226: 8327177: macOS: wrong GlobalRef deleted in GlassMenu
- 56b20dee26a01a770f50e2ef9718891ee528f703: 8325073: javadoc warnings: missing @param tags and other issues
- b99eb45828317e4c195b46eb0c9371d4645f2c6c: 8324233: Update JPEG Image Decoding Software to 9f
- 5512a5add0b5ce4a41e6c377c274b9518ee68489: 8326618: Replace usage of deprecated method getId() in Thread
- d9645730f1e76e95e0bb93ceaeb5550390bf95c1: 8314147: Updated the PhongMaterial documentation
- df3707d7444c542ba55a8e76a8ed7e8f0637e874: 8320965: Scrolling on a touch enabled display fails on Wayland
- b43c4edf7590429fd051d1b0e2ccb6dd49a10b8b: 8325550: Grammatical error in AnchorPane.setLeftAnchor (and other setters) javadoc
- ... and 15 more: https://git.openjdk.org/jfx/compare/17dfab066b1f5db3d34b130cade3acd09ee21a70...master
Your commit was automatically rebased without conflicts.
@Maran23 Pushed as commit 11305843300cdbfed9bfa2120da1c7ecd361df39.
:bulb: You may see a message that your pull request was closed with unmerged commits. This can be safely ignored.