From a9cca05fa3d7bca8f70b890ab94ade8292212823 Mon Sep 17 00:00:00 2001 From: Matti Tahvonen Date: Tue, 1 Jun 2010 08:24:10 +0000 Subject: [PATCH] fixes #5092, 6.4 branch now supports GWT 2.1 MS 1 svn changeset:13455/svn branch:6.4 --- .../gwt/client/ApplicationConnection.java | 23 +++---------------- .../terminal/gwt/client/SynchronousXHR.java | 21 +++++++++++++++++ 2 files changed, 24 insertions(+), 20 deletions(-) create mode 100644 src/com/vaadin/terminal/gwt/client/SynchronousXHR.java diff --git a/src/com/vaadin/terminal/gwt/client/ApplicationConnection.java b/src/com/vaadin/terminal/gwt/client/ApplicationConnection.java index 619404a065..9d649bcd99 100755 --- a/src/com/vaadin/terminal/gwt/client/ApplicationConnection.java +++ b/src/com/vaadin/terminal/gwt/client/ApplicationConnection.java @@ -12,7 +12,6 @@ import java.util.Iterator; import java.util.Map; import java.util.Set; -import com.google.gwt.core.client.GWT; import com.google.gwt.core.client.JavaScriptObject; import com.google.gwt.core.client.JsArray; import com.google.gwt.core.client.JsArrayString; @@ -29,7 +28,6 @@ import com.google.gwt.user.client.Event; import com.google.gwt.user.client.History; import com.google.gwt.user.client.Timer; import com.google.gwt.user.client.Window; -import com.google.gwt.user.client.impl.HTTPRequestImpl; import com.google.gwt.user.client.ui.FocusWidget; import com.google.gwt.user.client.ui.HasWidgets; import com.google.gwt.user.client.ui.Widget; @@ -483,11 +481,9 @@ public class ApplicationConnection { endRequest(); } } else { - // Synchronized call, discarded response - - syncSendForce(((HTTPRequestImpl) GWT.create(HTTPRequestImpl.class)) - .createXmlHTTPRequest(), uri + "&" + PARAM_UNLOADBURST - + "=1", rd); + // Synchronized call, discarded response (leaving the page) + SynchronousXHR syncXHR = (SynchronousXHR) SynchronousXHR.create(); + syncXHR.synchronousPost(uri + "&" + PARAM_UNLOADBURST + "=1", rd); } } @@ -521,19 +517,6 @@ public class ApplicationConnection { } } - private native void syncSendForce(JavaScriptObject xmlHttpRequest, - String uri, String requestData) - /*-{ - try { - xmlHttpRequest.open("POST", uri, false); - xmlHttpRequest.setRequestHeader("Content-Type", "text/plain;charset=utf-8"); - xmlHttpRequest.send(requestData); - } catch (e) { - // No errors are managed as this is synchronous forceful send that can just fail - } - this.@com.vaadin.terminal.gwt.client.ApplicationConnection::endRequest()(); - }-*/; - private void startRequest() { activeRequests++; requestStartTime = new Date(); diff --git a/src/com/vaadin/terminal/gwt/client/SynchronousXHR.java b/src/com/vaadin/terminal/gwt/client/SynchronousXHR.java new file mode 100644 index 0000000000..991b256794 --- /dev/null +++ b/src/com/vaadin/terminal/gwt/client/SynchronousXHR.java @@ -0,0 +1,21 @@ +package com.vaadin.terminal.gwt.client; + +import com.google.gwt.xhr.client.XMLHttpRequest; + +public class SynchronousXHR extends XMLHttpRequest { + + protected SynchronousXHR() { + } + + public native final void synchronousPost(String uri, String requestData) + /*-{ + try { + this.open("POST", uri, false); + this.setRequestHeader("Content-Type", "text/plain;charset=utf-8"); + this.send(requestData); + } catch (e) { + // No errors are managed as this is synchronous forceful send that can just fail + } + }-*/; + +} -- 2.39.5