diff --git a/src/main/java/org/olat/core/gui/components/table/StaticColumnDescriptor.java b/src/main/java/org/olat/core/gui/components/table/StaticColumnDescriptor.java index b93e5ac12833e659224627bbd54db888e07ba9aa..10a8a0cedf3a982b425ca1eeab41657f590b1183 100644 --- a/src/main/java/org/olat/core/gui/components/table/StaticColumnDescriptor.java +++ b/src/main/java/org/olat/core/gui/components/table/StaticColumnDescriptor.java @@ -28,7 +28,6 @@ package org.olat.core.gui.components.table; import org.olat.core.gui.render.Renderer; import org.olat.core.gui.render.StringOutput; -import org.olat.core.logging.AssertException; /** * Description:<br> @@ -108,8 +107,10 @@ public class StaticColumnDescriptor implements ColumnDescriptor { /** * @see org.olat.core.gui.components.table.ColumnDescriptor#compareTo(int, int) */ + @Override public int compareTo(final int rowa, final int rowb) { - throw new AssertException("staticcolumndescriptor was called to be sorted, but did not offer to be sorted"); + //dummy order but fixed + return rowb - rowa; } /** diff --git a/src/main/java/org/olat/core/gui/components/table/Table.java b/src/main/java/org/olat/core/gui/components/table/Table.java index 8a2feed72a057484e2acd12a91f25563e9a5b714..952582d5717e3c1112fd2c4086ada190b4a06158 100644 --- a/src/main/java/org/olat/core/gui/components/table/Table.java +++ b/src/main/java/org/olat/core/gui/components/table/Table.java @@ -525,23 +525,21 @@ public class Table extends AbstractComponent { protected void resort() { if (isSortingEnabled() && sortColumn < getColumnCount()) { ColumnDescriptor currentSortingCd = getColumnDescriptor(sortColumn); // we sort after this - // column descriptor - // notify all nonactive ColumnDescriptors about their state - int cdcnt = getColumnCount(); - for (int i = 0; i < cdcnt; i++) { - ColumnDescriptor cd = getColumnDescriptor(i); - if (cd != currentSortingCd){ - cd.otherColumnDescriptorSorted(); + if(currentSortingCd != null && currentSortingCd.isSortingAllowed()) { + // column descriptor + // notify all nonactive ColumnDescriptors about their state + int cdcnt = getColumnCount(); + for (int i = 0; i < cdcnt; i++) { + ColumnDescriptor cd = getColumnDescriptor(i); + if (cd != currentSortingCd){ + cd.otherColumnDescriptorSorted(); + } } + currentSortingCd.sortingAboutToStart(); + Collections.sort(sorter, new TableComparator(currentSortingCd, sortAscending)); + } else { + log.error("Sort column not found:" + sortColumn + " in columns: " + columnOrder, null); } - - if (currentSortingCd == null){ - throw new RuntimeException("cannot find columndesc for column " - + sortColumn - + " in sorting process, maybe you have set the tabledatamodel before the columndescriptors?"); - } - currentSortingCd.sortingAboutToStart(); - Collections.sort(sorter, new TableComparator(currentSortingCd, sortAscending)); } }