<Swing Dev> JDK-8023043 : Clipboard.getAvailableDataFlavors: Comparison method violates contract

Jason Mehrens jason_mehrens at hotmail.com
Tue Apr 21 14:29:54 UTC 2015


Hello Swing-Dev,



Recently we have updated to JDK7u80 and have noticed a pattern of users generating the following error:



==================

java.lang.IllegalArgumentException: Comparison method violates its general contract!

                at java.util.TimSort.mergeHi(Unknown Source)

                at java.util.TimSort.mergeAt(Unknown Source)

                at java.util.TimSort.mergeCollapse(Unknown Source)

                at java.util.TimSort.sort(Unknown Source)

                at java.util.TimSort.sort(Unknown Source)

                at java.util.Arrays.sort(Unknown Source)

                at sun.awt.datatransfer.DataTransferer.setToSortedDataFlavorArray(Unknown Source)

                at sun.awt.datatransfer.ClipboardTransferable.<init>(Unknown Source)

                at sun.awt.datatransfer.SunClipboard.getContents(Unknown Source)

                at javax.swing.TransferHandler$TransferAction.actionPerformedImpl(Unknown Source)

                at javax.swing.TransferHandler$TransferAction.access$700(Unknown Source)

                at javax.swing.TransferHandler$TransferAction$1.run(Unknown Source)

                at javax.swing.TransferHandler$TransferAction$1.run(Unknown Source)

                at java.security.AccessController.doPrivileged(Native Method)

                at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)

                at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)

                at javax.swing.TransferHandler$TransferAction$2.run(Unknown Source)

                at javax.swing.TransferHandler$TransferAction$2.run(Unknown Source)

                at java.security.AccessController.doPrivileged(Native Method)

                at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)

                at javax.swing.TransferHandler$TransferAction.actionPerformed(Unknown Source)

                at javax.swing.text.JTextComponent.invokeAction(Unknown Source)

                at javax.swing.text.JTextComponent.paste(Unknown Source)

                at javax.swing.text.DefaultEditorKit$PasteAction.actionPerformed(Unknown Source)

                at javax.swing.SwingUtilities.notifyAction(Unknown Source)

                at javax.swing.JComponent.processKeyBinding(Unknown Source)

                at javax.swing.JComponent.processKeyBindings(Unknown Source)

                at javax.swing.JComponent.processKeyEvent(Unknown Source)

                at java.awt.Component.processEvent(Unknown Source)

                at java.awt.Container.processEvent(Unknown Source)

                at java.awt.Component.dispatchEventImpl(Unknown Source)

                at java.awt.Container.dispatchEventImpl(Unknown Source)

                at java.awt.Component.dispatchEvent(Unknown Source)

                at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)

                at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)

                at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)

                at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)

                at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)

                at java.awt.Component.dispatchEventImpl(Unknown Source)

                at java.awt.Container.dispatchEventImpl(Unknown Source)

                at java.awt.Window.dispatchEventImpl(Unknown Source)

                at java.awt.Component.dispatchEvent(Unknown Source)

                at java.awt.EventQueue.dispatchEventImpl(Unknown Source)

                at java.awt.EventQueue.access$300(Unknown Source)

                at java.awt.EventQueue$3.run(Unknown Source)

                at java.awt.EventQueue$3.run(Unknown Source)

                at java.security.AccessController.doPrivileged(Native Method)

                at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)

                at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)

                at java.awt.EventQueue$4.run(Unknown Source)

                at java.awt.EventQueue$4.run(Unknown Source)

                at java.security.AccessController.doPrivileged(Native Method)

                at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)

                at java.awt.EventQueue.dispatchEvent(Unknown Source)

                at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)

                at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)

                at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

                at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

                at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

                at java.awt.EventDispatchThread.run(Unknown Source)

=============



When I check the issue tracker http://bugs.java.com/view_bug.do?bug_id=8023043 shows as fixed in 7u60.  Did this get fixed in 7u60 through 7u80?   The stacktrace is a little different from that bug so should I file this as a new issue?



Thanks,



Jason 		 	   		  


More information about the swing-dev mailing list