gwt /
gwt /
0e65faf46fc00b3d0b510a2139be20e94746fbc7 Fixes issue 1059. The problem is that all of the detected version incompatibilities between a RemoteService client and its corresponding server get converted into an InvocationException. This is a problem because the client code does not know what caused the InvocationException and the only thing that it can do is retry.
This patch introduces an IncompatbileRemoteServiceException which is only passed to the client's AsyncCallback.onFailure(Throwable) method when:
* The requested RemoteService cannot be located via Class.forName(String) on the server.
* The requested RemoteService interface is not implemented by the RemoteServiceServlet instance which is configured to process the request.
* The requested service method is not defined or inherited by the requested RemoteService interface.
* One of the types used in the RemoteService method invocation of the RemoteService method has had fields added or removed.
* The client receives a type from the server which it cannot deserialize.
The idea is that whenever a client receives an IncompatibleRemoteServiceException it should do what ever cleanup it can and eventually cause the browser to be refreshed.
Patch by: mmendez
Review by: jgw, rjellinghaus
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@1099 8db76d5a-ed1c-0410-87a9-c151d255dfc7
10 files changed