From bc8c89cbf8a3c8010f4b4d73da5ebab2a3c4c0c4 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Thu, 13 Jun 2019 12:03:02 +0200 Subject: [PATCH] fix sonar issue squid:S1989: Exceptions should not be thrown from servlet methods --- .../sonia/scm/boot/StaticResourceServlet.java | 22 +++++++++++++------ .../scm/boot/StaticResourceServletTest.java | 2 +- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/scm-webapp/src/main/java/sonia/scm/boot/StaticResourceServlet.java b/scm-webapp/src/main/java/sonia/scm/boot/StaticResourceServlet.java index b44fbb64bc..cac801ec60 100644 --- a/scm-webapp/src/main/java/sonia/scm/boot/StaticResourceServlet.java +++ b/scm-webapp/src/main/java/sonia/scm/boot/StaticResourceServlet.java @@ -2,7 +2,8 @@ package sonia.scm.boot; import com.github.sdorra.webresources.CacheControl; import com.github.sdorra.webresources.WebResourceSender; -import com.google.common.annotations.VisibleForTesting; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import sonia.scm.util.HttpUtil; import javax.inject.Singleton; @@ -16,6 +17,8 @@ import java.net.URL; @Singleton public class StaticResourceServlet extends HttpServlet { + private static final Logger LOG = LoggerFactory.getLogger(StaticResourceServlet.class); + private final WebResourceSender sender = WebResourceSender.create() .withGZIP() .withGZIPMinLength(512) @@ -23,12 +26,17 @@ public class StaticResourceServlet extends HttpServlet { .withCacheControl(CacheControl.create().noCache()); @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { - URL resource = createResourceUrlFromRequest(request); - if (resource != null) { - sender.resource(resource).get(request, response); - } else { - response.setStatus(HttpServletResponse.SC_NOT_FOUND); + protected void doGet(HttpServletRequest request, HttpServletResponse response) { + try { + URL resource = createResourceUrlFromRequest(request); + if (resource != null) { + sender.resource(resource).get(request, response); + } else { + response.setStatus(HttpServletResponse.SC_NOT_FOUND); + } + } catch (IOException ex) { + LOG.warn("failed to servce resource", ex); + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); } } diff --git a/scm-webapp/src/test/java/sonia/scm/boot/StaticResourceServletTest.java b/scm-webapp/src/test/java/sonia/scm/boot/StaticResourceServletTest.java index a350f4d9f3..9d7235c97c 100644 --- a/scm-webapp/src/test/java/sonia/scm/boot/StaticResourceServletTest.java +++ b/scm-webapp/src/test/java/sonia/scm/boot/StaticResourceServletTest.java @@ -47,7 +47,7 @@ class StaticResourceServletTest { } @Test - void shouldReturnNotFound() throws IOException { + void shouldReturnNotFound() { doReturn("/scm").when(request).getContextPath(); doReturn("/scm/resource.txt").when(request).getRequestURI(); doReturn(context).when(request).getServletContext();