From 46cc08b5374f2d60de6825e88287da2b83a095c1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Leif=20=C3=85strand?= Date: Thu, 30 May 2013 11:55:31 +0300 Subject: [PATCH] Remove workarounds for broken Timer.cancel in IE (#11872) Change-Id: Ib60d6131d36e794bcf72d5f498bb59fafdbf7d0e --- .../vaadin/client/ApplicationConnection.java | 8 --- .../com/vaadin/client/VLoadingIndicator.java | 57 +------------------ .../com/vaadin/client/ui/ui/UIConnector.java | 13 +---- 3 files changed, 6 insertions(+), 72 deletions(-) diff --git a/client/src/com/vaadin/client/ApplicationConnection.java b/client/src/com/vaadin/client/ApplicationConnection.java index 24275dadb9..ed9fe88269 100644 --- a/client/src/com/vaadin/client/ApplicationConnection.java +++ b/client/src/com/vaadin/client/ApplicationConnection.java @@ -3277,14 +3277,6 @@ public class ApplicationConnection { Timer forceHandleMessage = new Timer() { @Override public void run() { - if (responseHandlingLocks.isEmpty()) { - /* - * Timer fired but there's nothing to clear. This can happen - * with IE8 as Timer.cancel is not always effective (see GWT - * issue 8101). - */ - return; - } VConsole.log("WARNING: reponse handling was never resumed, forcibly removing locks..."); responseHandlingLocks.clear(); handlePendingMessages(); diff --git a/client/src/com/vaadin/client/VLoadingIndicator.java b/client/src/com/vaadin/client/VLoadingIndicator.java index fcce35781d..3b6cf2252c 100644 --- a/client/src/com/vaadin/client/VLoadingIndicator.java +++ b/client/src/com/vaadin/client/VLoadingIndicator.java @@ -42,75 +42,24 @@ public class VLoadingIndicator { private int secondDelay = 1500; private int thirdDelay = 5000; - /** - * Timer with method for checking if it has been cancelled. This class is a - * workaround for a IE8 problem which causes a timer to be fired even if it - * has been cancelled. - * - * @author Vaadin Ltd - * @since 7.1 - */ - private abstract static class LoadingIndicatorTimer extends Timer { - private boolean cancelled = false; - - @Override - public void cancel() { - super.cancel(); - cancelled = true; - } - - @Override - public void schedule(int delayMillis) { - super.schedule(delayMillis); - cancelled = false; - } - - @Override - public void scheduleRepeating(int periodMillis) { - super.scheduleRepeating(periodMillis); - cancelled = false; - } - - /** - * Checks if this timer has been cancelled. - * - * @return true if the timer has been cancelled, false otherwise - */ - public boolean isCancelled() { - return cancelled; - } - } - - private Timer firstTimer = new LoadingIndicatorTimer() { + private Timer firstTimer = new Timer() { @Override public void run() { - if (isCancelled()) { - // IE8 does not properly cancel the timer in all cases. - return; - } show(); } }; - private Timer secondTimer = new LoadingIndicatorTimer() { + private Timer secondTimer = new Timer() { @Override public void run() { - if (isCancelled()) { - // IE8 does not properly cancel the timer in all cases. - return; - } getElement().setClassName(PRIMARY_STYLE_NAME); getElement().addClassName("second"); // For backwards compatibility only getElement().addClassName(PRIMARY_STYLE_NAME + "-delay"); } }; - private Timer thirdTimer = new LoadingIndicatorTimer() { + private Timer thirdTimer = new Timer() { @Override public void run() { - if (isCancelled()) { - // IE8 does not properly cancel the timer in all cases. - return; - } getElement().setClassName(PRIMARY_STYLE_NAME); getElement().addClassName("third"); // For backwards compatibility only diff --git a/client/src/com/vaadin/client/ui/ui/UIConnector.java b/client/src/com/vaadin/client/ui/ui/UIConnector.java index 643d687f1d..e734d420f2 100644 --- a/client/src/com/vaadin/client/ui/ui/UIConnector.java +++ b/client/src/com/vaadin/client/ui/ui/UIConnector.java @@ -645,16 +645,9 @@ public class UIConnector extends AbstractSingleComponentContainerConnector pollTimer = new Timer() { @Override public void run() { - /* - * Verify that polling has not recently been canceled. This - * is needed because Timer.cancel() does not always work - * properly in IE 8 until GWT issue 8101 has been fixed. - */ - if (pollTimer != null) { - getRpcProxy(UIServerRpc.class).poll(); - // Send changes even though poll is @Delayed - getConnection().sendPendingVariableChanges(); - } + getRpcProxy(UIServerRpc.class).poll(); + // Send changes even though poll is @Delayed + getConnection().sendPendingVariableChanges(); } }; pollTimer.scheduleRepeating(getState().pollInterval); -- 2.39.5