MarkupFragmentFinder fails on transparent resolvers within Repeaters --------------------------------------------------------------------
Key: WICKET-1560 URL: https://issues.apache.org/jira/browse/WICKET-1560 Project: Wicket Issue Type: Bug Components: wicket Affects Versions: 1.3.3 Environment: Any Reporter: Jan Kriesten Priority: Critical Fix For: 1.3.4 I extended the AjaxDataTable to be able to add Rows to certain states of the rows. However, MarkupFragmentFinder fails to resolve the code under this condition since it compares with the wrong components in this case: Markup: <wicket:container wicket:id="rows"> <tr wicket:id="row"><td wicket:id="cells"><span wicket:id="cell">[cell]</span></td></tr> <tr wicket:id="action-row" class="actionRow"></tr> </wicket:container> 'row' is the transparent resolver in this case to maintain the hierarchy needed by the DataTable. MarkupFragmentFinder fails in the case of adding a cell to an AjaxRequestTarget. Fix: Everything works as expected, when MarkupFragmentFinder checks for the parent being an AbstractRepeater and in the case compares the parent.id with the supplied id (code provided by Gerolf): if (elem instanceof ComponentTag) { ComponentTag tag = (ComponentTag)elem; String id = tag.getId(); if ((id != null) && id.equals(component.getId())) { // Ok, found it return markupStream; } else { Component parent = component.getParent(); if (parent instanceof AbstractRepeater && id != null && id.equals(parent.getId())) { return markupStream; } } } -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.