Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrey Loskutov2018-02-11 13:29:13 +0000
committerAndrey Loskutov2018-02-11 13:29:13 +0000
commita905b4943d4aaad994dde6bcc2d2c28b0b075b15 (patch)
treef22cf5ea3f5fd255fffe74db5784ab25c571a00b
parentae71913b56fde46604813308c2890fe0cbb305fa (diff)
downloadeclipse.platform.ui-a905b4943d4aaad994dde6bcc2d2c28b0b075b15.tar.gz
eclipse.platform.ui-a905b4943d4aaad994dde6bcc2d2c28b0b075b15.tar.xz
eclipse.platform.ui-a905b4943d4aaad994dde6bcc2d2c28b0b075b15.zip
Bug 371586 - fixed sort by marker id
Same as with creation time, downcasting long values (outside of the integer values range) to integers may lead to unexpected value sign, breaking comparison transitivity. Change-Id: I0ba4eda906556a8f7e79189958cdb8c6eabde16f Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
-rw-r--r--bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/markers/MarkerIDField.java13
1 files changed, 11 insertions, 2 deletions
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/markers/MarkerIDField.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/markers/MarkerIDField.java
index 83118125d79..0d227e45a5f 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/markers/MarkerIDField.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/markers/MarkerIDField.java
@@ -23,14 +23,23 @@ public class MarkerIDField extends MarkerField {
@Override
public String getValue(MarkerItem item) {
- if (item.getMarker() != null)
+ if (item.getMarker() != null) {
return String.valueOf(((MarkerSupportItem) item).getID());
+ }
return MarkerSupportInternalUtilities.EMPTY_STRING;
}
@Override
public int compare(MarkerItem item1, MarkerItem item2) {
- return (int) (((MarkerSupportItem)item1).getID() - ((MarkerSupportItem) item2).getID());
+ long id1 = ((MarkerSupportItem) item1).getID();
+ long id2 = ((MarkerSupportItem) item2).getID();
+ if (id1 < id2) {
+ return -1;
+ }
+ if (id1 > id2) {
+ return 1;
+ }
+ return 0;
}
}

Back to the top