RFR: 8370141: [macOS] Crash after PrinterJob ends when Graphics.create() is used. [v2]
Phil Race
prr at openjdk.org
Fri Oct 24 18:35:27 UTC 2025
> macOS printing uses a Quartz surface. It is the SurfaceData for a CPrinterGraphics.
> That Surface is not disconnected from the graphics unless Graphics.dispose() is called.
> If the application uses Graphics.create() then the implementation will not Graphics.dispose() it.
> If it is used after printing is complete and the CGContext is no longer valid a crash will occur.
> We need to invalidate the surface as soon as printing to a page is done.
> Note: this is Graphics.dispose(), and is unrelated to disposal of an object when it becomes unreachable.
Phil Race has updated the pull request incrementally with one additional commit since the last revision:
8370141
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/27905/files
- new: https://git.openjdk.org/jdk/pull/27905/files/a5af40a2..cba82e10
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=27905&range=01
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=27905&range=00-01
Stats: 136 lines in 5 files changed: 94 ins; 1 del; 41 mod
Patch: https://git.openjdk.org/jdk/pull/27905.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/27905/head:pull/27905
PR: https://git.openjdk.org/jdk/pull/27905
More information about the client-libs-dev
mailing list