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 50cebd9ccb250fecf69694187b1acd05b7f02743..6bf90697c9026ecaf31952abe2e61feaa9f202a0 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()); }