-
Notifications
You must be signed in to change notification settings - Fork 476
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
8293444: Creating ScrollPane with same content component causes memory leak #900
8293444: Creating ScrollPane with same content component causes memory leak #900
Conversation
👋 Welcome back angorya! A progress list of the required criteria for merging this PR into |
Webrevs
|
/reviewers 2 |
@kevinrushforth |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks like it will eliminate the leak. Using weak listeners like this follows the same pattern as used by some of the other skins. I'll review and test it next week.
modules/javafx.controls/src/test/java/test/javafx/scene/control/skin/ScrollPaneSkinTest.java
Outdated
Show resolved
Hide resolved
modules/javafx.controls/src/test/java/test/javafx/scene/control/skin/ScrollPaneSkinTest.java
Outdated
Show resolved
Hide resolved
modules/javafx.controls/src/test/java/test/javafx/scene/control/skin/ScrollPaneSkinTest.java
Outdated
Show resolved
Hide resolved
modules/javafx.controls/src/test/java/test/javafx/scene/control/skin/ScrollPaneSkinTest.java
Outdated
Show resolved
Hide resolved
modules/javafx.controls/src/test/java/test/javafx/scene/control/skin/ScrollPaneSkinTest.java
Outdated
Show resolved
Hide resolved
modules/javafx.controls/src/test/java/test/javafx/scene/control/skin/ScrollPaneSkinTest.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix looks good,
Providing some minor comments for test.
A small comment about the memory test with JMemoryBuddy.
It is more readable this way:
|
Thank you for suggestion. I will definitely use it in other tests! |
if you use The method "checkCollectable/assertCollectable" is very slow in the negative case (but reliable in the positive case) |
@FlorianKirmaier : BTW, MemoryTestAPI names are a bit confusing: "assert*Collectable" suggests assertion is done at the point when these calls are made, though it looks like they just add a reference the an internal list. Also, assertCollectable might want to skip creation of a WeakReference if the object passed to it is already a WeakReference. With your permission, I would like to keep this test as is. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me.
Of course, you can keep it this way. The point of JMemoryBuddy.memoryTest is, that the user doesn't have to fiddle around with WeakReferences.
I think only the first test is the important one. |
Thank you for clarifications, @FlorianKirmaier |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good.
@andy-goryachev-oracle 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:
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 8 new commits pushed to the
Please see this link for an up-to-date comparison between the source branch of this pull request and the As you do not have Committer status in this project an existing Committer must agree to sponsor your change. Possible candidates are the reviewers of this PR (@kevinrushforth, @arapte) but any other Committer may sponsor as well. ➡️ To flag this PR as ready for integration with the above commit message, type |
/integrate |
@andy-goryachev-oracle |
/sponsor |
Going to push as commit 337c781.
Your commit was automatically rebased without conflicts. |
@kevinrushforth @andy-goryachev-oracle Pushed as commit 337c781. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
Using Weak*Listeners eliminates the memory leak.
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jfx pull/900/head:pull/900
$ git checkout pull/900
Update a local copy of the PR:
$ git checkout pull/900
$ git pull https://git.openjdk.org/jfx pull/900/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 900
View PR using the GUI difftool:
$ git pr show -t 900
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jfx/pull/900.diff