Hi Sean,
the last patch I've posted was different from the first one. I currently
have no access to my working copy right now. So if it is possible
please commit the last patch.
Mathias
Mike Kienenberger schrieb:
On 7/5/05, Broekelmann, Mathias <[EMAIL PROTECTED]> wrote:
I would like to solve this issue. I´ve reimplemented the UIData and derived
DataTable components for this issue. However it will take some time to test all
usecases.
This is what I´ve done so far:
- reduce the error phrone and complex code in saveDescendantComponentStates and
restoreDescendantComponentStates.
- using StateHolder.saveState and restoreState methods for nested components.
- no special handling for nested UIData components needed any more
- get rid of phase listener for datatable
As far as I´ve tested my implementation it works nicely. I will do some more
tests today in our application which heavily uses the UIData components to see
if it works.
If anyone is interessted to check if my code is running in your application you
may apply the patch which is attached.
There's at least one issue with getRowData(). I get this stack trace
with the latest from svn, but it works with BEFORE_SVN_REORG. I'll
start tracking it down, but I'm posting the stack trace here in case
it's obvious to someone else where the problem is.
throw new IllegalArgumentException("row is unavailable");
Thread [SocketListener0-1] (Suspended (breakpoint at line 61 in ListDataModel))
ListDataModel.getRowData() line: 61
HtmlDataTable(UIData).getRowData() line: 111
ViewSecRoleRecords.getShowPulldownForSecGroup() line: 57
GeneratedMethodAccessor21.invoke(Object, Object[]) line: not available
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25
Method.invoke(Object, Object[]) line: 324
PropertyResolverImpl.getProperty(Object, String) line: 383
PropertyResolverImpl.getValue(Object, Object) line: 68
ELParserHelper$MyPropertySuffix.evaluate(Object, VariableResolver,
FunctionMapper, Logger) line: 533
ComplexValue.evaluate(VariableResolver, FunctionMapper, Logger) line:
145
ValueBindingImpl.getValue(FacesContext) line: 362
HtmlPanelGroup(UIComponentBase).isRendered() line: 753
HtmlDataTable(UIData).restoreDescendantComponentStates(FacesContext,
UIComponent) line: 182
HtmlDataTable(UIData).restoreDescendantComponentStates(FacesContext,
UIComponent) line: 190
HtmlDataTable(UIData).restoreDescendantComponentStates(FacesContext,
UIComponent) line: 190
HtmlDataTable(UIData).setRowIndex(int) line: 159
HtmlDataTable(UIData).encodeEnd(FacesContext) line: 279
HtmlDataTableTag(UIComponentTag).encodeEnd() line: 349
HtmlDataTableTag(UIComponentTag).doEndTag() line: 253
HtmlDataTableTag(UIComponentBodyTagBase).doEndTag() line: 55
ViewSecRoleRecords_jspx._jspx_meth_h_dataTable_0(JspTag, PageContext)
line: 39
ViewSecRoleRecords_jspx._jspx_meth_h_form_0(JspTag, PageContext) line:
33
ViewSecRoleRecords_jspx._jspx_meth_f_view_0(PageContext) line: 17
ViewSecRoleRecords_jspx._jspService(HttpServletRequest,
HttpServletResponse) line: 13
ViewSecRoleRecords_jspx(HttpJspBase).service(HttpServletRequest,
HttpServletResponse) line: 94
ViewSecRoleRecords_jspx(HttpServlet).service(ServletRequest,
ServletResponse) line: 689
JspServletWrapper.service(HttpServletRequest, HttpServletResponse,
boolean) line: 324
JspServlet.serviceJspFile(HttpServletRequest, HttpServletResponse,
String, Throwable, boolean) line: 292
JspServlet.service(HttpServletRequest, HttpServletResponse) line: 236
JspServlet(HttpServlet).service(ServletRequest, ServletResponse) line:
689
ServletHolder.handle(ServletRequest, ServletResponse) line: 427
WebApplicationHandler.dispatch(String, HttpServletRequest,
HttpServletResponse, ServletHolder, int) line: 475
Dispatcher.dispatch(ServletRequest, ServletResponse, int) line: 275
Dispatcher.forward(ServletRequest, ServletResponse) line: 169
ServletExternalContextImpl.dispatch(String) line: 405
JspViewHandlerImpl.renderView(FacesContext, UIViewRoot) line: 225
LifecycleImpl.render(FacesContext) line: 299
FacesServlet.service(ServletRequest, ServletResponse) line: 95