]> source.dussan.org Git - vaadin-framework.git/commitdiff
Remove workarounds for broken Timer.cancel in IE (#11872)
authorLeif Åstrand <leif@vaadin.com>
Thu, 30 May 2013 08:55:31 +0000 (11:55 +0300)
committerVaadin Code Review <review@vaadin.com>
Thu, 30 May 2013 14:08:32 +0000 (14:08 +0000)
Change-Id: Ib60d6131d36e794bcf72d5f498bb59fafdbf7d0e

client/src/com/vaadin/client/ApplicationConnection.java
client/src/com/vaadin/client/VLoadingIndicator.java
client/src/com/vaadin/client/ui/ui/UIConnector.java

index 24275dadb9e4fbc434ce57cf2e344e7f73f4c6f7..ed9fe8826977c0b33d94a71d90613ed0fa49b263 100644 (file)
@@ -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();
index fcce35781dd900d806eef321676ff8445486e3f5..3b6cf2252c9f241ecaaddd125269d37c73c8a009 100644 (file)
@@ -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
index 643d687f1d6f4e6c51f3d5fe618692128b3b0da9..e734d420f2e9a9380e9c9d275c644f1d1dc1e0cb 100644 (file)
@@ -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);