From ea4d9a20acc51729d22e8187998ee4e93156226d Mon Sep 17 00:00:00 2001 From: Sam Brannen Date: Tue, 21 Jun 2022 13:48:02 +0200 Subject: [PATCH 1/3] Upgrade to Hamcrest 2.2 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 35bf707447..bfb3a34cf4 100644 --- a/build.gradle +++ b/build.gradle @@ -189,7 +189,7 @@ configure(allprojects) { project -> } dependency "org.testng:testng:7.4.0" dependency "org.junit.support:testng-engine:1.0.1" - dependency "org.hamcrest:hamcrest:2.1" + dependency "org.hamcrest:hamcrest:2.2" dependency "org.awaitility:awaitility:3.1.6" dependency "org.assertj:assertj-core:3.23.0" dependencySet(group: 'org.xmlunit', version: '2.9.0') { From dbe8f200a919635f44dcd2917eabb5e6b216ed77 Mon Sep 17 00:00:00 2001 From: Vedran Pavic Date: Fri, 17 Jun 2022 16:25:23 +0200 Subject: [PATCH 2/3] Simplify creation of LoggingCacheErrorHandler with logged stacktrace At present, creating a LoggingCacheErrorHandler that logs stack traces also requires supplying the logger to be used. This might be inconvenient for some users, as it requires usage of the Commons Logging API. This commit simplifies creation of such as LoggingCacheErrorHandler instance by adding a constructor that only accepts a boolean flag indicating whether to log stack traces. Closes gh-28670 --- .../cache/interceptor/LoggingCacheErrorHandler.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/spring-context/src/main/java/org/springframework/cache/interceptor/LoggingCacheErrorHandler.java b/spring-context/src/main/java/org/springframework/cache/interceptor/LoggingCacheErrorHandler.java index e2f6c33127..681a59b2c8 100644 --- a/spring-context/src/main/java/org/springframework/cache/interceptor/LoggingCacheErrorHandler.java +++ b/spring-context/src/main/java/org/springframework/cache/interceptor/LoggingCacheErrorHandler.java @@ -29,6 +29,7 @@ import org.springframework.util.Assert; * * @author Adam Ostrožlík * @author Stephane Nicoll + * @author Vedran Pavic * @since 5.3.16 */ public class LoggingCacheErrorHandler implements CacheErrorHandler { @@ -49,11 +50,19 @@ public class LoggingCacheErrorHandler implements CacheErrorHandler { this.logStacktrace = logStacktrace; } + /** + * Create an instance. + * @param logStacktrace whether to log stacktrace + */ + public LoggingCacheErrorHandler(boolean logStacktrace) { + this(LogFactory.getLog(LoggingCacheErrorHandler.class), logStacktrace); + } + /** * Create an instance that does not log stack traces. */ public LoggingCacheErrorHandler() { - this(LogFactory.getLog(LoggingCacheErrorHandler.class), false); + this(false); } From 8b345582842629ecfe91d70886acb8c8b0de506b Mon Sep 17 00:00:00 2001 From: Sam Brannen Date: Tue, 21 Jun 2022 14:07:39 +0200 Subject: [PATCH 3/3] Polish LoggingCacheErrorHandler --- .../interceptor/LoggingCacheErrorHandler.java | 58 +++++++++++-------- 1 file changed, 34 insertions(+), 24 deletions(-) diff --git a/spring-context/src/main/java/org/springframework/cache/interceptor/LoggingCacheErrorHandler.java b/spring-context/src/main/java/org/springframework/cache/interceptor/LoggingCacheErrorHandler.java index 681a59b2c8..d13a1cb8e2 100644 --- a/spring-context/src/main/java/org/springframework/cache/interceptor/LoggingCacheErrorHandler.java +++ b/spring-context/src/main/java/org/springframework/cache/interceptor/LoggingCacheErrorHandler.java @@ -24,47 +24,57 @@ import org.springframework.lang.Nullable; import org.springframework.util.Assert; /** - * A {@link CacheErrorHandler} implementation that logs error message. Can be - * used when underlying cache errors should be ignored. + * A {@link CacheErrorHandler} implementation that logs error messages. + * + *

Can be used when underlying cache errors should be ignored. * * @author Adam Ostrožlík * @author Stephane Nicoll * @author Vedran Pavic + * @author Sam Brannen * @since 5.3.16 */ public class LoggingCacheErrorHandler implements CacheErrorHandler { private final Log logger; - private final boolean logStacktrace; + private final boolean logStackTraces; /** - * Create an instance with the {@link Log logger} to use. - * @param logger the logger to use - * @param logStacktrace whether to log stack trace - */ - public LoggingCacheErrorHandler(Log logger, boolean logStacktrace) { - Assert.notNull(logger, "Logger must not be null"); - this.logger = logger; - this.logStacktrace = logStacktrace; - } - - /** - * Create an instance. - * @param logStacktrace whether to log stacktrace - */ - public LoggingCacheErrorHandler(boolean logStacktrace) { - this(LogFactory.getLog(LoggingCacheErrorHandler.class), logStacktrace); - } - - /** - * Create an instance that does not log stack traces. + * Create a {@code LoggingCacheErrorHandler} that uses the default logging + * category and does not log stack traces. + *

The default logging category is + * "{@code org.springframework.cache.interceptor.LoggingCacheErrorHandler}". */ public LoggingCacheErrorHandler() { this(false); } + /** + * Create a {@code LoggingCacheErrorHandler} that uses the default logging + * category and the supplied {@code logStackTraces} flag. + *

The default logging category is + * "{@code org.springframework.cache.interceptor.LoggingCacheErrorHandler}". + * @param logStackTraces whether to log stack traces + * @since 5.3.22 + */ + public LoggingCacheErrorHandler(boolean logStackTraces) { + this(LogFactory.getLog(LoggingCacheErrorHandler.class), logStackTraces); + } + + /** + * Create a {@code LoggingCacheErrorHandler} that uses the supplied + * {@link Log logger} and {@code logStackTraces} flag. + * @param logger the logger to use + * @param logStackTraces whether to log stack traces + */ + public LoggingCacheErrorHandler(Log logger, boolean logStackTraces) { + Assert.notNull(logger, "'logger' must not be null"); + this.logger = logger; + this.logStackTraces = logStackTraces; + } + @Override public void handleCacheGetError(RuntimeException exception, Cache cache, Object key) { @@ -99,7 +109,7 @@ public class LoggingCacheErrorHandler implements CacheErrorHandler { * @param ex the exception */ protected void logCacheError(Log logger, String message, RuntimeException ex) { - if (this.logStacktrace) { + if (this.logStackTraces) { logger.warn(message, ex); } else {