[OpenJDK 2D-Dev] RFR: 8254825: Monitoring available clipboard formats should be done via new Windows APIs [v2]

Sergey Bylokhov serb at openjdk.java.net
Sun Oct 25 22:18:35 UTC 2020


On Sun, 25 Oct 2020 18:41:48 GMT, Daniel Kamil Kozar <github.com+127875+xavery at openjdk.org> wrote:

>> This change replaces the usage of SetClipboardViewer with Add/RemoveClipboardFormatListener, introduced in Windows Vista. This makes OpenJDK immune to external applications failing to process clipboard messages properly.
>> I have put this proposal forward in the [mailing list](https://mail.openjdk.java.net/pipermail/awt-dev/2020-July/015990.html), which was tentatively accepted by Mr. Sergey Bylokhov.
>> 
>> The deficiencies of the old APIs are well known and might result in some subscribed applications not receiving notifications from the operating system, as they rely on all the applications in the current clipboard chain processing clipboard messages properly. Porting the code to use the new APIs not only makes OpenJDK immune to these issues, but also results in slightly less code needed to support clipboard-related functionality.
>> 
>> As this is a change that's very platform-specific, I don't think providing a unit test is practical, as it would also require providing a native application that runs alongside the test and deliberately breaks the keyboard chain, resulting in OpenJDK not being able to receive clipboard format change notifications. This is a bug/limitation of the old Windows API, not OpenJDK itself. Anyhow, the already existing ClipboardInterVMTest passes, which shows that already existing functionality is not impacted by this change.
>> 
>> I have prepared a proof-of-concept test which illustrates the deficiencies of the old API, however it is not integrated with the test suite, as it requires compiling a native WinAPI application. I will gladly share the source if needed.
>
> Daniel Kamil Kozar has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Update copyright headers to 2020

Looks fine

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

Marked as reviewed by serb (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/594


More information about the 2d-dev mailing list