> This is a fix for the assertion error message that is printed to the console 
> on macOS 10.15 or later when an application calls `Platform.exit` while a 
> `Stage` is showing.
> 
> The root cause is a latent bug in the JavaFX glass code that was revealed by 
> an apparent change of behavior in macOS. A few of the object deallocation 
> methods, which are called by the Objective C auto-release mechanism, use the 
> standard `GET_MAIN_JENV` macro to get the JNI environment. The macro will 
> print an assertion warning if Java has been detached. I instrumented the code 
> and can see that `GlassViewDelegate::dealloc` is now called after the 
> `GlassApplication` main loop has detached Java. Since we don't control when 
> the dealloc method is called, it is not correct to do the assertion check in 
> those cases. Some of the dealloc methods already skip this assertion check by 
> grabbing the jEnv pointer directly, so we need to fix the others. I added a 
> new variant of the macro called `GET_MAIN_JENV_NOWARN` with a comment 
> indicating that is suitable for use by the dealloc methods.
> 
> In addition to verifying that the test program attached to JBS now exits 
> cleanly with no assertion failure message, I added an automated system test 
> that fails on macOS before the fix and passes after the fix. On other 
> platforms it passes already.

Kevin Rushforth has updated the pull request incrementally with one additional 
commit since the last revision:

  Fix value of ERROR_TIMEOUT constant per code review

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

Changes:
  - all: https://git.openjdk.java.net/jfx/pull/540/files
  - new: https://git.openjdk.java.net/jfx/pull/540/files/5abf1b66..68abfaf5

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jfx&pr=540&range=01
 - incr: https://webrevs.openjdk.java.net/?repo=jfx&pr=540&range=00-01

  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
  Patch: https://git.openjdk.java.net/jfx/pull/540.diff
  Fetch: git fetch https://git.openjdk.java.net/jfx pull/540/head:pull/540

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

Reply via email to