protected Action loadDeclarativeActionDefault(ActionsHolder actionsHolder, Element element) { String id = element.attributeValue("id"); if (id == null) { Element component = element; for (int i = 0; i < 2; i++) { if (component.getParent() != null) component = component.getParent(); else throw new GuiDevelopmentException("No action ID provided", context.getFullFrameId()); } throw new GuiDevelopmentException("No action ID provided", context.getFullFrameId(), "Component ID", component.attributeValue("id")); } String trackSelection = element.attributeValue("trackSelection"); boolean shouldTrackSelection = Boolean.parseBoolean(trackSelection); String invokeMethod = element.attributeValue("invoke"); if (StringUtils.isEmpty(invokeMethod)) { return loadStubAction(element, id, shouldTrackSelection); } return loadInvokeAction(actionsHolder, element, id, shouldTrackSelection, invokeMethod); }