code: public Object evaluate(Task k, TaskRequest req, TaskResponse res) {
          
          ReturnValueImpl rslt = new ReturnValueImpl();
          RuntimeRequestResponse tr = new RuntimeRequestResponse();
          tr.enclose(req);
          tr.setAttribute(Attributes.RETURN_VALUE, rslt);
          
          run(k, tr, res);
          return rslt.getValue();
  
      }
docs: Invokes the specified <code>Task</code> with the specified
  <code>TaskRequest</code> and <code>TaskResponse</code> and returns the
  <code>RETURN_VALUE</code>.  Use this
  overload of the <code>evaluate</code> method when you may need to
  pre-load information into both the <code>TaskRequest</code> and
  the <code>TaskResponse</code>.
  
  @param k A fully-bootstrapped <code>Task</code> object.
  @param req A <code>TaskRequest</code> prepared externally.
  @param req A <code>TaskResponse</code> prepared externally.
  @return The <code>TaskResponse</code> that results from invoking the
  specified task.