From 59730b9454ccc53c013aad4b0b51b0dec2033a9e Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Sun, 19 Jul 2020 19:55:19 +0200 Subject: [PATCH] Avoid unnecessarily alarming stack trace logged during scheduler resolution Closes gh-23268 (cherry picked from commit 7b6924522a3c2c5e480550d88258096e39a07778) --- .../ScheduledAnnotationBeanPostProcessor.java | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/spring-context/src/main/java/org/springframework/scheduling/annotation/ScheduledAnnotationBeanPostProcessor.java b/spring-context/src/main/java/org/springframework/scheduling/annotation/ScheduledAnnotationBeanPostProcessor.java index 666e2f22aca1..a59969b4c004 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/annotation/ScheduledAnnotationBeanPostProcessor.java +++ b/spring-context/src/main/java/org/springframework/scheduling/annotation/ScheduledAnnotationBeanPostProcessor.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 the original author or authors. + * Copyright 2002-2020 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -254,7 +254,10 @@ private void finishRegistration() { this.registrar.setTaskScheduler(resolveSchedulerBean(this.beanFactory, TaskScheduler.class, false)); } catch (NoUniqueBeanDefinitionException ex) { - logger.trace("Could not find unique TaskScheduler bean", ex); + if (logger.isTraceEnabled()) { + logger.trace("Could not find unique TaskScheduler bean - attempting to resolve by name: " + + ex.getMessage()); + } try { this.registrar.setTaskScheduler(resolveSchedulerBean(this.beanFactory, TaskScheduler.class, true)); } @@ -269,13 +272,19 @@ private void finishRegistration() { } } catch (NoSuchBeanDefinitionException ex) { - logger.trace("Could not find default TaskScheduler bean", ex); + if (logger.isTraceEnabled()) { + logger.trace("Could not find default TaskScheduler bean - attempting to find ScheduledExecutorService: " + + ex.getMessage()); + } // Search for ScheduledExecutorService bean next... try { this.registrar.setScheduler(resolveSchedulerBean(this.beanFactory, ScheduledExecutorService.class, false)); } catch (NoUniqueBeanDefinitionException ex2) { - logger.trace("Could not find unique ScheduledExecutorService bean", ex2); + if (logger.isTraceEnabled()) { + logger.trace("Could not find unique ScheduledExecutorService bean - attempting to resolve by name: " + + ex2.getMessage()); + } try { this.registrar.setScheduler(resolveSchedulerBean(this.beanFactory, ScheduledExecutorService.class, true)); } @@ -290,7 +299,10 @@ private void finishRegistration() { } } catch (NoSuchBeanDefinitionException ex2) { - logger.trace("Could not find default ScheduledExecutorService bean", ex2); + if (logger.isTraceEnabled()) { + logger.trace("Could not find default ScheduledExecutorService bean - falling back to default: " + + ex2.getMessage()); + } // Giving up -> falling back to default scheduler within the registrar... logger.info("No TaskScheduler/ScheduledExecutorService bean found for scheduled processing"); }