Class ServerRpcController

java.lang.Object
org.apache.hadoop.hbase.ipc.ServerRpcController
All Implemented Interfaces:
org.apache.hbase.thirdparty.com.google.protobuf.RpcController

@Private public class ServerRpcController extends Object implements org.apache.hbase.thirdparty.com.google.protobuf.RpcController
Used for server-side protobuf RPC service invocations. This handler allows invocation exceptions to easily be passed through to the RPC server from coprocessor Service implementations.

When implementing Service defined methods, coprocessor endpoints can use the following pattern to pass exceptions back to the RPC client: public void myMethod(RpcController controller, MyRequest request, RpcCallback<MyResponse> done) { MyResponse response = null; try { // do processing response = MyResponse.getDefaultInstance(); // or use a new builder to populate the response } catch (IOException ioe) { // pass exception back up ResponseConverter.setControllerException(controller, ioe); } done.run(response); }

  • Field Details

    • serviceException

      The exception thrown within com.google.protobuf.Service#callMethod(com.google.protobuf.Descriptors.MethodDescriptor, RpcController, com.google.protobuf.Message, RpcCallback) if any.
    • errorMessage

  • Constructor Details

  • Method Details

    • reset

      public void reset()
      Specified by:
      reset in interface org.apache.hbase.thirdparty.com.google.protobuf.RpcController
    • failed

      public boolean failed()
      Specified by:
      failed in interface org.apache.hbase.thirdparty.com.google.protobuf.RpcController
    • errorText

      public String errorText()
      Specified by:
      errorText in interface org.apache.hbase.thirdparty.com.google.protobuf.RpcController
    • startCancel

      public void startCancel()
      Specified by:
      startCancel in interface org.apache.hbase.thirdparty.com.google.protobuf.RpcController
    • setFailed

      public void setFailed(String message)
      Specified by:
      setFailed in interface org.apache.hbase.thirdparty.com.google.protobuf.RpcController
    • isCanceled

      public boolean isCanceled()
      Specified by:
      isCanceled in interface org.apache.hbase.thirdparty.com.google.protobuf.RpcController
    • notifyOnCancel

      public void notifyOnCancel(org.apache.hbase.thirdparty.com.google.protobuf.RpcCallback<Object> objectRpcCallback)
      Specified by:
      notifyOnCancel in interface org.apache.hbase.thirdparty.com.google.protobuf.RpcController
    • setFailedOn

      public void setFailedOn(IOException ioe)
      Sets an exception to be communicated back to the Service client.
      Parameters:
      ioe - the exception encountered during execution of the service method
    • getFailedOn

      Returns any exception thrown during service method invocation, or null if no exception was thrown. This can be used by clients to receive exceptions generated by RPC calls, even when RpcCallbacks are used and no ServiceException is declared.
    • failedOnException

      public boolean failedOnException()
      Returns whether or not a server exception was generated in the prior RPC invocation.
    • checkFailed

      public void checkFailed() throws IOException
      Throws an IOException back out if one is currently stored.
      Throws:
      IOException