Attached patch 1a, which adds tracing of runtime exceptions. It also adds logging of checked exceptions in some cases.
Committed to trunk with revision 1078449.
The best way to read the information emitted by the istat thread is to enable both logging and tracing, and then grepping for "istat" in the derby.log.
I except that logging/tracing needs another iteration of work after 10.8.1, i.e. what information to log, what to trace etc. The logging may still be a bit too chatty, and one possible solution is to use more than one level of logging (i.e. log only the fact that a table has had all associated index statistics updated on the lowest level).
Another solution is to introduce log categories, i.e. SCHEDULE, STATS, SCAN_DURATIONS, but currently I'm more in favor of reducing the overall volume and keeping this simple.
We can discuss this further if/when the need for better observability, and configuration, arises.