Details
-
Type: Improvement
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 4.1
-
Fix Version/s: EE-4.1.0.RC1, EE-4.1.0.GA, EE-3.3.0.GA_P04, 4.2.BETA, 4.2
-
Component/s: Push Library
-
Labels:None
-
Environment:supported browsers
-
Assignee Priority:P1
Description
Issue Links
- blocks
-
PUSH-384 Update seen on parent window after closing of child window.
- Closed
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
ICEfaces4 trunk r.48562: verified auction, showcase > ProgressBar > Push using 4-5 open windows and/or tabs in each browser (IE11, Chrome49, FF41, MS Edge).
Using the Simple Push Test (http://dev.icesoft.com/svn/repo/qa/trunk/Regression-Icefaces4/Sparkle/Manual/push) a few apparent issues are noted:
- The heartbeat is locked at 10s and does not adapt, though there are no apparent configurations for this in the web.xml of the test application.
- Between heartbeat disconnect/connects it seems to be polling the viewports for confirmation multiple times. This doesn't seem necessary at all, please justify. Log capture below is with 2 open tabs:
[info ] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:05 GMT] request confirmation: 5imcf7w4h:2nkx,5imcf7w4h:2nkz [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:05 GMT] send confirmation: 5imcf7w4h:2nkz [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:05 GMT] send confirmation: 5imcf7w4h:2nkx [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:05 GMT] received confirmation: 5imcf7w4h:2nkz [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:05 GMT] received confirmation: 5imcf7w4h:2nkx [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:05 GMT] received confirmation: 5imcf7w4h:2nkz [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:05 GMT] received confirmation: 5imcf7w4h:2nkx [info ] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:07 GMT] request confirmation: 5imcf7w4h:2nkx,5imcf7w4h:2nkz [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:07 GMT] send confirmation: 5imcf7w4h:2nkx [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:07 GMT] received confirmation: 5imcf7w4h:2nkx [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:07 GMT] send confirmation: 5imcf7w4h:2nkz [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:07 GMT] received confirmation: 5imcf7w4h:2nkz [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:07 GMT] received confirmation: 5imcf7w4h:2nkx [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:07 GMT] received confirmation: 5imcf7w4h:2nkz [debug] [c7762] [icepush.c7762.async-connection] [Mon, 28 Mar 2016 20:07:13 GMT] closing previous connection... [debug] [c7762] [icepush.c7762.async-connection] [Mon, 28 Mar 2016 20:07:13 GMT] connect... [info ] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:15 GMT] request confirmation: 5imcf7w4h:2nkx,5imcf7w4h:2nkz [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:15 GMT] send confirmation: 5imcf7w4h:2nkx [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:15 GMT] received confirmation: 5imcf7w4h:2nkx [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:15 GMT] send confirmation: 5imcf7w4h:2nkz [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:15 GMT] received confirmation: 5imcf7w4h:2nkz [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:15 GMT] received confirmation: 5imcf7w4h:2nkx [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:15 GMT] received confirmation: 5imcf7w4h:2nkz [info ] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:17 GMT] request confirmation: 5imcf7w4h:2nkx,5imcf7w4h:2nkz [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:17 GMT] send confirmation: 5imcf7w4h:2nkx [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:17 GMT] received confirmation: 5imcf7w4h:2nkx [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:17 GMT] send confirmation: 5imcf7w4h:2nkz [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:17 GMT] received confirmation: 5imcf7w4h:2nkz [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:17 GMT] received confirmation: 5imcf7w4h:2nkx [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:17 GMT] received confirmation: 5imcf7w4h:2nkz [debug] [c7762] [icepush.c7762.async-connection] [Mon, 28 Mar 2016 20:07:24 GMT] closing previous connection... [debug] [c7762] [icepush.c7762.async-connection] [Mon, 28 Mar 2016 20:07:24 GMT] connect... [info ] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:25 GMT] request confirmation: 5imcf7w4h:2nkx,5imcf7w4h:2nkz [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:25 GMT] send confirmation: 5imcf7w4h:2nkx [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:25 GMT] received confirmation: 5imcf7w4h:2nkx [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:25 GMT] send confirmation: 5imcf7w4h:2nkz [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:25 GMT] received confirmation: 5imcf7w4h:2nkz [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:25 GMT] received confirmation: 5imcf7w4h:2nkx [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:25 GMT] received confirmation: 5imcf7w4h:2nkz [info ] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:27 GMT] request confirmation: 5imcf7w4h:2nkx,5imcf7w4h:2nkz [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:27 GMT] send confirmation: 5imcf7w4h:2nkx [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:27 GMT] received confirmation: 5imcf7w4h:2nkx [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:27 GMT] send confirmation: 5imcf7w4h:2nkz [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:27 GMT] received confirmation: 5imcf7w4h:2nkz [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:27 GMT] received confirmation: 5imcf7w4h:2nkx [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:27 GMT] received confirmation: 5imcf7w4h:2nkz [debug] [c7762] [icepush.c7762.async-connection] [Mon, 28 Mar 2016 20:07:35 GMT] closing previous connection... [debug] [c7762] [icepush.c7762.async-connection] [Mon, 28 Mar 2016 20:07:35 GMT] connect... [info ] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:35 GMT] request confirmation: 5imcf7w4h:2nkx,5imcf7w4h:2nkz [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:35 GMT] send confirmation: 5imcf7w4h:2nkx [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:35 GMT] send confirmation: 5imcf7w4h:2nkz [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:35 GMT] received confirmation: 5imcf7w4h:2nkx [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:35 GMT] received confirmation: 5imcf7w4h:2nkz [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:35 GMT] received confirmation: 5imcf7w4h:2nkx [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:35 GMT] received confirmation: 5imcf7w4h:2nkz [info ] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:37 GMT] request confirmation: 5imcf7w4h:2nkx,5imcf7w4h:2nkz [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:37 GMT] send confirmation: 5imcf7w4h:2nkx [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:37 GMT] received confirmation: 5imcf7w4h:2nkx [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:37 GMT] send confirmation: 5imcf7w4h:2nkz [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:37 GMT] received confirmation: 5imcf7w4h:2nkz [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:37 GMT] received confirmation: 5imcf7w4h:2nkz [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:37 GMT] received confirmation: 5imcf7w4h:2nkx [info ] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:45 GMT] request confirmation: 5imcf7w4h:2nkx,5imcf7w4h:2nkz [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:45 GMT] send confirmation: 5imcf7w4h:2nkx [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:45 GMT] send confirmation: 5imcf7w4h:2nkz [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:45 GMT] received confirmation: 5imcf7w4h:2nkx [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:45 GMT] received confirmation: 5imcf7w4h:2nkz [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:45 GMT] received confirmation: 5imcf7w4h:2nkx [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:45 GMT] received confirmation: 5imcf7w4h:2nkz [debug] [c7762] [icepush.c7762.async-connection] [Mon, 28 Mar 2016 20:07:46 GMT] closing previous connection... [debug] [c7762] [icepush.c7762.async-connection] [Mon, 28 Mar 2016 20:07:46 GMT] connect... [info ] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:47 GMT] request confirmation: 5imcf7w4h:2nkx,5imcf7w4h:2nkz [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:47 GMT] send confirmation: 5imcf7w4h:2nkx [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:47 GMT] received confirmation: 5imcf7w4h:2nkx [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:47 GMT] send confirmation: 5imcf7w4h:2nkz [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:47 GMT] received confirmation: 5imcf7w4h:2nkz [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:47 GMT] received confirmation: 5imcf7w4h:2nkx [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:47 GMT] received confirmation: 5imcf7w4h:2nkz [info ] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:55 GMT] request confirmation: 5imcf7w4h:2nkx,5imcf7w4h:2nkz [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:55 GMT] send confirmation: 5imcf7w4h:2nkx [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:55 GMT] received confirmation: 5imcf7w4h:2nkx [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:55 GMT] send confirmation: 5imcf7w4h:2nkz [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:55 GMT] received confirmation: 5imcf7w4h:2nkz [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:55 GMT] received confirmation: 5imcf7w4h:2nkx [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:55 GMT] received confirmation: 5imcf7w4h:2nkz [debug] [c7762] [icepush.c7762.async-connection] [Mon, 28 Mar 2016 20:07:57 GMT] closing previous connection... [debug] [c7762] [icepush.c7762.async-connection] [Mon, 28 Mar 2016 20:07:57 GMT] connect... [info ] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:57 GMT] request confirmation: 5imcf7w4h:2nkx,5imcf7w4h:2nkz [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:57 GMT] send confirmation: 5imcf7w4h:2nkx [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:57 GMT] received confirmation: 5imcf7w4h:2nkx [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:57 GMT] send confirmation: 5imcf7w4h:2nkz [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:57 GMT] received confirmation: 5imcf7w4h:2nkz [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:07:57 GMT] received confirmation: 5imcf7w4h:2nkx [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:07:57 GMT] received confirmation: 5imcf7w4h:2nkz [info ] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:08:05 GMT] request confirmation: 5imcf7w4h:2nkx,5imcf7w4h:2nkz [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:08:05 GMT] send confirmation: 5imcf7w4h:2nkx [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:08:05 GMT] received confirmation: 5imcf7w4h:2nkx [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:08:05 GMT] send confirmation: 5imcf7w4h:2nkz [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:08:05 GMT] received confirmation: 5imcf7w4h:2nkz [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:08:05 GMT] received confirmation: 5imcf7w4h:2nkx [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:08:05 GMT] received confirmation: 5imcf7w4h:2nkz [info ] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:08:07 GMT] request confirmation: 5imcf7w4h:2nkx,5imcf7w4h:2nkz [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:08:07 GMT] send confirmation: 5imcf7w4h:2nkx [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:08:07 GMT] received confirmation: 5imcf7w4h:2nkx [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:08:07 GMT] send confirmation: 5imcf7w4h:2nkz [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:08:07 GMT] received confirmation: 5imcf7w4h:2nkz [debug] [98206] [icepush.98206.pushid-expiry] [Mon, 28 Mar 2016 20:08:07 GMT] received confirmation: 5imcf7w4h:2nkx [debug] [c7762] [icepush.c7762.pushid-expiry] [Mon, 28 Mar 2016 20:08:07 GMT] received confirmation: 5imcf7w4h:2nkz [debug] [c7762] [icepush.c7762.async-connection] [Mon, 28 Mar 2016 20:08:08 GMT] closing previous connection... [debug] [c7762] [icepush.c7762.async-connection] [Mon, 28 Mar 2016 20:08:08 GMT] connect...
1) The adapting heartbeat feature is present only in the EE version of ICEpush.
2) The "send/receive confirmation" messages belong to the pushID expiry monitor, they are not related to the blocking connection. The "received confirmation: ..." is seen as many times as windows are opened because the same event is logged by all the windows. This is indeed too chatty so I removed these messages, now only the expired pushIDs are logged.
Also modified the shutdown method in connection.async.js to remove the connection marker only if the window was owning the blocking connection. This avoids a blocking connection reset when a page is closed.
Tested with Jenkins build 1880. Note this issue was also present in previous builds and is not a regression of the latest fix.
When using the simple push application with multiple browsers / tabs the push notifications do not always appear immediately after the first tab in the first browser is closed.
To demonstrate:
1.) Use the QA push application "icecore:push / Ajax Push Async Test" found at http://dev.icesoft.com/svn/repo/qa/trunk/Regression-Icefaces4/Sparkle/Manual/push
2.) Open the application (/color1.jsf) in a browser (I used Firefox). Open 2 more tabs in that same browser and load the application.
3.) Open a new browser (I used IE) and load the application.
4.) In the first tab of the first browser opened make a color selection of Red. You will see the update in the second browser as well as in the 2nd and 3rd tabs of the first browser window.
5.) Go back to the first tab in the first browser and choose Blue. Now close this tab. You may see that the update appeared in the 2nd browser window but NOT in the 2nd tab of the first browser window.The update will finally appear a few seconds later.
6.) Go to the 2nd browser opened and choose a color. The first browser does not always immediately update and can take several seconds to display the notification.
I was not able to reproduce this issue with the ee-3.3 maintenance branch libs, nor with ICEaces 4.1.1 release libs.
Modified BlockingConnectionServer.sendNotificationsTo method to return the result of BlockingConnectionServer.respondToIfNotificationsAvailable invocation to ensure that when notifications are not available the blocking request is put into the request queue.
Verified ICEfaces 4 trunk r48609. Tomcat 8, IE Edge, 11, 10, 9, 8, FF 43, Chrome 48.
Back-ported fixes to maintenance branch.
Verified ICEfaces ee-3.3.0 maintenance branch r48686. Tomcat 8, IE 11, 10, 9, 8, 7, FF 43, Chrome 50.
Modified ICEpush initialise sequence to avoid resetting the blocking connection every time a new window is opened. Fixed hidden bug in slot's removal function.