public Message preEndpointInvocation(final Service service, final String methodName,
    Message request) throws IOException {
    if (coprocEnvironments.isEmpty()) {
      return request;
    }
    return execOperationWithResult(
      new ObserverOperationWithResult<EndpointObserver, Message>(endpointObserverGetter, request) {
        @Override
        public Message call(EndpointObserver observer) throws IOException {
          return observer.preEndpointInvocation(this, service, methodName, getResult());
        }
      });
  }
@param fs     fileystem to read from
@param p      path to the file
@param in     {@link FSDataInputStreamWrapper}
@param size   Full size of the file
@param r      original reference file. This will be not null only when reading a split file.
@param reader the base reader instance
@return The reader to use
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java