Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: EE-1.8.2.GA_P05, EE-1.8.2.GA_P06
-
Fix Version/s: EE-1.8.2.GA_P07
-
Component/s: ICE-Components
-
Labels:None
-
Environment:All
-
Assignee Priority:P1
-
Salesforce Case Reference:
Description
- With the P04 release and older, the page would remain the same.
- With P05 and up, the page is reset to the first one.
I can understand that this would be the desired outcome for some customers but also other customers would like the old behavior to remain. This JIRA has been created so we can investigate a solution that will work for everyone.
-
Hide
- Case12010Example.war
- 6.68 MB
- Arran Mccullough
-
- META-INF/MANIFEST.MF 0.1 kB
- META-INF/context.xml 0.1 kB
- WEB-INF/classes/.../DataProvider.class 0.4 kB
- WEB-INF/classes/com/.../example/Item.class 1 kB
- WEB-INF/classes/.../TableSupportBean.class 6 kB
- WEB-INF/classes/.../example/TestBean.class 3 kB
- WEB-INF/classes/.../example/TestData.class 0.8 kB
- WEB-INF/.../TestDataDataProvider.class 1 kB
- WEB-INF/faces-config.xml 2 kB
- WEB-INF/lib/FastInfoset.jar 285 kB
- WEB-INF/lib/backport-util-concurrent.jar 319 kB
- WEB-INF/lib/commons-beanutils.jar 226 kB
- WEB-INF/lib/commons-collections.jar 558 kB
- WEB-INF/lib/commons-digester.jar 140 kB
- WEB-INF/lib/commons-discovery.jar 75 kB
- WEB-INF/lib/commons-fileupload.jar 56 kB
- WEB-INF/lib/commons-lang.jar 240 kB
- WEB-INF/lib/commons-logging.jar 52 kB
- WEB-INF/lib/icefaces-comps.jar 1.76 MB
- WEB-INF/lib/icefaces-facelets.jar 596 kB
- WEB-INF/lib/icefaces.jar 1.24 MB
- WEB-INF/lib/jsf-api-1.2.jar 355 kB
- WEB-INF/lib/jsf-impl-1.2.jar 837 kB
- WEB-INF/web.xml 4 kB
- index.xhtml 0.4 kB
- paginator.xhtml 2 kB
- welcomeICEfaces.xhtml 4 kB
-
- Case12010Example.zip
- 28 kB
- Arran Mccullough
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
Committed fix to trunk at revision 36619. Added 'checkPageConsistency' attribute.
The new behaviour wasn't actually to reset to the first page. The code added for ICE-8610 was simply to check the page consistency of the paginator at render time. What happens is that this is sensitive to the order in which the new data model is evaluated. In this test case, the paginator component came BEFORE the table on the page, and it went through the render phase first. After the data model was changed, it wasn't available before the table went through the render phase, and the ensureFirstRowInRange() method gets the idea that the data model is empty, and so it resets to the first page. If the paginator is placed AFTER the table, the new data model is available by the time the paginator goes through the render phase, and in this case, the page stays the same after the change in the data model. In fact, the logic of ensureFirstRowInRange() is to only reset to the first page if there are no rows available and to set the paginator to the last available page if the new data model has fewer rows. The issue with ICE-8610 was also sensitive to the order in which things were evaluated. It seems like after a change in the data model, the table has to go through the render phase in order to completely set up the new data model. It might be possible to do something about this at the app level, if the original data model is not cleared first in the action listener method. Anyway, in order to support both the new and old behaviours, the attribute 'checkPageConsistency' was added. In other words, this attribute controls whether ensureFirstRowInRange() is called or not.
Confirmed new attribute functionality using the attached test application with ICEfaces EE 1.8.2.GA_P07 build2 jars. Tested in IE 6/7/8/9/10, Firefox 17/21, Chrome 27.
Attached test case that shows the current behavior.
Steps: