code: public Object invoke(Object proxy,Method method,Object[] arguments) throws Throwable
      {
          //invoke interceptors
          this.invokeInterceptors(FaxClientSpiProxyEventType.PRE_EVENT_TYPE,method,arguments,null,null);
          
          Object output=null;
          Throwable generalError=null;
          try
          {
              //invoke fax client SPI
              output=method.invoke(this.faxClientSpiInstance,arguments);
  
              //invoke interceptors
              this.invokeInterceptors(FaxClientSpiProxyEventType.POST_EVENT_TYPE,method,arguments,output,null);
          }
          catch(Throwable throwable)
          {
              //get error
              generalError=throwable.getCause();
              if(generalError==null)
              {
                  generalError=throwable;
              }
              
              //invoke interceptors
              this.invokeInterceptors(FaxClientSpiProxyEventType.ERROR_EVENT_TYPE,method,arguments,null,generalError);
          }
          
          if(generalError!=null)
          {
              throw generalError;
          }
  
          return output;
      }
docs: This function is invoked for each fax client SPI method invocation.<br>
  This method invokes the fax client SPI interceptors.
  
  @param   proxy
  The proxy
  @param   method
  The method invoked
  @param   arguments
  The method arguments
  @return  The method output
  @throws  Throwable
  Any throwable