I have found it useful to be able to control "debugging mode" on a per-request basis. It makes it easier to track down problems reported in production that are hard to reproduce in a development environment.
The places that I have found where it would be useful to control devMode are: Dispatcher.sendError(), JSONInterceptor, and DebuggingInterceptor. (Other uses of devMode are related to logging and config reloading, and that shouldn't be adjustable.)
I've currently patched my copy of Struts 2.2.1 so each of the the above-mentioned code chunks checks an extra, static ThreadLocal variable that I added (in addition to the devMode member variable).
1) Is this the best solution?
2) Is this something that should be merged into the Struts 2 distribution?