I have a 'clipboard listener' similar to the one here: java - calling a method when content of clipboard is changed - Stack Overflow.
I am using Linux and when I copy text from a program that uses the mono(.NET) interpreter(like KeePaass2) my Java program loses it's ability to 'listen' to the clipboard and I get this stack trace:
java.lang.NullPointerException: Failed to retrieve atom name.
at sun.awt.X11.XlibWrapper.XGetAtomName(Native Method)
at sun.awt.X11.XAtom.getName(XAtom.java:186)
at sun.awt.X11.XDataTransferer.getTargetNameForAtom(XDataTransferer.java:165)
at sun.awt.X11.XDataTransferer.getNativeForFormat(XDataTransferer.java:154)
at sun.awt.datatransfer.DataTransferer.getFlavorsForFormats(DataTransferer.java:736)
at sun.awt.datatransfer.ClipboardTransferable.<init>(ClipboardTransferable.java:90)
at sun.awt.X11.XClipboard.getContents(XClipboard.java:108)
at ClipPlay.ClipBoardListener.lostOwnership(ClipBoardListener.java:60)
at sun.awt.datatransfer.SunClipboard.lostOwnershipNow(SunClipboard.java:313)
at sun.awt.datatransfer.SunClipboard.lambda$lostOwnershipLater$0(SunClipboard.java:283)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
How do I fix this? At the moment I am just haneling the exception and macking my program crash but there must be a better way.