@Override public void process(final IFormSubmitter submittingComponent) { try { if (submittingComponent instanceof IFormSubmitterWithPreValidateHook) { IFormSubmitterWithPreValidateHook componentWithPreSubmitHook = (IFormSubmitterWithPreValidateHook) submittingComponent; preValidationErrorIfAny = componentWithPreSubmitHook.preValidate(); } if (preValidationErrorIfAny != null) { // an exception has already occurred, so disable for remainder of thread. AdapterManager.ConcurrencyChecking.executeWithConcurrencyCheckingDisabled( new Runnable() { @Override public void run() { FormAbstract.super.process(submittingComponent); } }); } else { super.process(submittingComponent); } } finally { preValidationErrorIfAny = null; } }