} else if (columnName.equals(JFritz.getMessage("number"))) {
} else if (columnName.equals("number")) {
        public int compare(Object a, Object b) {            Object o1 = null, o2 = null;            Call v1 = (Call) a;            Call v2 = (Call) b;            String columnName = getRealColumnName(columnIndex);            if (columnName.equals(JFritz.getMessage("type"))) {                o1 = v1.getCalltype().toString();                o2 = v2.getCalltype().toString();            } else if (columnName.equals(JFritz.getMessage("date"))) {                o1 = v1.getCalldate();                o2 = v2.getCalldate();            } else if (columnName.equals("Call-By-Call")) {                if (v1.getPhoneNumber() != null)                    o1 = v1.getPhoneNumber().getCallByCall();                else                    o1 = null;                if (v2.getPhoneNumber() != null)                    o2 = v2.getPhoneNumber().getCallByCall();                else                    o2 = null;            } else if (columnName.equals(JFritz.getMessage("number"))) {                if (v1.getPhoneNumber() != null)                    o1 = v1.getPhoneNumber().getIntNumber();                else                    o1 = null;                if (v2.getPhoneNumber() != null)                    o2 = v2.getPhoneNumber().getIntNumber();                else                    o2 = null;            } else if (columnName.equals(JFritz.getMessage("participant"))) {                if (v1.getPerson() != null)                    o1 = v1.getPerson().getFullname().toUpperCase();                else                    o1 = null;                if (v2.getPerson() != null)                    o2 = v2.getPerson().getFullname().toUpperCase();                else                    o2 = null;            } else if (columnName.equals(JFritz.getMessage("port"))) {                o1 = v1.getPort();                o2 = v2.getPort();            } else if (columnName.equals(JFritz.getMessage("route"))) {                o1 = v1.getRoute();                o2 = v2.getRoute();            } else if (columnName.equals(JFritz.getMessage("duration"))) {                if (v1.getDuration() != 0)                    o1 = format(Integer.toString(v1.getDuration()), 10);                else                    o1 = null;                if (v2.getDuration() != 0)                    o2 = format(Integer.toString(v2.getDuration()), 10);                else                    o2 = null;            } else if (columnName.equals("Kommentar")) {                o1 = v1.getComment().toUpperCase();                o2 = v2.getComment().toUpperCase();            } else {                // Sort by Date                o1 = v1.getCalldate();                o2 = v2.getCalldate();            }            // Treat empty strings like nulls            if (o1 instanceof String && ((String) o1).trim().length() == 0) {                o1 = null;            }            if (o2 instanceof String && ((String) o2).trim().length() == 0) {                o2 = null;            }            // Sort nulls so they appear last, regardless            // of sort order            if (o1 == null && o2 == null) {                return 0;            } else if (o1 == null) {                return 1;            } else if (o2 == null) {                return -1;            } else if (o1 instanceof Comparable) {                if (ascending) {                    return ((Comparable) o1).compareTo(o2);                } else {                    return ((Comparable) o2).compareTo(o1);                }            } else {                if (ascending) {                    return o1.toString().compareTo(o2.toString());                } else {                    return o2.toString().compareTo(o1.toString());                }            }        }