Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Won't Fix
-
Affects Version/s: EE-4.1.0.GA
-
Fix Version/s: EE-4.2.0.GA
-
Component/s: Framework
-
Labels:None
-
Environment:iOS
-
Assignee Priority:P2
-
Support Case References:Support Case #14103 - https://icesoft.my.salesforce.com/5007000001jZBgG
-
Workaround Exists:Yes
-
Workaround Description:HideThe best workaround for this issue is to use forward navigation (where the redirect tag is not used in the navigation rule). This will ensure that the window state is not lost.
ShowThe best workaround for this issue is to use forward navigation (where the redirect tag is not used in the navigation rule). This will ensure that the window state is not lost.
Description
The follow issue has been reported by a customer:
"I catch some user interactions with ace:ajax that has a listener method specified.
The ajaxEventListener is executed as expected when initiated from PC and iOS.
Under some logical circumstances (business logic) is navigation initiated from the listener method using:
externalContext.redirect(target);
This is also working fine when using PC browsers, but when initiated from an iOS device,
a window scoped bean holding essential information for the following processing is replaced by a newly instantiated and "empty" bean causing various null pointer problems to occur."
"I catch some user interactions with ace:ajax that has a listener method specified.
The ajaxEventListener is executed as expected when initiated from PC and iOS.
Under some logical circumstances (business logic) is navigation initiated from the listener method using:
externalContext.redirect(target);
This is also working fine when using PC browsers, but when initiated from an iOS device,
a window scoped bean holding essential information for the following processing is replaced by a newly instantiated and "empty" bean causing various null pointer problems to occur."
-
Hide
- Case14103Example.war
- 9.88 MB
- Arran Mccullough
-
- META-INF/MANIFEST.MF 0.1 kB
- META-INF/context.xml 0.1 kB
- WEB-INF/.../Ajax_test_WindowBean.class 2 kB
- WEB-INF/classes/.../AjaxtestViewBean.class 3 kB
- WEB-INF/lib/icefaces-ee-ace.jar 6.15 MB
- WEB-INF/lib/icefaces-ee-ext.jar 51 kB
- WEB-INF/lib/icefaces-ee.jar 690 kB
- WEB-INF/lib/javax.faces-2.2.13.jar 2.99 MB
- WEB-INF/web.xml 2 kB
- ajax1.xhtml 2 kB
- ajax2.xhtml 2 kB
- index.xhtml 0.5 kB
-
Hide
- Case14103Example.zip
- 22 kB
- Arran Mccullough
-
- Case14103Example/build.xml 3 kB
- Case14103Example/.../ant-deploy.xml 2 kB
- Case14103Example/.../build-impl.xml 80 kB
- Case14103Example/.../genfiles.properties 0.5 kB
- Case14103Example/.../private.properties 0.6 kB
- Case14103Example/nbproject/.../private.xml 0.4 kB
- Case14103Example/.../project.properties 4 kB
- Case14103Example/nbproject/project.xml 0.9 kB
- Case14103Example/src/conf/MANIFEST.MF 0.0 kB
- Case14103Example/.../AjaxtestViewBean.java 2 kB
- Case14103Example/.../Ajax_test_WindowBean.java 1 kB
- Case14103Example/web/ajax1.xhtml 2 kB
- Case14103Example/web/ajax2.xhtml 2 kB
- Case14103Example/web/index.xhtml 0.5 kB
- Case14103Example/web/.../context.xml 0.1 kB
- Case14103Example/web/WEB-INF/web.xml 2 kB
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
The mobile Safari browser does not fire the beforeunload event when a page is unloaded. This interferes with our window scope tracking that relies on the mentioned event. We already found this issue in the past, see ICE-10326.
Show
Mircea Toma
added a comment - The mobile Safari browser does not fire the beforeunload event when a page is unloaded. This interferes with our window scope tracking that relies on the mentioned event. We already found this issue in the past, see ICE-10326 .
The best workaround for this issue is to use forward navigation (where the redirect tag is not used in the navigation rule). This will ensure that the window state is not lost.
Show
Mircea Toma
added a comment - The best workaround for this issue is to use forward navigation (where the redirect tag is not used in the navigation rule). This will ensure that the window state is not lost.
Attached test case provided by the customer.
Here is their description of steps:
"Submitting new values in the text box causes the window scoped bean to be properly updated.
Leaving the text entering mode (closing the iPhone keyboard, or just tabbing out on PC) triggers an ajax event, in which the text value is checked.
If the value in the text box is equal to 'xx', a navigation to page 2 is executed through a call to externalContext.redirect()
On a PC page 2 shows that the view bean is replaced but the page bean keeps it state.
On iPhone there is now cleared values for both the view scoped and the window scoped bean.
I just realized that switching to page to page 2 by the bottom link on iPhone clears the window scoped bean as well!!."