This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
One of the GWT Bug(Sorry, as I think It's a Bud) ate my valuable development time recently.
I was saving my 4 DynamicForm's data by using
addData(Record record, DSCallback callback) method of a DataSource.
Saving back-end method had a business validation which return RunTimeException with validation error message.
If due to validation, saving get interrupted, i didn't want to run code inside execute(DSResponse response, Object rawData, DSRequest request)
But the issue was, neglecting there's a RunTime validation exception or not, lines inside "execute" got called which was not supposed to call when RunTime validation exception thrown.
After so many testing, wasting time, I found that the solution as using a DynamicForm object to save data with call-back would work.
saveData(DSCallback callback) with execute(DSResponse response, Object rawData, DSRequest request) of DynamicForm.
If I use this way, when RunTime validation exception thrown when save data, lines inside "execute()" not get called.
So the lesson is,
DataSource.addData method with call-back will execute lines inside "execute()" method when RunTimeException is returned or not. (In Both time)
DynamicForm.saveData method will call-back will not execute lines inside "execute()" when RunTimeException is returned. call otherwise.
Can you experts elaborate on this. Is this a really GWT issue or is that something GWT developer purposely done.