Class ExceptionClassifier
- java.lang.Object
-
- org.springframework.kafka.listener.KafkaExceptionLogLevelAware
-
- org.springframework.kafka.listener.ExceptionClassifier
-
- Direct Known Subclasses:
DeadLetterPublishingRecoverer,DefaultDestinationTopicResolver,FailedRecordProcessor
public abstract class ExceptionClassifier extends KafkaExceptionLogLevelAware
Supports exception classification.- Since:
- 2.8
- Author:
- Gary Russell
-
-
Constructor Summary
Constructors Constructor Description ExceptionClassifier()Construct the instance.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidaddNotRetryableExceptions(java.lang.Class<? extends java.lang.Exception>... exceptionTypes)Add exception types to the default list.voidaddRetryableExceptions(java.lang.Class<? extends java.lang.Exception>... exceptionTypes)Add exception types that can be retried.voiddefaultFalse()By default, unmatched types classify as true.static java.util.List<java.lang.Class<? extends java.lang.Throwable>>defaultFatalExceptionsList()Return a list of the framework default fatal exceptions.protected org.springframework.classify.BinaryExceptionClassifiergetClassifier()Return the exception classifier.protected voidnotRetryable(java.util.stream.Stream<java.lang.Class<? extends java.lang.Exception>> notRetryable)Subclasses can override this to receive notification of configuration of not retryable exceptions.java.lang.BooleanremoveClassification(java.lang.Class<? extends java.lang.Exception> exceptionType)Remove an exception type from the configured list.booleanremoveNotRetryableException(java.lang.Class<? extends java.lang.Exception> exceptionType)Deprecated.in favor ofremoveClassification(Class)voidsetClassifications(java.util.Map<java.lang.Class<? extends java.lang.Throwable>,java.lang.Boolean> classifications, boolean defaultValue)Set an exception classifications to determine whether the exception should cause a retry (until exhaustion) or not.-
Methods inherited from class org.springframework.kafka.listener.KafkaExceptionLogLevelAware
getLogLevel, setLogLevel
-
-
-
-
Method Detail
-
defaultFatalExceptionsList
public static java.util.List<java.lang.Class<? extends java.lang.Throwable>> defaultFatalExceptionsList()
Return a list of the framework default fatal exceptions. This method produces a new list for each call, so changing the list's contents has no effect on the framework itself. Thus, it should be used only as a reference.- Returns:
- the default fatal exceptions list.
-
defaultFalse
public void defaultFalse()
By default, unmatched types classify as true. Call this method to make the default false, and remove types explicitly classified as false. This should be called before calling any of the classification modification methods.- Since:
- 2.8.4
-
getClassifier
protected org.springframework.classify.BinaryExceptionClassifier getClassifier()
Return the exception classifier.- Returns:
- the classifier.
-
setClassifications
public void setClassifications(java.util.Map<java.lang.Class<? extends java.lang.Throwable>,java.lang.Boolean> classifications, boolean defaultValue)Set an exception classifications to determine whether the exception should cause a retry (until exhaustion) or not. If not, we go straight to the recoverer. By default, the following exceptions will not be retried:DeserializationExceptionMessageConversionExceptionMethodArgumentResolutionExceptionNoSuchMethodExceptionClassCastException
- Parameters:
classifications- the classifications.defaultValue- whether or not to retry non-matching exceptions.- See Also:
BinaryExceptionClassifier(Map, boolean),addNotRetryableExceptions(Class...)
-
addNotRetryableExceptions
@SafeVarargs public final void addNotRetryableExceptions(java.lang.Class<? extends java.lang.Exception>... exceptionTypes)
Add exception types to the default list. By default, the following exceptions will not be retried:DeserializationExceptionMessageConversionExceptionConversionExceptionMethodArgumentResolutionExceptionNoSuchMethodExceptionClassCastException
defaultFalse()has been called.- Parameters:
exceptionTypes- the exception types.- See Also:
removeClassification(Class),setClassifications(Map, boolean)
-
notRetryable
protected void notRetryable(java.util.stream.Stream<java.lang.Class<? extends java.lang.Exception>> notRetryable)
Subclasses can override this to receive notification of configuration of not retryable exceptions.- Parameters:
notRetryable- the not retryable exceptions.- Since:
- 2.9.3
-
addRetryableExceptions
@SafeVarargs public final void addRetryableExceptions(java.lang.Class<? extends java.lang.Exception>... exceptionTypes)
Add exception types that can be retried. Call this afterdefaultFalse()to specify those exception types that should be classified as true. All others will be retried, unlessdefaultFalse()has been called.- Parameters:
exceptionTypes- the exception types.- Since:
- 2.8.4
- See Also:
removeClassification(Class),setClassifications(Map, boolean)
-
removeNotRetryableException
@Deprecated public boolean removeNotRetryableException(java.lang.Class<? extends java.lang.Exception> exceptionType)
Deprecated.in favor ofremoveClassification(Class)Remove an exception type from the configured list. By default, the following exceptions will not be retried:DeserializationExceptionMessageConversionExceptionConversionExceptionMethodArgumentResolutionExceptionNoSuchMethodExceptionClassCastException
defaultFalse()has been called.- Parameters:
exceptionType- the exception type.- Returns:
- true if the removal was successful.
- See Also:
addNotRetryableExceptions(Class...),setClassifications(Map, boolean),defaultFalse()
-
removeClassification
@Nullable public java.lang.Boolean removeClassification(java.lang.Class<? extends java.lang.Exception> exceptionType)
Remove an exception type from the configured list. By default, the following exceptions will not be retried:DeserializationExceptionMessageConversionExceptionConversionExceptionMethodArgumentResolutionExceptionNoSuchMethodExceptionClassCastException
defaultFalse()has been called.- Parameters:
exceptionType- the exception type.- Returns:
- the classification of the exception if removal was successful; null otherwise.
- Since:
- 2.8.4
- See Also:
addNotRetryableExceptions(Class...),setClassifications(Map, boolean)
-
-