found = true;
} else {
Iterator<UIComponent> fixedChildrenItr = fixedChildren();
while (fixedChildrenItr.hasNext() && !found) {
UIComponent fixedChild = fixedChildrenItr.next();
found = fixedChild.invokeOnComponent(context, clientId, callback);
}
}
if (!found) {
Object newRowKey = null;
// Call for a child component - try to detect row key
// baseId.length() + 1 expression skips SEPARATOR_CHAR
// TODO - convertKeyString
String rowKeyString = extractKeySegment(context, clientId.substring(baseId.length() + 1));
if (rowKeyString != null) {
Converter keyConverter = getRowKeyConverter();
if (null != keyConverter) {
try {
// TODO: review
newRowKey = keyConverter.getAsObject(context, this, rowKeyString);
} catch (ConverterException e) {
// TODO: LOG error
}
}
}
setRowKey(context, newRowKey);
if (isRowAvailable()) {
Iterator<UIComponent> dataChildrenItr = dataChildren();
while (dataChildrenItr.hasNext() && !found) {
UIComponent dataChild = dataChildrenItr.next();
found = dataChild.invokeOnComponent(context, clientId, callback);
}
}
}
} catch (Exception e) {
throw new FacesException(e);