> 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

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/594/files
  - new: https://git.openjdk.java.net/jdk/pull/594/files/c39c39a5..be1b6cbf

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=594&range=01
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=594&range=00-01

  Stats: 3 lines in 3 files changed: 0 ins; 0 del; 3 mod
  Patch: https://git.openjdk.java.net/jdk/pull/594.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/594/head:pull/594

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

Reply via email to