code: public int read(String path, byte[] fileHandle, long offset, int length, final byte[] data, final int pos, final MutableBoolean eof)
            throws IOException {
        Nfs3ReadRequest request = new Nfs3ReadRequest(fileHandle, offset, length, _credential);
        NfsResponseHandler<Nfs3ReadResponse> responseHandler = new NfsResponseHandler<Nfs3ReadResponse>() {
  
  
            /* (non-Javadoc)
             * @see com.emc.ecs.nfsclient.rpc.RpcResponseHandler#makeNewResponse()
             */
            protected Nfs3ReadResponse makeNewResponse() {
                return new Nfs3ReadResponse(data, pos);
            }
  
            /* (non-Javadoc)
             * @see com.emc.ecs.nfsclient.nfs.NfsResponseHandler#checkResponse(com.emc.ecs.nfsclient.rpc.RpcRequest)
             */
            public void checkResponse(RpcRequest request) throws IOException {
                super.checkResponse(request);
                eof.setValue(getResponse().isEof());
            }
  
        };
        _rpcWrapper.callRpcWrapped(request, responseHandler);
        return responseHandler.getResponse().getBytesRead();
    }
docs: Read data from a file handle
  
  @param path
  the path of the file
  @param fileHandle
  file handle of the file
  @param offset
  offset of the file to read
  @param length
  the length of the data buffer
  @param data
  the data to be returned
  @param eof
  is at the end-of-file
  @return The number of bytes of data returned by the read. the number may
  be smaller than len