Friday, April 27, 2012

Clear queue method invocations on RequestContext

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

--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To view this discussion on the web visit https://groups.google.com/d/msg/google-web-toolkit/-/FqrtGq3fvxAJ.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to google-web-toolkit+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.

No comments:

Post a Comment