You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Matthias Kahlau (JIRA)" <de...@myfaces.apache.org> on 2005/11/13 22:43:23 UTC
[jira] Created: (MYFACES-817) Runtime error using Tomahawk dataTable + selectBooleanCheckboxes (MyFaces 1.1.1)
Runtime error using Tomahawk dataTable + selectBooleanCheckboxes (MyFaces 1.1.1)
--------------------------------------------------------------------------------
Key: MYFACES-817
URL: http://issues.apache.org/jira/browse/MYFACES-817
Project: MyFaces
Type: Bug
Components: Tomahawk
Versions: 1.1.1
Environment: Windows XP Prof., jboss-4.0.1sp1 for the J2EE™ 1.4 codebase
Reporter: Matthias Kahlau
Priority: Blocker
I have a problem with the Tomahawk dataTable component, in conjunction with
a selectBooleanCheckbox in each row. I use a Component-Binding for each component, and determining the selected
checkboxes works well. But after that, I get the following runtime error:
null
java.lang.NullPointerException
at org.apache.myfaces.component.html.ext.HtmlDataTableHack.restoreDescendantComponentStates(HtmlDataTableHack.java:245)
at org.apache.myfaces.component.html.ext.HtmlDataTableHack.restoreDescendantComponentStates(HtmlDataTableHack.java:257)
at org.apache.myfaces.component.html.ext.HtmlDataTableHack.setRowIndex(HtmlDataTableHack.java:200)
at org.apache.myfaces.component.html.ext.HtmlDataTable.setRowIndex(HtmlDataTable.java:166)
at javax.faces.component.html.HtmlDataTable.encodeBegin(HtmlDataTable.java:35)
at org.apache.myfaces.component.html.ext.HtmlDataTableHack.encodeBegin(HtmlDataTableHack.java:126)
at org.apache.myfaces.component.html.ext.HtmlDataTable.encodeBegin(HtmlDataTable.java:312)
at org.apache.myfaces.renderkit.RendererUtils.renderChild(RendererUtils.java:441)
at org.apache.myfaces.renderkit.RendererUtils.renderChildren(RendererUtils.java:427)
at org.apache.myfaces.renderkit.html.HtmlGroupRendererBase.encodeEnd(HtmlGroupRendererBase.java:62)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:331)
at org.apache.myfaces.renderkit.RendererUtils.renderChild(RendererUtils.java:450)
at org.apache.myfaces.custom.tabbedpane.HtmlTabbedPaneRenderer.writeTabsContents(HtmlTabbedPaneRenderer.java:535)
at org.apache.myfaces.custom.tabbedpane.HtmlTabbedPaneRenderer.encodeEnd(HtmlTabbedPaneRenderer.java:227)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:331)
at javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:349)
at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:253)
at org.apache.myfaces.taglib.UIComponentBodyTagBase.doEndTag(UIComponentBodyTagBase.java:55)
at org.apache.jsp.Management.ManagementHome_jsp._jspx_meth_t_panelTabbedPane_0(ManagementHome_jsp.java:302)
at org.apache.jsp.Management.ManagementHome_jsp._jspx_meth_h_form_0(ManagementHome_jsp.java:238)
at org.apache.jsp.Management.ManagementHome_jsp._jspx_meth_f_view_0(ManagementHome_jsp.java:191)
at org.apache.jsp.Management.ManagementHome_jsp._jspService(ManagementHome_jsp.java:145)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:704)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:474)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:409)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:415)
at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:234)
at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:352)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.myfaces.component.html.util.ExtensionsFilter.doFilter(ExtensionsFilter.java:122)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:66)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:150)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:54)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
----------------
Part of JSP:
----------------
<t:dataTable id="dataTableUmfragen"
binding="#{UmfrageBacking.dataTable}"
lang="de"
title="Tabelle zur Auswahl eigener Umfragen"
summary="Tabelle zur Übersicht und Auswahl eigener Umfragen"
value="#{UmfrageBacking.durchfuehrungen}"
var="row"
rows="10"
renderedIfEmpty="true"
preserveDataModel="false"
preserveSort="true"
sortColumn="#{UmfrageBacking.sortColumn}"
sortAscending="#{UmfrageBacking.sortAscending}"
styleClass=""
headerClass=""
footerClass=""
rowClasses=""
columnClasses=""
rowOnMouseOver="this.style.backgroundColor='#A5CBFF'"
rowOnMouseOut="this.style.backgroundColor='#FFFFE0'"
rowOnClick="this.style.backgroundColor='#FFE0E0'"
rowOnDblClick="this.style.backgroundColor='#E0E0E0'"
width="700">
<t:column width="30">
<h:selectBooleanCheckbox binding="#{UmfrageBacking.checkbox}"
title="Umfrage auswählen zur Ausführung einer Aktion" />
</t:column>
<t:column>
<f:facet name="header">
<t:commandSortHeader
columnName="#{UmfrageBacking.colName_Bezeichnung}"
arrow="true"
lang="de"
title="#{managementBundle.sort_message}">
<h:outputText value="#{UmfrageBacking.colName_Bezeichnung}"/>
</t:commandSortHeader>
</f:facet>
<h:commandLink action="#{UmfrageBacking.edit}">
<h:outputText value="#{row.bezeichnung}"/>
</h:commandLink>
</t:column>
....
</t:dataTable>
------------------------------
Part of Backing-Bean:
------------------------------
// Declarations for the component bindings
private UIData dataTable;
private UISelectBoolean checkbox;
// action method to delete the selected items
public String delete() {
List currentUmfragen = (List)this.durchfuehrungen.getWrappedData();
List toDelete = this.getSelectedDurchfuehrungen();
int size = toDelete.size();
for (int i = 0; i < size; i++) {
currentUmfragen.remove(toDelete.get(i));
}
return Constants.ACTION_SUCCESS;
}
// method to determine the selected items
private List getSelectedDurchfuehrungen() {
List selected = new ArrayList();
int first = this.dataTable.getFirst();
int rows = this.dataTable.getRows();
for (int i = first; i < (first + rows); i++) {
this.dataTable.setRowIndex(i);
if (this.checkbox.isSelected()) {
selected.add(this.dataTable.getRowData());
}
}
return selected;
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
[jira] Commented: (MYFACES-817) Runtime error using Tomahawk dataTable + selectBooleanCheckboxes (MyFaces 1.1.1)
Posted by "Rafael Santini (JIRA)" <de...@myfaces.apache.org>.
[ http://issues.apache.org/jira/browse/MYFACES-817?page=comments#action_12361114 ]
Rafael Santini commented on MYFACES-817:
----------------------------------------
The problem does not occurs when the row index is restored to the original value. Example:
// method to determine the selected items
private List getSelectedDurchfuehrungen() {
/* Save the current row index. */
int currentRowIndex = this.dataTable.getRowIndex();
List selected = new ArrayList();
int first = this.dataTable.getFirst();
int rows = this.dataTable.getRows();
for (int i = first; i < (first + rows); i++) {
this.dataTable.setRowIndex(i);
if (this.checkbox.isSelected()) {
selected.add(this.dataTable.getRowData());
}
}
/* Restore the row index. */
this.dataTable.setRowIndex(currentRowIndex);
return selected;
}
> Runtime error using Tomahawk dataTable + selectBooleanCheckboxes (MyFaces 1.1.1)
> --------------------------------------------------------------------------------
>
> Key: MYFACES-817
> URL: http://issues.apache.org/jira/browse/MYFACES-817
> Project: MyFaces
> Type: Bug
> Components: Tomahawk
> Versions: 1.1.1
> Environment: Windows XP Prof., jboss-4.0.1sp1 for the J2EE? 1.4 codebase
> Reporter: Matthias Kahlau
> Priority: Blocker
>
> I have a problem with the Tomahawk dataTable component, in conjunction with
> a selectBooleanCheckbox in each row. I use a Component-Binding for each component, and determining the selected
> checkboxes works well. But after that, I get the following runtime error:
> null
> java.lang.NullPointerException
> at org.apache.myfaces.component.html.ext.HtmlDataTableHack.restoreDescendantComponentStates(HtmlDataTableHack.java:245)
> at org.apache.myfaces.component.html.ext.HtmlDataTableHack.restoreDescendantComponentStates(HtmlDataTableHack.java:257)
> at org.apache.myfaces.component.html.ext.HtmlDataTableHack.setRowIndex(HtmlDataTableHack.java:200)
> at org.apache.myfaces.component.html.ext.HtmlDataTable.setRowIndex(HtmlDataTable.java:166)
> at javax.faces.component.html.HtmlDataTable.encodeBegin(HtmlDataTable.java:35)
> at org.apache.myfaces.component.html.ext.HtmlDataTableHack.encodeBegin(HtmlDataTableHack.java:126)
> at org.apache.myfaces.component.html.ext.HtmlDataTable.encodeBegin(HtmlDataTable.java:312)
> at org.apache.myfaces.renderkit.RendererUtils.renderChild(RendererUtils.java:441)
> at org.apache.myfaces.renderkit.RendererUtils.renderChildren(RendererUtils.java:427)
> at org.apache.myfaces.renderkit.html.HtmlGroupRendererBase.encodeEnd(HtmlGroupRendererBase.java:62)
> at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:331)
> at org.apache.myfaces.renderkit.RendererUtils.renderChild(RendererUtils.java:450)
> at org.apache.myfaces.custom.tabbedpane.HtmlTabbedPaneRenderer.writeTabsContents(HtmlTabbedPaneRenderer.java:535)
> at org.apache.myfaces.custom.tabbedpane.HtmlTabbedPaneRenderer.encodeEnd(HtmlTabbedPaneRenderer.java:227)
> at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:331)
> at javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:349)
> at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:253)
> at org.apache.myfaces.taglib.UIComponentBodyTagBase.doEndTag(UIComponentBodyTagBase.java:55)
> at org.apache.jsp.Management.ManagementHome_jsp._jspx_meth_t_panelTabbedPane_0(ManagementHome_jsp.java:302)
> at org.apache.jsp.Management.ManagementHome_jsp._jspx_meth_h_form_0(ManagementHome_jsp.java:238)
> at org.apache.jsp.Management.ManagementHome_jsp._jspx_meth_f_view_0(ManagementHome_jsp.java:191)
> at org.apache.jsp.Management.ManagementHome_jsp._jspService(ManagementHome_jsp.java:145)
> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
> at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
> at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:704)
> at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:474)
> at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:409)
> at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
> at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:415)
> at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:234)
> at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:352)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:107)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
> at org.apache.myfaces.component.html.util.ExtensionsFilter.doFilter(ExtensionsFilter.java:122)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
> at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
> at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
> at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:66)
> at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
> at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:150)
> at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
> at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:54)
> at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
> at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
> at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
> at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
> at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
> at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
> at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
> at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
> at java.lang.Thread.run(Thread.java:534)
> ----------------
> Part of JSP:
> ----------------
> <t:dataTable id="dataTableUmfragen"
> binding="#{UmfrageBacking.dataTable}"
> lang="de"
> title="Tabelle zur Auswahl eigener Umfragen"
> summary="Tabelle zur Übersicht und Auswahl eigener Umfragen"
> value="#{UmfrageBacking.durchfuehrungen}"
> var="row"
> rows="10"
> renderedIfEmpty="true"
> preserveDataModel="false"
> preserveSort="true"
> sortColumn="#{UmfrageBacking.sortColumn}"
> sortAscending="#{UmfrageBacking.sortAscending}"
> styleClass=""
> headerClass=""
> footerClass=""
> rowClasses=""
> columnClasses=""
> rowOnMouseOver="this.style.backgroundColor='#A5CBFF'"
> rowOnMouseOut="this.style.backgroundColor='#FFFFE0'"
> rowOnClick="this.style.backgroundColor='#FFE0E0'"
> rowOnDblClick="this.style.backgroundColor='#E0E0E0'"
> width="700">
> <t:column width="30">
> <h:selectBooleanCheckbox binding="#{UmfrageBacking.checkbox}"
> title="Umfrage auswählen zur Ausführung einer Aktion" />
> </t:column>
> <t:column>
> <f:facet name="header">
> <t:commandSortHeader
> columnName="#{UmfrageBacking.colName_Bezeichnung}"
> arrow="true"
> lang="de"
> title="#{managementBundle.sort_message}">
> <h:outputText value="#{UmfrageBacking.colName_Bezeichnung}"/>
> </t:commandSortHeader>
> </f:facet>
> <h:commandLink action="#{UmfrageBacking.edit}">
> <h:outputText value="#{row.bezeichnung}"/>
> </h:commandLink>
> </t:column>
> ....
> </t:dataTable>
> ------------------------------
> Part of Backing-Bean:
> ------------------------------
> // Declarations for the component bindings
> private UIData dataTable;
> private UISelectBoolean checkbox;
> // action method to delete the selected items
> public String delete() {
> List currentUmfragen = (List)this.durchfuehrungen.getWrappedData();
> List toDelete = this.getSelectedDurchfuehrungen();
> int size = toDelete.size();
> for (int i = 0; i < size; i++) {
> currentUmfragen.remove(toDelete.get(i));
> }
> return Constants.ACTION_SUCCESS;
> }
> // method to determine the selected items
> private List getSelectedDurchfuehrungen() {
> List selected = new ArrayList();
> int first = this.dataTable.getFirst();
> int rows = this.dataTable.getRows();
> for (int i = first; i < (first + rows); i++) {
> this.dataTable.setRowIndex(i);
> if (this.checkbox.isSelected()) {
> selected.add(this.dataTable.getRowData());
> }
> }
> return selected;
> }
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
[jira] Commented: (MYFACES-817) Runtime error using Tomahawk dataTable + selectBooleanCheckboxes (MyFaces 1.1.1)
Posted by "Thomas A. Valletta (JIRA)" <de...@myfaces.apache.org>.
[ http://issues.apache.org/jira/browse/MYFACES-817?page=comments#action_12358304 ]
Thomas A. Valletta commented on MYFACES-817:
--------------------------------------------
I am getting the same error. I don't know that the cause is the same, but it may be.
I have created a CustomComponent that allows me to insert a component that I have programmatically defined in the java (not the jsp). The component works just like it should, until I try to add a EditableValueHolder and render it inside of a tamahawk datatable. When I do that, I get this error. I can dynamically render any other component (HtmlOutputText, HtmlCommandButton, etc.). I have tried both MyFaces 1.1.1 and the nightly with the same results. I would be glad to provide more detail if it would be helpful.
SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at org.apache.myfaces.component.html.ext.HtmlDataTableHack.restoreDescendantComponentStates(HtmlDataTableHack.java:245)
at org.apache.myfaces.component.html.ext.HtmlDataTableHack.restoreDescendantComponentStates(HtmlDataTableHack.java:257)
at org.apache.myfaces.component.html.ext.HtmlDataTableHack.restoreDescendantComponentStates(HtmlDataTableHack.java:257)
at org.apache.myfaces.component.html.ext.HtmlDataTableHack.restoreDescendantComponentStates(HtmlDataTableHack.java:257)
at org.apache.myfaces.component.html.ext.HtmlDataTableHack.restoreDescendantComponentStates(HtmlDataTableHack.java:257)
at org.apache.myfaces.component.html.ext.HtmlDataTableHack.restoreDescendantComponentStates(HtmlDataTableHack.java:257)
at org.apache.myfaces.component.html.ext.HtmlDataTableHack.restoreDescendantComponentStates(HtmlDataTableHack.java:257)
at org.apache.myfaces.component.html.ext.HtmlDataTableHack.setRowIndex(HtmlDataTableHack.java:208)
at org.apache.myfaces.component.html.ext.HtmlDataTable.setRowIndex(HtmlDataTable.java:129)
at org.apache.myfaces.renderkit.html.HtmlTableRendererBase.encodeInnerHtml(HtmlTableRendererBase.java:135)
at org.apache.myfaces.renderkit.html.HtmlTableRendererBase.encodeChildren(HtmlTableRendererBase.java:94)
at org.apache.myfaces.renderkit.html.ext.HtmlTableRenderer.encodeChildren(HtmlTableRenderer.java:57)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:319)
at org.apache.myfaces.renderkit.RendererUtils.renderChild(RendererUtils.java:444)
at org.apache.myfaces.renderkit.RendererUtils.renderChildren(RendererUtils.java:427)
at xxx.xxx.xxx.xxx.xxx.xxx.AjaxDragSorterRenderer.encodeEnd(AjaxDragSorterRenderer.java:80)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:331)
at org.apache.myfaces.renderkit.RendererUtils.renderChild(RendererUtils.java:450)
at org.apache.myfaces.renderkit.RendererUtils.renderChildren(RendererUtils.java:427)
at org.apache.myfaces.renderkit.html.HtmlGroupRendererBase.encodeEnd(HtmlGroupRendererBase.java:62)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:331)
at org.apache.myfaces.renderkit.RendererUtils.renderChild(RendererUtils.java:450)
at org.apache.myfaces.renderkit.html.HtmlGridRendererBase.renderChildren(HtmlGridRendererBase.java:203)
at org.apache.myfaces.renderkit.html.HtmlGridRendererBase.encodeEnd(HtmlGridRendererBase.java:85)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:331)
at org.apache.myfaces.renderkit.RendererUtils.renderChild(RendererUtils.java:450)
at org.apache.myfaces.renderkit.RendererUtils.renderChildren(RendererUtils.java:427)
at org.apache.myfaces.renderkit.RendererUtils.renderChild(RendererUtils.java:448)
at org.apache.myfaces.renderkit.RendererUtils.renderChildren(RendererUtils.java:427)
at org.apache.myfaces.renderkit.html.HtmlGroupRendererBase.encodeEnd(HtmlGroupRendererBase.java:62)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:331)
at org.apache.myfaces.renderkit.RendererUtils.renderChild(RendererUtils.java:450)
at org.apache.myfaces.renderkit.html.HtmlGridRendererBase.renderChildren(HtmlGridRendererBase.java:203)
at org.apache.myfaces.renderkit.html.HtmlGridRendererBase.encodeEnd(HtmlGridRendererBase.java:85)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:331)
at javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:349)
at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:253)
at org.apache.myfaces.taglib.UIComponentBodyTagBase.doEndTag(UIComponentBodyTagBase.java:55)
at org.apache.jsp.agenda.agenda_002dedit_jsp._jspx_meth_h_panelGrid_0(org.apache.jsp.agenda.agenda_002dedit_jsp:406)
at org.apache.jsp.agenda.agenda_002dedit_jsp._jspx_meth_x_div_0(org.apache.jsp.agenda.agenda_002dedit_jsp:360)
at org.apache.jsp.agenda.agenda_002dedit_jsp._jspService(org.apache.jsp.agenda.agenda_002dedit_jsp:207)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:966)
at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:604)
at org.apache.struts.tiles.TilesUtilImpl.doInclude(TilesUtilImpl.java:99)
at org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:135)
at org.apache.struts.taglib.tiles.InsertTag.doInclude(InsertTag.java:760)
at org.apache.struts.taglib.tiles.InsertTag$InsertHandler.doEndTag(InsertTag.java:892)
at org.apache.struts.taglib.tiles.InsertTag.doEndTag(InsertTag.java:462)
at org.apache.jsp.common.base_jsp._jspx_meth_tiles_insert_1(org.apache.jsp.common.base_jsp:222)
at org.apache.jsp.common.base_jsp._jspx_meth_f_view_0(org.apache.jsp.common.base_jsp:134)
at org.apache.jsp.common.base_jsp._jspService(org.apache.jsp.common.base_jsp:71)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:415)
at org.apache.myfaces.application.jsp.JspTilesViewHandlerImpl.dispatch(JspTilesViewHandlerImpl.java:233)
at org.apache.myfaces.application.jsp.JspTilesViewHandlerImpl.renderView(JspTilesViewHandlerImpl.java:219)
at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:352)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:107)
at org.apache.myfaces.webapp.MyFacesServlet.service(MyFacesServlet.java:74)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:292)
at net.sf.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:84)
at net.sf.acegisecurity.intercept.web.SecurityEnforcementFilter.doFilter(SecurityEnforcementFilter.java:182)
at net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
at net.sf.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:153)
at net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
at net.sf.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:114)
at net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
at net.sf.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:206)
at net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
at net.sf.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:305)
at net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
at net.sf.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:226)
at net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
at net.sf.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:173)
at net.sf.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:125)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:831)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:652)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1203)
at java.lang.Thread.run(Thread.java:534)
> Runtime error using Tomahawk dataTable + selectBooleanCheckboxes (MyFaces 1.1.1)
> --------------------------------------------------------------------------------
>
> Key: MYFACES-817
> URL: http://issues.apache.org/jira/browse/MYFACES-817
> Project: MyFaces
> Type: Bug
> Components: Tomahawk
> Versions: 1.1.1
> Environment: Windows XP Prof., jboss-4.0.1sp1 for the J2EE? 1.4 codebase
> Reporter: Matthias Kahlau
> Priority: Blocker
>
> I have a problem with the Tomahawk dataTable component, in conjunction with
> a selectBooleanCheckbox in each row. I use a Component-Binding for each component, and determining the selected
> checkboxes works well. But after that, I get the following runtime error:
> null
> java.lang.NullPointerException
> at org.apache.myfaces.component.html.ext.HtmlDataTableHack.restoreDescendantComponentStates(HtmlDataTableHack.java:245)
> at org.apache.myfaces.component.html.ext.HtmlDataTableHack.restoreDescendantComponentStates(HtmlDataTableHack.java:257)
> at org.apache.myfaces.component.html.ext.HtmlDataTableHack.setRowIndex(HtmlDataTableHack.java:200)
> at org.apache.myfaces.component.html.ext.HtmlDataTable.setRowIndex(HtmlDataTable.java:166)
> at javax.faces.component.html.HtmlDataTable.encodeBegin(HtmlDataTable.java:35)
> at org.apache.myfaces.component.html.ext.HtmlDataTableHack.encodeBegin(HtmlDataTableHack.java:126)
> at org.apache.myfaces.component.html.ext.HtmlDataTable.encodeBegin(HtmlDataTable.java:312)
> at org.apache.myfaces.renderkit.RendererUtils.renderChild(RendererUtils.java:441)
> at org.apache.myfaces.renderkit.RendererUtils.renderChildren(RendererUtils.java:427)
> at org.apache.myfaces.renderkit.html.HtmlGroupRendererBase.encodeEnd(HtmlGroupRendererBase.java:62)
> at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:331)
> at org.apache.myfaces.renderkit.RendererUtils.renderChild(RendererUtils.java:450)
> at org.apache.myfaces.custom.tabbedpane.HtmlTabbedPaneRenderer.writeTabsContents(HtmlTabbedPaneRenderer.java:535)
> at org.apache.myfaces.custom.tabbedpane.HtmlTabbedPaneRenderer.encodeEnd(HtmlTabbedPaneRenderer.java:227)
> at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:331)
> at javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:349)
> at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:253)
> at org.apache.myfaces.taglib.UIComponentBodyTagBase.doEndTag(UIComponentBodyTagBase.java:55)
> at org.apache.jsp.Management.ManagementHome_jsp._jspx_meth_t_panelTabbedPane_0(ManagementHome_jsp.java:302)
> at org.apache.jsp.Management.ManagementHome_jsp._jspx_meth_h_form_0(ManagementHome_jsp.java:238)
> at org.apache.jsp.Management.ManagementHome_jsp._jspx_meth_f_view_0(ManagementHome_jsp.java:191)
> at org.apache.jsp.Management.ManagementHome_jsp._jspService(ManagementHome_jsp.java:145)
> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
> at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
> at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:704)
> at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:474)
> at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:409)
> at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
> at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:415)
> at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:234)
> at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:352)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:107)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
> at org.apache.myfaces.component.html.util.ExtensionsFilter.doFilter(ExtensionsFilter.java:122)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
> at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
> at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
> at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:66)
> at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
> at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:150)
> at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
> at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:54)
> at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
> at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
> at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
> at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
> at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
> at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
> at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
> at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
> at java.lang.Thread.run(Thread.java:534)
> ----------------
> Part of JSP:
> ----------------
> <t:dataTable id="dataTableUmfragen"
> binding="#{UmfrageBacking.dataTable}"
> lang="de"
> title="Tabelle zur Auswahl eigener Umfragen"
> summary="Tabelle zur Übersicht und Auswahl eigener Umfragen"
> value="#{UmfrageBacking.durchfuehrungen}"
> var="row"
> rows="10"
> renderedIfEmpty="true"
> preserveDataModel="false"
> preserveSort="true"
> sortColumn="#{UmfrageBacking.sortColumn}"
> sortAscending="#{UmfrageBacking.sortAscending}"
> styleClass=""
> headerClass=""
> footerClass=""
> rowClasses=""
> columnClasses=""
> rowOnMouseOver="this.style.backgroundColor='#A5CBFF'"
> rowOnMouseOut="this.style.backgroundColor='#FFFFE0'"
> rowOnClick="this.style.backgroundColor='#FFE0E0'"
> rowOnDblClick="this.style.backgroundColor='#E0E0E0'"
> width="700">
> <t:column width="30">
> <h:selectBooleanCheckbox binding="#{UmfrageBacking.checkbox}"
> title="Umfrage auswählen zur Ausführung einer Aktion" />
> </t:column>
> <t:column>
> <f:facet name="header">
> <t:commandSortHeader
> columnName="#{UmfrageBacking.colName_Bezeichnung}"
> arrow="true"
> lang="de"
> title="#{managementBundle.sort_message}">
> <h:outputText value="#{UmfrageBacking.colName_Bezeichnung}"/>
> </t:commandSortHeader>
> </f:facet>
> <h:commandLink action="#{UmfrageBacking.edit}">
> <h:outputText value="#{row.bezeichnung}"/>
> </h:commandLink>
> </t:column>
> ....
> </t:dataTable>
> ------------------------------
> Part of Backing-Bean:
> ------------------------------
> // Declarations for the component bindings
> private UIData dataTable;
> private UISelectBoolean checkbox;
> // action method to delete the selected items
> public String delete() {
> List currentUmfragen = (List)this.durchfuehrungen.getWrappedData();
> List toDelete = this.getSelectedDurchfuehrungen();
> int size = toDelete.size();
> for (int i = 0; i < size; i++) {
> currentUmfragen.remove(toDelete.get(i));
> }
> return Constants.ACTION_SUCCESS;
> }
> // method to determine the selected items
> private List getSelectedDurchfuehrungen() {
> List selected = new ArrayList();
> int first = this.dataTable.getFirst();
> int rows = this.dataTable.getRows();
> for (int i = first; i < (first + rows); i++) {
> this.dataTable.setRowIndex(i);
> if (this.checkbox.isSelected()) {
> selected.add(this.dataTable.getRowData());
> }
> }
> return selected;
> }
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
[jira] Commented: (MYFACES-817) Runtime error using Tomahawk dataTable + selectBooleanCheckboxes (MyFaces 1.1.1)
Posted by "Simon Kitching (JIRA)" <de...@myfaces.apache.org>.
[ http://issues.apache.org/jira/browse/MYFACES-817?page=comments#action_12357548 ]
Simon Kitching commented on MYFACES-817:
----------------------------------------
Hi Matthias,
I see you're using myfaces-1.1.1. A fair bit of change has gone on in this area since that release. I suggest you try a nightly build to see if that resolves the issue. The latest nightlies appear to be reasonably stable.
I am using checkboxes in table columns successfully with the SVN HEAD version, though via a custom component rather than the SelectBooleanCheckbox component.
Regards, Simon
> Runtime error using Tomahawk dataTable + selectBooleanCheckboxes (MyFaces 1.1.1)
> --------------------------------------------------------------------------------
>
> Key: MYFACES-817
> URL: http://issues.apache.org/jira/browse/MYFACES-817
> Project: MyFaces
> Type: Bug
> Components: Tomahawk
> Versions: 1.1.1
> Environment: Windows XP Prof., jboss-4.0.1sp1 for the J2EE? 1.4 codebase
> Reporter: Matthias Kahlau
> Priority: Blocker
>
> I have a problem with the Tomahawk dataTable component, in conjunction with
> a selectBooleanCheckbox in each row. I use a Component-Binding for each component, and determining the selected
> checkboxes works well. But after that, I get the following runtime error:
> null
> java.lang.NullPointerException
> at org.apache.myfaces.component.html.ext.HtmlDataTableHack.restoreDescendantComponentStates(HtmlDataTableHack.java:245)
> at org.apache.myfaces.component.html.ext.HtmlDataTableHack.restoreDescendantComponentStates(HtmlDataTableHack.java:257)
> at org.apache.myfaces.component.html.ext.HtmlDataTableHack.setRowIndex(HtmlDataTableHack.java:200)
> at org.apache.myfaces.component.html.ext.HtmlDataTable.setRowIndex(HtmlDataTable.java:166)
> at javax.faces.component.html.HtmlDataTable.encodeBegin(HtmlDataTable.java:35)
> at org.apache.myfaces.component.html.ext.HtmlDataTableHack.encodeBegin(HtmlDataTableHack.java:126)
> at org.apache.myfaces.component.html.ext.HtmlDataTable.encodeBegin(HtmlDataTable.java:312)
> at org.apache.myfaces.renderkit.RendererUtils.renderChild(RendererUtils.java:441)
> at org.apache.myfaces.renderkit.RendererUtils.renderChildren(RendererUtils.java:427)
> at org.apache.myfaces.renderkit.html.HtmlGroupRendererBase.encodeEnd(HtmlGroupRendererBase.java:62)
> at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:331)
> at org.apache.myfaces.renderkit.RendererUtils.renderChild(RendererUtils.java:450)
> at org.apache.myfaces.custom.tabbedpane.HtmlTabbedPaneRenderer.writeTabsContents(HtmlTabbedPaneRenderer.java:535)
> at org.apache.myfaces.custom.tabbedpane.HtmlTabbedPaneRenderer.encodeEnd(HtmlTabbedPaneRenderer.java:227)
> at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:331)
> at javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:349)
> at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:253)
> at org.apache.myfaces.taglib.UIComponentBodyTagBase.doEndTag(UIComponentBodyTagBase.java:55)
> at org.apache.jsp.Management.ManagementHome_jsp._jspx_meth_t_panelTabbedPane_0(ManagementHome_jsp.java:302)
> at org.apache.jsp.Management.ManagementHome_jsp._jspx_meth_h_form_0(ManagementHome_jsp.java:238)
> at org.apache.jsp.Management.ManagementHome_jsp._jspx_meth_f_view_0(ManagementHome_jsp.java:191)
> at org.apache.jsp.Management.ManagementHome_jsp._jspService(ManagementHome_jsp.java:145)
> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
> at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
> at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:704)
> at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:474)
> at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:409)
> at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
> at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:415)
> at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:234)
> at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:352)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:107)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
> at org.apache.myfaces.component.html.util.ExtensionsFilter.doFilter(ExtensionsFilter.java:122)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
> at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
> at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
> at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:66)
> at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
> at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:150)
> at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
> at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:54)
> at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
> at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
> at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
> at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
> at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
> at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
> at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
> at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
> at java.lang.Thread.run(Thread.java:534)
> ----------------
> Part of JSP:
> ----------------
> <t:dataTable id="dataTableUmfragen"
> binding="#{UmfrageBacking.dataTable}"
> lang="de"
> title="Tabelle zur Auswahl eigener Umfragen"
> summary="Tabelle zur Übersicht und Auswahl eigener Umfragen"
> value="#{UmfrageBacking.durchfuehrungen}"
> var="row"
> rows="10"
> renderedIfEmpty="true"
> preserveDataModel="false"
> preserveSort="true"
> sortColumn="#{UmfrageBacking.sortColumn}"
> sortAscending="#{UmfrageBacking.sortAscending}"
> styleClass=""
> headerClass=""
> footerClass=""
> rowClasses=""
> columnClasses=""
> rowOnMouseOver="this.style.backgroundColor='#A5CBFF'"
> rowOnMouseOut="this.style.backgroundColor='#FFFFE0'"
> rowOnClick="this.style.backgroundColor='#FFE0E0'"
> rowOnDblClick="this.style.backgroundColor='#E0E0E0'"
> width="700">
> <t:column width="30">
> <h:selectBooleanCheckbox binding="#{UmfrageBacking.checkbox}"
> title="Umfrage auswählen zur Ausführung einer Aktion" />
> </t:column>
> <t:column>
> <f:facet name="header">
> <t:commandSortHeader
> columnName="#{UmfrageBacking.colName_Bezeichnung}"
> arrow="true"
> lang="de"
> title="#{managementBundle.sort_message}">
> <h:outputText value="#{UmfrageBacking.colName_Bezeichnung}"/>
> </t:commandSortHeader>
> </f:facet>
> <h:commandLink action="#{UmfrageBacking.edit}">
> <h:outputText value="#{row.bezeichnung}"/>
> </h:commandLink>
> </t:column>
> ....
> </t:dataTable>
> ------------------------------
> Part of Backing-Bean:
> ------------------------------
> // Declarations for the component bindings
> private UIData dataTable;
> private UISelectBoolean checkbox;
> // action method to delete the selected items
> public String delete() {
> List currentUmfragen = (List)this.durchfuehrungen.getWrappedData();
> List toDelete = this.getSelectedDurchfuehrungen();
> int size = toDelete.size();
> for (int i = 0; i < size; i++) {
> currentUmfragen.remove(toDelete.get(i));
> }
> return Constants.ACTION_SUCCESS;
> }
> // method to determine the selected items
> private List getSelectedDurchfuehrungen() {
> List selected = new ArrayList();
> int first = this.dataTable.getFirst();
> int rows = this.dataTable.getRows();
> for (int i = first; i < (first + rows); i++) {
> this.dataTable.setRowIndex(i);
> if (this.checkbox.isSelected()) {
> selected.add(this.dataTable.getRowData());
> }
> }
> return selected;
> }
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira