/** * Wrap the provided {@link org.springframework.retry.RetryPolicy} so that it never retries explicitly non-retryable * exceptions. */ private RetryPolicy getFatalExceptionAwareProxy(RetryPolicy retryPolicy) { NeverRetryPolicy neverRetryPolicy = new NeverRetryPolicy(); Map<Class<? extends Throwable>, RetryPolicy> map = new HashMap<>(); for (Class<? extends Throwable> fatal : nonRetryableExceptionClasses) { map.put(fatal, neverRetryPolicy); } SubclassClassifier<Throwable, RetryPolicy> classifier = new SubclassClassifier<>( retryPolicy); classifier.setTypeMap(map); ExceptionClassifierRetryPolicy retryPolicyWrapper = new ExceptionClassifierRetryPolicy(); retryPolicyWrapper.setExceptionClassifier(classifier); return retryPolicyWrapper; }
private RetryPolicy ourExceptionRetryPolicy() { ExceptionClassifierRetryPolicy exceptionClassifierRetryPolicy = new ExceptionClassifierRetryPolicy(); Map<Class<? extends Throwable>, RetryPolicy> policyMap = new HashMap<>(); policyMap.put(ClassNotFoundException.class, new NeverRetryPolicy()); policyMap.put(Exception.class, new SimpleRetryPolicy()); // Default max attempts is 3. After the third attempt, the message is logged. policyMap.put(ListenerExecutionFailedException.class, new SimpleRetryPolicy()); policyMap.put(MessageConversionException.class, new NeverRetryPolicy()); exceptionClassifierRetryPolicy.setPolicyMap(policyMap); return exceptionClassifierRetryPolicy; }
/** * Wrap the provided {@link org.springframework.retry.RetryPolicy} so that it never retries explicitly non-retryable * exceptions. */ private RetryPolicy getFatalExceptionAwareProxy(RetryPolicy retryPolicy) { NeverRetryPolicy neverRetryPolicy = new NeverRetryPolicy(); Map<Class<? extends Throwable>, RetryPolicy> map = new HashMap<Class<? extends Throwable>, RetryPolicy>(); for (Class<? extends Throwable> fatal : nonRetryableExceptionClasses) { map.put(fatal, neverRetryPolicy); } SubclassClassifier<Throwable, RetryPolicy> classifier = new SubclassClassifier<Throwable, RetryPolicy>( retryPolicy); classifier.setTypeMap(map); ExceptionClassifierRetryPolicy retryPolicyWrapper = new ExceptionClassifierRetryPolicy(); retryPolicyWrapper.setExceptionClassifier(classifier); return retryPolicyWrapper; }
/** * The creates a default <code>ExceptionClassifierRetryPolicy</code> for a * listener container. * * @return The default <code>ExceptionClassifierRetryPolicy</code>. * @since 1.0 */ public static RetryPolicy makeExceptionClassifierRetryPolicy() { final ExceptionClassifierRetryPolicy exceptionClassifierRetryPolicy = new ExceptionClassifierRetryPolicy(); final Map<Class<? extends Throwable>, RetryPolicy> policyMap = new HashMap<>(); policyMap.put(ClassNotFoundException.class, new NeverRetryPolicy()); // Default max attempts is 3. After the third attempt, the message is logged. policyMap.put(Exception.class, new SimpleRetryPolicy()); policyMap.put(ListenerExecutionFailedException.class, new SimpleRetryPolicy()); policyMap.put(MessageConversionException.class, new NeverRetryPolicy()); exceptionClassifierRetryPolicy.setPolicyMap(policyMap); return exceptionClassifierRetryPolicy; } }
/** * The creates a default <code>ExceptionClassifierRetryPolicy</code> for a * listener container. * * @return The default <code>ExceptionClassifierRetryPolicy</code>. * @since 1.0 */ public static RetryPolicy makeExceptionClassifierRetryPolicy() { final ExceptionClassifierRetryPolicy exceptionClassifierRetryPolicy = new ExceptionClassifierRetryPolicy(); final Map<Class<? extends Throwable>, RetryPolicy> policyMap = new HashMap<>(); policyMap.put(ClassNotFoundException.class, new NeverRetryPolicy()); // Default max attempts is 3. After the third attempt, the message is logged. policyMap.put(Exception.class, new SimpleRetryPolicy()); policyMap.put(ListenerExecutionFailedException.class, new SimpleRetryPolicy()); policyMap.put(MessageConversionException.class, new NeverRetryPolicy()); exceptionClassifierRetryPolicy.setPolicyMap(policyMap); return exceptionClassifierRetryPolicy; } }
/** * Wrap the provided {@link org.springframework.retry.RetryPolicy} so that it never retries explicitly non-retryable * exceptions. */ private RetryPolicy getFatalExceptionAwareProxy(RetryPolicy retryPolicy) { NeverRetryPolicy neverRetryPolicy = new NeverRetryPolicy(); Map<Class<? extends Throwable>, RetryPolicy> map = new HashMap<Class<? extends Throwable>, RetryPolicy>(); for (Class<? extends Throwable> fatal : nonRetryableExceptionClasses) { map.put(fatal, neverRetryPolicy); } SubclassClassifier<Throwable, RetryPolicy> classifier = new SubclassClassifier<Throwable, RetryPolicy>( retryPolicy); classifier.setTypeMap(map); ExceptionClassifierRetryPolicy retryPolicyWrapper = new ExceptionClassifierRetryPolicy(); retryPolicyWrapper.setExceptionClassifier(classifier); return retryPolicyWrapper; }
/** * Wrap the provided {@link org.springframework.retry.RetryPolicy} so that it never retries explicitly non-retryable * exceptions. */ private RetryPolicy getFatalExceptionAwareProxy(RetryPolicy retryPolicy) { NeverRetryPolicy neverRetryPolicy = new NeverRetryPolicy(); Map<Class<? extends Throwable>, RetryPolicy> map = new HashMap<Class<? extends Throwable>, RetryPolicy>(); for (Class<? extends Throwable> fatal : nonRetryableExceptionClasses) { map.put(fatal, neverRetryPolicy); } SubclassClassifier<Throwable, RetryPolicy> classifier = new SubclassClassifier<Throwable, RetryPolicy>( retryPolicy); classifier.setTypeMap(map); ExceptionClassifierRetryPolicy retryPolicyWrapper = new ExceptionClassifierRetryPolicy(); retryPolicyWrapper.setExceptionClassifier(classifier); return retryPolicyWrapper; }