[PATCH] Paste fails when X clipboard is in a certain state

Flaviu Tamas tamasflaviu at gmail.com
Wed Oct 19 04:08:58 UTC 2022


Sometimes, the X clipboard is in some state that causes pastes to fail
with the following, or similar, stack traces:

java.lang.NullPointerException: Failed to retrieve atom name.
    at java.desktop/sun.awt.X11.XlibWrapper.XGetAtomName(Native Method)
    at java.desktop/sun.awt.X11.XAtom.getName(XAtom.java:189)
    at java.desktop/sun.awt.X11.XDataTransferer.getTargetNameForAtom(XDataTransferer.java:172)
    at java.desktop/sun.awt.X11.XDataTransferer.getNativeForFormat(XDataTransferer.java:161)
    at java.desktop/sun.awt.datatransfer.DataTransferer.getFlavorsForFormatsAsSet(DataTransferer.java:487)
    at java.desktop/sun.awt.datatransfer.SunClipboard.formatArrayAsDataFlavorSet(SunClipboard.java:342)
    at java.desktop/sun.awt.datatransfer.SunClipboard.isDataFlavorAvailable(SunClipboard.java:185)

This is a widespread issue and very frustrating issue, see:

- https://youtrack.jetbrains.com/issue/JBR-438/Clipboard-operations-arent-working-in-certain-state-of-Xorg-selection-buffers
- https://www.google.com/search?q="Failed+to+retrieve+atom+name"+"DataTransferer"

Frankly, I don't understand how X works at all, or how this issue
arises. However, this same workaround was applied to Mozilla in 2010:
https://hg.mozilla.org/releases/mozilla-1.9.1/rev/62f3d28797e2, and I
don't see any reasonable behavior that having this workaround in place
would break. The workaround works by simply skipping native formats
that don't have a name.

Verified to work by running IntelliJ Clion under the modified VM and
verifying that paste from my terminal, which previously did not work,
now works. I'm not familiar with OpenJDK unit testing conventions, but
I believe this change falls under the "highly platform-dependent"
exception.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Fixes-failed-paste-when-X-clipboard-is-in-a-certain-.patch
Type: text/x-patch
Size: 2723 bytes
Desc: not available
URL: <https://mail.openjdk.org/pipermail/client-libs-dev/attachments/20221019/2f786588/0001-Fixes-failed-paste-when-X-clipboard-is-in-a-certain-.patch>


More information about the client-libs-dev mailing list