Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: EE-3.3.0.GA_P02, 4.0
-
Fix Version/s: EE-4.0.0.GA, EE-3.3.0.GA_P03, 4.1
-
Component/s: Push Library
-
Labels:None
-
Environment:All
-
Assignee Priority:P1
-
Support Case References:Support Case #13260 - https://icesoft.my.salesforce.com/5007000000zQG5g
Description
A customer has an app that opens multiple windows. Each window makes a web service call to get data. When the data is ready it sends a push update via the Portable Renderer.
After a few of these windows are opened and closed. The windows that remain open will all of a sudden receive push updates even though their beans are not calling the render event.
After a few of these windows are opened and closed. The windows that remain open will all of a sudden receive push updates even though their beans are not calling the render event.
The sequence of events that caused this issue turned out to be quite complex. When a new window is created with "Open new window" button a new window scope is created, at the same time the blocking connection is re-established in one of the windows. It turns out that the blocking request also triggers the creation of new window scopes (it should not, though). When the window is closed the remaining windows will issue a requests for updates (which is normal), because the window tracking is not enabled without a window scoped bean defined the window ID associated with the rendered view changes thus causing an update to be generated. This updates once applied triggers the reloading of text editors.
The fix changes the WindowScopeManager to avoid creating new window scope maps for incoming resource requests. Also the manager will keep on tracking opened windows when application uses @WindowDisposed annotated view scoped beans.