public ScriptExecutorTaskStatus call() throws Exception {
  ScriptMethodRequest request;
  while ((request=requests.poll()) != null) {
    ScriptMethodResponse response=null;
    try {
      String method=request.getMethod();
      Object argument=request.getArgument();
      Object value=executor.execute(method,argument);
      response=new ScriptMethodResponse(request,value,null,true);
    }
 catch (    Throwable t) {
      response=new ScriptMethodResponse(request,null,t,false);
      String msg=formatErrorMessage(request);
      logger.error(msg,response.getThrowable());
      ScriptExecutorTaskStatus status=new ScriptExecutorTaskStatus(count.get(),false,response);
      return status;
    }
 finally {
      responses.add(response);
    }
    count.incrementAndGet();
  }
  return new ScriptExecutorTaskStatus(count.get(),true,null);
}

public ScriptExecutorTaskStatus call ( ) throws Exception { ScriptMethodRequest request ; while ( ( request = requests . poll ( ) ) != null ) { ScriptMethodResponse response = null ; try { String method = request . getMethod ( ) ; Object argument = request . getArgument ( ) ; Object value = executor . execute ( method , argument ) ; response = new ScriptMethodResponse ( request , value , null , true ) ; } catch ( Throwable t ) { response = new ScriptMethodResponse ( request , null , t , false ) ; String msg = formatErrorMessage ( request ) ; logger . error ( msg , response . getThrowable ( ) ) ; ScriptExecutorTaskStatus status = new ScriptExecutorTaskStatus ( count . get ( ) , false , response ) ; return status ; } finally { responses . add ( response ) ; } count . incrementAndGet ( ) ; } return new ScriptExecutorTaskStatus ( count . get ( ) , true , null ) ; }
processes method execution requests until the request queue is empty . following normal end return the count of processed request .
