jfx icon indicating copy to clipboard operation
jfx copied to clipboard

JDK-8325402: TreeTableRow updateItem() does not check item with isItemChanged(..) unlike all other cell implementations

Open Maran23 opened this issue 1 year ago • 4 comments

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:

  1. There was a check if the item is the same in all cell implementations (with .equals(..))
  2. Check was removed as it caused bugs
  3. 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)
  4. 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

Link to Webrev Comment

Maran23 avatar Feb 08 '24 18:02 Maran23

: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.

bridgekeeper[bot] avatar Feb 08 '24 18:02 bridgekeeper[bot]

Webrevs

mlbridge[bot] avatar Feb 08 '24 19:02 mlbridge[bot]

/reviewers 2

andy-goryachev-oracle avatar Feb 14 '24 16:02 andy-goryachev-oracle

@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).

openjdk[bot] avatar Feb 14 '24 16:02 openjdk[bot]

@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.

openjdk[bot] avatar Mar 05 '24 07:03 openjdk[bot]

/integrate

Maran23 avatar Mar 09 '24 15:03 Maran23

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.

openjdk[bot] avatar Mar 09 '24 15:03 openjdk[bot]

@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.

openjdk[bot] avatar Mar 09 '24 15:03 openjdk[bot]