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
-
-
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 void
addNotRetryableExceptions(java.lang.Class<? extends java.lang.Exception>... exceptionTypes)
Add exception types to the default list.void
addRetryableExceptions(java.lang.Class<? extends java.lang.Exception>... exceptionTypes)
Add exception types that can be retried.void
defaultFalse()
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.BinaryExceptionClassifier
getClassifier()
Return the exception classifier.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.java.lang.Boolean
removeClassification(java.lang.Class<? extends java.lang.Exception> exceptionType)
Remove an exception type from the configured list.boolean
removeNotRetryableException(java.lang.Class<? extends java.lang.Exception> exceptionType)
Deprecated.in favor ofremoveClassification(Class)
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.-
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:DeserializationException
MessageConversionException
MethodArgumentResolutionException
NoSuchMethodException
ClassCastException
- 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:DeserializationException
MessageConversionException
ConversionException
MethodArgumentResolutionException
NoSuchMethodException
ClassCastException
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:DeserializationException
MessageConversionException
ConversionException
MethodArgumentResolutionException
NoSuchMethodException
ClassCastException
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:DeserializationException
MessageConversionException
ConversionException
MethodArgumentResolutionException
NoSuchMethodException
ClassCastException
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)
-
-