From c3452d64aa54f6473f224aa212939a1181f2dfb3 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Mon, 5 May 2014 09:05:36 +0200 Subject: [PATCH] OO-1083: check if the 2 objects are of the same class before compare them with the generic compareTo method --- .../gui/components/table/DefaultColumnDescriptor.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/olat/core/gui/components/table/DefaultColumnDescriptor.java b/src/main/java/org/olat/core/gui/components/table/DefaultColumnDescriptor.java index 50cebd9ccb2..6bf90697c90 100644 --- a/src/main/java/org/olat/core/gui/components/table/DefaultColumnDescriptor.java +++ b/src/main/java/org/olat/core/gui/components/table/DefaultColumnDescriptor.java @@ -179,12 +179,14 @@ public class DefaultColumnDescriptor implements ColumnDescriptor { if(a instanceof Date && b instanceof Date) { return compareDateAndTimestamps((Date)a, (Date)b); } - if (a instanceof Comparable && b instanceof Comparable) { + if (a instanceof Boolean && b instanceof Boolean) { + // faster than string compare, boolean are comparable + return compareBooleans((Boolean)a, (Boolean)b); + } + if (a instanceof Comparable && a.getClass().equals(b.getClass())) { + //compare the same things return ((Comparable)a).compareTo((Comparable)b); } - /*if (a instanceof Boolean && b instanceof Boolean) { // faster than string compare, boolean are comparable - return compareBooleans((Boolean)a, (Boolean)b); - }*/ return a.toString().compareTo(b.toString()); } -- GitLab