> 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:

 - Remove unnecessary files from manual clipboard test
 - ClipboardExtImageTest: Use isWindows() only on startup

-------------

Changes:
  - all: https://git.openjdk.org/jfx/pull/994/files
  - new: https://git.openjdk.org/jfx/pull/994/files/139b1c4c..624b76b5

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jfx&pr=994&range=02
 - incr: https://webrevs.openjdk.org/?repo=jfx&pr=994&range=01-02

  Stats: 53 lines in 4 files changed: 0 ins; 50 del; 3 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

Reply via email to