private static List<SaveOperation> createDefaultSaveOperations() {
SaveOperation[] operations = new SaveOperation[4];
operations[0] = new CheckUnpersistableVariablesOperation();
// first, save the execution data (process instance)
operations[1] = new HibernateSaveOperation();
// then, insert the logs, which may have references to the execution data
operations[2] = new SaveLogsOperation();
// last, save subprocess instances in cascade
operations[3] = new CascadeSaveOperation();
return Arrays.asList(operations);