> 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 three additional commits since the last revision: - Revert "8295324: Apply patch with junit from the issue" This reverts commit c76b8207242a7af82f5515e49760158fa40da2a9. - Revert "8295324: Fix race condition in junit test" This reverts commit fdec73d8f4ff21908bf99d191b76ffeed42bfb36. - Revert "8295324: Adjust the J2DPrinterJobTest" This reverts commit 0723d2ebcd2c41d40005dbb1652c4ec96cfe4f8c. ------------- Changes: - all: https://git.openjdk.org/jfx/pull/916/files - new: https://git.openjdk.org/jfx/pull/916/files/acd4825b..127cb03b Webrevs: - full: https://webrevs.openjdk.org/?repo=jfx&pr=916&range=03 - incr: https://webrevs.openjdk.org/?repo=jfx&pr=916&range=02-03 Stats: 488 lines in 6 files changed: 6 ins; 471 del; 11 mod Patch: https://git.openjdk.org/jfx/pull/916.diff Fetch: git fetch https://git.openjdk.org/jfx pull/916/head:pull/916 PR: https://git.openjdk.org/jfx/pull/916