On Fri, 28 Oct 2022 13:54:40 GMT, eduardsdv <d...@openjdk.org> wrote:
>> This fixes a race condition between application and 'Print Job Thread' >> threads when printing. >> >> The race condition occurs when application thread calls `endJob()`, which in >> effect sets the `jobDone` flag to true, >> and when the 'Print Job Thread' thread was in the `synchronized` block in >> `waitForNextPage()` at that time. >> The 'Print Job Thread' thread checks `jobDone` flag after exiting the >> `synchronized` block and, if it is true, skips the last page. >> >> In this fix, not only the `jobDone` is checked, but also that there is no >> other page to be printed. >> It was also needed to introduce a new flag 'jobCanceled', to skip the page >> if the printing was canceled by 'cancelJob()'. > > eduardsdv has updated the pull request incrementally with two additional > commits since the last revision: > > - 8295324: Fix skipping of pages when printing > > This occurs in print(Graphics, PageFormat, int) if the 'jobDone' flag > was previously set by the 'endJob()' method. > - 8295324: Adjust the J2DPrinterJobTest > > The test now also checks for the second race condition around 'jobDone' > flag, which is in the print(Graphics, PageFormat, int) method. Can someone else check this PR if @prace is not available? ------------- PR: https://git.openjdk.org/jfx/pull/916