mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-11 16:05:44 +01:00
do not expose IOException
This commit is contained in:
@@ -47,7 +47,7 @@ public class WebResourceServlet extends HttpServlet {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
|
||||
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
|
||||
String uri = normalizeUri(request);
|
||||
|
||||
LOG.trace("try to load {}", uri);
|
||||
@@ -55,7 +55,16 @@ public class WebResourceServlet extends HttpServlet {
|
||||
if (url != null) {
|
||||
serveResource(response, url);
|
||||
} else {
|
||||
dispatch(request, response, uri);
|
||||
}
|
||||
}
|
||||
|
||||
private void dispatch(HttpServletRequest request, HttpServletResponse response, String uri) {
|
||||
try {
|
||||
pushStateDispatcher.dispatch(request, response, uri);
|
||||
} catch (IOException ex) {
|
||||
LOG.error("failed to dispatch: " + uri, ex);
|
||||
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -105,6 +105,14 @@ public class WebResourceServletTest {
|
||||
verify(response).setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDoGetWithDispatcherException() throws IOException {
|
||||
when(request.getRequestURI()).thenReturn("/scm/awesome.jpg");
|
||||
doThrow(IOException.class).when(pushStateDispatcher).dispatch(request, response, "/awesome.jpg");
|
||||
servlet.doGet(request, response);
|
||||
verify(response).setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||
}
|
||||
|
||||
private static class TestingOutputServletOutputStream extends ServletOutputStream {
|
||||
|
||||
private ByteArrayOutputStream buffer = new ByteArrayOutputStream();
|
||||
|
||||
Reference in New Issue
Block a user