Author: michiel
Date: 2009-11-17 12:16:40 +0100 (Tue, 17 Nov 2009)
New Revision: 39732
Modified:
mmbase/trunk/core/src/main/java/org/mmbase/bridge/util/Queries.java
Log:
sometimes the classcast exception does not make much sense, and can easily be
avoided
Modified: mmbase/trunk/core/src/main/java/org/mmbase/bridge/util/Queries.java
===================================================================
--- mmbase/trunk/core/src/main/java/org/mmbase/bridge/util/Queries.java
2009-11-17 11:14:45 UTC (rev 39731)
+++ mmbase/trunk/core/src/main/java/org/mmbase/bridge/util/Queries.java
2009-11-17 11:16:40 UTC (rev 39732)
@@ -1266,13 +1266,19 @@
} else {
// compare the results
try {
+ // make sure value and value2 have the same type:
+ value2 = Casting.toType(value.getClass(), value2);
+
result = ((Comparable<Object>)value).compareTo(value2);
- log.debug("" + value + " ~ " + value2 + " ->" + result);
+
+ if (log.isDebugEnabled()) {
+ log.debug("" + value + " ~ " + value2 + " ->" + result);
+ }
} catch (ClassCastException cce) {
// This should not occur, and indicates very odd values are
being sorted on (i.e. byte arrays).
// warn and ignore this sortorder
- log.warn("Cannot compare values " + value +" and " + value2 +
" in sortorder field " +
- sortOrder.getField().getFieldName() + " in step " +
sortOrder.getField().getStep().getAlias());
+ log.warn("Cannot compare values " + value.getClass().getName()
+ " " + value +" and " + value2.getClass() + " " + value2 + " in sortorder
field " +
+ sortOrder.getField().getFieldName() + " in step " +
sortOrder.getField().getStep().getAlias() + ": " + cce.getMessage(), cce);
result = 0;
}
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs