-
Bug
-
Resolution: Duplicate
-
P3
-
21
-
x86_64
-
windows_10
ADDITIONAL SYSTEM INFORMATION :
Windows 11, issue also reproduces on Windows 10. Affects all tested JDK versions from 17 onward
A DESCRIPTION OF THE PROBLEM :
Swing applications packaged with JPackage never become input idle according to Windows. Any process waiting for the Java application to be properly started hangs until the wait timeouts
REGRESSION : Last worked in version 16
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Start a process using an exe created with jpackage. Use WaitForInputIdle to wait for said process to be ready to process input.
In JDK 14-16, the process becomes idle after a few hundred milliseconds. On JDK 17+, the process never becomes idle and all waits time out
I have created a reproducer at https://github.com/lwahonen/waitfor_jdk_repro
Use buildrepro.cmd to build the jars/exes needed to reproduce, use reproduce.cmd to reproduce the issue.
The java source is just a simple Swing Hello World, the c++ source is a minimal example of waiting for a process to start
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
The WaitForInputIdle call returns in under one second with return value 0 (Wait succeeded)
ACTUAL -
The WaitForInputIdle times out after 30 seconds (defined in WaitFor.cpp), and returns 258 ( WAIT_TIMEOUT )
---------- BEGIN SOURCE ----------
https://github.com/lwahonen/waitfor_jdk_repro
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
Do not wait indefinitely for JVM to start, abort the wait after a fixed time and hope the process started correctly
FREQUENCY : always
Windows 11, issue also reproduces on Windows 10. Affects all tested JDK versions from 17 onward
A DESCRIPTION OF THE PROBLEM :
Swing applications packaged with JPackage never become input idle according to Windows. Any process waiting for the Java application to be properly started hangs until the wait timeouts
REGRESSION : Last worked in version 16
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Start a process using an exe created with jpackage. Use WaitForInputIdle to wait for said process to be ready to process input.
In JDK 14-16, the process becomes idle after a few hundred milliseconds. On JDK 17+, the process never becomes idle and all waits time out
I have created a reproducer at https://github.com/lwahonen/waitfor_jdk_repro
Use buildrepro.cmd to build the jars/exes needed to reproduce, use reproduce.cmd to reproduce the issue.
The java source is just a simple Swing Hello World, the c++ source is a minimal example of waiting for a process to start
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
The WaitForInputIdle call returns in under one second with return value 0 (Wait succeeded)
ACTUAL -
The WaitForInputIdle times out after 30 seconds (defined in WaitFor.cpp), and returns 258 ( WAIT_TIMEOUT )
---------- BEGIN SOURCE ----------
https://github.com/lwahonen/waitfor_jdk_repro
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
Do not wait indefinitely for JVM to start, abort the wait after a fixed time and hope the process started correctly
FREQUENCY : always
- duplicates
-
JDK-8294699 Launcher causes lingering busy cursor
-
- Resolved
-