Hi all,

Can I get some reviews for this change of adding 'fflush()' on validation message print?

The order of 'validation error message' and 'vm exit message' is wrong on Windows. - Windows is buffering the validation error message which is sent to 'stderr'. - 'stderr' from 'jvm.dll' is flushed later than 'stderr' from the caller of 'jvm.dll'.

eg) Expected message order (all other platforms except Windows)
$ java -XX:MinTLABSize=1 -version
1) MinTLABSize (1) must be greater than or equal to reserved area in TLAB (16) 2) Error: Could not create the Java Virtual Machine. \n Error: A fatal exception has occurred. Program will exit.

On Windows:
$ java -XX:MinTLABSize=1 -version
2) Error: Could not create the Java Virtual Machine. \n Error: A fatal exception has occurred. Program will exit. 1) MinTLABSize (1) must be greater than or equal to reserved area in TLAB (16)

As a solution, I added 'fflush()' on print function of validation check (CommandLineError::print). And any other functions that are printing to 'stderr' would have similar fix for Windows.

CR: https://bugs.openjdk.java.net/browse/JDK-8139801
Webrev: http://cr.openjdk.java.net/~sangheki/8139801/webrev.00/
Testing: JPRT

Thanks,
Sangheon

Reply via email to