@Override protected <A extends Action<R>, R extends Result> DispatchRequest doUndo( String securityCookie, final A action, final R result, final AsyncCallback<Void> callback) { return new GwtHttpDispatchRequest(realService.undo(securityCookie, action, result, new AsyncCallback<Void>() { public void onFailure(Throwable caught) { RpcDispatchAsync.this.onUndoFailure(action, caught, callback); } public void onSuccess(Void voidResult) { RpcDispatchAsync.this.onUndoSuccess(action, voidResult, callback); } })); }