mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-14 01:15:44 +01:00
fix sonar issue squid:S1989: Exceptions should not be thrown from servlet methods
This commit is contained in:
@@ -2,7 +2,8 @@ package sonia.scm.boot;
|
|||||||
|
|
||||||
import com.github.sdorra.webresources.CacheControl;
|
import com.github.sdorra.webresources.CacheControl;
|
||||||
import com.github.sdorra.webresources.WebResourceSender;
|
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 sonia.scm.util.HttpUtil;
|
||||||
|
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
@@ -16,6 +17,8 @@ import java.net.URL;
|
|||||||
@Singleton
|
@Singleton
|
||||||
public class StaticResourceServlet extends HttpServlet {
|
public class StaticResourceServlet extends HttpServlet {
|
||||||
|
|
||||||
|
private static final Logger LOG = LoggerFactory.getLogger(StaticResourceServlet.class);
|
||||||
|
|
||||||
private final WebResourceSender sender = WebResourceSender.create()
|
private final WebResourceSender sender = WebResourceSender.create()
|
||||||
.withGZIP()
|
.withGZIP()
|
||||||
.withGZIPMinLength(512)
|
.withGZIPMinLength(512)
|
||||||
@@ -23,12 +26,17 @@ public class StaticResourceServlet extends HttpServlet {
|
|||||||
.withCacheControl(CacheControl.create().noCache());
|
.withCacheControl(CacheControl.create().noCache());
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
|
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
|
||||||
URL resource = createResourceUrlFromRequest(request);
|
try {
|
||||||
if (resource != null) {
|
URL resource = createResourceUrlFromRequest(request);
|
||||||
sender.resource(resource).get(request, response);
|
if (resource != null) {
|
||||||
} else {
|
sender.resource(resource).get(request, response);
|
||||||
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
|
} else {
|
||||||
|
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
|
||||||
|
}
|
||||||
|
} catch (IOException ex) {
|
||||||
|
LOG.warn("failed to servce resource", ex);
|
||||||
|
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ class StaticResourceServletTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void shouldReturnNotFound() throws IOException {
|
void shouldReturnNotFound() {
|
||||||
doReturn("/scm").when(request).getContextPath();
|
doReturn("/scm").when(request).getContextPath();
|
||||||
doReturn("/scm/resource.txt").when(request).getRequestURI();
|
doReturn("/scm/resource.txt").when(request).getRequestURI();
|
||||||
doReturn(context).when(request).getServletContext();
|
doReturn(context).when(request).getServletContext();
|
||||||
|
|||||||
Reference in New Issue
Block a user