To perform a save in a view I am using the RequestFactoryEditorDriver to flush any changes to a RequestContext and then I call save(the edited proxy).to(MyReceiver<Void>).fire();
MemberRequest s = (MemberRequest)editorDriver.flush();
MemberProxy sectorProxy = (MemberProxy)getProxy();
s.saveMember(sectorProxy).to(new MyReceiver<Void>()).fire();
MyReceiver has a onConstraintViolation method which displays violations generated in the server. I am using my own ServiceLayerDecorator.validate() to check for any business-related constraints.
To this point it works fine. However when after more than one attempts the user finally "fixes" all violations and the entity reaches the service layer, the save method is invoked multiple times (as many attempts it took to pass validation). I understand that this is because the request context is queuing all method invocations and by calling onConstraintViolation. this queue is not cleared. As a result, when it passes validation there is a number of onvocations for saving which all then succeed in inserting to the database.
My question is how/where to clear the request context of any method invocations that have lead to the call of onConstraintViolation so the save to the service layer is called once only.
thanks in Advance
Alex