the invoke method does this:
public final void invoke(final Page page, final Component component)
{
page.beforeCallComponent(component, this);
if (!component.isEnabled() || !component.isVisibleInHierarchy())
{
// just return so that we have a silent fail and just re-render
the
// page
log.info("component not enabled or visible; ignoring call.
Component: " + component);
return;
}
try
{
// Invoke the interface method on the component
method.invoke(component, new Object[] {});
}
catch (InvocationTargetException e)
{}
finally { page.afterCallComponent}
that looks odd
if the invoke is not really done '(disabled or not visible) then the
beforeCall is still hapening?
do we do this on purpose?
if so then i think we should also always call afterCallComponent
but i guess we should change it like this
public final void invoke(final Page page, final Component component)
{
if (!component.isEnabled() || !component.isVisibleInHierarchy())
{
// just return so that we have a silent fail and just re-render
the
// page
log.info("component not enabled or visible; ignoring call.
Component: " + component);
return;
}
page.beforeCallComponent(component, this);
try
{
// Invoke the interface method on the component
method.invoke(component, new Object[] {});