From dfe27b2deb165501fdceff0a7498ea7332879a93 Mon Sep 17 00:00:00 2001 From: Leif Åstrand Date: Wed, 24 Apr 2013 12:53:26 +0300 Subject: Avoid excessive logging related to response handling locks (#11702) Change-Id: I0e50663a2500c56a042d20c80909aacfc707a5dd --- client/src/com/vaadin/client/ApplicationConnection.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'client') diff --git a/client/src/com/vaadin/client/ApplicationConnection.java b/client/src/com/vaadin/client/ApplicationConnection.java index 93a2e90c07..375beb9dda 100644 --- a/client/src/com/vaadin/client/ApplicationConnection.java +++ b/client/src/com/vaadin/client/ApplicationConnection.java @@ -3287,6 +3287,14 @@ 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(); @@ -3311,9 +3319,13 @@ public class ApplicationConnection { public void resumeResponseHandling(Object lock) { responseHandlingLocks.remove(lock); if (responseHandlingLocks.isEmpty()) { - VConsole.log("No more response handling locks, handling pending requests."); + // Cancel timer that breaks the lock forceHandleMessage.cancel(); - handlePendingMessages(); + + if (!pendingUIDLMessages.isEmpty()) { + VConsole.log("No more response handling locks, handling pending requests."); + handlePendingMessages(); + } } } -- cgit v1.2.3