> Windows implementation of GlassClipboard.cpp uses IStorage interface in > `PopImage()` to allocate a temporary file, which is then used to capture > Image data from system clipboard and move it to JVM side. In order for > temporary file to be removed automatically on `IStorage::Release()`, > `StgCreateDocfile` API requires passing STGM_DELETEONRELEASE flag - otherwise > the file will be left behind when IStorage is released. Contents of temporary > file are immediately copied to a JNI Byte Array after acquiring them from > clibpoard, so it is safe to provide this flag and remove the file after > `PopImage()` is done. > > Creating a unit test for this case would a bit difficult, as IStorage and its > file are created with random temporary name each time, which we cannot easily > access. On the other hand, just scouting the temp directory for any leftover > .TMP files might prove false results, as other apps or even JFX itself might > use IStorage temporary files for some other purposes than managing clipboard > images. As such, because this is a simple API change, I did not make a test > for this. > > Tested this change on Windows 10 and it doesn't break any existing tests. > Calling `Clipboard.getSystemClipboard().getImage()` with an image stored > inside the system clipboard now leaves no leftover files.
Lukasz Kostyra has updated the pull request incrementally with two additional commits since the last revision: - ClipboardExtImageTest: Add missing copyright notice - Add manual test to check for leftover Clipboard files ------------- Changes: - all: https://git.openjdk.org/jfx/pull/994/files - new: https://git.openjdk.org/jfx/pull/994/files/36a4b483..139b1c4c Webrevs: - full: https://webrevs.openjdk.org/?repo=jfx&pr=994&range=01 - incr: https://webrevs.openjdk.org/?repo=jfx&pr=994&range=00-01 Stats: 209 lines in 4 files changed: 208 ins; 0 del; 1 mod Patch: https://git.openjdk.org/jfx/pull/994.diff Fetch: git fetch https://git.openjdk.org/jfx pull/994/head:pull/994 PR: https://git.openjdk.org/jfx/pull/994