Integrated: 8317287: [macos14] InterJVMGetDropSuccessTest.java: Child VM: abnormal termination
On Fri, 27 Oct 2023 10:36:58 GMT, songpv-imt wrote: > The root cause of the bug is because mousePress() method is invoked before > mouseMove() event is completely processed causing the drag & drop behavior > not being able to be recognized properly. This in turn makes the method > dragSourceListener.isDropFinished() returns false and fail the test. To fix > this, setAutoWaitForIdle(true) and Thread.Sleep is called to make sure the > mouseMove() event is processed completely before moving to execute the > mousePress() method. > > JBS issue: [JDK-8317287](https://bugs.openjdk.org/browse/JDK-8317287) This pull request has now been integrated. Changeset: cbfddf4e Author:Song Pham URL: https://git.openjdk.org/jdk/commit/cbfddf4e1d3ff8dddb95bcb9242b31c175b768fc Stats: 104 lines in 1 file changed: 40 ins; 38 del; 26 mod 8317287: [macos14] InterJVMGetDropSuccessTest.java: Child VM: abnormal termination Reviewed-by: honkar, aivanov, shurailine - PR: https://git.openjdk.org/jdk/pull/16396
Re: RFR: 8317287: [macos14] InterJVMGetDropSuccessTest.java: Child VM: abnormal termination [v14]
> The root cause of the bug is because mousePress() method is invoked before > mouseMove() event is completely processed causing the drag & drop behavior > not being able to be recognized properly. This in turn makes the method > dragSourceListener.isDropFinished() returns false and fail the test. To fix > this, setAutoWaitForIdle(true) and Thread.Sleep is called to make sure the > mouseMove() event is processed completely before moving to execute the > mousePress() method. > > JBS issue: [JDK-8317287](https://bugs.openjdk.org/browse/JDK-8317287) songpv-imt has updated the pull request incrementally with one additional commit since the last revision: Update InterJVMGetDropSuccessTest.java - Changes: - all: https://git.openjdk.org/jdk/pull/16396/files - new: https://git.openjdk.org/jdk/pull/16396/files/2bd0e22b..8d44f4c9 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk=16396=13 - incr: https://webrevs.openjdk.org/?repo=jdk=16396=12-13 Stats: 2 lines in 1 file changed: 2 ins; 0 del; 0 mod Patch: https://git.openjdk.org/jdk/pull/16396.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/16396/head:pull/16396 PR: https://git.openjdk.org/jdk/pull/16396
Re: RFR: 8317287: [macos14] InterJVMGetDropSuccessTest.java: Child VM: abnormal termination [v13]
> The root cause of the bug is because mousePress() method is invoked before > mouseMove() event is completely processed causing the drag & drop behavior > not being able to be recognized properly. This in turn makes the method > dragSourceListener.isDropFinished() returns false and fail the test. To fix > this, setAutoWaitForIdle(true) and Thread.Sleep is called to make sure the > mouseMove() event is processed completely before moving to execute the > mousePress() method. > > JBS issue: [JDK-8317287](https://bugs.openjdk.org/browse/JDK-8317287) songpv-imt has updated the pull request incrementally with one additional commit since the last revision: Update InterJVMGetDropSuccessTest.java - Fix whitespace errors - Changes: - all: https://git.openjdk.org/jdk/pull/16396/files - new: https://git.openjdk.org/jdk/pull/16396/files/46bb7901..2bd0e22b Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk=16396=12 - incr: https://webrevs.openjdk.org/?repo=jdk=16396=11-12 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.org/jdk/pull/16396.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/16396/head:pull/16396 PR: https://git.openjdk.org/jdk/pull/16396
Re: RFR: 8317287: [macos14] InterJVMGetDropSuccessTest.java: Child VM: abnormal termination [v12]
> The root cause of the bug is because mousePress() method is invoked before > mouseMove() event is completely processed causing the drag & drop behavior > not being able to be recognized properly. This in turn makes the method > dragSourceListener.isDropFinished() returns false and fail the test. To fix > this, setAutoWaitForIdle(true) and Thread.Sleep is called to make sure the > mouseMove() event is processed completely before moving to execute the > mousePress() method. > > JBS issue: [JDK-8317287](https://bugs.openjdk.org/browse/JDK-8317287) songpv-imt has updated the pull request incrementally with one additional commit since the last revision: Update InterJVMGetDropSuccessTest.java - Changes: - all: https://git.openjdk.org/jdk/pull/16396/files - new: https://git.openjdk.org/jdk/pull/16396/files/51c97fb1..46bb7901 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk=16396=11 - incr: https://webrevs.openjdk.org/?repo=jdk=16396=10-11 Stats: 1 line in 1 file changed: 1 ins; 0 del; 0 mod Patch: https://git.openjdk.org/jdk/pull/16396.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/16396/head:pull/16396 PR: https://git.openjdk.org/jdk/pull/16396
Re: RFR: 8317287: [macos14] InterJVMGetDropSuccessTest.java: Child VM: abnormal termination [v10]
On Tue, 16 Jan 2024 14:42:07 GMT, Alexey Ivanov wrote: >> In addition to this, I propose removing `robot.delay(50);` from the >> for-loops, or at least reducing this value, let's say, to 5. > >> In addition to this, I propose removing `robot.delay(50);` from the >> for-loops, or at least reducing this value, let's say, to 5. > > The test is unstable without a delay inside the for-loop. > > `robot.delay(5)` does the trick. The test passes successfully with 50 repeats. > > The above changes make the test significantly quicker. > > - Original version takes **25 minutes** for 50 repeats; > - Yesterday's version — 30 minutes; > - Today's version — 22 minutes; > - With `delay(5)` — **7 minutes**; > - ~~No delay — 5 minutes (*unstable*)~~. > > Thus, the modified version with `robot.delay(5)` instead of `robot.delay(50)` > completes nearly twice as quick compared to the original test. Thank you, the code has been updated. - PR Review Comment: https://git.openjdk.org/jdk/pull/16396#discussion_r1453747130
Re: RFR: 8317287: [macos14] InterJVMGetDropSuccessTest.java: Child VM: abnormal termination [v11]
> The root cause of the bug is because mousePress() method is invoked before > mouseMove() event is completely processed causing the drag & drop behavior > not being able to be recognized properly. This in turn makes the method > dragSourceListener.isDropFinished() returns false and fail the test. To fix > this, setAutoWaitForIdle(true) and Thread.Sleep is called to make sure the > mouseMove() event is processed completely before moving to execute the > mousePress() method. > > JBS issue: [JDK-8317287](https://bugs.openjdk.org/browse/JDK-8317287) songpv-imt has updated the pull request incrementally with one additional commit since the last revision: Update InterJVMGetDropSuccessTest.java - Changes: - all: https://git.openjdk.org/jdk/pull/16396/files - new: https://git.openjdk.org/jdk/pull/16396/files/16a1ec70..51c97fb1 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk=16396=10 - incr: https://webrevs.openjdk.org/?repo=jdk=16396=09-10 Stats: 33 lines in 1 file changed: 9 ins; 11 del; 13 mod Patch: https://git.openjdk.org/jdk/pull/16396.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/16396/head:pull/16396 PR: https://git.openjdk.org/jdk/pull/16396
Re: RFR: 8317287: [macos14] InterJVMGetDropSuccessTest.java: Child VM: abnormal termination [v10]
> The root cause of the bug is because mousePress() method is invoked before > mouseMove() event is completely processed causing the drag & drop behavior > not being able to be recognized properly. This in turn makes the method > dragSourceListener.isDropFinished() returns false and fail the test. To fix > this, setAutoWaitForIdle(true) and Thread.Sleep is called to make sure the > mouseMove() event is processed completely before moving to execute the > mousePress() method. > > JBS issue: [JDK-8317287](https://bugs.openjdk.org/browse/JDK-8317287) songpv-imt has updated the pull request incrementally with one additional commit since the last revision: Update InterJVMGetDropSuccessTest.java - Remove robot.setWaitForIdle(true) and add robot.waitForIdle() after mouseMove - Change FRAME_ACTIVATION_TIMEOUT to 1000 - Remove unused pointInComponent and pointInComponentImpl methods - Use Java-style array declaration for successCodes - Use per-class imports instead of wildcard imports - Changes: - all: https://git.openjdk.org/jdk/pull/16396/files - new: https://git.openjdk.org/jdk/pull/16396/files/83ad763b..16a1ec70 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk=16396=09 - incr: https://webrevs.openjdk.org/?repo=jdk=16396=08-09 Stats: 66 lines in 1 file changed: 23 ins; 33 del; 10 mod Patch: https://git.openjdk.org/jdk/pull/16396.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/16396/head:pull/16396 PR: https://git.openjdk.org/jdk/pull/16396
Re: RFR: 8317287: [macos14] InterJVMGetDropSuccessTest.java: Child VM: abnormal termination [v7]
On Fri, 12 Jan 2024 18:14:20 GMT, Victor Dyakov wrote: >>> Why this issue can be reproduced in macOS 14? What was changed in that >>> version? >> >> I am uncertain about the exact code modifications in MacOS 14 that make this >> issue reproducible. Nevertheless, considering the underlying code logic, >> this issue could occur on any version of MacOS, contingent on timing >> factors, if the fix is not applied. > > @songpv-imt any plans to resume your work on this fix? @victordyakov, hmm... I think I have addressed all comments from the reviewers. Any other action I need to follow up? Thank. - PR Comment: https://git.openjdk.org/jdk/pull/16396#issuecomment-1891294787
Re: RFR: 8317287: [macos14] InterJVMGetDropSuccessTest.java: Child VM: abnormal termination [v9]
> The root cause of the bug is because mousePress() method is invoked before > mouseMove() event is completely processed causing the drag & drop behavior > not being able to be recognized properly. This in turn makes the method > dragSourceListener.isDropFinished() returns false and fail the test. To fix > this, setAutoWaitForIdle(true) and Thread.Sleep is called to make sure the > mouseMove() event is processed completely before moving to execute the > mousePress() method. > > JBS issue: [JDK-8317287](https://bugs.openjdk.org/browse/JDK-8317287) songpv-imt has updated the pull request incrementally with one additional commit since the last revision: Update InterJVMGetDropSuccessTest.java - Update success1 and success2 to volatile - Changes: - all: https://git.openjdk.org/jdk/pull/16396/files - new: https://git.openjdk.org/jdk/pull/16396/files/2521a8e0..83ad763b Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk=16396=08 - incr: https://webrevs.openjdk.org/?repo=jdk=16396=07-08 Stats: 2 lines in 1 file changed: 0 ins; 0 del; 2 mod Patch: https://git.openjdk.org/jdk/pull/16396.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/16396/head:pull/16396 PR: https://git.openjdk.org/jdk/pull/16396
Re: RFR: 8317287: [macos14] InterJVMGetDropSuccessTest.java: Child VM: abnormal termination [v8]
> The root cause of the bug is because mousePress() method is invoked before > mouseMove() event is completely processed causing the drag & drop behavior > not being able to be recognized properly. This in turn makes the method > dragSourceListener.isDropFinished() returns false and fail the test. To fix > this, setAutoWaitForIdle(true) and Thread.Sleep is called to make sure the > mouseMove() event is processed completely before moving to execute the > mousePress() method. > > JBS issue: [JDK-8317287](https://bugs.openjdk.org/browse/JDK-8317287) songpv-imt has updated the pull request incrementally with one additional commit since the last revision: Update InterJVMGetDropSuccessTest.java - Replace Thread.sleep by robot.delay - Fix the code's formatting - Changes: - all: https://git.openjdk.org/jdk/pull/16396/files - new: https://git.openjdk.org/jdk/pull/16396/files/9a9c3112..2521a8e0 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk=16396=07 - incr: https://webrevs.openjdk.org/?repo=jdk=16396=06-07 Stats: 10 lines in 1 file changed: 0 ins; 0 del; 10 mod Patch: https://git.openjdk.org/jdk/pull/16396.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/16396/head:pull/16396 PR: https://git.openjdk.org/jdk/pull/16396
Re: RFR: 8317287: [macos14] InterJVMGetDropSuccessTest.java: Child VM: abnormal termination [v7]
On Fri, 15 Dec 2023 15:16:32 GMT, Alexey Ivanov wrote: >> songpv-imt has updated the pull request incrementally with one additional >> commit since the last revision: >> >> Update InterJVMGetDropSuccessTest.java >> Instead of using SYNC_LOCK to synchronize accessing the listener's fields, >> for better code transparency, we have placed the code that accesses the >> listener's fields from the main thread into the AWT Event Queue. > > test/jdk/java/awt/dnd/InterJVMGetDropSuccessTest/InterJVMGetDropSuccessTest.java > line 273: > >> 271: robot.setAutoWaitForIdle(true); >> 272: robot.mouseMove(sourcePoint.x, sourcePoint.y); >> 273: Thread.sleep(50); > > Suggestion: > > robot.delay(50); > > Using `Robot.delay` is more common in tests, and it doesn't throw > `InterruptedException`. Thank you for your suggestions. The changes have been incorporated. - PR Review Comment: https://git.openjdk.org/jdk/pull/16396#discussion_r1429444342
Re: RFR: 8317287: [macos14] InterJVMGetDropSuccessTest.java: Child VM: abnormal termination [v7]
On Sat, 2 Dec 2023 08:45:25 GMT, Sergey Bylokhov wrote: > Why this issue can be reproduced in macOS 14? What was changed in that > version? I am uncertain about the exact code modifications in MacOS 14 that make this issue reproducible. Nevertheless, considering the underlying code logic, this issue could occur on any version of MacOS, contingent on timing factors, if the fix is not applied. - PR Comment: https://git.openjdk.org/jdk/pull/16396#issuecomment-1837874468
Re: RFR: 8317287: [macos14] InterJVMGetDropSuccessTest.java: Child VM: abnormal termination [v6]
On Tue, 28 Nov 2023 19:32:56 GMT, Alexandre Iline wrote: >> Hmm... Are you suggesting instead of using SYNC_LOCK, for better code >> transparency, we should place the code that accesses the listener's fields >> from the main thread into AWT Event Queue with EventQueue.invokeAndWait? Can >> you please check if the update code meets your suggestion? Thanks. > >> Hmm... Are you suggesting instead of using SYNC_LOCK, for better code >> transparency, we should place the code that accesses the listener's fields >> from the main thread into AWT Event Queue with EventQueue.invokeAndWait? Can >> you please check if the update code meets your suggestion? Thanks. > > Yes. Half of the access to the state of the listener is already on the even > queue. It would be pretty transparent to make the other part of the access to > go through the queue. @shurymury The last code commit has implemented the changes based on your suggestion. Can you please advise what other step I should take to complete this bug ? Thanks. - PR Comment: https://git.openjdk.org/jdk/pull/16396#issuecomment-1835745445
Re: RFR: 8317287: [macos14] InterJVMGetDropSuccessTest.java: Child VM: abnormal termination [v7]
> The root cause of the bug is because mousePress() method is invoked before > mouseMove() event is completely processed causing the drag & drop behavior > not being able to be recognized properly. This in turn makes the method > dragSourceListener.isDropFinished() returns false and fail the test. To fix > this, setAutoWaitForIdle(true) and Thread.Sleep is called to make sure the > mouseMove() event is processed completely before moving to execute the > mousePress() method. > > JBS issue: [JDK-8317287](https://bugs.openjdk.org/browse/JDK-8317287) songpv-imt has updated the pull request incrementally with one additional commit since the last revision: Update InterJVMGetDropSuccessTest.java Instead of using SYNC_LOCK to synchronize accessing the listener's fields, for better code transparency, we have placed the code that accesses the listener's fields from the main thread into the AWT Event Queue. - Changes: - all: https://git.openjdk.org/jdk/pull/16396/files - new: https://git.openjdk.org/jdk/pull/16396/files/eb667f4e..9a9c3112 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk=16396=06 - incr: https://webrevs.openjdk.org/?repo=jdk=16396=05-06 Stats: 19 lines in 1 file changed: 12 ins; 4 del; 3 mod Patch: https://git.openjdk.org/jdk/pull/16396.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/16396/head:pull/16396 PR: https://git.openjdk.org/jdk/pull/16396
Re: RFR: 8317287: [macos14] InterJVMGetDropSuccessTest.java: Child VM: abnormal termination [v6]
On Wed, 8 Nov 2023 09:28:13 GMT, songpv-imt wrote: >> The root cause of the bug is because mousePress() method is invoked before >> mouseMove() event is completely processed causing the drag & drop behavior >> not being able to be recognized properly. This in turn makes the method >> dragSourceListener.isDropFinished() returns false and fail the test. To fix >> this, setAutoWaitForIdle(true) and Thread.Sleep is called to make sure the >> mouseMove() event is processed completely before moving to execute the >> mousePress() method. >> >> JBS issue: [JDK-8317287](https://bugs.openjdk.org/browse/JDK-8317287) > > songpv-imt has updated the pull request incrementally with one additional > commit since the last revision: > > Update InterJVMGetDropSuccessTest.java > Change BUTTON1_MASK to BUTTON1_DOWN_MASK because BUTTON1_MASK is > deprecated: > https://docs.oracle.com/en/java/javase/21/docs/api/java.desktop/java/awt/event/InputEvent.html#BUTTON1_MASK Hmm... Are you suggesting instead of using SYNC_LOCK, for better code transparency, we should place the code that accesses the listener's fields from the main thread into AWT Event Queue with EventQueue.invokeAndWait? Can you please check if the update code meets your suggestion? Thanks. - PR Comment: https://git.openjdk.org/jdk/pull/16396#issuecomment-1820460444
Re: RFR: 8317287: [macos14] InterJVMGetDropSuccessTest.java: Child VM: abnormal termination [v5]
On Tue, 7 Nov 2023 22:36:23 GMT, Phil Race wrote: > Subsequent to submitting a job to verifying this, I've no objection to > stability fixes but from what I saw on macOS 14.0 this failed because of some > macOS 14 event delivery changes which have been resolved in macOS 14.1 Thank you for pointing out the BUTTON1_DOWN_MASK field. I have made the suggested changes. Regarding the issue described in the bug, based on my tests, without the code fix, it actually happens on both macOS 14 and 14.1. - PR Comment: https://git.openjdk.org/jdk/pull/16396#issuecomment-1801397748
Re: RFR: 8317287: [macos14] InterJVMGetDropSuccessTest.java: Child VM: abnormal termination [v6]
> The root cause of the bug is because mousePress() method is invoked before > mouseMove() event is completely processed causing the drag & drop behavior > not being able to be recognized properly. This in turn makes the method > dragSourceListener.isDropFinished() returns false and fail the test. To fix > this, setAutoWaitForIdle(true) and Thread.Sleep is called to make sure the > mouseMove() event is processed completely before moving to execute the > mousePress() method. > > JBS issue: [JDK-8317287](https://bugs.openjdk.org/browse/JDK-8317287) songpv-imt has updated the pull request incrementally with one additional commit since the last revision: Update InterJVMGetDropSuccessTest.java Change BUTTON1_MASK to BUTTON1_DOWN_MASK because BUTTON1_MASK is deprecated: https://docs.oracle.com/en/java/javase/21/docs/api/java.desktop/java/awt/event/InputEvent.html#BUTTON1_MASK - Changes: - all: https://git.openjdk.org/jdk/pull/16396/files - new: https://git.openjdk.org/jdk/pull/16396/files/909b66a7..eb667f4e Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk=16396=05 - incr: https://webrevs.openjdk.org/?repo=jdk=16396=04-05 Stats: 6 lines in 1 file changed: 0 ins; 0 del; 6 mod Patch: https://git.openjdk.org/jdk/pull/16396.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/16396/head:pull/16396 PR: https://git.openjdk.org/jdk/pull/16396
Re: RFR: 8317287: [macos14] InterJVMGetDropSuccessTest.java: Child VM: abnormal termination [v5]
> The root cause of the bug is because mousePress() method is invoked before > mouseMove() event is completely processed causing the drag & drop behavior > not being able to be recognized properly. This in turn makes the method > dragSourceListener.isDropFinished() returns false and fail the test. To fix > this, setAutoWaitForIdle(true) and Thread.Sleep is called to make sure the > mouseMove() event is processed completely before moving to execute the > mousePress() method. > > JBS issue: [JDK-8317287](https://bugs.openjdk.org/browse/JDK-8317287) songpv-imt has updated the pull request incrementally with one additional commit since the last revision: Update InterJVMGetDropSuccessTest.java Based on description in Chapter "17.4 Memory Model", and specifically chapter "17.4.5 Happens-before Order" of the "The Java® Language Specification", DragSourceDropListener.finished field is accessed from two threads without proper synchronization which may also be possible causing the test to fail. Hence, putting code accessing to DragSourceDropListener.finished into a proper synchronization code block. - Changes: - all: https://git.openjdk.org/jdk/pull/16396/files - new: https://git.openjdk.org/jdk/pull/16396/files/59cea9fc..909b66a7 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk=16396=04 - incr: https://webrevs.openjdk.org/?repo=jdk=16396=03-04 Stats: 29 lines in 1 file changed: 15 ins; 13 del; 1 mod Patch: https://git.openjdk.org/jdk/pull/16396.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/16396/head:pull/16396 PR: https://git.openjdk.org/jdk/pull/16396
Re: RFR: 8317287: [macos14] InterJVMGetDropSuccessTest.java: Child VM: abnormal termination [v4]
> The root cause of the bug is because mousePress() method is invoked before > mouseMove() event is completely processed causing the drag & drop behavior > not being able to be recognized properly. This in turn makes the method > dragSourceListener.isDropFinished() returns false and fail the test. To fix > this, setAutoWaitForIdle(true) and Thread.Sleep is called to make sure the > mouseMove() event is processed completely before moving to execute the > mousePress() method. > > JBS issue: [JDK-8317287](https://bugs.openjdk.org/browse/JDK-8317287) songpv-imt has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains one commit: [macos14] InterJVMGetDropSuccessTest.java: Child VM: abnormal termination - Changes: https://git.openjdk.org/jdk/pull/16396/files Webrev: https://webrevs.openjdk.org/?repo=jdk=16396=03 Stats: 2 lines in 1 file changed: 1 ins; 0 del; 1 mod Patch: https://git.openjdk.org/jdk/pull/16396.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/16396/head:pull/16396 PR: https://git.openjdk.org/jdk/pull/16396
Re: RFR: 8317287: [macos14] InterJVMGetDropSuccessTest.java: Child VM: abnormal termination [v3]
> The root cause of the bug is because mousePress() method is invoked before > mouseMove() event is completely processed causing the drag & drop behavior > not being able to be recognized properly. This in turn makes the method > dragSourceListener.isDropFinished() returns false and fail the test. To fix > this, setAutoWaitForIdle(true) and Thread.Sleep is called to make sure the > mouseMove() event is processed completely before moving to execute the > mousePress() method. > > JBS issue: [JDK-8317287](https://bugs.openjdk.org/browse/JDK-8317287) songpv-imt has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains one commit: [macos14] InterJVMGetDropSuccessTest.java: Child VM: abnormal termination - Changes: https://git.openjdk.org/jdk/pull/16396/files Webrev: https://webrevs.openjdk.org/?repo=jdk=16396=02 Stats: 2 lines in 1 file changed: 1 ins; 0 del; 1 mod Patch: https://git.openjdk.org/jdk/pull/16396.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/16396/head:pull/16396 PR: https://git.openjdk.org/jdk/pull/16396