Class ErrorMappingStreamObserver<GrpcResponseT>

java.lang.Object
io.grpc.stub.CallStreamObserver<RespT>
io.grpc.stub.ServerCallStreamObserver<GrpcResponseT>
io.camunda.zeebe.gateway.grpc.ErrorMappingStreamObserver<GrpcResponseT>
Type Parameters:
GrpcResponseT - the expected type of the response
All Implemented Interfaces:
ServerStreamObserver<GrpcResponseT>, io.grpc.stub.StreamObserver<GrpcResponseT>

public final class ErrorMappingStreamObserver<GrpcResponseT> extends io.grpc.stub.ServerCallStreamObserver<GrpcResponseT> implements ServerStreamObserver<GrpcResponseT>
A ServerCallStreamObserver decorator which will map errors to StatusException before passing them on to the delegate. It will additionally suppress cancel exceptions; by default, the gRPC library will throw an exception if one tries to complete a call which was already cancelled. As we don't handle this (yet), simply log the instance.
  • Constructor Details

    • ErrorMappingStreamObserver

      public ErrorMappingStreamObserver(io.grpc.stub.ServerCallStreamObserver<GrpcResponseT> delegate)
    • ErrorMappingStreamObserver

      public ErrorMappingStreamObserver(io.grpc.stub.ServerCallStreamObserver<GrpcResponseT> delegate, GrpcErrorMapper errorMapper)
  • Method Details

    • ofStreamObserver

      public static <GrpcResponseT> ErrorMappingStreamObserver<GrpcResponseT> ofStreamObserver(io.grpc.stub.StreamObserver<GrpcResponseT> streamObserver)
      Returns a new ErrorMappingStreamObserver wrapping the given StreamObserver.
      Type Parameters:
      GrpcResponseT - the expected response type
      Parameters:
      streamObserver - the observer to wrap
      Returns:
      an ErrorMappingStreamObserver wrapping the given streamObserver
      Throws:
      IllegalArgumentException - if the given streamObserver is not a ServerCallStreamObserver
    • isReady

      public boolean isReady()
      Specified by:
      isReady in class io.grpc.stub.ServerCallStreamObserver<GrpcResponseT>
    • setOnReadyHandler

      public void setOnReadyHandler(Runnable onReadyHandler)
      Specified by:
      setOnReadyHandler in class io.grpc.stub.ServerCallStreamObserver<GrpcResponseT>
    • disableAutoInboundFlowControl

      public void disableAutoInboundFlowControl()
      Specified by:
      disableAutoInboundFlowControl in class io.grpc.stub.CallStreamObserver<GrpcResponseT>
    • request

      public void request(int count)
      Specified by:
      request in class io.grpc.stub.ServerCallStreamObserver<GrpcResponseT>
    • setMessageCompression

      public void setMessageCompression(boolean enable)
      Specified by:
      setMessageCompression in class io.grpc.stub.ServerCallStreamObserver<GrpcResponseT>
    • onNext

      public void onNext(GrpcResponseT value)
      Specified by:
      onNext in interface io.grpc.stub.StreamObserver<GrpcResponseT>
    • onError

      public void onError(Throwable t)
      Specified by:
      onError in interface io.grpc.stub.StreamObserver<GrpcResponseT>
    • onCompleted

      public void onCompleted()
      Specified by:
      onCompleted in interface io.grpc.stub.StreamObserver<GrpcResponseT>
    • isCancelled

      public boolean isCancelled()
      Specified by:
      isCancelled in interface ServerStreamObserver<GrpcResponseT>
      Specified by:
      isCancelled in class io.grpc.stub.ServerCallStreamObserver<GrpcResponseT>
    • setOnCancelHandler

      public void setOnCancelHandler(Runnable onCancelHandler)
      Specified by:
      setOnCancelHandler in class io.grpc.stub.ServerCallStreamObserver<GrpcResponseT>
    • setCompression

      public void setCompression(String compression)
      Specified by:
      setCompression in class io.grpc.stub.ServerCallStreamObserver<GrpcResponseT>