The Calculated Custom Fields use a pool of BeanShell interpreters in order to avoid recreating them on every invocation. Unfortunately, this pool is currently hardcoded for a maximum of 24 interpreters. It should instead be configurable, for use on systems with lots of cores and/or recursive calculated field formulas.
Parameters should be passed as Java System Properties, using -D<property-name>=<value> entries in the JVM_SUPPORT_RECOMMENDED_ARGS variable of setenv.bat/.sh. Available parameters:
Maximum number of active Interpreters at a given time. Default value: 48
Maximum number of idle Interpreters. Default value: jmcf.maxActive
Number of milliseconds to wait for an Interpreter to become available. Default value: 20,000 (20 seconds)
This is mostly useful if you run into a deadlock during re-indexing, where all threads are locked in a similar manner: