public ProcessState commit(final ProcessState state) throws ReportProcessingException
{
// better clone twice than to face the subtle errors that crawl out here..
final ProcessState next = state.deriveForAdvance();
final DefaultFlowController flowController = next.getFlowController();
final MasterDataRow masterRow = flowController.getMasterRow();
final ExpressionDataRow expressionDataRow = masterRow.getExpressionDataRow();
final Expression[] expressions = expressionDataRow.getExpressions();
if (next.isSubReportEvent())
{
next.setAdvanceHandler(EndSubReportHandler.HANDLER);