One way to avoid all the BPMN branching is to modify the groovy source code to wrap a Throwable as a ScriptException when the eval method fails, as was done below. The same approach could be used for every groovy script task, but what follows (in the groovy source code) only has to be done once.
In any case, when a ScriptException is thrown instead of Throwable, the table lock errors are avoided. However, we have not been able to track down evidence/history/state of a process where a ScriptException was thrown. There is no record in ACT_HI_PROCINST nor ACT_HI_ACTINST.
Does anyone know where information about ScriptException processes are stored or, more generally, how ScriptException processes are handled by Activiti?
Thank You!
—
GroovyScriptEngineImpl.eval wrap of Throwable:
// } catch (Exception e) {
// throw new ScriptException(e);
} catch (Throwable e) {
throw new ScriptException(new Exception(e));