code: ActionForward invokeActionMethod( Method method, Object arg, HttpServletRequest request, ActionMapping mapping )
          throws Exception
      {
          Class[] paramTypes = method.getParameterTypes();
  
          try
          {
              if ( paramTypes.length > 0 && paramTypes[0].isInstance( arg ) )
              {
                  if ( _log.isDebugEnabled() )
                  {
                      _log.debug( "Invoking action method " + method.getName() + '(' + paramTypes[0].getName() + ')' );
                  }
  
                  return ( ActionForward ) method.invoke( this, new Object[]{ arg } );
              }
              else if ( paramTypes.length == 0 )
              {
                  if ( _log.isDebugEnabled() )
                  {
                      _log.debug( "Invoking action method " + method.getName() + "()" );
                  }
  
                  return ( ActionForward ) method.invoke( this, null );
              }
          }
          finally
          {
              boolean readonly = false;
  
              if ( mapping instanceof PageFlowActionMapping )
              {
                  PageFlowActionMapping pfam = ( PageFlowActionMapping ) mapping;
                  readonly = pfam.isReadonly();
              }
  
              /*
              A read only Flow Controller is one that is marked as such via metadata.  If a FlowController
              is read only, no steps need to be taken to ensure that it fails over into the session for
              serialization in a cluster.
               */
              if ( ! readonly )
              {
                  ensureFailover( getRequest() );
              }
          }
  
          if ( _log.isWarnEnabled() )
          {
              _log.warn( "Could not find action method " + method.getName() + " with appropriate signature." );
          }
  
          return null;
      }
docs: Invoke the given action handler method, passing it an argument if appropriate.
  
  @param method the action handler method to invoke.
  @param arg the form-bean to pass; may be <code>null</code>.
  @param request the current HttpServletRequest.
  @return the ActionForward returned by the action handler method.
  @throws Exception if an Exception was raised in user code.