Closing Dialogs cause java.lang.IllegalStateException: Invalid index - Server
Exception during PPR
--------------------------------------------------------------------------------------------------
Key: TRINIDAD-1428
URL: https://issues.apache.org/jira/browse/TRINIDAD-1428
Project: MyFaces Trinidad
Issue Type: Bug
Components: Components
Affects Versions: 1.2.10-core
Environment: Window XP SP2, JSF 1.2.10, Tomcat 6.0.18
Reporter: Cristiano
from release 1.2.10 i found a problem with dialogs opened by a jspx, (see the
exception stak trace below).
when i close the dialog window via a tr:commandButton (Confirm or Cancel) or by
the X close icon the lifecicle of Jsf return a problem in RESTORE_VIEW, so the
getViewRoot() of the FacesContext in the afterPhase event is NULL.
This problem is still open in the last trunks.
With release 1.2.8 i've got no problems.
This is my page that open the dialog:
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:trh="http://myfaces.apache.org/trinidad/html"
xmlns:tr="http://myfaces.apache.org/trinidad">
<jsp:directive.page contentType="text/html;charset=utf-8"/>
<f:view locale="#{Session.locale}">
<f:loadBundle basename="com.hit.messaggi" var="msgs"/>
<trh:script source="/js/jsUploadR.js" />
<tr:document styleClass="BodyDoc" inlineStyle="margin-top:0px"
title="#{msgs.label_modtitle}">
<tr:form id="myForm" usesUpload="true">
.....
<tr:commandLink id="loadIssue" text="" partialSubmit="true"
action="#{modifyAdP.doOpenCalendar}"
useWindow="true" windowWidth="450"
windowHeight="520" returnListener="#{modifyAdP.selectedIssues}"
onclick="clearFileValue();">
<tr:image inlineStyle="border:0px;"
source ="/images/IT_AddData.gif"
rendered="#{Session.isItalian}"/>
<tr:image inlineStyle="border:0px;"
source ="/images/EN_AddData.gif"
rendered="#{Session.isEnglish}"/>
</tr:commandLink>
.....
</tr:form>
</tr:document>
</f:view>
</jsp:root>
--------------------------------------------------------------
And this is my dialog
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:trh="http://myfaces.apache.org/trinidad/html"
xmlns:tr="http://myfaces.apache.org/trinidad">
<jsp:directive.page contentType="text/html;charset=utf-8"/>
<f:view>
<f:loadBundle basename="com.hit.messaggi" var="msgs"/>
<tr:document onload="parent.askQuit=false;
dialogDropDownComponentRefresh();" title="#{msgs.label_isstitle}"
inlineStyle="background-color:#ededed;">
<script type='text/javascript' language='javascript'>
//<![CDATA[
var isIE6 = navigator.userAgent.toLowerCase().indexOf('msie 6') !=
-1;
function dialogDropDownComponentRefresh() {
if (isIE6) {
var allSelectElements =
document.getElementsByTagName('select');
if (allSelectElements) {
for (var i=0; i < allSelectElements.length; i++) {
var tr = allSelectElements[i];
tr.style.cssText = 'display:inline !important;
visibility: visible !important;';
}
}
}
}
//]]>
</script>
<tr:form id="frmFascicoli">
<table border="0" cellpadding="0" cellspacing="0" width="100%"
style="background-color:#ededed;">
<tr>
<td align="center">
<tr:spacer height="10px" />
<!-- ANNO -->
<tr:spacer height="10px" />
<tr:selectOneChoice id="cmbYears" autoSubmit="true"
label="#{msgs.label_issanno}"
value="#{calIssues.anno}"
valueChangeListener="#{calIssues.annoChanged}">
<f:selectItems
value="#{calIssues.listaAnni}"></f:selectItems>
</tr:selectOneChoice>
</td>
</tr>
<tr>
<td align="center">
<!-- TABELLA FASCICOLI -->
<tr:panelBorderLayout styleClass="tab_contentResRicMat">
<tr:table id="IssList" varStatus="status" first="0"
width="95%" emptyText="#{msgs.label_issgrid_norec}" rowSelection="multiple"
var="row"
binding="#{calIssues.tableIssues}"
value="#{calIssues.listIssues}" >
<tr:column width="30%" align="center"
headerText="#{msgs.label_isscodfasc}">
<tr:outputText value="#{row.fascicoloLabel}"/>
</tr:column>
<tr:column width="30%" align="center"
headerText="#{msgs.label_issdatacop}">
<tr:outputText value="#{row.dataCopertina}"/>
</tr:column>
<tr:column width="30%" align="center"
headerText="#{msgs.label_issdatauscita}">
<tr:outputText value="#{row.dataUscita}"/>
</tr:column>
</tr:table>
</tr:panelBorderLayout>
<tr:separator />
<tr:spacer height="10px" />
</td>
</tr>
<tr>
<td align="center">
<!-- PULSANTI -->
<tr:commandButton text="#{msgs.label_issconferma}"
action="#{calIssues.doSubmit}" onclick="parent.askQuit=true;">
</tr:commandButton>
<tr:spacer width="20px"/>
<tr:commandButton text="#{msgs.label_issannulla}"
immediate="true" action="#{calIssues.doCancel}">
</tr:commandButton>
</td>
</tr>
</table>
</tr:form>
</tr:document>
</f:view>
</jsp:root>
--------------------------------------------------------------
6-mar-2009 8.36.16 com.sun.faces.lifecycle.LifecycleImpl phase
AVVERTENZA: executePhase(RESTORE_VIEW
1,org.apache.myfaces.trinidadinternal.context.facescontextfactoryimpl$cacherender...@19ce6db)
threw exception
java.lang.IllegalStateException: Invalid index
at
org.apache.myfaces.trinidad.bean.util.StateUtils.restoreKey(StateUtils.java:257)
at
org.apache.myfaces.trinidad.bean.util.StateUtils.restoreState(StateUtils.java:351)
at
org.apache.myfaces.trinidad.bean.util.FlaggedPropertyMap.restoreState(FlaggedPropertyMap.java:194)
at
org.apache.myfaces.trinidad.bean.FacesBeanImpl.restoreState(FacesBeanImpl.java:347)
at
org.apache.myfaces.trinidad.component.UIXComponentBase.restoreState(UIXComponentBase.java:928)
at
org.apache.myfaces.trinidad.component.TreeState.restoreState(TreeState.java:57)
at
org.apache.myfaces.trinidad.component.UIXComponentBase.processRestoreState(UIXComponentBase.java:902)
at
org.apache.myfaces.trinidad.component.TreeState.restoreState(TreeState.java:96)
at
org.apache.myfaces.trinidad.component.UIXComponentBase.processRestoreState(UIXComponentBase.java:902)
at
org.apache.myfaces.trinidad.component.TreeState.restoreState(TreeState.java:96)
at
org.apache.myfaces.trinidad.component.UIXComponentBase.processRestoreState(UIXComponentBase.java:902)
at
org.apache.myfaces.trinidad.component.TreeState.restoreState(TreeState.java:96)
at
org.apache.myfaces.trinidad.component.UIXComponentBase.processRestoreState(UIXComponentBase.java:902)
at
javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1157)
at
org.apache.myfaces.trinidadinternal.application.StateManagerImpl.restoreView(StateManagerImpl.java:626)
at
com.sun.faces.application.ViewHandlerImpl.restoreView(ViewHandlerImpl.java:290)
at
javax.faces.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper.java:193)
at
org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.restoreView(ViewHandlerImpl.java:275)
at
com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:141)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
at
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._invokeDoFilter(TrinidadFilterImpl.java:238)
at
org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:195)
at
org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:138)
at
org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.hit.webapp.RedirectFilter.doFilter(RedirectFilter.java:118)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
6-mar-2009 8.36.16
org.apache.myfaces.trinidadinternal.config.xmlHttp.XmlHttpConfigurator
handleError
GRAVE: Server Exception during PPR, #1
javax.servlet.ServletException: Invalid index
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._invokeDoFilter(TrinidadFilterImpl.java:238)
at
org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:195)
at
org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:138)
at
org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.hit.webapp.RedirectFilter.doFilter(RedirectFilter.java:118)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.IllegalStateException: Invalid index
at
org.apache.myfaces.trinidad.bean.util.StateUtils.restoreKey(StateUtils.java:257)
at
org.apache.myfaces.trinidad.bean.util.StateUtils.restoreState(StateUtils.java:351)
at
org.apache.myfaces.trinidad.bean.util.FlaggedPropertyMap.restoreState(FlaggedPropertyMap.java:194)
at
org.apache.myfaces.trinidad.bean.FacesBeanImpl.restoreState(FacesBeanImpl.java:347)
at
org.apache.myfaces.trinidad.component.UIXComponentBase.restoreState(UIXComponentBase.java:928)
at
org.apache.myfaces.trinidad.component.TreeState.restoreState(TreeState.java:57)
at
org.apache.myfaces.trinidad.component.UIXComponentBase.processRestoreState(UIXComponentBase.java:902)
at
org.apache.myfaces.trinidad.component.TreeState.restoreState(TreeState.java:96)
at
org.apache.myfaces.trinidad.component.UIXComponentBase.processRestoreState(UIXComponentBase.java:902)
at
org.apache.myfaces.trinidad.component.TreeState.restoreState(TreeState.java:96)
at
org.apache.myfaces.trinidad.component.UIXComponentBase.processRestoreState(UIXComponentBase.java:902)
at
org.apache.myfaces.trinidad.component.TreeState.restoreState(TreeState.java:96)
at
org.apache.myfaces.trinidad.component.UIXComponentBase.processRestoreState(UIXComponentBase.java:902)
at
javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1157)
at
org.apache.myfaces.trinidadinternal.application.StateManagerImpl.restoreView(StateManagerImpl.java:626)
at
com.sun.faces.application.ViewHandlerImpl.restoreView(ViewHandlerImpl.java:290)
at
javax.faces.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper.java:193)
at
org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.restoreView(ViewHandlerImpl.java:275)
at
com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:141)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
at
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
... 24 more
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.