From 3b0b65cafcdb36689d91f8544e62a5bc1b5fed2d Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Mon, 18 Jul 2016 13:05:19 -0700 Subject: [PATCH 1/4] Fix deprecation warning --- .../tomcat/TomcatEmbeddedServletContainerFactory.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainerFactory.java b/spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainerFactory.java index 0ee888b4dd..4c09b544b2 100644 --- a/spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainerFactory.java +++ b/spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainerFactory.java @@ -725,11 +725,12 @@ public class TomcatEmbeddedServletContainerFactory /** * {@link LifecycleListener} that stores an empty merged web.xml. This is critical for - * Jasper to prevent warnings about missing web.xml files and to enable EL. + * Jasper on Tomcat 7 to prevent warnings about missing web.xml files and to enable + * EL. */ private static class StoreMergedWebXmlListener implements LifecycleListener { - private final String MERGED_WEB_XML = org.apache.tomcat.util.scan.Constants.MERGED_WEB_XML; + private final String MERGED_WEB_XML = "org.apache.tomcat.util.scan.MergedWebXml"; @Override public void lifecycleEvent(LifecycleEvent event) { From 3c67ecca610882596c8f55094cb7393fc1d7c695 Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Mon, 18 Jul 2016 13:07:00 -0700 Subject: [PATCH 2/4] Downgrade to HSQLDB 2.3.3 Closes gh-6415 --- spring-boot-dependencies/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-boot-dependencies/pom.xml b/spring-boot-dependencies/pom.xml index 178b71d098..124bab4786 100644 --- a/spring-boot-dependencies/pom.xml +++ b/spring-boot-dependencies/pom.xml @@ -81,7 +81,7 @@ 2.4.7 2.3.13 2.4.7.Final - 2.3.4 + 2.3.3 4.1.2 4.5.2 4.4.5 @@ -2240,4 +2240,4 @@ integration-test - \ No newline at end of file + From 2cb38bc8e2eb909f6a28c49865c6332b79871caa Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Mon, 18 Jul 2016 14:23:45 -0700 Subject: [PATCH 3/4] Apply Log4J2LoggingSystem.FILTER to main config Update Log4J2LoggingSystem so that the FILTER is applied to the main configuration and not to the root logger. Prior to this commit calls to `logger.isErrorEnabled()` would not consider the filter and hence would always return `true`. This caused `SpringApplication` to silently swallow exceptions. Fixes gh-5271 --- .../boot/logging/log4j2/Log4J2LoggingSystem.java | 8 ++------ .../boot/logging/log4j2/Log4J2LoggingSystemTests.java | 7 +++++++ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/spring-boot/src/main/java/org/springframework/boot/logging/log4j2/Log4J2LoggingSystem.java b/spring-boot/src/main/java/org/springframework/boot/logging/log4j2/Log4J2LoggingSystem.java index 3a050486ac..cf2aac58f4 100644 --- a/spring-boot/src/main/java/org/springframework/boot/logging/log4j2/Log4J2LoggingSystem.java +++ b/spring-boot/src/main/java/org/springframework/boot/logging/log4j2/Log4J2LoggingSystem.java @@ -130,13 +130,13 @@ public class Log4J2LoggingSystem extends Slf4JLoggingSystem { @Override public void beforeInitialize() { super.beforeInitialize(); - getRootLoggerConfig().addFilter(FILTER); + getLoggerContext().getConfiguration().addFilter(FILTER); } @Override public void initialize(LoggingInitializationContext initializationContext, String configLocation, LogFile logFile) { - getRootLoggerConfig().removeFilter(FILTER); + getLoggerContext().getConfiguration().removeFilter(FILTER); super.initialize(initializationContext, configLocation, logFile); } @@ -204,10 +204,6 @@ public class Log4J2LoggingSystem extends Slf4JLoggingSystem { return new ShutdownHandler(); } - private LoggerConfig getRootLoggerConfig() { - return getLoggerContext().getConfiguration().getLoggerConfig(""); - } - private LoggerConfig getLoggerConfig(String name) { name = (StringUtils.hasText(name) ? name : LogManager.ROOT_LOGGER_NAME); return getLoggerContext().getConfiguration().getLoggers().get(name); diff --git a/spring-boot/src/test/java/org/springframework/boot/logging/log4j2/Log4J2LoggingSystemTests.java b/spring-boot/src/test/java/org/springframework/boot/logging/log4j2/Log4J2LoggingSystemTests.java index ed6ca0366d..c602414d3e 100644 --- a/spring-boot/src/test/java/org/springframework/boot/logging/log4j2/Log4J2LoggingSystemTests.java +++ b/spring-boot/src/test/java/org/springframework/boot/logging/log4j2/Log4J2LoggingSystemTests.java @@ -209,6 +209,13 @@ public class Log4J2LoggingSystemTests extends AbstractLoggingSystemTests { assertThat(fileContents, is(expectedOutput)); } + @Test + public void beforeInitializeFilterDisablesErrorLogging() throws Exception { + this.loggingSystem.beforeInitialize(); + assertFalse(this.logger.isErrorEnabled()); + this.loggingSystem.initialize(null, null, getLogFile(null, tmpDir())); + } + @Test public void customExceptionConversionWord() throws Exception { System.setProperty("LOG_EXCEPTION_CONVERSION_WORD", "%ex"); From 49676ee98601c085748f2284fbffc2827ba7a63b Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Mon, 18 Jul 2016 14:31:23 -0700 Subject: [PATCH 4/4] Polish --- .../tomcat/TomcatEmbeddedServletContainerFactory.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainerFactory.java b/spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainerFactory.java index 4c09b544b2..abeba4fc0a 100644 --- a/spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainerFactory.java +++ b/spring-boot/src/main/java/org/springframework/boot/context/embedded/tomcat/TomcatEmbeddedServletContainerFactory.java @@ -730,7 +730,7 @@ public class TomcatEmbeddedServletContainerFactory */ private static class StoreMergedWebXmlListener implements LifecycleListener { - private final String MERGED_WEB_XML = "org.apache.tomcat.util.scan.MergedWebXml"; + private static final String MERGED_WEB_XML = "org.apache.tomcat.util.scan.MergedWebXml"; @Override public void lifecycleEvent(LifecycleEvent event) { @@ -741,8 +741,8 @@ public class TomcatEmbeddedServletContainerFactory private void onStart(Context context) { ServletContext servletContext = context.getServletContext(); - if (servletContext.getAttribute(this.MERGED_WEB_XML) == null) { - servletContext.setAttribute(this.MERGED_WEB_XML, getEmptyWebXml()); + if (servletContext.getAttribute(MERGED_WEB_XML) == null) { + servletContext.setAttribute(MERGED_WEB_XML, getEmptyWebXml()); } TomcatResources.get(context).addClasspathResources(); }