apache/iceberg · error · UnsupportedOperationException
this.getClass().getName() + " doesn't implement…
Error message
this.getClass().getName() + " doesn't implement caseSensitive"
What it means
Default-interface guard on SortOrderBuilder: thrown when caseSensitive(boolean) is called on a builder that did not override it, so case-insensitive sort column name resolution is unavailable. The %s names the offending runtime builder class; the boolean argument is irrelevant to the failure.
Solutions
- Use exact-match column names so case sensitivity does not matter
- Catch UnsupportedOperationException and keep the default case-sensitive resolution
- Implement caseSensitive in the custom sort builder
Defensive patterns
Strategy: type-guard
When it happens
Trigger: Thrown at api/src/main/java/org/apache/iceberg/SortOrderBuilder.java:114 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of apache/iceberg@86d9c8fc54 (2026-09-12).
Data as JSON: /api/errors/8edb1ef2c5c4c617.
Report an issue: GitHub.
Appendix: source
Thrown at api/src/main/java/org/apache/iceberg/SortOrderBuilder.java:114
}
/**
* Add an expression term to the sort, descending with the given null order.
*
* @param term an expression term
* @param nullOrder a null order (first or last)
* @return this for method chaining
*/
R desc(Term term, NullOrder nullOrder);
/**
* Set case sensitivity of sort column name resolution.
*
* @param caseSensitive when true, column name resolution is case-sensitive
* @return this for method chaining
*/
default R caseSensitive(boolean caseSensitive) {
throw new UnsupportedOperationException(
this.getClass().getName() + " doesn't implement caseSensitive");
}
}
View on GitHub (pinned to 86d9c8fc54)