Class ServerRpcController

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

@Private public class ServerRpcController extends Object implements 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 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 com.google.protobuf.RpcController
    • failed

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

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

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

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

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

      public void notifyOnCancel(com.google.protobuf.RpcCallback<Object> objectRpcCallback)
      Specified by:
      notifyOnCancel in interface 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