Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Invalid
-
Affects Version/s: EE-2.0.0.GA
-
Fix Version/s: 3.0, EE-2.0.0.GA_P01
-
Component/s: ICE-Components
-
Labels:None
-
Environment:Tomcat 7.0.12
Description
When creating a print preview window for a single page application I launch another window to the same url with the same backing beans, only toggling certain features (such as stylesheet) for print preview mode.
This works fine except for one condition. On a page with an ice:dataTable and ice:dataPaginator, if you interact with the paginator, it works fine. However, if you do not interact with the paginator you get the following exception.
javax.el.ELException: /WEB-INF/includes/content/tabs/screen1.xhtml @40,102 first="#{printPreviewBackingBean.printPreview ? tab.pager.firstRow : ''}": Error reading 'firstRow' on type com.icesoft.faces.component.datapaginator.DataPaginator
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:114)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
at javax.faces.component.UIData.getFirst(UIData.java:259)
at com.icesoft.faces.component.panelseries.UISeries.ensureFirstRowInRange(UISeries.java:662)
at com.icesoft.faces.component.ext.renderkit.TableRenderer.encodeChildren(TableRenderer.java:596)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
at com.icesoft.faces.renderkit.dom_html_basic.DomBasicRenderer.encodeParentAndChildren(DomBasicRenderer.java:346)
at com.icesoft.faces.renderkit.dom_html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:84)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1756)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
at org.icefaces.impl.renderkit.RendererWrapper.encodeChildren(RendererWrapper.java:54)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
at org.icefaces.component.utils.Utils.renderChild(Utils.java:62)
at org.icefaces.component.utils.Utils.renderChildren(Utils.java:48)
at org.icefaces.component.utils.Utils.renderChild(Utils.java:64)
at org.icefaces.component.utils.Utils.renderChildren(Utils.java:48)
at org.icefaces.component.utils.Utils.renderChild(Utils.java:64)
at org.icefaces.component.tab.TabSetRenderer.renderTabBody(TabSetRenderer.java:433)
at org.icefaces.component.tab.TabSetRenderer.doTabs(TabSetRenderer.java:469)
at org.icefaces.component.tab.TabSetRenderer.recursivelyRenderSafe(TabSetRenderer.java:312)
at org.icefaces.component.tab.TabSetRenderer.encodeEnd(TabSetRenderer.java:245)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:312)
at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:105)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1756)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:401)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:410)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:395)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:306)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:323)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1719)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
The el expression was required on the ice:dataTable because without it, the print preview page would always show the first page even though the user may have paginated to any of the other pages. The el expression successfully gives a print preview of the appropriate page except for the case where the user has not paginated and remains on page 1.
I was able to recreate the issue with the application at the following location - repo\services\williams\williamspoc. Revision #28045 shows the code alterations to add a print preview page.
This works fine except for one condition. On a page with an ice:dataTable and ice:dataPaginator, if you interact with the paginator, it works fine. However, if you do not interact with the paginator you get the following exception.
javax.el.ELException: /WEB-INF/includes/content/tabs/screen1.xhtml @40,102 first="#{printPreviewBackingBean.printPreview ? tab.pager.firstRow : ''}": Error reading 'firstRow' on type com.icesoft.faces.component.datapaginator.DataPaginator
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:114)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
at javax.faces.component.UIData.getFirst(UIData.java:259)
at com.icesoft.faces.component.panelseries.UISeries.ensureFirstRowInRange(UISeries.java:662)
at com.icesoft.faces.component.ext.renderkit.TableRenderer.encodeChildren(TableRenderer.java:596)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
at com.icesoft.faces.renderkit.dom_html_basic.DomBasicRenderer.encodeParentAndChildren(DomBasicRenderer.java:346)
at com.icesoft.faces.renderkit.dom_html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:84)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1756)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
at org.icefaces.impl.renderkit.RendererWrapper.encodeChildren(RendererWrapper.java:54)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
at org.icefaces.component.utils.Utils.renderChild(Utils.java:62)
at org.icefaces.component.utils.Utils.renderChildren(Utils.java:48)
at org.icefaces.component.utils.Utils.renderChild(Utils.java:64)
at org.icefaces.component.utils.Utils.renderChildren(Utils.java:48)
at org.icefaces.component.utils.Utils.renderChild(Utils.java:64)
at org.icefaces.component.tab.TabSetRenderer.renderTabBody(TabSetRenderer.java:433)
at org.icefaces.component.tab.TabSetRenderer.doTabs(TabSetRenderer.java:469)
at org.icefaces.component.tab.TabSetRenderer.recursivelyRenderSafe(TabSetRenderer.java:312)
at org.icefaces.component.tab.TabSetRenderer.encodeEnd(TabSetRenderer.java:245)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:312)
at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:105)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1756)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:401)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:410)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:395)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:306)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:323)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1719)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
The el expression was required on the ice:dataTable because without it, the print preview page would always show the first page even though the user may have paginated to any of the other pages. The el expression successfully gives a print preview of the appropriate page except for the case where the user has not paginated and remains on page 1.
I was able to recreate the issue with the application at the following location - repo\services\williams\williamspoc. Revision #28045 shows the code alterations to add a print preview page.
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
Brad Kroeger
created issue -
Brad Kroeger
made changes -
Field | Original Value | New Value |
---|---|---|
Assignee | Ken Fyten [ ken.fyten ] |
Brad Kroeger
made changes -
Salesforce Case | [5007000000Gx9dF] |
Ken Fyten
made changes -
Fix Version/s | EE-2.0.0.GA_P01 [ 10271 ] | |
Fix Version/s | 2.1 [ 10241 ] | |
Assignee Priority | P3 | |
Assignee | Ken Fyten [ ken.fyten ] | Adnan Durrani [ adnan.durrani ] |
Adnan Durrani
made changes -
Assignee | Adnan Durrani [ adnan.durrani ] | Brad Kroeger [ brad.kroeger ] |
Ken Fyten
made changes -
Status | Open [ 1 ] | Resolved [ 5 ] |
Assignee Priority | P3 | |
Resolution | Invalid [ 6 ] | |
Assignee | Brad Kroeger [ brad.kroeger ] |
Ken Fyten
made changes -
Status | Resolved [ 5 ] | Closed [ 6 ] |