diff options
author | Sébastien Lesaint <sebastien.lesaint@sonarsource.com> | 2016-11-15 15:44:05 +0100 |
---|---|---|
committer | Sébastien Lesaint <sebastien.lesaint@sonarsource.com> | 2016-11-15 17:37:57 +0100 |
commit | d0dd5a72b59fd6ff305c9f41e9d839588b03f9ae (patch) | |
tree | 2f1537890ec4f447b25aca2616320edee9d05e52 /server | |
parent | e98b92e57756d806164e41720f7bdea56167723b (diff) | |
download | sonarqube-d0dd5a72b59fd6ff305c9f41e9d839588b03f9ae.tar.gz sonarqube-d0dd5a72b59fd6ff305c9f41e9d839588b03f9ae.zip |
SONAR-8332 do not generate request id (and don't fail) in safe-mode
Diffstat (limited to 'server')
2 files changed, 13 insertions, 1 deletions
diff --git a/server/sonar-server/src/main/java/org/sonar/server/platform/web/requestid/RequestIdFilter.java b/server/sonar-server/src/main/java/org/sonar/server/platform/web/requestid/RequestIdFilter.java index d157116eb4b..01c5f2b3691 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/platform/web/requestid/RequestIdFilter.java +++ b/server/sonar-server/src/main/java/org/sonar/server/platform/web/requestid/RequestIdFilter.java @@ -56,8 +56,12 @@ public class RequestIdFilter implements Filter { public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { RequestIdGenerator requestIdGenerator = platform.getContainer().getComponentByType(RequestIdGenerator.class); - try (RequestIdMDCStorage mdcStorage = new RequestIdMDCStorage(requestIdGenerator.generate())) { + if (requestIdGenerator == null) { chain.doFilter(request, response); + } else { + try (RequestIdMDCStorage mdcStorage = new RequestIdMDCStorage(requestIdGenerator.generate())) { + chain.doFilter(request, response); + } } } diff --git a/server/sonar-server/src/test/java/org/sonar/server/platform/web/requestid/RequestIdFilterTest.java b/server/sonar-server/src/test/java/org/sonar/server/platform/web/requestid/RequestIdFilterTest.java index 41a53c32d29..4ece09fd04b 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/platform/web/requestid/RequestIdFilterTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/platform/web/requestid/RequestIdFilterTest.java @@ -84,6 +84,14 @@ public class RequestIdFilterTest { } finally { assertThat(MDC.get("HTTP_REQUEST_ID")).isNull(); } + } + + @Test + public void filter_does_not_fail_when_there_is_no_RequestIdGenerator_in_container() throws IOException, ServletException { + Platform platform = mock(Platform.class); + when(platform.getContainer()).thenReturn(new ComponentContainer()); + RequestIdFilter underTest = new RequestIdFilter(platform); + underTest.doFilter(servletRequest, servletResponse, filterChain); } } |