Fix logout failure when no objects were opened Project: http://git-wip-us.apache.org/repos/asf/incubator-wave/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-wave/commit/a447ec99 Tree: http://git-wip-us.apache.org/repos/asf/incubator-wave/tree/a447ec99 Diff: http://git-wip-us.apache.org/repos/asf/incubator-wave/diff/a447ec99
Branch: refs/heads/swellrt Commit: a447ec99a74c39b4c929abb186d2df90d24656d6 Parents: 02f116a Author: Pablo Ojanguren <pablo...@gmail.com> Authored: Fri Sep 2 17:22:24 2016 +0200 Committer: Pablo Ojanguren <pablo...@gmail.com> Committed: Wed Sep 7 10:52:15 2016 +0200 ---------------------------------------------------------------------- wave/src/main/java/org/swellrt/api/SwellRT.java | 95 +++++++++++--------- 1 file changed, 52 insertions(+), 43 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/a447ec99/wave/src/main/java/org/swellrt/api/SwellRT.java ---------------------------------------------------------------------- diff --git a/wave/src/main/java/org/swellrt/api/SwellRT.java b/wave/src/main/java/org/swellrt/api/SwellRT.java index 7d3a83e..90c5760 100644 --- a/wave/src/main/java/org/swellrt/api/SwellRT.java +++ b/wave/src/main/java/org/swellrt/api/SwellRT.java @@ -298,55 +298,64 @@ public class SwellRT implements EntryPoint, UnsavedDataListener { // // Clean session, websocket ,objects and registries // - cleanSessionData(); - - shouldOpenWebsocket = true; - - for (ModelJS co: objectRegistry.values()) - SwellRTUtils.deleteJsObject(co); - - objectRegistry.clear(); - - for (WaveLoader wave: waveRegistry.values()) - wave.destroy(); - - waveRegistry.clear(); - websocket.disconnect(false); - - for (TextEditor editor: editorRegistry.values()) - editor.cleanUp(); - - editorRegistry.clear(); - - - // - // Call server to close remote session - // - - String url = baseServerUrl + "/swell/auth"; - url = BrowserSession.addSessionToUrl(url); - RequestBuilder builder = SwellRTUtils.newRequestBuilder(RequestBuilder.POST, url); - builder.setHeader("Content-Type", "text/plain; charset=utf-8"); - builder.sendRequest("{}", new RequestCallback() { + try { - @Override - public void onResponseReceived(Request request, Response response) { + for (ModelJS co : objectRegistry.values()) + SwellRTUtils.deleteJsObject(co); + + objectRegistry.clear(); + + for (WaveLoader wave : waveRegistry.values()) + wave.destroy(); + + waveRegistry.clear(); + + for (TextEditor editor : editorRegistry.values()) + editor.cleanUp(); + editorRegistry.clear(); + + shouldOpenWebsocket = true; + if (websocket != null) + websocket.disconnect(false); + + // + // Call server to close remote session + // + + String url = baseServerUrl + "/swell/auth"; + url = BrowserSession.addSessionToUrl(url); + + RequestBuilder builder = SwellRTUtils.newRequestBuilder(RequestBuilder.POST, url); + builder.setHeader("Content-Type", "text/plain; charset=utf-8"); + builder.sendRequest("{}", new RequestCallback() { + + @Override + public void onResponseReceived(Request request, Response response) { + + if (response.getStatusCode() != 200) + callback.onComplete(ServiceCallback.JavaScriptResponse.error(response.getText())); + else { + callback.onComplete(ServiceCallback.JavaScriptResponse.success(response.getText())); + } - if (response.getStatusCode() != 200) - callback.onComplete(ServiceCallback.JavaScriptResponse.error(response.getText())); - else { - callback.onComplete(ServiceCallback.JavaScriptResponse.success(response.getText())); } - } + @Override + public void onError(Request request, Throwable exception) { + callback.onComplete(ServiceCallback.JavaScriptResponse.error("SERVICE_EXCEPTION", + exception.getMessage())); + } + }); - @Override - public void onError(Request request, Throwable exception) { - callback.onComplete(ServiceCallback.JavaScriptResponse.error("SERVICE_EXCEPTION", - exception.getMessage())); - } - }); + } catch (RuntimeException e) { + + // TODO + + } finally { + + cleanSessionData(); + } }