Un-handled event loop exception with sorting in remote systems details view
Bugzilla Link | 420346 |
Status | NEW |
Importance | P3 normal |
Reported | Oct 24, 2013 21:29 EDT |
Modified | May 09, 2018 04:49 EDT |
Reporter | Pavan Kumar Immaneni |
Description
Sorting in Remote Systems table view can cause IllegalArgumentException in RDz.
Steps to reproduce the problem:
- Start RDz 9.0.1 client
- connect to the remote system
- under MVS Files in the Remote Systems view, create a filter to a PDS that contains many members (in my case the PDS contains 837 members)
- expand the filter and right click on the PDS in the Remote Systems view and choose "Show in Table"
- While the elements are still being loaded ("Pending..." is displayed in some cells), try to sort columns such as "Size", "Last Modified" or "Created".
Result: the column is not sorted, and you get an error message in the error log:
Unhandled event loop exception (java.lang.IllegalArgumentException: Comparison method violates its general contract!).
Note that this only happens while the table is still loading. Once all the elements in the table are fully loaded (no more "Pending..." elements) then sorting works.
Expected Behavior:
Sort should be correct and list members that have no dependencies left separate at the end or the start in the Remote Systems view
Exception stack trace:
java.lang.IllegalArgumentException: Comparison method violates its general contract!
at java.util.TimSort.mergeLo(Unknown Source)
at java.util.TimSort.mergeAt(Unknown Source)
at java.util.TimSort.mergeForceCollapse(Unknown Source)
at java.util.TimSort.sort(Unknown Source)
at java.util.TimSort.sort(Unknown Source)
at java.util.Arrays.sort(Unknown Source)
at org.eclipse.jface.viewers.ViewerComparator.sort(Unknown Source)
at org.eclipse.jface.viewers.StructuredViewer.getSortedChildren(Unknown Source)
at org.eclipse.jface.viewers.AbstractTableViewer.internalRefreshAll(Unknown Source)
at org.eclipse.jface.viewers.AbstractTableViewer.internalRefresh(Unknown Source)
at org.eclipse.jface.viewers.AbstractTableViewer.internalRefresh(Unknown Source)
at org.eclipse.jface.viewers.AbstractTableViewer2.run(Unknown Source)\ at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(Unknown Source)\ at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(Unknown Source)\ at org.eclipse.jface.viewers.AbstractTableViewer.inputChanged(Unknown Source)\ at org.eclipse.rse.ui.view.SystemTableView.inputChanged(Unknown Source)\ at org.eclipse.jface.viewers.ContentViewer.setInput(Unknown Source)\ at org.eclipse.jface.viewers.StructuredViewer.setInput(Unknown Source)\ at org.eclipse.rse.internal.ui.view.SystemTableViewPart.setInput(Unknown Source)\ at org.eclipse.rse.internal.ui.view.SystemTableViewPart.setInput(Unknown Source)\ at org.eclipse.rse.internal.ui.view.SystemTableViewPartForwardAction.run(Unknown Source)
at org.eclipse.jface.action.Action.runWithEvent(Unknown Source)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(Unknown Source)
at org.eclipse.jface.action.ActionContributionItem.access$2(Unknown Source)
at org.eclipse.jface.action.ActionContributionItem$6.handleEvent(Unknown Source)
at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
at org.eclipse.ui.internal.Workbench.runEventLoop(Unknown Source)
at org.eclipse.ui.internal.Workbench.runUI(Unknown Source)
at org.eclipse.ui.internal.Workbench.access$4(Unknown Source)
at org.eclipse.ui.internal.Workbench$7.run(Unknown Source)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Unknown Source)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Unknown Source)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(Unknown Source)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(Unknown Source)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(Unknown Source)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(Unknown Source)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Unknown Source)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Unknown Source)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Unknown Source)
at org.eclipse.equinox.launcher.Main.basicRun(Unknown Source)
at org.eclipse.equinox.launcher.Main.run(Unknown Source)
at org.eclipse.equinox.launcher.Main.main(Unknown Source)