On Sun, 25 Oct 2020 18:41:48 GMT, Daniel Kamil Kozar 
<github.com+127875+xav...@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

Reply via email to