[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-openjfx-dev
Subject:    Re: RFR: 8088420: JavaFX WebView memory leak via EventListener [v9]
From:       Ambarish Rapte <arapte () openjdk ! java ! net>
Date:       2022-05-28 15:30:41
Message-ID: LtKtMs9vC0j9CBlE1I0Qsvqr6sGr7yV3yw6OawBb_Sg=.c3b5cd52-c016-452c-a26e-9415c93286bf () github ! com
[Download RAW message or body]

On Fri, 27 May 2022 16:47:04 GMT, Jay Bhaskar <jbhaskar@openjdk.org> wrote:

> > This PR is new implementation of JavaEvent listener memory management.
> > Issue  [JDK-8088420](https://bugs.openjdk.java.net/browse/JDK-8088420?filter=-1)
> > 
> > 1. Calling remove event listener does not free jni global references.
> > 2. When WebView goes out of scope (disposed from app) , its Event Listeners are \
> > not being garbage collected. 
> > Solution:
> > 1.  Detached the jni global reference from JavaEventListener.
> > 2. Create scoped ref counted wrapper class JavaObjectWrapperHandler for jni \
> > global reference. 3. Create unique  JavaObjectWrapperHandler object for each \
> > JavaEventListener. 4. EventListenerManager is a singleton class , which stores \
> > the JavaObjectWrapperHandler mapped with JavaEventListener. 5. \
> > EventListenerManager also stores the JavaEventListener mapped with DOMWindow. 6. \
> > When Event listener explicitly removed , JavaEventListener is being forwarded to \
> > EventListenerManager to clear the listener. 7. When WebView goes out of scope, \
> > EventListenerManager will de-registered all the event listeners based on the ref \
> > counts attached with WebView DOMWindow.
> 
> Jay Bhaskar has updated the pull request incrementally with one additional commit \
> since the last revision: 
> Adingef else block to unregisterListener

LGTM

-------------

Marked as reviewed by arapte (Reviewer).

PR: https://git.openjdk.java.net/jfx/pull/799


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic