Class ErrorHandlingDeserializer<T>

java.lang.Object
org.springframework.kafka.support.serializer.ErrorHandlingDeserializer<T>
Type Parameters:
T - class of the entity, representing messages
All Implemented Interfaces:
Closeable, AutoCloseable, org.apache.kafka.common.serialization.Deserializer<T>

public class ErrorHandlingDeserializer<T> extends Object implements org.apache.kafka.common.serialization.Deserializer<T>
Delegating key/value deserializer that catches exceptions, returning them in the headers as serialized java objects.
Since:
2.2
Author:
Gary Russell, Artem Bilan, Victor Perez Rey
  • Field Details

    • KEY_FUNCTION

      public static final String KEY_FUNCTION
      Supplier for a T when deserialization fails.
      See Also:
    • VALUE_FUNCTION

      public static final String VALUE_FUNCTION
      Supplier for a T when deserialization fails.
      See Also:
    • KEY_DESERIALIZER_CLASS

      public static final String KEY_DESERIALIZER_CLASS
      Property name for the delegate key deserializer.
      See Also:
    • VALUE_DESERIALIZER_CLASS

      public static final String VALUE_DESERIALIZER_CLASS
      Property name for the delegate value deserializer.
      See Also:
    • VALIDATOR_CLASS

      public static final String VALIDATOR_CLASS
      Property name for the validator.
      See Also:
  • Constructor Details

    • ErrorHandlingDeserializer

      public ErrorHandlingDeserializer()
    • ErrorHandlingDeserializer

      public ErrorHandlingDeserializer(org.apache.kafka.common.serialization.Deserializer<T> delegate)
  • Method Details

    • setFailedDeserializationFunction

      public void setFailedDeserializationFunction(Function<FailedDeserializationInfo,T> failedDeserializationFunction)
      Provide an alternative supplying mechanism when deserialization fails.
      Parameters:
      failedDeserializationFunction - the Function to use.
      Since:
      2.2.8
    • isForKey

      public boolean isForKey()
    • setForKey

      public void setForKey(boolean isKey)
      Set to true if this deserializer is to be used as a key deserializer when configuring outside of Kafka.
      Parameters:
      isKey - true for a key deserializer, false otherwise.
      Since:
      2.2.3
    • keyDeserializer

      public ErrorHandlingDeserializer<T> keyDeserializer(boolean isKey)
      Set to true if this deserializer is to be used as a key deserializer when configuring outside of Kafka.
      Parameters:
      isKey - true for a key deserializer, false otherwise.
      Returns:
      this
      Since:
      2.2.3
    • setValidator

      public void setValidator(Validator validator)
      Set a validator to validate the object after successful deserialization. If the validator throws an exception, or returns an Errors with validation failures, the raw data will be available in any configured error handler.
      Parameters:
      validator - the validator to set
      Since:
      3.1
    • configure

      public void configure(Map<String,?> configs, boolean isKey)
      Specified by:
      configure in interface org.apache.kafka.common.serialization.Deserializer<T>
    • setupDelegate

      public void setupDelegate(Map<String,?> configs, String configKey)
    • deserialize

      public T deserialize(String topic, byte[] data)
      Specified by:
      deserialize in interface org.apache.kafka.common.serialization.Deserializer<T>
    • deserialize

      public T deserialize(String topic, org.apache.kafka.common.header.Headers headers, byte[] data)
      Specified by:
      deserialize in interface org.apache.kafka.common.serialization.Deserializer<T>
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Specified by:
      close in interface org.apache.kafka.common.serialization.Deserializer<T>