Class RecoveringDeserializationExceptionHandler

java.lang.Object
org.springframework.kafka.streams.AbstractRecoveringExceptionHandler<org.apache.kafka.streams.errors.DeserializationExceptionHandler.Response>
org.springframework.kafka.streams.RecoveringDeserializationExceptionHandler
All Implemented Interfaces:
org.apache.kafka.common.Configurable, org.apache.kafka.streams.errors.DeserializationExceptionHandler

public class RecoveringDeserializationExceptionHandler extends AbstractRecoveringExceptionHandler<org.apache.kafka.streams.errors.DeserializationExceptionHandler.Response> implements org.apache.kafka.streams.errors.DeserializationExceptionHandler
A DeserializationExceptionHandler that calls a ConsumerRecordRecoverer or uses the native Kafka Streams DLQ and continues.
Since:
2.3
Author:
Gary Russell, Soby Chacko
  • Field Details

    • KSTREAM_DESERIALIZATION_RECOVERER

      @Deprecated(since="4.1", forRemoval=true) public static final String KSTREAM_DESERIALIZATION_RECOVERER
      Deprecated, for removal: This API element is subject to removal in a future version.
      Since 4.1 in favor of RECOVERER.
      Property name for configuring the recoverer using properties.
      See Also:
    • RECOVERER

      public static final String RECOVERER
      Property name for configuring the recoverer using properties.
      See Also:
    • DLQ_DESTINATION_RESOLVER

      public static final String DLQ_DESTINATION_RESOLVER
      Property name for configuring the native DLQ destination resolver.
      See Also:
  • Constructor Details

    • RecoveringDeserializationExceptionHandler

      public RecoveringDeserializationExceptionHandler()
    • RecoveringDeserializationExceptionHandler

      public RecoveringDeserializationExceptionHandler(ConsumerRecordRecoverer recoverer)
  • Method Details

    • handle

      @Deprecated(since="4.1", forRemoval=true) public org.apache.kafka.streams.errors.DeserializationExceptionHandler.DeserializationHandlerResponse handle(org.apache.kafka.streams.errors.ErrorHandlerContext context, org.apache.kafka.clients.consumer.ConsumerRecord<byte[],byte[]> record, Exception exception)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Handle the deserialization exception by delegating to the configured recoverer.
      Specified by:
      handle in interface org.apache.kafka.streams.errors.DeserializationExceptionHandler
    • handleError

      public org.apache.kafka.streams.errors.DeserializationExceptionHandler.Response handleError(org.apache.kafka.streams.errors.ErrorHandlerContext context, org.apache.kafka.clients.consumer.ConsumerRecord<byte[],byte[]> record, Exception exception)
      Specified by:
      handleError in interface org.apache.kafka.streams.errors.DeserializationExceptionHandler
    • configure

      public void configure(Map<String,?> configs)
      Specified by:
      configure in interface org.apache.kafka.common.Configurable
    • fail

      protected org.apache.kafka.streams.errors.DeserializationExceptionHandler.Response fail()
      Create a response indicating that processing should fail.
      Specified by:
      fail in class AbstractRecoveringExceptionHandler<org.apache.kafka.streams.errors.DeserializationExceptionHandler.Response>
      Returns:
      a handler-specific fail response
    • resume

      protected org.apache.kafka.streams.errors.DeserializationExceptionHandler.Response resume(List<org.apache.kafka.clients.producer.ProducerRecord<byte[],byte[]>> deadLetterRecords)
      Create a response indicating that processing should resume.
      Specified by:
      resume in class AbstractRecoveringExceptionHandler<org.apache.kafka.streams.errors.DeserializationExceptionHandler.Response>
      Parameters:
      deadLetterRecords - The list of dead letter records to forward to DLQ
      Returns:
      a handler-specific resume response