diff options
| author | Andrey Loskutov | 2020-04-20 11:51:49 +0000 |
|---|---|---|
| committer | Andrey Loskutov | 2020-04-21 06:22:31 +0000 |
| commit | 884a041c4f2bf0aeb0dba16d5cd343d9aad25b06 (patch) | |
| tree | 905b4cd6bb4924bc1451cbac76a619e2dfe95ad8 | |
| parent | 494866f839b3da696cc4855b8006e9eef8509f48 (diff) | |
| download | eclipse.platform.ui-884a041c4f2bf0aeb0dba16d5cd343d9aad25b06.tar.gz eclipse.platform.ui-884a041c4f2bf0aeb0dba16d5cd343d9aad25b06.tar.xz eclipse.platform.ui-884a041c4f2bf0aeb0dba16d5cd343d9aad25b06.zip | |
Bug 562314 - "IllegalArgumentException: Comparison method violates its
general contract" error in DetailedProgressViewer
Users of DetailedProgressViewer that want use comparators with it,
should use error-aware comparator versions like
ProgressManagerUtil.ProgressViewerComparator.
Change-Id: I514420eb48616ebaffdf8ba0236f7e4b1973e39b
Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
4 files changed, 4 insertions, 36 deletions
diff --git a/bundles/org.eclipse.e4.ui.progress/src/org/eclipse/e4/ui/progress/internal/BlockedJobsDialog.java b/bundles/org.eclipse.e4.ui.progress/src/org/eclipse/e4/ui/progress/internal/BlockedJobsDialog.java index 66225553bdf..d8298796eb7 100644 --- a/bundles/org.eclipse.e4.ui.progress/src/org/eclipse/e4/ui/progress/internal/BlockedJobsDialog.java +++ b/bundles/org.eclipse.e4.ui.progress/src/org/eclipse/e4/ui/progress/internal/BlockedJobsDialog.java @@ -21,8 +21,6 @@ import org.eclipse.e4.ui.progress.IProgressService; import org.eclipse.e4.ui.progress.UIJob; import org.eclipse.jface.dialogs.IconAndMessageDialog; import org.eclipse.jface.resource.JFaceResources; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.jface.viewers.ViewerComparator; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.GridData; @@ -261,13 +259,7 @@ public class BlockedJobsDialog extends IconAndMessageDialog { void showJobDetails(Composite parent) { viewer = new DetailedProgressViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER, progressService, finishedJobs); - viewer.setComparator(new ViewerComparator() { - @Override - @SuppressWarnings("unchecked") - public int compare(Viewer testViewer, Object e1, Object e2) { - return ((Comparable<Object>) e1).compareTo(e2); - } - }); + viewer.setComparator(ProgressManagerUtil.getProgressViewerComparator()); ProgressViewerContentProvider provider = getContentProvider(); viewer.setContentProvider(provider); viewer.setInput(provider); diff --git a/bundles/org.eclipse.e4.ui.progress/src/org/eclipse/e4/ui/progress/internal/ProgressMonitorJobsDialog.java b/bundles/org.eclipse.e4.ui.progress/src/org/eclipse/e4/ui/progress/internal/ProgressMonitorJobsDialog.java index a6629727b1e..8bf4bad121f 100644 --- a/bundles/org.eclipse.e4.ui.progress/src/org/eclipse/e4/ui/progress/internal/ProgressMonitorJobsDialog.java +++ b/bundles/org.eclipse.e4.ui.progress/src/org/eclipse/e4/ui/progress/internal/ProgressMonitorJobsDialog.java @@ -24,8 +24,6 @@ import org.eclipse.e4.ui.progress.internal.legacy.Policy; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.jface.dialogs.ProgressMonitorDialog; import org.eclipse.jface.operation.IRunnableWithProgress; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.jface.viewers.ViewerComparator; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; @@ -144,13 +142,7 @@ public class ProgressMonitorJobsDialog extends ProgressMonitorDialog { viewer = new DetailedProgressViewer(viewerComposite, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER, progressService, finishedJobs); - viewer.setComparator(new ViewerComparator() { - @Override - @SuppressWarnings("unchecked") - public int compare(Viewer testViewer, Object e1, Object e2) { - return ((Comparable<Object>) e1).compareTo(e2); - } - }); + viewer.setComparator(ProgressManagerUtil.getProgressViewerComparator()); viewer.setContentProvider(contentProviderFactory .getProgressViewerContentProvider(viewer, true, false)); diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/BlockedJobsDialog.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/BlockedJobsDialog.java index 766f1e9e9f0..e7096064273 100644 --- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/BlockedJobsDialog.java +++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/BlockedJobsDialog.java @@ -18,8 +18,6 @@ import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.jface.dialogs.IconAndMessageDialog; import org.eclipse.jface.resource.JFaceResources; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.jface.viewers.ViewerComparator; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.GridData; @@ -223,13 +221,7 @@ public class BlockedJobsDialog extends IconAndMessageDialog { */ void showJobDetails(Composite parent) { viewer = new DetailedProgressViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); - viewer.setComparator(new ViewerComparator() { - @Override - @SuppressWarnings("unchecked") - public int compare(Viewer testViewer, Object e1, Object e2) { - return ((Comparable<Object>) e1).compareTo(e2); - } - }); + viewer.setComparator(ProgressManagerUtil.getProgressViewerComparator()); ProgressViewerContentProvider provider = getContentProvider(); viewer.setContentProvider(provider); viewer.setInput(provider); diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/ProgressMonitorJobsDialog.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/ProgressMonitorJobsDialog.java index ba1075fe3e2..6d991652844 100644 --- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/ProgressMonitorJobsDialog.java +++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/ProgressMonitorJobsDialog.java @@ -22,8 +22,6 @@ import org.eclipse.core.runtime.IStatus; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.jface.dialogs.ProgressMonitorDialog; import org.eclipse.jface.operation.IRunnableWithProgress; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.jface.viewers.ViewerComparator; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Cursor; import org.eclipse.swt.graphics.Point; @@ -121,13 +119,7 @@ public class ProgressMonitorJobsDialog extends ProgressMonitorDialog { } viewer = new DetailedProgressViewer(viewerComposite, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); - viewer.setComparator(new ViewerComparator() { - @SuppressWarnings({ "unchecked", "rawtypes" }) - @Override - public int compare(Viewer testViewer, Object e1, Object e2) { - return ((Comparable) e1).compareTo(e2); - } - }); + viewer.setComparator(ProgressManagerUtil.getProgressViewerComparator()); viewer.setContentProvider(new ProgressViewerContentProvider(viewer, true, false) { @Override |
