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[] {});

Reply via email to