Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
1.0.7 beta, 1.0.8 beta
-
None
-
None
-
WebLogic SP4
Description
I am trying to put the component inputCalendar inside a column of DataTable but it does not work for more then one line. like :
<jsp:useBean id="C" class="java.util.Date" scope="application"/>
<%
List l = new Vector();
try {
l = (List) session.getAttribute("D");
if(l == null)
System.out.println("l2 = " + l);
} catch (Exception e)
%>
<f:view id="testCalendarInTable" >
<html>
<head>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<title>Example</title>
</head>
<body>
<tr:stylesheet path="/classes.css"/>
<h2>Misc Test</h2>
<h:messages globalOnly="false" errorClass="redBoldFont" />
<h:dataTable id="data"
var="l"
value="#
" >
<h:column>
<f:facet name="header">
<h:outputText value="COL 1 - outputText" />
</f:facet>
<h:outputText value="#
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="COL 2 - inputText" />
</f:facet>
<h:inputText value="#{l}
" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="COL 3 - calendar A" />
</f:facet>
<h:outputText value="COL 3 - calendar A" />
<x:inputCalendar renderAsPopup="true" value="#
"/>
</h:column>
</h:dataTable>
<f:verbatim><br></f:verbatim>
<f:verbatim ><br></f:verbatim>
<hr>
</body>
</html>
</f:view>
It seems that when iterating through the lines, each row iteration makes the calendar component to add a new inputText to itself in addition to the original inputText and in addition to the ones that were added in the previous iterations.
The result is the following exception:
java.lang.ArrayIndexOutOfBoundsException: 2
at javax.faces.component.UIData.saveDescendantComponentStates(UIData.java:258)
at javax.faces.component.UIData.saveDescendantComponentStates(UIData.java:260)
at javax.faces.component.UIData.saveDescendantComponentStates(UIData.java:260)
at javax.faces.component.UIData.saveDescendantComponentStates(UIData.java:213)
at javax.faces.component.UIData.setRowIndex(UIData.java:129)
at net.sourceforge.myfaces.renderkit.html.HtmlTableRendererBase.encodeChildren(HtmlTableRendererBase.java:131)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:317)
at javax.faces.webapp.UIComponentTag.encodeChildren(UIComponentTag.java:370)
at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:278)
at net.sourceforge.myfaces.taglib.UIComponentBodyTagBase.doEndTag(UIComponentBodyTagBase.java:79)
at jsp_servlet.jsp._example1._jspService(example1.jsp:84)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1006)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:315)
at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:642)
at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:423)
at weblogic.servlet.jsp.PageContextImpl.include(PageContextImpl.java:154)
at org.apache.struts.taglib.tiles.InsertTag.doInclude(InsertTag.java:705)
at org.apache.struts.taglib.tiles.InsertTag$InsertHandler.doEndTag(InsertTag.java:816)
at org.apache.struts.taglib.tiles.InsertTag.doEndTag(InsertTag.java:469)
at jsp_servlet.jsp._structurepages._fivepartslayout._jspService(fivePartsLayout.jsp:45)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1006)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:315)
at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:328)
at net.sourceforge.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:404)
at net.sourceforge.myfaces.application.jsp.JspTilesViewHandlerImpl.renderView(JspTilesViewHandlerImpl.java:178)
at net.sourceforge.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:287)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:110)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1006)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at net.sourceforge.myfaces.custom.fileupload.MultipartFilter.doFilter(MultipartFilter.java:83)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6724)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3764)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2644)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)